CS공부/Database

Anomaly 이상현상

개발자 정지은 2023. 12. 8. 12:21

정규화를 해야하는 이유는 뭘까?

정규화를 하지 않으면 잘못된 테이블 설계로 인한 Anomaly 이상현상 이 나타나기 때문

 

1. 삽입 이상 Insertion Anomaly

기본키가 { StudentID, CourseID } 인 경우 => Course를 수강하지 않은 학생은 CourseID 가 없는 현상 발생

결국 CourseID를 NULL 값으로 할 수 밖에 없지만 기본키에는 NULL 값이 들어갈 수 없음

===> Table에 삽입되지 못 하는 현상 발생

 

2. 갱신 이상 Update Amomaly

만약 어떤 학생의 전공 { Department } 이 "컴퓨터" -> "음악" 으로 변경되는 경우

모든 Department 를 "음악" 으로 바꾸어야 함

그러나 일부를 깜빡하고 바꾸지 못하는 경우 제대로 파악하지 못 함

일부만 변경하여 데이터가 불일치하는 모순 발생

 

3. 삭제 이상 Deletion Anomaly

만약 어떤 학생이 수강을 철회하는 경우 { StudentID, CourseID, Department, Grade } 의 정보 중

StudentD, Department 가 같은 학생에 대한 정보도 함께 삭제됨