Normalization Start

한 행에 세 주제가 섞이면 이상 현상이 시작된다

학생, 과목, 수강 결과를 한 테이블에 함께 저장하면 같은 사실이 반복되고 삽입·수정·삭제 이상으로 이어진다.

학번
학생명
과목
교수
성적
S01
김민수
C10
이교수
A
S01
김민수
C20
박교수
B+
S02
이서연
C10
이교수
A-
학생 사실
학번 → 학생명

학생 정보는 수강 행 수만큼 반복된다.

과목 사실
과목코드 → 과목명·교수

과목 설명은 여러 학생 행에 중복된다.

수강 사실
학번 + 과목코드 → 성적

성적만 두 키의 조합이 직접 결정한다.

삽입 이상

수강생이 없는 새 과목을 과목 정보만으로 넣기 어렵다.

갱신 이상

교수명이 바뀌면 C10이 들어간 모든 행을 고쳐야 한다.

삭제 이상

마지막 수강 기록을 지우면 과목 정보도 함께 사라질 수 있다.

Student

학번 PK, 학생명, 학과

Course

과목코드 PK, 과목명, 교수

Enrollment

학번 FK + 과목코드 FK + 성적

정규화의 출발점은 “반복되는 값”을 찾는 것이 아니라, 어떤 키가 어떤 사실을 직접 결정하는지 분리하는 것이다.