Learning
토픽 23 / 201·정규화 및 역정규화

BCNF (Boyce-Codd Normal Form)

BCNF (Boyce-Codd Normal Form)

릴레이션 R의 모든 결정자(Determinant)가 후보키(Candidate Key)인 정규형으로, 3NF를 보완하여 더 엄격한 조건을 적용

조건

  • 3NF를 만족
  • 모든 결정자가 후보키여야 함
  • 후보키가 아닌 속성이 결정자가 되면 안 됨

3NF와 차이점

  • 3NF: 비키 속성이 키에 종속
  • BCNF: 모든 결정자가 반드시 후보키
  • BCNF가 3NF보다 엄격 (BCNF ⊂ 3NF)

위반 사례

  • 수강(학번, 과목명, 교수)에서 교수→과목명 종속
  • 교수는 후보키가 아니지만 결정자 → BCNF 위반

해결 방법

  • 후보키가 아닌 결정자를 분리
  • 수강(학번, 교수) / 과목(교수, 과목명)

주의사항: 분해 시 함수 종속성 손실 가능 (무손실 분해 필요)

적용사례: 복합키와 결정자가 복잡한 테이블

비교: BCNF(모든결정자=후보키) vs 3NF(결정자 조건 완화)

연관: 정규화, 3NF, 4NF, 결정자, 후보키