이상현상(Anomaly)

Fox·2024년 1월 23일
0
post-thumbnail

이상현상(Anomaly)란?

  • 좋은 관계형데이터베이스(RDBMS)를 설계하는 목적 중 하나가 정보의 이상 현상(Anomaly)이 생기지 않도록 고려해 설계하는 것이다.
  • 이상 현상은 테이블을 설계할 때 잘못 설계하여 데이터를 삽입, 삭제, 수정할 때 논리적으로 생기는 오류를 말한다.
  • 이상 현상은 갱신 이상(Modification Anomaly), 삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly)으로 구성된다.

다음과 같은 '학생수강' 테이블을 가정해 보자.

학번이름과목강사
101김철수수학이현수
101김철수과학박지나
102이영희수학이현수
103박민수과학박지나
104홍길동영어강원우
  1. 삽입 이상:
    • 새로운 과목 '국어'를 추가하려고 한다.
    • 하지만 아직 이 과목을 수강하는 학생이 없다면, 이 테이블에는 과목 정보만 추가할 수 있는 방법이 없다.
    • 학생 정보가 없는 상태에서 과목을 추가하려면 삽입 이상이 발생한다.
  2. 삭제 이상:
    • 학생 '박민수'가 수강 철회를 하여 테이블에서 이 학생의 정보를 삭제하려고 한다.
    • 그런데 이렇게 하면 '과학' 과목에 대한 강사 '박지나'의 정보까지 같이 삭제되게 된다.
    • 이렇게 의도치 않게 연관 정보가 삭제되는 것이 삭제 이상이다.
  3. 갱신 이상:
    • '수학' 과목의 강사가 '이현수'에서 '김영희'로 변경되었다.
    • 이 변경 사항을 반영하기 위해선 모든 '수학' 과목의 튜플을 찾아 강사 이름을 변경해야 한다.
    • 만약 일부 튜플만 변경되어 일관성이 없어지면, 이것이 갱신 이상이다.

이러한 이상 현상들은 데이터베이스의 정규화를 통해 해결할 수 있다.
위 '학생수강' 테이블을 '학생' 테이블과 '수강' 테이블로 분리하면, 삽입, 삭제, 갱신 이상을 방지할 수 있다.











참고 : https://dev-coco.tistory.com/63

profile
주니어개발자 Fox 입니다 🦊

0개의 댓글