한 행은 수강 기록이지만

학생 정보와 과목 정보까지 함께 저장됩니다

수강 관계를 기록하는 행 안에 학생 사실과 과목 사실이 같이 들어가면, 같은 값이 여러 행으로 퍼져 나갑니다.

학번 이름 과목명 교수 학과
1001 김철수 DB 이교수 컴공
1001 김철수 알고리즘 박교수 컴공
1002 이영희 DB 이교수 전자
1003 박민수 OS 최교수 컴공
학생 정보 반복

1001 · 김철수 · 컴공은 김철수가 수강한 과목 수만큼 다시 저장됩니다.

과목 정보 반복

DB · 이교수는 DB를 듣는 학생 수만큼 다시 저장됩니다.

예시 1

학생이 과목을 더 들으면 학생 사실도 같이 복제

김철수가 두 과목을 수강하자, 수강 관계만 늘어난 것이 아니라 이름과 학과까지 두 행에 반복됩니다.

1001 김철수 컴공
예시 2

과목을 여러 학생이 들으면 과목 사실도 같이 복제

DB 수강생이 두 명이 되자, 과목명과 담당 교수 정보가 두 행에 반복됩니다.

DB 이교수
왜 문제가 되나

한 행을 바꾸면 수강 관계와 직접 무관한 사실도 함께 흔들립니다

이 테이블의 각 행은 단순한 수강 기록이 아니라 학생 정보 + 과목 정보의 복사본까지 품고 있습니다. 그래서 한 행의 삽입, 삭제, 수정이 다음 절의 삽입 이상·삭제 이상·갱신 이상으로 이어집니다.