본문 바로가기
Computer Science

[DB] 이상현상 Anomaly 란?

by ウリ김영은 2024. 1. 21.

이상현상이란?

데이터베이스에서 데이터의 일관성, 무결성, 또는 정확성과 관련된 문제 또는 오류를 나타내는 용어입니다.

 

이상 현상은 갱신 이상, 삽입 이상, 삭제 이상으로 구성됩니다.

 

아래의 사진이 이상현상을 설명하기 위한 테이블입니다. 

아래의 테이블은 학번이 기본키입니다. 

1. 삽입 이상 Insertion Anomaly

특정 데이터가 존재하지 않아 중요한 데이터를 데이터베이스에 삽입할 수 없는 현상을 말합니다. 

 

위의 테이블의 상황에서, 

현재 수학과가 새로 생긴다고 가정해봅시다. 

밑의 데이터가 새로 추가하고싶은 데이터입니다. 

    104 수학과 4000 피타고라스

 

하지만 수학과에는 학생이 존재하지 않아서 대학교 테이블에 추가할 수가 없습니다. 

이러한 현상을 삽입 이상이라고 합니다. 

 

2. 갱신 이상 Modification/Update Anomaly

 

중복된 데이터 중 일부만 수정되는, 정상적으로 변경이 되지 않는 데이터 모순이 일어나는 현상과 너무 많은 행(row)를 업데이트하는 현상을 말합니다. 

 

경영학과의 학과장 이름을 수정해야하는 상황입니다. 

경영학과 학생이 100명이면 100개의 데이터를 변경해야하고, 

1000명이면 1000개의 데이터를 변경해야하는 

비효율적인 문제가 발생합니다. 

 

위의 테이블에서 추가로 "학과장 전화번호" 라는 열(column)이 하나 더 있다고 가정해봅시다. 

만약 학과장명만 수정하고 학과장 전화번호는 수정하지 않으면, 

새로운 학과장의 전화번호는(데이터는) 알 수 없을 것 입니다. 

 

이와 같은 현상들을 갱신 이상이라고 합니다. 

 

3. 삭제 이상 Deletion Anomaly

어떤 데이터를 삭제하면, 의도치 않게 다른 데이터까지 삭제되어버리는 현상입니다. 

 

다시 제일 위의 첫번째 테이블의 상황으로 가봅시다. 

 

여기서 둘리 라는 학생이 자퇴를 했습니다. 

둘리의 데이터를 삭제하면,

컴퓨터공학과의 학과 코드, 학과장 코드, 학과장명도 같이 삭제가 됩니다. 

 

 

 

이렇게 나타나는 이상 현상들은 정규화를 통해 방지할 수 있습니다.

정규화에 대해서는 다른 게시물에서 다루도록 하겠습니다.


참고한 게시물
https://itsmekyum.tistory.com/9
https://developer-talk.tistory.com/256