실무 판단 순서
이상 현상을 단계별로 제거하고, BCNF는 보존 비용까지 따져서 멈춘다

정규화는 높은 정규형을 무조건 목표로 삼기보다, 현재 테이블에서 드러나는 종속 문제를 위에서부터 점검하며 필요한 지점까지만 적용하는 흐름이다.

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

대부분의 OLTP 시스템은 3NF에서 이상 현상을 충분히 줄인다. BCNF는 복잡한 업무 규칙 때문에 비후보키 결정자가 문제를 만들 때만 추가 검토한다.

핵심 판단

더 높은 정규형 자체가 목표가 아니라, 종속 문제를 없애면서도 질의 복잡도와 종속성 보존 비용을 감당할 수 있는 지점에서 멈추는 것이다.