Normalization

uuuouuo·2022년 8월 18일
0

◾ 정규화가 필요한 이유

  • 한 릴레이션에 여러 엔티티의 애트리뷰트들을 혼합하게 되면, 정보가 중복 저장되고, 저장 공간 낭비를 하게됨
  • 그리고 중복된 정보로 인해 이상 현상 발생
    • 동일 정보를 한 릴레이션에는 변경하고, 나머지 릴레이션은 변경하지 않은 경우

🔎 이상 현상 종류

  • 원하지 않는 값이 연쇄적으로 삭제되거나 수정 또는 삽입되는 현상
  • 삽입 이상 : 원하지 않는 자료가 삽입되거나, 자료가 부족해 삽입이 되지 않는 상황
  • 삭제 이상 : 원하지 않는 정보 손실 발생하는 상황
  • 갱신 이상 : 정확하지 않은 정보가 갱신되어 정확한 정보 파악 확인 못하는 상황

💬 정규화


관계형 데이터 베이스에서 중복을 최소화하기 위해 데이터를 구조화하는 작업

◾ 제 1 정규형 : 도메인의 제약조건

  • 애트리뷰트의 도메인이 오직 원자값만 포함하고, 튜플의 모든 애트리뷰트가 도메인에 속하는 하나의 값을 가져야 만족

◾ 제 2 정규형 : 부분적 함수종속 제거

  • 모든 비주요 애트리뷰트들이 주요 애트리뷰트에 대해 완전 함수적 종속일 때 만족

◾ 제 3 정규형 : 이행적 함수종속 제거

  • 비 주요 애트리뷰트도 기본키에 대해 이행적으로 종속되지 않을 때 만족
  • X -> Y 이며 Y -> Z 일 경우

◾ BCNF 정규형

  • 제 3 정규형의 강한 버전

💬 정규화의 장점과 단점


◾ 장점

  • 이상 현상 방지
  • 중복 제거, 불필요한 데이터 최소화
  • 데이터베이스 구조 확장 용이

◾ 단점

  • JOIN형산이 많아질 수 있음

0개의 댓글