기술용어/데이터베이스

반정규화(Denormalization)

아이티신비 2024. 6. 12. 09:30

질의성능향상을 위한 데이터 중복 허용, 반정규화

정의
  • 성능개선, 개발운영 단순화를 위해서 정규화된 엔티티, 속성, 관계를 분할 및 통합하는 데이터베이스 모델링 기법
  • 정규화된 엔티티 타입, 속성, 관계에 대해 시스템의 성능향상과 개발 및 운영의 단순화를 위해 데이터 모델을 통합하는 프로세스를 의미함
  • 적정 수준의 정규화 이후, 질의 성능 향상을 위해, 일부의 데이터에 대해 중복을 허용하는 정규화의 역작업
주요기능
  • 테이블 통합 : 1:1, 1:M 통합을 통한 JOIN 감소
  • 테이블 분할 : 년도별 수평분할, 컬럼별 수직분할
  • 테이블 생성 : 요약 테이블 생성, 통계 테이블 생성
  • 중복컬럼 생성 : JOIN 테이블의 컬럼 중복생성, 파생 컬럼생성(그룹, 평군)
추진절차
  • 고단위 SQL 사용, 인덱스 조합, View Table 사용, 클러스터링 활용
  • 엔티티 통합, 분할과 같은 반정규화를 통해서 수행시간 단출
  • 요약자료, 통계처리 및 부분범위 처리로 성능향상
단점
  • 관리 및 모델의 복잡도 증가
  • 정확성 및 일관성 감소
  • 모델의 유연성 저하
  • 데이터 중복
활용방안
  • DW(Data Warehouse) : 요약, 집계 테이블을 미리 생성하여, 경영진의 데이터 조회 시에 즉시성을 보장함 하지만, ETL 부하 증가함
  • Master Data : 비빈복적으로 참조가 많은 Master Data를 파티션하여 병렬적 작업을 처리함. SQL 트랜잭션의 집중을 분산하여 처리
  • BSC : 균형 성과지펴 DB설계 시 KPI Pool 를 반정규화 하여 성능 보장
반정규화 이유
  • 데이터 조회시 디스크 I/O량이 많아서 성능 저하 발생
  • 경로가 너무 멀어 조인으로 인한 성능 저하
  • 과도한 정규화로 인한 데이터 분산화
  • 정상적인 정규화를 통한 고객의 품질 요구사항 충족이 어려운 경우 ( Full search )
반정규화
도입 이유
  • 비즈니스 운영성 향상 : 반정규화를 수행함으로써 중복 데이터가 발생하여 조회성능은 저하될 수 있으나 ad-hoc(임의) 쿼리를 수행하여 관리, 비즈니스 계획 및 실행을 위해 DW를 이용하는 사용자들의 만족도를 높일 수 있음
  • 데이터 클러스터링의 사용편의성 : 차원적 데이터 분석을 위하여 정규화를 거친 Multi-depth 데이터의 경우 Pivoting을 통한 정보 이해력이 떨어지므로, 분석을 위해서 반정규화를 실시
  • 데이터 적시성 향상 : ETL(Extract/Transform/Load) 개발시간 및 수행시간을 단축하여 최신 데이터 반영의 주기를 빠르게 제공 가능함.

 



 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥