정규화는 속성을 지우는 작업이 아니라, 어떤 값이 {학번, 과목명}에 직접 종속되는지 판별해 올바른 테이블로 옮기는 작업입니다.
{학번, 과목명}
수강 기록의 기본 식별자. 이 전체 조합이 필요하면 정상 종속이다.
학번만으로도, 과목명만으로도 결정되지 않고 전체 키가 필요하다.
과목명과 무관하게 학번만 알면 결정되므로 학생 정보가 섞여 있다.
학번이 직접 결정하지 않고, 학번 → 학과 → 학과장 경로를 따른다.
| 종속 유형 | 왜 문제인가 | 정규화 조치 |
|---|---|---|
| 완전 종속 | 성적은 복합키 전체가 있어야 정해진다. | 유지 · 수강 사실에 직접 속함 |
| 부분 종속 | 이름, 학과는 학번만으로 정해져 2NF를 깨뜨린다. | 분리 · 학생 테이블로 이동 |
| 이행 종속 | 학과장은 학과를 거쳐 결정되어 3NF를 깨뜨린다. | 분리 · 학과 테이블로 이동 |
(학번, 과목명, 성적)
복합키 전체에 종속된 값만 남겨 중복 없이 저장한다.
(학번, 이름, 학과코드)
학생 자체 정보만 모아 부분 함수 종속을 제거한다.
(학과코드, 학과명, 학과장)
학과장이 학과에 직접 종속되도록 묶어 이행 종속을 제거한다.