정규화는 함수적 종속성을 근거로 한다.
함수적 종속성이란 X -> Y 이면, Y는 X에 함수적으로 종속된다고 말한다.
함수적 종속성은 X가 변화하면 Y도 변화하는지 확인한다.
예를 들어 회원ID가 변화하면 이름도 변경된다.
이런 경우는 회원ID가 기본키가 되고, 회원ID가 이름을 함수적으로 종속한다고 한다.
이처럼 기본키를 잡는 것이 제1정규화이다.
부분 함수 종속성을 제거하는 것이 제2정규화이다.
이행 함수 종속성을 제거하는 것이 제3정규화이다.
3차 정규화를 만족하면서 모든 결정자가 후보키 집합에 속한 정규형이다.
제품번호 | 제품명 | 재고수량 | 주문번호 | 수출 여부 | 고객 번호 | 사업자 번호 | 우선순위 | 주문수량 |
---|---|---|---|---|---|---|---|---|
1001 | 모니터 | 1,990 | AB345 | X | 4520 | 398201 | 1 | 150 |
1001 | 모니터 | 1,990 | AD347 | Y | 2341 | - | 3 | 600 |
1007 | 마우스 | 9,702 | CA210 | X | 3280 | 200212 | 8 | 1200 |
1007 | 마우스 | 9,702 | AB345 | X | 4520 | 398201 | 1 | 300 |
1007 | 마우스 | 9,702 | CB230 | X | 2341 | 563892 | 3 | 390 |
1201 | 스피커 | 2,108 | CB231 | Y | 8320 | - | 2 | 80 |
제품번호 | 제품명 | 재고수량 | 주문번호 | 수출 여부 | 고객 번호 | 사업자 번호 | 우선순위 | 주문수량 |
---|---|---|---|---|---|---|---|---|
1001 | 모니터 | 1,990 | AB345 | X | 4520 | 398201 | 1 | 150 |
1001 | 모니터 | 1,990 | AD347 | Y | 2341 | - | 3 | 600 |
1007 | 마우스 | 9,702 | CA210 | X | 3280 | 200212 | 8 | 1200 |
1007 | 마우스 | 9,702 | AB345 | X | 4520 | 398201 | 1 | 300 |
1007 | 마우스 | 9,702 | CB230 | X | 2341 | 563892 | 3 | 390 |
1201 | 스피커 | 2,108 | CB231 | Y | 8320 | - | 2 | 80 |
제2정규화는 기본키가 두 개 이상인 경우 대상이 된다.
기본키가 제품번호 + 주문번호이므로 제2정규화 대상이다.
제2정규화는 모든 속성(제품명, 재고 수량, 수출 여부 등)이 식별자에 종속해야 하며 그렇지 않은 경우에는 분해한다.
확인 방법은 제1정규화와 마찬가지로 중복을 확인하는 것이다.
제2정규화 확인(1)
제품번호 | 제품명 | 재고 수량 |
---|---|---|
1001 | 모니터 | 1,990 |
1001 | 모니터 | 1,990 |
위의 경우 1001, 모니터가 중복되는 것을 확인할 수 있다.
이러한 경우 엔터티를 분해하는 것이 제2정규화이다.
제2정규화 확인(2)
제품번호 | 수출 여부 | 고객 번호 | 사업자 번호 | 우선순위 |
---|---|---|---|---|
AB345 | X | 4520 | 398201 | 1 |
AD347 | Y | 2341 | - | 3 |
CA210 | X | 3280 | 200212 | 8 |
AB345 | X | 4520 | 398201 | 1 |
위의 경우 AB345 주문번호에 중복이 발생한다.
이러한 경우는 분해를 해야한다.
결과적으로 최종 엔터티는 다음과 같다.
제품번호 | 제품명 | 재고 수량 |
---|
주문번호 | 수출 여부 | 고객 번호 | 사업자 번호 | 우선순위 |
---|
제품번호 | 주문번호 | 주문 수량 |
---|