본문 바로가기
  • 개발공부 및 일상적인 내용을 작성하는 블로그 입니다.
이론/데이터베이스

DB - 이상(Anomaly)

by 방구석 대학생 2022. 1. 28.

 

이상(Anomaly)

데이터베이스를 설계하는데에 있어서 정규화를 해야하는 이유는 잘못된 테이블 설계로 인해 Anomaly(이상 현상) 가 나타나기 때문이다.

 

 

삽입 이상(Insertion Anomaly)

기본키가 {Student ID, Course ID} 인 경우 -> Course 를 수강하지 않은 학생은 Course ID 가 없는 현상이 발생한다.

결국 Course ID 를 Null 로 할 수 밖에 없는데, 기본키는 Null 이 될 수 없으므로 테이블에 데이터가 추가될 수 없다.

 

굳이 삽입하기 위해서는 '미수강' 과 같은 Course ID 를 만들어야 한다.

- 불필요한 데이터를 추가해야지 데이터를 삽입할 수 있는 상황 : Insertion Anomaly

 

갱신 이상(Update Anomaly)

만약 어떤 학생의 전공(Department) 이 "컴퓨터" 에서 "음악" 으로 바뀌는 경우

-> 모든 Department 를 "음악" 으로 바꾸어야 한다. 그러나 일부를 깜빡하고 바꾸지 못하는 경우 데이터의 불일치 현상이 발생하게 된다.

- 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제 : Update Anomaly

 

삭제 이상(Deletion Anomaly)

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

Student ID, Department ID 와 같은 학생에 대한 정보도 함께 삭제되는 경우

- 튜플 삭제로 인해 꼭 필요한 데이터까지 함께 삭제되는 문제 : Deletion Anomaly

 

 

참고 : https://gyoogle.dev/blog/

 

👨🏻‍💻 Tech Interview

 

gyoogle.dev

 

 

'이론 > 데이터베이스' 카테고리의 다른 글

DB - 정규화(Normalization)  (0) 2022.01.28
DB - 인덱스(Index)  (0) 2022.01.28
DB - SQL vs NOSQL  (0) 2022.01.28
DB - Join  (0) 2022.01.28
DB - Key  (0) 2022.01.27