BCNF는 제3정규형(3NF)의 확장이며 3NF보다 약간 더 강력합니다.
P -> Q가 사소한 기능 종속성이고 P가 R에 대한 수퍼키인 경우 관계 R은 BCNF에 있습니다.
관계가 BCNF에 있는 경우 함수 종속성을 기반으로 하는 중복성이 제거되었지만 일부 중복성은 여전히 존재함을 의미합니다.
예를 들어 보겠습니다 -
<스포츠클럽>
그라운드 | 시작_시간 | End_Time | 패키지 |
G01 | 07:00 | 09:00 | 골드 |
G01 | 10:00 | 12:00 | 골드 |
G01 | 10:30 | 11:00 | 브론즈 |
G02 | 10:15 | 11:15 | 실버 |
G02 | 08:00 | 09:00 | 실버 |
위의 관계는 1NF, 2NF, 3NF에 있지만 BCNF에는 없습니다. 여기에 이유가 있습니다 -
기능 종속성 {패키지->접지}
이것은 Ground가 의존하는 결정 속성 패키지가 후보 키도 후보 키의 상위 집합도 아닙니다.
<패키지>
패키지 | 그라운드 |
골드 | G01 |
실버 | G02 |
브론즈 | G01 |
<내일 예약>
그라운드 | 시작 시간 | End_Time |
G01 | 07:00 | 09:00 |
G01 | 10:00 | 12:00 |
G01 | 10:30 | 11:00 |
G02 | 10:15 | 11:15 |
G02 | 08:00 | 09:00 |
이제 위의 테이블은 BCNF에 있습니다.
<패키지> 후보 키 테이블은 패키지 및 접지입니다.