원본 수강 테이블
반복 위험
기본키는 학번 + 과목코드지만 학생명, 학과, 과목명,
교수는 그 전체 키가 아니라 일부 키만 보고도 정해진다.
학번
학생명
학과
과목코드
과목명
교수
성적
S01
민서
컴공
C10
DB
김교수
A
S01
민서
컴공
C20
OS
박교수
B+
S02
지훈
통계
C10
DB
김교수
A-
직접 결정 관계
함수 종속속성은 “포함된 키”가 아니라 “직접 결정하는 키” 쪽으로 간다. 성적만 복합키 전체가 필요하다.
학번
→
학생명, 학과
과목코드
→
과목명, 교수
학번 + 과목코드
→
성적
분해 결과
3NF 관점반복되던 설명 속성은 별도 테이블로 빠지고, 수강 테이블은 외래키와 성적만 보관한다.
학번, 학생명, 학과)
학생 속성은 학번 한 번만 수정한다.
과목코드, 과목명, 교수)
과목 설명은 수강 행마다 반복하지 않는다.
학번, 과목코드, 성적)
두 외래키의 조합이 한 학생의 한 과목 수강을 의미한다.
갱신 위치가 하나인가
학생 학과가 바뀌면 학생 테이블 한 행만 바뀐다.
부분 종속이 사라졌는가
성적 외의 속성은 복합키 일부에 매달리지 않는다.
원래 의미가 복원되는가
학생, 과목, 수강을 조인하면 원본 수강 행이 돌아온다.
S01민서컴공
S01C10A
C10DB김교수