복합키 {주문번호, 상품코드}로 행을 읽고, 같은 값이 반복되는 지점을 보면 어떤 속성이 어디에 종속되는지 더 빨리 보입니다.
각 행은 하나의 주문에서 어떤 상품을 몇 개 담았는지를 나타냅니다. 고객 정보와 상품 가격은 그 행 안에서 함께 반복됩니다.
| 행(기본키) | 고객 정보 | 상품 정보 | 주문 상세 |
|---|---|---|---|
| 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 | O001과 O003처럼 주문이 달라도 고객번호가 같으면 이름과 전화번호가 반복됩니다. |
| 상품코드 P001 | 단가 10000 | O001, O002에서 상품코드가 같을 때 단가도 그대로 반복됩니다. |