18일차 : DB 반정규화

Dev_HG·2020년 7월 21일
0

반정규화

1. 반정규화(De-Normalization) 개념

  • 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법

2. 반정규화 특징

1. 장점

  • 반정규화된 데이터 구조는 성능 향상과 관리의 효율성이 증가

2. 단점

  • 데이터의 일관성 및 정합성 저하
  • 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음
    => 반정규화를 위해서는 데이터의 일관성과 무결성을 우선으로 할지 데이터베이스의 성능과 단순화에 우선순위를 둘 것인지를 비교하여 조정하는 과정이 중요하다.

3. 반정규화 기법

1. 테이블

1. 테이블 병합

  • 1:1 관계, 1:M 관계를 통합하여 조인 횟수를 줄여 성능을 향상

2. 테이블 분할

=> 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라 함

  • 수평분할 : 테이블 분할에 레코드를 기준으로 활용
  • 수직 분할 : 하나의 테이블이 가지는 컬럼의 개수가 증가하는 경우 활용, 갱신 위주의 컬럼, 수직 분할, 조회 빈도가 높은 컬럼을 분할

3. 중복 테이블 생성

  • 대량의 데이터들에 대한 집계함수(GROUP BY, SUM 등)를 사용하여 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블을 추가

2. 컬럼

1. 중복 컬럼 생성

  • 조인 시 성능 저하를 예방하기 위해, 중복된 컬럼을 위치 시킴
  • 대량의 이력데이터 처리 시 불특정일 조회나 최근 값을 조회할 때 나타날 수 있는 성능 저하를 예방하기 위해 기능성 컬럼을 추가

3. 관계

1. 중복관계 추가

  • 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법
profile
꾸준함

0개의 댓글