위반 결정자를 찾고 작게 분해해 다시 검사한다
BCNF 분해는 비자명 함수 종속마다 결정자가 슈퍼키인지 확인한다. 위반을 찾으면 결정자 쪽과 나머지 속성 쪽으로 나누고, 새 릴레이션에 같은 검사를 반복한다.
01 종속 추림자명하지 않은 FD만 검사한다.
02 결정자 검사X가 전체 행을 유일하게 식별하는지 본다.
03 위반 분해X → Y라면 R1(X,Y)와 R2(R - Y)로 나눈다.
04 반복 종료모든 결정자가 슈퍼키이면 멈춘다.
현재 릴레이션 R
R(학생, 교수, 과목) FD: 교수 → 과목 판정: 교수는 R의 슈퍼키가 아님분해 결과
R1(교수, 과목) R2(학생, 교수) 다음: R1과 R2를 각각 다시 검사검사
질문
예시 결과
처리
학생,교수 → 과목
후보키가 결정자인가?
예
보존
교수 → 과목
교수가 모든 행을 식별하는가?
아니오
분해
분해 후 릴레이션
새 결정자가 남았는가?
없음
검사 종료
주의: BCNF는 무손실 조인을 우선한다. 원래 FD가 조인 없이 보존되는지는 별도 체크리스트가 아니라 분해 결과의 제약 설계에서 다시 확인한다.