정규화를 해야하는 이유는 잘못된 테이블 설계로 인해 Anomaly (이상 현상)가 나타나기 때문입니다.
종류
정의
예시
기본키가 {Student ID, Course ID} 인 경우를 예로 들어보자.
Course 를 수강하지 않은 학생은 Course ID 가 없는 현상이 발생할 수 있다.
결국 Course ID를 Null로 할 수 밖에 없는데, 기본키는 Null이 될 수 없으므로, Table에 추가될 수 없음.
정의
예시
만약 어떤 학생의 전공(Department)이 "컴퓨터" → "음악" 으로 바뀌는 경우를 예로 들어보자.
이때 해당 학생의 모든 데이터의 Department 컬럼을 "음악"으로 바꿔야 한다.
하지만, 일부를 깜빡하고 바꾸지 못하는 경우가 발생할 수 있다.
정의
예시
학생 수강 정보{StudentID, Course ID, Department, Grade}테이블을 예로 들어보자.
만약 어떤 학생이 수강 철회를 한 경우, Student ID와 Department와 같은 학생에 대한 정보도 함께 삭제된다.