Computer Science/Database

[Database] 이상 현상 (Anomaly)

dbssk 2023. 6. 30. 22:57

이상 현상 (Anomaly)

  • 일반적인 패턴이나 동작으로부터 벗어난 것
  • 즉, 데이터나 시스템에서 예상치 못한 이벤트, 동작, 패턴 등이 나타나는 것
  • 데이터베이스 이상은 일반적으로 설계가 잘못되고 무계층 데이터베이스를 사용하여 발생한다.
  • 이상 현상은 일반적으로 테이블을 분할하거나 결합하여 정규화함으로써 제거된다.

세 가지 유형의 이상 현상

갱신 이상 현상 (Updation/Update Anomaly)

  • 테이블의 일부 행을 업데이트할 때 테이블의 불일치가 발생하면 갱신 이상 현상이 발생한다.

삽입 이상 현상 (Insertion Anomaly)

  • 테이블에 새 행이 삽입되어 있고 테이블에 불일치가 발생하는 경우를 삽입 이상 현상이라고 한다.

삭제 이상 현상 (Deletion Anomaly)

  • 테이블에서 일부 행을 삭제하고 데이터베이스에서 필요한 다른 정보나 데이터도 삭제하는 경우를 삭제 이상 현상이라고 한다.

예시1.

  • 갱신 이상 현상 (Updation/Update Anomaly)
    • 위의 표에서 Ramesh의 주소를 업데이트하려면 Ramesh가 있는 모든 행을 업데이트해야 한다. 이때, 하나의 행을 놓치면 Ramesh의 주소가 두 개가 되어 데이터베이스가 일관되지 않고 잘못될 수 있다.
  • 삽입 이상 현상 (Insertion Anomaly)
    • 예를 들어 위의 표에서 worker의 새 행을 만들고 이 행이 어느 부서(deptartment)에도 할당되지 않으면 테이블에 삽입할 수 없으므로 삽입 이상이 발생한다.

  • 삭제 이상 현상 (Deletion Anomaly)
    • 예를 들어, 위의 표에서 부서 번호 ECT669를 삭제하려면 Rajesh의 세부정보가 ECT669 행에 따라 달라지기 때문에 Rajesh의 세부 정보도 삭제된다. 따라서 표에 삭제 이상이 발생한다.

예시2.

  • 갱신 이상 현상 (Updation/Update Anomaly)
    • 위의 표에서 Shivani가 Computer Science에서 Electronics로 branch를 변경하면 모든 행을 업데이트해야 한다. 행을 하나라도 놓치면 Shivani는 두 개 이상의 branch를 가지게 되므로 갱신 이상이 발생한다.

  • 삽입 이상 현상 (Insertion Anomaly)
    • 동아리에 속하지 않은 새로운 학생을 추가하면 stu_club 열에 null을 삽입할 수 없기 때문에 테이블에 행을 삽입할 수 없으므로 삽입 이상이 발생한다.

  • 삭제 이상 현상 (Deletion Anomaly)
    • Photography 동아리를 없애면 꼭 필요한 정보인 Gopal에 대한 정보도 삭제되므로 삭제 이상이 발생한다.

참고: https://www.javatpoint.com/anomalies-in-dbms