정규화를 해야하는 이유는 뭘까?
정규화를 하지 않으면 잘못된 테이블 설계로 인한 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 가 같은 학생에 대한 정보도 함께 삭제됨
'CS공부 > Database' 카테고리의 다른 글
정규화 Normalization (0) | 2023.12.28 |
---|---|
Index 인덱스 (1) | 2023.12.08 |
SQL vs. NOSQL (0) | 2023.12.08 |
SQL Injection (0) | 2023.12.08 |
Join (0) | 2023.12.08 |