Database De-Normalization(반정규화)
2023. 6. 16. 20:26ㆍ학습/Computer Science
Database De-Normalization(DB 반정규화)
반정규화 정의
- 정규화된 논리 데이터 모델을 시스템 운영의 단수화를 위해 중복, 통합, 분할 등을 수행하는 데이터 모델링 기법
- 완벽한 수준의 정규화를 진행하면 일관성과 안정성은 증가하지만 성능이 저하될 수 있으므로 성능 향상을 위해 테이블을 통합, 분할, 추가하는 과정이다.
반정규화가 필요한 경우
- 정규화에 충실하여 종속성과 활용성은 향상되었지만, 수행 속도가 느려진 경우이다.
- 다량의 범위나 특정 범위 데이터만 자주 처리해야 하는 경우이다.
- 집계 정보가 자주 요구되는 경우이다.
반정규화 유형
- 중복 테이블 추가
- 특정 범위의 데이터가 자주 처리되거나 많은 양의 데이터를 자주 처리하는 경우에 수행한다.
- 처리 범위를 줄이지 않고는 수행속도를 개선할 수 없는 경우에 수행한다.
- 중복 테이블을 추가하는 방법은 아래와 같다.
- 집계 테이블 추가
- 진행(이력관리) 테이블 추가
- 특정 부분만 포함하는 테이블 추가
- 테이블 조합
- 대부분의 데이터 처리가 둘 이상의 테이블에서 진행되는 경우에 수행한다.
- 데이터 액세스가 간편해지지만 row수가 증가하여 처리량이 증가하는 경우가 있을 수 있다.
- 데이터 편집 규칙이 복잡해질 수 있다.
- 테이블 분할
- 특정 컬럼의 사용빈도가 높은 경우에 수행한다.
- 사용자에 따라 특정 부분만 지속적으로 사용되는 경우에 수행한다.
- 테이블을 분할하는 방법은 수직 분할과 수평 분할이 있다.
- 수직 분할 : 컬럼을 사용빈도에 따라 나눔
- 수평 분할 : 데이터 범위를 사용빈도에 따라 나눔
- 상황에 따라 의도한 성능을 발휘하지 못할 수 있다.
- 데이터 처리가 아닌 검색에 중점을 두어 판단해야 한다.
- 테이블 제거
- 테이블의 재정의 및 기타 반정규화 수행으로 인해 더 이상 액세스되지 않는 테이블이 발생한 경우에 수행한다.
- 유지보수 단계에서 많이 발생하며, 관리 소홓이 주된 원인이 된다.
- 컬럼의 중복화
- 자주 사용되는 컬럼이 서로 다른 테이블에 분산되어 있어 액세스 범위가 넓어지는 경우에 수행한다.
- 기본키의 형태가 적절하지 않거나 너무 많은 컬럼으로 구성된 경우에 수행한다.
- 성능 향상을 위해 중복 컬럼이 필요한 경우에 수행
- 다른 해결 방법은 없는지 우선 검토
- 데이터 저장공간의 낭비 및 무결성을 해치지 않게 주의해야 한다.
728x90
'학습 > Computer Science' 카테고리의 다른 글
CSMA/CA vs CSMA/CD (0) | 2023.08.01 |
---|---|
보안 공격 - 서비스 거부(Denial of Service) 공격 (0) | 2023.06.20 |
TCP(Transmission Control Protocol)/IP(Internet Protocol) (0) | 2023.06.16 |
OSI(Open System Interconnection) 7계층 (0) | 2023.06.16 |
웹 서버(Web Server)와 웹 애플리케이션 서버(Web Application Server) (0) | 2023.06.15 |