수업 배정 테이블과 제약
후보키 {학번, 과목}
후보키 {학번, 교수}
| 학번 | 과목 | 교수 |
|---|---|---|
| 1001 | DB | 이교수 |
| 1002 | DB | 이교수 |
| 1001 | OS | 최교수 |
| 1003 | DB | 박교수 |
- 학생은 같은 과목을 중복 수강할 수 없습니다.
- 교수 한 명은 한 과목만 담당합니다.
- 같은 과목은 여러 교수가 맡을 수 있습니다.
교수 → 과목의 결정자는 후보키가 아닙니다.같은 수업 배정 테이블 안에서도 어떤 함수 종속은 BCNF를 만족하고, 어떤 종속은 바로 위반 지점이 됩니다.
| 학번 | 과목 | 교수 |
|---|---|---|
| 1001 | DB | 이교수 |
| 1002 | DB | 이교수 |
| 1001 | OS | 최교수 |
| 1003 | DB | 박교수 |
| 종속 | 왜 가능한가 | BCNF 판단 |
|---|---|---|
{학번, 과목} → 교수 |
결정자가 후보키이므로 한 튜플을 식별할 수 있습니다. | 만족 |
{학번, 교수} → 과목 |
이 결정자도 후보키라서 BCNF 조건을 통과합니다. | 만족 |
교수 → 과목 |
교수는 한 과목만 맡지만, 교수만으로는 후보키가 아닙니다. | 위반 |
교수 → 과목이 주요 속성 일부를 결정하므로 3NF일 수 있어도 BCNF는 아닙니다.