이상 현상(Anomaly)
잘못된 테이블 설계로 인해 Anomaly(이상현상)이 나타난다. 이런 이상 현상은 크게 갱신 이상(Modification Anomaly), 삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly) 으로 구성된다. 각각을 간략하게 설명하자면,
- 갱신 이상(Modification Anomaly): 반복된 데이터 중에 일부를 갱신 할 시 데이터의 불일치가 발생한다.
- 삽입 이상(Insertion Anomaly): 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능하다.
- 삭제 이상(Deletion Anomaly): 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능하다.
나쁜 설계의 예시를 들어보며 이상 현상에 대해 이해해 보자.
위 테이블은 한 회사의 근무자(employee) 테이블이다. 근무자가 속한 부서(Department), 참여하고 있는 학생 그룹(Student_Group)을 나타낸다.
- 갱신 이상: 만약에
A. Bruchs
의 부서가 CIS에서 Marketing으로 바뀌었다고 가정해보자. 테이블의 4, 5번째 행의 CIS를 둘 다 바꾸지 않고 하나만 바꾼다면A.Bruchs
의 부서는 어느 부서에 속해있는지 알 수 없게 된다. - 삽입 이상: 새로운 부서 Engineering이 신설되었고 아직 근무자는 없다고 가정해보자. 하지만 이 부서에 관련한 정보는 불필요한 정보를 함께 입력하지 않는 한 위 테이블에 입력할 수 없다.
- 삭제 이상: 만약에 Accounting 부서에 속한 사람이
J.Longfellow
단 한 명이라고 가정하자.J.Longfellow
의 정보(첫번째 행)를 삭제하면 Accounting 부서에 대한 정보도 사라지게 된다.
출처
- 삽입이상
새로운 학생 데이터 삽입
기본키가 null 이발생
- 갱신이상
맨 위에 데이터 주소 갱신 다른 데이터 갱신이안됨
- 삭제이상
0002 과목이 수강 취소 됨 해당 데이터까지 삭제됨