1단계 · 1NF 적용

상품별로 행은 나뉘었지만, 고객 정보는 아직 주문ID에만 묶여 있습니다.

1NF는 각 셀을 원자값으로 만들고 반복 그룹을 행으로 풀어냅니다. 하지만 한 주문에 상품이 여러 개면 고객 정보가 함께 반복되어, 다음 단계에서 분리해야 할 기준이 드러납니다.

주문상세 테이블

PK = {주문ID, 상품명}
주문ID 고객명 고객폰 상품명 단가 수량
001 김철수 010-1234 노트북 150만 1
001 김철수 010-1234 마우스 3.5만 1
002 이영희 010-5678 키보드 8만 1
001 주문 상품이 2개라서 행은 2개로 늘었지만, 고객명과 고객폰도 함께 반복됩니다.
무엇이 개선됐나

원자값은 달성

상품마다 한 행씩 저장되어 반복 그룹이 사라집니다.
한 셀에는 고객명, 전화번호, 상품명처럼 하나의 값만 들어갑니다.
왜 아직 2NF가 필요한가

고객 정보는 복합 PK 전체가 아니라 주문ID 일부에만 종속됩니다.

복합 PK
{주문ID, 상품명}
부분 함수 종속
주문ID → 고객명, 고객폰

상품명이 바뀌어도 고객 정보는 주문ID만 알면 결정됩니다. 그래서 다음 단계에서는 주문 속성과 상품별 상세 속성을 분리하게 됩니다.