IT/관련지식

반정규화

금마s 2020. 7. 21. 09:36

???

: 정규화에 충실하여 모델링을 수행하면 종속성과 활용성은 향상되나 수행 속도가 증가하는 경우가 발생하여 이를 극복하기 위해 성능에 중점을 두어 정규화하는 것

 

 

# 특징

 > 데이터 모델링 규칙에 얽매이지 않고 수행

 > 시스템이 물리적으로 구현되었을 때 성능 향상을 목적으로 함

 

 

# 사용 시기

 > 정규화에 충실하였으나 수행 속도에 문제가 있는 경우

 > 다량의 범위를 자주 처리해야 하는 경우

 > 특정 범위의 데이터만 자주 처리하는 경우

 > 요약 자료만 주로 요구되는 경우

 > 추가된 테이블의 처리를 위한 오버헤드를 고려하여 결정

 > 인덱스의 조정이나 부분 범위 처리로 유도하고, 클러스터링을 이용하여 해결할 수 있는지를 철저히 검토 후 결정

 

 

# 유형

유형 기법 용도  방법
테이블 반정규화 테이블 병합 - 부분 처리가 두 개 이상의 테이블에 대해 항상 같이 일어나는 경우 - 해당 테이블을 통합하여 설계
테이블 분할 - 컬럼의 사용빈도 차이가 많은 경우
- 각각의 사용자가 각기 특정한 부분만 지속적으로 사용하는 경우
- 수직 분할 : 칼럼별 사용빈도의 차이가 많은 경우 자주 사용되는 칼럼들과 그렇지 않은 칼럼으로 분류하여 테이블 분할
- 수평 분할 : 특정 범위별 사용 빈도의 차이가 많은 경우 해당 범위 별로 테이블을 분할
테이블 추가 - 다량의 범위를 자주 처리하는 경우
- 특정 범위의 데이터만 자주 처리되는 경우
- 처리 범위를 줄이지 않고는 수행속도를 개선할 수 없는 경우
- 집계 테이블의 추가 : 활용하고자 하는 집계 정보를 위한 테이블을 추가
- 진행 테이블의 추가
- 특정 부분만을 포함하는 테이블 추가
테이블 제거 - 테이블 재정의나 칼럼의 중복화로 더 이상 액세스 되지 않는 테이블이 발생할 경우 - 해당 테이블 삭제
Column 반정규화 중복 칼럼 추가 - 자주 사용되는 칼럼이 다른 테이블에 분산되어 있어 상세한 조건에도 불구하고 액세스 범위를 줄이지 못하는 경우 - Join 성능 향상을 위해 중복 컬럼 추가
파생 컬럼 추가 - 대량 데이터에서 Row별 연산 결과를 얻고자 할 때 성능 향상을 위한 파생 칼럼을 추가할 경우 - 계산된 값을 저장하는 파생 컬럼 추가
이력 컬럼 추가 - 대량 데이터 처리 시 불특정 일자 조회나 최근 값을 조회할 때 나타날 수 있는 성능 저하 예방 - 최근 값, 시작 일자 등의 컬럼 추가
PK에 의한 컬럼 추가 - 기본키의 형태가 적절하지 않거나 너무 많은 컬럼으로 구성된 경우 - 복합 PK의 일부를 일반 속성으로 추가

*PK : Primary Key (기본키)

 

 

 

 

 

 

728x90

'IT > 관련지식' 카테고리의 다른 글

미들웨어 솔루션  (0) 2020.07.21
인터페이스 요구사항 검증 주요 항목  (0) 2020.07.21
분석모델 확인  (0) 2020.07.20
OSI 7 계층 & TCP/IP 모델  (0) 2020.07.20
네트워크 해킹  (0) 2020.07.20