정규화 단서 읽기

한 행은 주문 전체가 아니라 주문-상품 1건이다

복합키 {주문번호, 상품코드}로 행을 읽고, 같은 값이 반복되는 지점을 보면 어떤 속성이 어디에 종속되는지 더 빨리 보입니다.

행 기준 {주문번호, 상품코드}

원본 예시를 복합키 기준으로 다시 보기

각 행은 하나의 주문에서 어떤 상품을 몇 개 담았는지를 나타냅니다. 고객 정보와 상품 가격은 그 행 안에서 함께 반복됩니다.

행(기본키) 고객 정보 상품 정보 주문 상세
O001 + P001 C01 김철수 · 010 P001 단가 10000 수량 2
O001 + P002 C01 김철수 · 010 P002 단가 20000 수량 1
O002 + P001 C02 이영희 · 011 P001 단가 10000 수량 3
O003 + P003 C01 김철수 · 010 P003 단가 30000 수량 1

반복되는 값이 함수 종속을 드러낸다

키 전체를 보지 않아도 결정되는 속성이 있으면, 정규화할 때 분리해야 할 사실 묶음이 보입니다.

기준 값 결정되는 값 관찰 포인트
주문번호 O001 고객번호 C01 같은 주문번호인 O001 + P001, O001 + P002 두 행에서 고객번호가 바뀌지 않습니다.
고객번호 C01 김철수 · 010 O001O003처럼 주문이 달라도 고객번호가 같으면 이름과 전화번호가 반복됩니다.
상품코드 P001 단가 10000 O001, O002에서 상품코드가 같을 때 단가도 그대로 반복됩니다.
결론: 이 테이블 한 곳에 주문 사실, 고객 사실, 상품 가격 사실이 함께 들어 있습니다. 그래서 다음 단계에서 부분 종속과 이행 종속을 찾고, 분해 방향을 결정하게 됩니다.