슬기로운 개발생활

[DataBase] 이상 현상(Anomaly)이란?

by coco3o
반응형

좋은 관계형데이터베이스를 설계하는 목적 중 하나가 정보의 이상 현상(Anomaly)이 생기지 않도록 고려해 설계하는 것입니다.
이상 현상은 테이블을 설계할 때 잘못 설계하여 데이터를 삽입, 삭제, 수정할 때 논리적으로 생기는 오류를 말합니다.
이상 현상은 갱신 이상(Modification ANomaly), 삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly)으로 구성됩니다.
아래의 표를 예로 이상 현상에 대해 알아보겠습니다.

학번 이름 나이 성별 강의코드 강의명 전화번호
1011 이태호 23 AC1 데이터베이스 개론 010-2627-8123
1012 강민정 20 AC2 운영체제 010-4665-1941
1013 김현수 21 AC3 자료구조 010-5223-4464
1013 김현수 21 AC4 웹 프로그래밍 010-5223-4464
1014 이병철 26 AC5 알고리즘 010-6305-2912

1. 삽입 이상 : 자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 자료를 테이블에 추가가 가능한 현상
강의를 아직 수강하지 않은 새로운 학생을 삽입할 경우 강의 코드와 강의명 속성에는 null값이 들어가야 하는 문제가 생깁니다.

2. 갱신 이상 : 중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 현상
강의 코드가 "AC3"인 김현수의 전화번호를 수정할 경우, 3번째 튜플의 데이터만 수정될 것입니다.
그러면 3, 4번째 튜플은 같은 사용자의 데이터임에도 불구하고 전화번호가 다르게 됩니다.

3. 삭제 이상 : 어떤 정보를 삭제하면, 의도하지 않은 다른 정보까지 삭제되어버리는 현상
강의코드가 "AC1"인 데이터베이스 개론 강의를 삭제하게 되면, 이태호 학생의 데이터까지 삭제되어버립니다.

이러한 이상 현상을 예방하고 효과적인 연산을 하기 위해 데이터 정규화(Data Normalication) 를 합니다.

[DataBase]정규화(Normalization)란?

반응형

블로그의 정보

슬기로운 개발생활

coco3o

활동하기