Posts [Database] 데이터베이스의 이상현상
Post
Cancel

[Database] 데이터베이스의 이상현상

이상 현상(Anomaly)

잘못된 테이블 설계로 인해 Anomaly(이상현상)이 나타난다. 이런 이상 현상은 크게 갱신 이상(Modification Anomaly), 삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly) 으로 구성된다. 각각을 간략하게 설명하자면,

  • 갱신 이상(Modification Anomaly): 반복된 데이터 중에 일부를 갱신 할 시 데이터의 불일치가 발생한다.
  • 삽입 이상(Insertion Anomaly): 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능하다.
  • 삭제 이상(Deletion Anomaly): 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능하다.

나쁜 설계의 예시를 들어보며 이상 현상에 대해 이해해 보자.

http://dl.dropbox.com/s/eisx1gc2bsr61xr/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202018-12-24%2013.17.04.png

위 테이블은 한 회사의 근무자(employee) 테이블이다. 근무자가 속한 부서(Department), 참여하고 있는 학생 그룹(Student_Group)을 나타낸다.

  • 갱신 이상: 만약에 A. Bruchs의 부서가 CIS에서 Marketing으로 바뀌었다고 가정해보자. 테이블의 4, 5번째 행의 CIS를 둘 다 바꾸지 않고 하나만 바꾼다면 A.Bruchs의 부서는 어느 부서에 속해있는지 알 수 없게 된다.
  • 삽입 이상: 새로운 부서 Engineering이 신설되었고 아직 근무자는 없다고 가정해보자. 하지만 이 부서에 관련한 정보는 불필요한 정보를 함께 입력하지 않는 한 위 테이블에 입력할 수 없다.
  • 삭제 이상: 만약에 Accounting 부서에 속한 사람이 J.Longfellow 단 한 명이라고 가정하자. J.Longfellow의 정보(첫번째 행)를 삭제하면 Accounting 부서에 대한 정보도 사라지게 된다.

출처

  1. 삽입이상

Untitled

새로운 학생 데이터 삽입

기본키가 null 이발생

Untitled 1

  1. 갱신이상

Untitled 2

맨 위에 데이터 주소 갱신 다른 데이터 갱신이안됨

Untitled 3

  1. 삭제이상

Untitled 4

0002 과목이 수강 취소 됨 해당 데이터까지 삭제됨

Untitled 5

This post is licensed under CC BY 4.0 by the author.

[Database] SQL vs NoSQL

[Database] 트랜잭션(Transaction)

Loading comments from Disqus ...