[SQLD] 반정규화(Denormalization)

Libra·2022년 7월 17일
0

📌반정규화 개요

"반정규화"는 시스템의 성능을 향상하고 개발 및 운영의 편의성 등을 높이기 위해
정규화된 데이터 모델을 의도적으로 통합,중복,분리 하여 정규화 원칙을 위배하는 행위를 말한다.

💡 주의

  • 반정규화는 시스템의 성능이 향상되지만 데이터의 일관성 및 정합성이 저하될 수 있다.
  • 과도한 반정규화는 오히려 성능을 저하시킨다.

📌반정규화를 사용하는 경우들

  1. 특정 범위의 데이터만 자주 처리하는 경우
  2. 다량의 범위를 자주 처리해야하는 경우
  3. 정규화에 충실하여 종속성, 활용성은 향상 되었지만 수행속도가 느려진 경우
  4. 테이블에 지나친 조인이 걸려있을 경우

📌반정규화 절차

반정규화
사진출처는 여기

2단계 다른방법유도 검토 상세

  • 지나치게 많은 JOIN 이 걸리면 뷰 (VIEW) 를 사용하여 해결한다.

  • 대량의 데이터 처리나 부분 처리에 의해 성능이 저하되는 경우, 클러스터링을 적용하거나 인덱스를 조정하여 성능을 향상시킨다.

  • 대량의 데이터는 Primary Key 의 성격에 따라 부분적인 테이블로 분리 가능하다. Partitioning (파티셔닝) 기법이 적용되어 성능저하를 방지한다.

  • 응용 애플리케이션에서 로직을 구사하는 방법을 변경함으로써 성능을 향상시킨다. 데이터 처리를 위한 값을 캐쉬하거나, 데이터 캐쉬, 공유하여 성능을 향상시킨다.


📌반정규화 기법들

반정규화 기법에는 "테이블 반정규화" // "컬럼 반정규화" // "관계 반정규화" 가 있다.

1. 테이블의 반정규화

테이블의 반정규화


2. 컬럼의 반정규화

컬럼의 반정규화


3. 관계의 반정규화

관계의 반정규화

사진출처는 여기


참조 블로그
https://eehoeskrap.tistory.com/55
https://sodayeong.tistory.com/106
https://chae-developer.tistory.com/49

0개의 댓글