학생 테이블 예시

핵심은 비키 → 비키 종속을 찾고, 있으면 분리하는 것입니다.

3NF 판단은 복잡한 정의를 외우는 것보다, 이행 종속이 실제로 어디서 생기고 분해 후 무엇이 직접 종속으로 바뀌는지 보는 편이 빠릅니다.

1 확인

비키 속성이 다른 비키 속성을 결정하는지 본다

학번(PK) └─> 학과 └─> 학과장

문제 지점: 학과 → 학과장은 둘 다 키가 아닌 속성이라 3NF를 위반합니다.

2 분리

결정자 학과를 새 테이블의 PK로 만든다

학생
학번 PK 학과
학과
학과 PK 학과장

종속 속성 학과장은 학과 테이블로 이동하고, 학생 테이블에는 학과만 남깁니다.

3 결과

이제 모든 비키 속성은 자기 테이블의 키에 직접만 종속된다

학생 테이블
학번 → 학과
학과 테이블
학과 → 학과장

비키 속성이 다른 비키 속성을 거쳐 종속되지 않으므로, 이행 함수 종속이 제거됩니다.