[Database] Anomaly

Hyeok·2023년 4월 6일
1

CS

목록 보기
11/12

이상현상(Anomaly)

데이터베이스에서 정규화를 수행하지 않으면, 데이터의 중복이 발생하고 전체적인 무결성이 저하됩니다. 이러한 원인은 데이터 이상 현상(Anomaly)에 의해 발생하며, 이상 현상으로 인해 현실세계의 실제 값과 데이터베이스에 저장된 값이 일치하지 않는 문제가 발생합니다.

  • 종류
  1. 삽입 이상
  2. 업데이트 이상
  3. 삭제 이상

학번이름학과교수명
1짱구경영학A워런 버핏
2철수전자공학B테슬라
3맹구소프트웨어C빌 게이츠
4훈이전자공학B테슬라
5유리천문학D갈릴레오 갈릴레이
  • 위에 표는 이번 이상현상을 설명할 테이블이다.

1. 삽입 이상(Insertion anomaly)

-> 삽입 이상은 특정 데이터가 존재하지 않아 중요한 데이터를 데이터 베이스에 삽입할 수 없을 떄 발생한다

예를들어보자
-> 대학교 테이블에서는 기본키는 '학번'이다 새로운 행을 삽입하려면
기본키인 '학번'이 필수이다.
새로운 신설학과인 강아지 (심리학)학과가 생겼다고 가정해보자

학번이름학과교수명
1짱구경영학A워런 버핏
2철수전자공학B테슬라
3맹구컴공과C빌 게이츠
4훈이전자공학B테슬라
5유리천문학D갈릴레오 갈릴레이
강아지 심리학F강형욱

-> 하지만 신설학과인 '강아지 심리학'에는 학생이 존재하지 않기 때문에
대학교 테이블에 데이터 추가를 할 수 없다.
이러한 현상을 삽입이상(Insertion anomaly)라고 한다.
(현재는 정규화가 되어있지 않은 상태라고 가정)


2. 업데이트 이상 (update anomaly)

테이블의 특정 데이터를 업데이트했는데, 정상적으로 변경되지 않은 경우
그리고 너무 많은 행을 업데이트하는 것을 업데이트 이상이라고 한다.

예를들어

-> 경영학 학생이 200명이라고 가정하고 경영학과의 교수명을 변경해야하는 경우다

학번이름학과교수명
1짱구경영학A워런 버핏
2신형만경영학A워런 버핏
3봉미선경영학A워런 버핏
.............
4액션가면경영학A워런 버핏

-> 이 경우 경영학과 학생이 200명이므로 200개의 데이터를 변경해야한다
여기서 한명이라도 변경이 안된다면 문제가 발생한다.
그리고 학생이 많아질수록 이런 비효율적인 문제가 발생한다.
이러한 현상을 업데이트(update anomaoly)라고한다.

이 문제는 테이블을 대학교 테이블과 학과장 테이블을 분리 후
한개의 행만 변경하여 해결할 수 있다.


삭제 이상(Deletion anomaly)

삭제 이상은 특정 정보를 삭제하면,원치 않는 정보도 삭제되는 현상이다.

학번이름학과교수명
1짱구경영학A워런 버핏
2철수전자공학B테슬라
3맹구컴공과C빌 게이츠
4훈이전자공학B테슬라
5유리천문학D갈릴레오 갈릴레이

예를들어
-> 맹구가 코딩이 어렵다고 컴공과를 자퇴하겠다며 데이터를 삭제하는 경우
컴공과의 학과 및 학과장 정보도 삭제해야합니다.
맹구 학생의 데이터를 삭제하면, 컴공과에 학과반,학과장 정보를
특정 테이블에 저장하지 않았기에 데이터가 소멸되는 문제가 발생한다.
이러한 현상을 삭제 이상이라고 한다.

해결방법은 정규화에 의해 테이블을 분리하면 삭제 이상을 해결할 수 있다.!

profile
안녕하세요.

4개의 댓글

comment-user-thumbnail
2023년 4월 6일

이상현상 종류에 대해 깔끔하게 잘 정리해주셨네요

답글 달기
comment-user-thumbnail
2023년 4월 6일

데이터베이스 정규화를 해서 제대로된 설계가 필수겠군요. 잘 읽었습니다

답글 달기
comment-user-thumbnail
2023년 4월 6일

중요한 부분을 잘 요약해주시고 표도 잘 정리되어있어서 가독성이 좋았습니다 이상현상에 대해서 잘 이해할 수 있었던것같아요! 🙌

답글 달기
comment-user-thumbnail
2023년 4월 6일

이해하기 쉬운 예시로 이상현상에 대해서 쉽게 이해할 수 있었습니다. 해결방법까지 있어서 앞으로 DB를 설계할 때 참고할 수 있을 것 같아 좋았습니다.

답글 달기