관계형 데이터 모델링 프리미엄 가이드 DB구축 (2017년)
정규화 0 0 3,023

by 구루비스터디 정규화 비정규화 [2017.10.13]


4.1. 정규화(Normalization)란?

정의

  • 속성 간의 부정확한 종속성을 없애는 것
  • 함수 종속 개념을 기반으로 유사한 속성을 모으고 종속성이 없는 독립적인 속성들은 분리하는 것
  • 관계형 데이터 모델이 되려면 속성의 종속성과 의존성을 분석해 더는 분해될 수 없는 엔터티로 만드는 정규화 과정을 거쳐야 함


효과

  • 아노말리 현상을 최소화함
  • 중복이 최소화된 효율적인 구조의 모델이 생성됨
  • 실제 업무를 가장 잘 반영할 수 있음
  • 직관적이고 이해하기 쉬움


중복 데이터가 사용된 모델의 예

Richard Barker 표기법IE 표기법
  • 상품 엔터티와 조인을 피하려고 상품명을 중복 속성으로 채택한 모델이다.
  • 상품코드가 '101011'인 상품의 이름이 바뀌면, 상품 엔터티에 존재하는 상품명 속성값만 수정해선 안 됨
  • '101011' 상품이 장바구니, 관심상품, 주문상품 엔터티에 존재하면 상품명 속성 값을 같이 수정하여야 함 -> 다량의 업데이트 발생으로 성능저하
  • 만약 업데이트를 하지 않으면 데이터 정합성이 깨짐

ER 다이어그램 표기법

  • $ : 식별자 비상속
  • # : 실질 식별자(PK)
  • (#) : 보조 식별자
  • \* : 반드시 값이 존재해야 하는 속성
  • 0 : 반드시 값이 존재하지 않아도 되는 속성


Richard Barker 표기법
  • 관계에서
    • | 표시 있는 것은 식별자로 상속
    • | 표시 없는 것은 일반속성으로 상속

  • 시작하는 쪽이 점선으로 시작하면 반대쪽 데이터가 존재하지 않을 수 있음


IE 표기법
  • 관계에서
    • 실선은 식별자로 상속
    • 점선은 일반속성으로 상속
  • O가 붙어 있는 쪽은 데이터가 존재하지 않을 수 있음
"주주클럽 스터디모임" 에서 2017년에 "관계형 데이터 모델링 프리미엄 가이드" 도서를 스터디하면서 정리한 내용 입니다.

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

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

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

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