CS 공부

이상(Anomaly) 본문

CS공부/데이터베이스

이상(Anomaly)

kluiop1 2021. 7. 20. 17:44

이상이란

이상이란 릴레이션에서 일부 속성들의 종속이나 데이터의 중복으로 인해 데이터 조작시 불일일치가 발생하는 것을 말한다.

 

테이블을 설계할 때 잘못 설계하여 데이터를 삭제,수정,삽입할 때 논리적으로 오류가 생기는 것이다.

대부분 이상현상이 발생하는 데이터의 중복성때문인데 이를 제거하는 과정이 정규화이다.

 

이상 현상의 종류

갱신 이상

릴레이션에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

반복된 데이터 중에 일부를 갱신 할 시 데이터의 불일치가 발생한다.

 

삽입 이상

자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 자료를 테이블에 추가가 가능한 현상

불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능하다.

 

삭제 이상

어떤 정보를 삭제하면, 유용한 다른 정보까지 삭제되어버리는 이상

필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능하다.

 

예시

위 테이블은 한 회사의 근무자(employee) 테이블이다. 근무자가 속한 부서(Department), 참여하고 있는 학생 그룹(Student_Group)을 나타낸다.

 

갱신 이상: 만약에 A. Bruchs의 부서가 CIS에서 Marketing으로 바뀌었다고 가정해보자. 테이블의 4, 5번째 행의 CIS를 둘 다 바꾸지 않고 하나만 바꾼다면 A.Bruchs의 부서는 어느 부서에 속해있는지 알 수 없게 된다.

 

삽입 이상: 새로운 부서 Engineering이 신설되었고 아직 근무자는 없다고 가정해보자. 하지만 이 부서에 관련한 정보는 불필요한 정보를 함께 입력하지 않는 한 위 테이블에 입력할 수 없다.

 

삭제 이상: 만약에 Accounting 부서에 속한 사람이 J.Longfellow 단 한 명이라고 가정하자. J.Longfellow의 정보(첫번째 행)를 삭제하면 Accounting 부서에 대한 정보도 사라지게 된다.

 

참고:

https://kosaf04pyh.tistory.com/294

https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=kookh1&logNo=120188316139

https://wkdtjsgur100.github.io/anomaly/