토픽 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, 결정자, 후보키