[Database] 이상현상

GreenBean·2022년 1월 17일
0
post-thumbnail

이상현상

이상현상(Anomly)이란?

  • 이상현상의 종류
    • 삭제 이상(Deletion Anomly)
      • 튜플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상
    • 삽입 이상(Insertion Anomly)
      • 튜플 삽입 시 특정 속성에 해당하는 값이 없어 NULL을 입력해야 하는 현상
    • 수정 이상(Update Anomly)
      • 튜플 수정 시 중복된 데이터의 일부만 수정되어 일어나는 데이터 불일치 현상

삭제 이상

  • 삭제 이상란 튜플을 삭제할 때 저장되어있는 다른 정보도 삭제되어 연쇄 삭제(Triggered Deletion)의 문제가 발생하는 경우를 의미
    • 위의 예시에서 장미란이라는 학생의 정보를 지울 경우 강의실 103도 같이 사라지게 되어 다른 튜플들이 강의실 103을 사용하지 못하는 경우에 발생

삽입 이상

  • 삽입 이상란 튜플을 삽입하는 경우에 해당하는 정보가 없어 NULL을 넣는 현상

수정 이상

  • 수정 이상란 어떤 값을 참조하는 튜플의 값을 수정할 때 같은 데이터를 참조하는 다른 튜플과 데이터가 달라지는 현상
    • 예를 들어 위의 박지성이라는 학생과 김연아라는 학생이 같은 데이터베이스라는 수업을 강의실 110호 에서 수강하고 있음
    • 그런데 두 강의는 독립적으로 입력된 데이터이기 때문에 박지성 학생에서 강의실을 201호로 변경하여도 김연아 학생은 110호로 데이터가 그대로 유지되고, 같은 데이터베이스 수업임에도 불구하고 강의실이 달라지는 현상이 발생

해결 방법

  • 이러한 이상현상은 서로 공유하는 데이터임에도 불구하고 각자의 튜플에 독립적으로 존재하기 때문에 발생
    • 그러므로 테이블을 분리하여 그 테이블을 통해 참고하게끔 한다면 이상 현상들을 해결할 수 있음

Tip!

  • 즉, 테이블을 설계할 때 잘못 설계하여 데이터를 삭제•수정•삽입할 때 논리적으로 오류가 생기는 것을 말함
  • 대부분 이상현상이 발생하는 데이터의 중복성 때문인데 이를 제거하는 과정이 정규화
profile
🌱 Backend-Dev | hwaya2828@gmail.com

0개의 댓글