이상 현상(Anomaly)
좋은 관계형 데이터베이스를 설계하는 목적 중 하나가 정보의 이상 현상(Anomaly) 이 생기지 않도록 고려해 설계하는 것이다.
이상 현상은 갱신 이상(Modification Anomaly), 삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly) 으로 구성된다.
각각을 간략하게 설명하면 다음과 같다.
- 갱신 이상(Modification Anomaly): 반복된 데이터 중에 일부를 갱신 할 시 데이터의 불일치가 발생한다.
- 삽입 이상(Insertion Anomaly): 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능하다.
- 삭제 이상(Deletion Anomaly): 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능하다.
이상 현상은 정규화(Normalization)을 통해 방지할 수 있다.
예시
나쁜 설계의 예시를 들어보며 이상 현상에 대해 이해해 보자.
위 테이블은 한 회사의 근무자(employee) 테이블이다. 근무자가 속한 부서(Department), 참여하고 있는 학생 그룹(Student_Group)을 나타낸다.
- 갱신 이상: 만약에
A. Bruchs
의 부서가 CIS에서 Marketing으로 바뀌었다고 가정해보자. 테이블의 4, 5번째 행의 CIS를 둘 다 바꾸지 않고 하나만 바꾼다면A.Bruchs
의 부서는 어느 부서에 속해있는지 알 수 없게 된다. - 삽입 이상: 새로운 부서 Engineering이 신설되었고 아직 근무자는 없다고 가정해보자. 하지만 이 부서에 관련한 정보는 불필요한 정보를 함께 입력하지 않는 한 위 테이블에 입력할 수 없다.
- 삭제 이상: 만약에 Accounting 부서에 속한 사람이
J.Longfellow
단 한 명이라고 가정하자.J.Longfellow
의 정보(첫번째 행)를 삭제하면 Accounting 부서에 대한 정보도 사라지게 된다.
출처
- http://databasemanagement.wikia.com/wiki/Category:Data_Anomalies