공통 상황

3NF는 이 관계를 직접 막지 못합니다

문제의 핵심은 비주요 속성후보키의 일부를 결정하는 경우입니다. 이때 결정자는 키가 아니지만, 중요한 사실을 계속 좌우합니다.

비주요 속성 X → 주요 속성 A
A는 후보키를 이루는 속성 중 하나입니다. 즉, 후보키가 아닌 결정자가 남아 있는 상태입니다.
왜 문제인가
하나의 사실이 한곳에만 있지 않음
키가 아닌 속성이 다른 중요한 속성을 좌우하면 같은 규칙이 여러 행에 흩어질 수 있습니다.
갱신 이상이 다시 생김
결정 규칙이 바뀔 때 여러 행을 함께 수정해야 하고, 일부만 바뀌면 불일치가 남습니다.
비교 기준
3NF가 보는 것
비주요 속성이 후보키에 이행 종속되는지 검사
BCNF가 보는 것
모든 함수 종속에서 결정자가 슈퍼키인지 검사
이 상황 판정
직접적인 위반으로 잡히지 않음
문제 관계가 "비주요 속성 → 후보키 일부"라서 3NF 정의의 틈을 통과할 수 있습니다.
즉시 위반으로 판단
결정자 X가 슈퍼키가 아니므로, 비자명 함수 종속 X → A 자체가 허용되지 않습니다.
운영 결과
후보키 아닌 결정자가 남음
중복 저장과 갱신 이상이 남을 수 있어, 3NF만으로는 모든 이상 현상을 제거하지 못합니다.
결정자는 반드시 키
결정 권한을 슈퍼키로 제한해, 같은 규칙이 흩어져 생기는 이상 현상을 더 엄격하게 차단합니다.
정리: 3NF종속 경로를 주로 보고, BCNF결정자의 자격 자체를 봅니다. 그래서 후보키가 아닌 결정자를 BCNF가 확실히 걸러냅니다.