2023.03.03 - [분류 전체보기] - 2정규형(2NF)
이행성
3정규형을 알려면 이행성의 개념에 대해 알아야합니다.
id | 제품명 | 브랜드 | 브랜드 본사 주소 |
1 | 나이키 조던 카마인 | 나이키 | 미국 어딘가 |
2 | 아디다스 이지부스트 | 아디다스 | 독일 어딘가 |
위 테이블은 제가 제품 테이블이라고 만들어 놓은 건데요. 사실 어딘가 좀 이상합니다. 제품명 컬럼은 브랜드 컬럼을 결정 지을 수 있습니다. 브랜드 컬럼은 브랜드 본사 주소를 결정지을 수 있습니다. 제품명 컬럼이 브랜드 본사 주소를 결정 지을 수는 없어요. 이처럼 A가 B를 결정하고, B가 C를 결정하는 것을 이행성이라고 합니다. 브랜드 본사 주소는 제품명에 이행적 함수 종속성이 있다라고도 표현합니다.
3정규형(3NF)
3정규형은 조건은 아래와 같습니다.
- 2정규형에 부합한다.
- 테이블에 안에서 모든 속성들은 이행적 함수 종속성이 없어야한다.
id | 제품명 | 브랜드 | 브랜드 본사 주소 |
1 | 나이키 조던 카마인 | 나이키 | 미국 어딘가 |
2 | 아디다스 이지부스트 | 아디다스 | 독일 어딘가 |
위 테이블 보면 제품명 -> 브랜드 -> 브랜드 본사 주소 로 이행적 함수 종속성이 존재합니다. 즉 3정규형 조건에 부합하지 않습니다. 그래서 이것을 분리시켜줘야합니다.
3정규화가 적용된 경우,
먼저 브랜드 테이블
id | 브랜드 명 | 브랜드 본사 주소 |
1 | 나이키 | 미국 어딘가 |
2 | 아디다스 | 독일 어딘가 |
그리고 제품 테이블
id | 제품명 | 브랜드_id |
1 | 나이키 조던 카마인 | 1 |
2 | 아디다스 이지부스트 | 2 |
댓글