정보처리기사/데이터베이스 활용

반정규화 정의/유형

glorypang 2025. 10. 11. 00:26
728x90
반응형
SMALL
  • 목적: 조회 성능 향상, 조인 축소, 집계 계산 감소, 특정 워크로드 최적화
  • 비용: 쓰기/변경 복잡도 증가, 데이터 불일치 위험, 제약/트랜잭션 처리 부담

1) 테이블 분할

1-1. 수평 분할 (Horizontal Partitioning / Sharding)

  • 개념: 행(Row)을 기준으로 테이블을 여러 조각으로 나눔 (예: 지역/기간/해시 기준).

1-2. 수직 분할 (Vertical Partitioning)

  • 개념: 자주 쓰는 컬럼드물게 쓰는 컬럼을 분리

2) 테이블 중복 (요약/진행 테이블 추가)

2-1. 통계(요약) 테이블 추가 (Summary / Aggregate Table)

  • 개념: 자주 쓰는 집계를 미리 계산해 저장

2-2. 진행(상태) 테이블 추가 (Current/Progress Table)

  • 개념: 가장 최신 상태/진행 중 데이터만 따로 보관

3) 컬럼 추가

3-1. 중복 컬럼 추가 (Redundant Columns)

  • 개념: 다른 테이블의 값을 복제해 저장(조인 회피)

3-2. 파생 컬럼 추가 (Derived / Computed Columns)

  • 개념: 계산 결과를 미리 저장(합계, 랭크, 정규화된 값 등)

장단점 요약

유형  장점  단점/주의
수평 분할 스캔 축소, 확장성 분산 조인/전역 트랜잭션 복잡
수직 분할 I/O↓, 캐시↑ 재결합 조인 비용
통계 테이블 집계 비용↓ 동기화/지연·불일치 위험
진행 테이블 최신 상태 조회↑ 이력과 정합성 관리
중복 컬럼 조인 감소 동시 갱신/정합성 부담
파생 컬럼 계산 제거 재계산 타이밍/정책 필요

 

 

728x90
반응형
LIST