정규화

Corini·2022년 5월 4일
0

정처기

목록 보기
9/50

https://velog.velcdn.com/images/nezhitsya/post/6e729746-f7c3-4638-b319-51af4e4a7e56/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202021-04-06%20%EC%98%A4%EC%A0%84%2010.11.50.png

정규화 (Normalization)

  • 하나의 릴레이션에 하나의 의미만 존재할 수 있도록 릴레이션을 분해해 나가는 과정
  • 저장 공간 최소화, 자료 구조 안정화, 이상(Anomaly) 현상 방지

제 1정규형 (1NF)

  • 모든 도메인이 원자값만으로 된 릴레이션

제 2정규형 (2NF)

  • 제 1정규형 만족
  • 완전 함수 종속 (부분 함수 종속 제거)

제 3정규형 (3NF)

  • 제 2정규형 만족
  • 이행 함수 종속 제거

BCNF (Boyce/Code NF)

  • 제 3정규형 만족
  • 릴레이션의 모든 결정자가 후보키에 해당

제 4정규형 (4NF)

  • BCNF 만족
  • 다치 종속성 제거
  • 특정 속성 값에 따라 선택적인 속성을 분리하는 과정

제 5정규형 (5NF)

  • 제 4정규형 만족
  • 후보키를 통하지 않은 조인 종속 관계 제거

반정규화 (De-Normalization)

  • 정규화된 데이터 모델을 의도적으로 정규화 원칙에 위배하여 통합, 중복, 분리 수행

테이블 통합

  • 두 개의 테이블이 조인되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 되는 경우

테이블 분할

  • 수직(속성 기준) 또는 수평(레코드 기준) 분할

중복 테이블 추가

  • 정규화로 인해 수행 속도가 느려진 경우
  • 많은 범위의 데이터를 자주 처리해야하는 경우
  • 특정 범위의 데이터만 자주 처리해야하는 경우

중복 속성 추가

  • 조인이 자주 발생하는 속성인 경우
  • 접근 경로가 복잡한 속성인 경우
  • 액세스의 조건으로 자주 사용되는 속성인 경우
profile
Coding is playing!

0개의 댓글