24-1아래 [수강신청] 릴레이션을 [학생튜터]와 [튜터과목] 두 릴레… | 2024년 정보처리기사실기 1회차 기출문제 상세 페이지
14
24-1
아래 [수강신청] 릴레이션을 [학생튜터]와 [튜터과목] 두 릴레이션으로 분해하였다. [수강신청]에서 한 학생은 과목마다 튜터 한 명을 배정받고, 튜터 한 명은 한 과목만 맡는다. 분해하기 전 [수강신청] 릴레이션이 만족하는 가장 높은 정규형을 적으시오.
[수강신청]
| 학번 | 과목 | 튜터번호 |
|---|---|---|
| h11 | 파이썬 | T7 |
| h12 | 자바 | T8 |
| h13 | 파이썬 | T7 |
| h13 | 자바 | T5 |
| h14 | 파이썬 | T9 |
| h14 | 자바 | T5 |
[학생튜터]
| 학번 | 튜터번호 |
|---|---|
| h11 | T7 |
| h12 | T8 |
| h13 | T7 |
| h13 | T5 |
| h14 | T9 |
| h14 | T5 |
[튜터과목]
| 튜터번호 | 과목 |
|---|---|
| T5 | 자바 |
| T7 | 파이썬 |
| T8 | 자바 |
| T9 | 파이썬 |
해설
제3정규형(3NF)
[해설]
제3정규형(3NF)은 모든 함수 종속 X → Y에서 X가 슈퍼키이거나 Y가 주요 속성(후보키에 속한 속성)이면 만족하고, BCNF는 X가 반드시 슈퍼키여야 한다.
[수강신청]의 함수 종속은 (학번, 과목) → 튜터번호와 튜터번호 → 과목이고, 후보키는 (학번, 과목)과 (학번, 튜터번호)다.
튜터번호 → 과목은 튜터번호가 슈퍼키가 아니라서 BCNF를 어기지만, 결정되는 과목이 주요 속성이라 3NF는 만족한다.
그래서 튜터번호를 결정자로 떼어 낸 분해로 BCNF를 얻는다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.