상세 컨텐츠

본문 제목

[DB] 데이터 모델링 - 반정규화(DeNormalization)

DevOps/DB-데이터베이스설계

by 사랑짱 2021. 5. 28. 15:02

본문

반정규화(DeNormalization)

- 정규화된 엔티티, 속성, 관계에 대해

  시스템의 성능향상개발, 운영의 단순화를 위해

  데이터모델을 통합하는 프로세스

 

 

반정규화(DeNormalization)의 기준

- 각각의 엔티티타입과 속성, 관계 데이터의 정합성, 무결성

- 데이터 베이스구성의 단순화와 성능

<우선적으로 고려해야 하는 기준 선정>

 

 

반정규화의 절차

 

1. 반정규화 대상조사

2. 다른 방법유도 검토

3. 반정규화 적용

- 테이블 반정규화(테이블이 합쳐지거나 분할)

- 속성의 반정규화(중복이 될 수도)

- 관계의 반정규화(잘 사용하지 않음)

 

 

반정규화 적용

 

◆ 테이블의 반정규화

테이블 병합 테이블 분할 테이블 추가
- 1 : 1  관계의 테이블 병합
- 1 : M 관계의 테이블 병합
- 슈퍼타입-서브타입의 테이블 병합
- 수직분할
- 수평분할
(DB 파티셔닝(partitioning)으로 대체)
- 중복테이블 추가
- 통계테이블 추가
- 이력테이블 추가
- 부분테이블 추가

 

 

◆ 속성의 반정규화

- 자주 사용하는 컬럼 중복 허용하여 조회 경로 단축

  (식별관계를 통해 부모엔티티가 자식엔티티에 주키를 상속하도록 함)

- 인위적인 컬럼 중복 없이 조회 경로 단축

- 변경이력에 따른 최신컬럼 추가

- 진행 이력에 따른 종료일자 컬럼 추가

- PRIMARY KEY에 의한 컬럼 추가

- 응용시스템 오 작동 처리를 위한 컬럼 추가

 

 

반정규화는 정규화를 마친 뒤 수행하는 것! 
정규화를 하지 않은 반정규화는 NO!

 

관련글 더보기