속성은 직접 결정하는 키 쪽으로 이동한다
정규화는 속성을 잘게 자르는 작업이 아니라, 각 속성을 직접 결정하는 키를 찾아 같은 테이블에 모으는 작업이다.
결정자
직접 결정하는 속성
이동할 테이블
학번
학생명, 학과
학번만 알면 학생 설명 속성이 정해진다.
Student
학번 PK, 학생명, 학과
과목코드
과목명, 교수
과목 정보는 학생과 무관하게 과목코드가 결정한다.
Course
과목코드 PK, 과목명, 교수
학번 + 과목코드
성적
한 학생이 한 과목을 수강한 결과만 복합키 전체가 결정한다.
Enrollment
학번 FK, 과목코드 FK, 성적
1
원본 관찰
한 행에 학생, 과목, 수강 사실이 섞였는지 본다.
2
결정자 표시
어떤 키가 어떤 속성을 고정하는지 표시한다.
3
테이블 이동
같은 결정자를 공유하는 속성끼리 모은다.
4
조인 검증
분해 후에도 원본 수강 행이 복원되는지 확인한다.
성적을 제외한 속성이 복합키 일부에만 매달려 있으면 부분 종속이다.
부분 종속을 제거하면 갱신 위치가 한 곳으로 줄어든다.