분해 전
수강(학번, 교수, 과목)
| 학번 | 교수 | 과목 |
|---|---|---|
| 1001 | 이교수 | DB |
| 1002 | 이교수 | DB |
| 1001 | 최교수 | OS |
| 1003 | 박교수 | DB |
핵심 문제: 같은 교수가 여러 학생 행에 나타나면 과목 정보도 반복됩니다. 즉, 교수별 규칙이 학생별 기록에 끼어들어 BCNF를 깨뜨립니다.
분해 후
종속 보존과 수강 기록을 분리
교수-과목
PK: 교수
| 교수 | 과목 |
|---|---|
| 이교수 | DB |
| 최교수 | OS |
| 박교수 | DB |
교수 → 과목 종속을 이 테이블이 직접 보존합니다.
수강
PK: {학번, 교수}
| 학번 | 교수 |
|---|---|
| 1001 | 이교수 |
| 1002 | 이교수 |
| 1001 | 최교수 |
| 1003 | 박교수 |
학생이 어떤 교수를 수강하는지만 남겨 조합 키로 관리합니다.