관계형 데이터 모델링 프리미엄 가이드 DB구축 (2017년)
아노말리 0 0 762

by 구루비스터디 정규화 아노말리 Anomaly [2017.10.14]


1.정의

  • 데이터의 이상 현상을 아노말리라고 함
  • 아노말리의 원인은 중복된 데이터 때문에 발생
  • 어떤 데이터를 처리할 때 중복된 데이터를 동시에 전부 처리하지 못하고 일부만 처리하게 되면 어떤 데이터가 맞는 데이터인지 알 수 없음


2.종류

  • 업데이트 아노말리 : 릴레이션에서 속성의 값을 업데이트할 때 발생하는 데이터 이상 현상
  • 삭제 아노말리 : 릴레이션에서 인스턴스를 삭제할 때 발생하는 데이터 이상 현상
  • 삽입 아노말리 : 릴레이션에 새로운 인스턴스를 삽입할 때 발생하는 데이터 이상 현상

3.정규화 되지 않아 발생하는 아노말리 사례

  • '홍길동'이라는 선수가 포지션을 '2루수'로 바꾸면 세 개의 인스턴스를 찾아 포지션 속성의 값을 '2루수'로 업데이트해야 함
    업데이트할 속성이 여러 엔터티에 존재하면 완벽히 업데이트 하기란 쉽지 않음
    자칫 로직이 누락 되는 경우 데이터 정합성이 깨지게 됨
    -> 업데이트 아노말리
  • 릴레이션에서 '김길동'에 대한 데이터를 삭제하려고 하면 선수 이름이 '김길동'인 두 개의 인스턴스가 삭제되는데,
    의도한 대로 두 개의 인스턴스가 삭제돼도 데이터에 문제가 발생함. '엘리펀츠'와 '타이거즈'팀의 데이터가 같이 삭제 됨.
    의도하지 않은 데이터가 삭제됨
    -> 삭제 아노말리
  • '장길동'이란느 새로운 선수가 등장해서 선수로 등록하고 선수번호는 '16'번이 됨
    이 선수를 릴레이션에 입력하려고 하는데 문제는 팀이 아직 결정되지 않음
    팀ID 속성이 주 식별자이므로 데이터를 삽입할 수 없음
    -> 삽입 아노말리


4.정규형 릴레이션

"주주클럽 스터디모임" 에서 2017년에 "관계형 데이터 모델링 프리미엄 가이드" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/3686

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입