티스토리 뷰

Database

정규화

0307kjb 2022. 6. 6. 14:42

정규화

  • 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며 데이터를 분해하는 과정.
  • 데이터 모델의 독립성
  • 1-5 정규화가 있으나 실질적으로는 3정규화까지 수행한다.

정규화 절차

제 1정규화

  • 속성의 원자성 확보
  • 기본키 설정

제 2정규화

  • 기본키가 2개 이상의 속성으로 이루어진 경우 부분 함수 종속성을 제거한다.

제 3정규화

  • 기본키를 제외한 컬럼 간에 종속성을 제거한다.
  • 이행 함수 종속성을 제거한다는 의미

BCNF

  • 기본키를 제외하고 후보키가 있는 경우, 후보키가 기본키를 종속시키면 분해한다.

제 4정규화

  • 여러 컬럼들이 하나의 컬럼을 종속 시키는 경우 분해하여 다중 값 종속성을 제거한다.

제 5정규화

  • 조인에 의해서 종속성이 발생되는 경우 분해한다.

정규화 성능

  • 데이터 조회 시 조인을 유발하기 때문에 CPU, 메모리를 많이 사용한다.
  • 이러한 문제를 해결하기 위해 반정규화 기법이 생겼다.

반정규화

  • 데이터베이스의 성능 향상을 위하여, 데이터 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 기법이다.
  • 반정규화는 조회의 속도를 향상시키지만 데이터 모델의 유연성을 낮춘다.
  • 수행해야 하는 경우
    • 다량의 범위를 자주 처리 해야할 때
    • 특정 범위의 데이터만 자주 처리할 때
    • 요약/집계가 자주 요구될 때

기법

  • 계산된 컬럼추가
  • 테이블 수직분할
  • 테이블 수평분할
  • 파티션
    • Range
    • List
    • Hash
    • Compose
  • 테이블 병합
    • OneToOne
    • Plus Type
    • Single Type

'Database' 카테고리의 다른 글

SQL 활용  (0) 2022.06.19
SQLD) Sql 기본  (0) 2022.06.11
엔터티  (0) 2022.06.02
데이터 모델링  (0) 2022.06.01
데이터베이스 용어  (0) 2022.06.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함