단계
무엇을 확인하나
문제가 있으면
문제가 없으면
1NF
가장 먼저
모든 속성이 원자값인가?
한 칸에 여러 값이 섞여 있지 않은지 확인
1NF 적용
반복값과 다중값을 분리
2NF로 진행
다음은 부분 종속 여부 점검
2NF
복합키일 때
부분 종속이 있는가?
복합키 일부에만 의존하는 속성이 있는지 확인
2NF 적용
부분 종속 컬럼을 별도 테이블로 분리
3NF로 진행
부분 종속이 없으면 이행 종속 점검
3NF
OLTP의 기본선
이행 종속이 있는가?
키가 아닌 속성이 또 다른 비키 속성을 결정하는지 확인
3NF 적용
이행 종속을 끊어 갱신 이상을 줄임
BCNF 검토
업무 규칙이 복잡하면 한 단계 더 본다
BCNF
예외 판단
후보키가 아닌 결정자가 있는가?
결정자-피결정자 관계가 후보키 중심으로 정리되는지 점검
보존 가능 → BCNF 적용
보존 불가 → 3NF 유지 + 앱 로직 보완
없으면 현재 상태 유지
실무에서는 대부분 여기서 종료