본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Database Anomaly

  • 정규화를 거치지 않은 데이터베이스에서 발생할 수 있는 현상
  • 데이터들이 불필요하게 중복되어 릴레이션 조작에 예기치 못한 문제 발생
  • 애트리뷰트들의 종속관계를 하나의 릴레이션에 표현하기 때문에 발생
삽입할때 잘못 삽입됨, 갱신할때 잘못 갱신됨 등의 일반적인 내용이다. 아래 정규화과정에서 예시 참고
  • 삽입 이상(Insertion Anomaly)
    • 어떤 사실을 저장하려는데 관계없는 다른 값(특히 기본 키)이 없어서 삽입할 수 없거나, 원하지 않는 값까지 함께 넣어야 하는 현상
  • 삭제 이상(Delete Anomaly)
    • 한 튜플을 삭제할 때 그 튜플에만 들어 있던 다른 사실까지 함께 잃어버리는 현상
  • 갱신 이상(Update Anomaly)
    • 속성값 갱신 시 일부 튜플만 갱신되어 모순 발생
  • 검색(조회)은 데이터를 바꾸지 않으므로 중복이 있어도 모순이 생기지 않는다. 그래서 이상 현상은 삽입·삭제·갱신 세 가지이고 '검색 이상'은 없다

릴레이션 수강지도(학번, 지도교수, 학과)에서 기본 키는 학번이고, 학번 → 지도교수, 지도교수 → 학과 의 함수 종속이 있다. 학번 → 학과 는 지도교수를 거쳐 성립하는 이행적 함수 종속이다.[1]

학번 지도교수 학과
100 P1 컴퓨터
200 P2 전기
300 P3 컴퓨터
400 P1 컴퓨터
  • 삽입 이상 - 새 교수 P4 가 전기과 소속이라는 사실만 넣고 싶어도, 지도 학생이 없으면 기본 키인 학번 값이 없어 행을 넣을 수 없다. "교수가 특정 학과에 속한다는 사실만 삽입하는 것"은 불가능하다
  • 삭제 이상 - 300번 학생의 행을 지우면 P3 가 컴퓨터과 소속이라는 사실도 함께 사라진다
  • 갱신 이상 - P1 의 학과를 바꿀 때 100번 행만 고치고 400번 행을 그대로 두면 P1 의 학과가 두 가지가 되어 모순이 생긴다
  • 해결 - 지도교수 → 학과 를 떼어 (학번, 지도교수)와 (지도교수, 학과)로 나누면 제3정규형이 되어 세 이상이 모두 사라진다


데이터베이스 정규화를 통해 해결한다.

  1. ↑ 「Chapter 8. Data Normalisation」, Database Systems(MIT Notes), University of Cape Town, https://www.cs.uct.ac.za/mit_notes/database/htmls/chp08.html, 확인일: 2026-11-04.