데이터베이스 이상 현상(anomaly)

KDG: First things first!·2024년 8월 20일
0

DB

목록 보기
5/7


만약 데이터 모델링이 잘못되어 데이터베이스 설계가 잘못 이루어진다면 어떠한 문제점이 생겨날까???



데이터베이스 이상 현상


데이터 모델링이 잘못되어 잘못된 데이터베이스가 만들어진다면 데이터베이스 이상 현상이 발생할 수 있다. 데이터베이스 이상 현상에는 크게 3가지의 이상 현상이 존재한다.





1. 삽입 이상

삽입 이상: DB에 새 데이터를 삽입하기 위해서는 원치 않은 데이터도 같이 삽입해야 되서 새로운 데이터를 자연스럽게 저장할 수 없는 이상 현상이다.


namecompanycompany_phone_numberaddress
홍길동NEVER356-213-134서울
김철수CACAO409--234-658부산
박영희SAMSONG397-346-379수원

위와 같은 데이터베이스 테이블이 있다고 가정해보자.
해당 테이블에 name과 company에만 새로운 데이터를 추가하고 싶다면



namecompanycompany_phone_numberaddress
홍길동NEVER356-213-134서울
김철수KAKAU409--234-658부산
박영희SAMSONG397-346-379수원
최미미COUFANGNULLNULL

company_phone_number와 address에는 아무 데이터나 NULL값을 채워놓아야만 새로운 데이터가 추가가 가능하다.

바로 이렇게 새로운 데이터를 삽입하려면 원치 않은 데이터도 같이 삽입해야 되는 경우가 삽입 이상이다.




2. 업데이트 이상

업데이트 이상: 중복된 값들 중 일부만 수정되어 데이터가 불일치하게 되어 데이터의 무결성이 깨지는 이상 현상이다.

즉 데이터를 업데이트하면 데이터의 정확성이 깨지는 이상 현상을 의미한다.


namecompanycompany_phone_numberaddress
홍길동NEVER356-213-134서울
김철수KAKAU409--234-658부산
박영희SAMSONG397-346-379수원
김탁구NEVER356-213-134용인

만약 name이 홍길동인 데이터의 company_phone_number의 데이터를 바꾼다고 가정해보자. 하지만 현재 테이블에는 홍길동 말고도 NEVER에 재직 중인 김탁구가 존재한다. 홍길동의 company_phone_number를 바꿀 때 중복된 데이터인 김탁구의 company_phone_number도 똑같이 수정되지 않는다면 NEVER 전화번호가 두 개로 나뉘는 현상이 발생하는데

이처럼 중복된 데이터들 중에서 일부 데이터들만 수정 후 저장된다면 같은 데이터가 여러 개로 나뉘어져 업데이트 이상 현상이 발생한다.




3. 삭제 이상

삭제 이상: 삭제 이상은 데이터를 삭제할 때 삭제되면 안 되는 데이터들도 의도와는 달리 같이 삭제되어버리는 현상이다.

즉 원하는 데이터만 삭제하는 것이 불가능한 현상이다.


namecompanycompany_phone_numberaddress
홍길동NEVER356-213-134서울
김철수KAKAU409--234-658부산
박영희SAMSONG397-346-379수원
김탁구NEVER356-213-134용인

예를 들어 NEVER에 다니는 홍길동 데이터를 삭제하려고 하였는데 DB 모델링이 잘못되어 NEVER 다니는 김탁구의 데이터도 같이 삭제되는 현상이 발생할 수 있다.

이처럼 특정 데이터를 삭제하려면 의도치 않은 다른 데이터도 같이 삭제되는 경우를 삭제 이상이라 한다.




데이터베이스 이상 현상 정리

데이터베이스 이상 현상이란 한 마디로 데이터베이스에서 삽입, 업데이트, 삭제를 제대로 진행할 수 없는 현상을 의미한다.

데이터베이스 이상 현상이 발생하는 원인은 데이터 모델링이 제대로 이루어지지 않았기 때문이고 이러한 이상 현상이 발생하는 것은 데이터베이스 정규화를 통해 방지될 수 있다.

profile
알고리즘, 자료구조 블로그: https://gyun97.github.io/

0개의 댓글