반정규화 절차 | 설명 |
---|---|
대상 조사 및 검토 | 데이터 처리 범위, 통계성 등을 확인해서 반정규화 대상을 조사한다. |
다른 방법 검토 | - 반정규화를 수행하기 전에 다른 방법이 있는지 검토한다. - 예를 들어 클러스터링, 뷰, 인덱스 튜닝, 응용 프로그램, 파티션 등을 검토한다. |
반정규화 수행 | 테이블, 속성, 관계 등을 반정규화한다. |
[Clustering?]
- 클러스터링 인덱스라는 것은 인덱스 정보를 저장할 때, 물리적으로 정렬해서 저장하는 방법이다.
- 따라서 조회 시에 인접 블록을 연속적으로 읽기 때문에 성능이 향상된다.
[Partition]
- 데이터베이스에서 파티션을 사용하여 테이블을 분할할 수 있다
- 파티션을 사용하면 논리적으로는 하나의 테이블이지만, 여러 개의 데이터 파일에 분산되어 저장된다.
- Range Partition: 데이터 값의 범위를 기준으로 파티션을 수행한다.
- List Partition: 특정한 값을 지정하여 파티션을 수행한다.
- Hash Partition: 해시 함수를 적용하여 파티션을 수행한다.
- Composite Partition: 범위와 해시를 복합적으로 사용하여 파티션을 수행한다.
[파티션 테이블의 장점]
- 데이터 조회 시에 엑세스(Access) 범위가 줄어들기 때문에 성능이 향상된다.
- 데이터가 분할되어 있기 때문에 I/O의 성능이 향상된다.
- 각 파티션을 독립적으로 백업 및 복구 할 수 있다.
[Super Type과 Sub Type]
- 슈퍼타입과 서브타입의 관계는 배타적 관계와 포괄적 관계가 있는데, 배타적 관계는 고객이 개인 고객이거나 법인 고객인 경우를 의미한다.
- 포괄적 관계는 고객이 개인고객일 수도 있고 법인고객일 수도 있는 것이다.
변환 방법 | 설명 |
---|---|
OneToOne Type | - 슈퍼 타입과 서브 타입을 개별 테이블로 도출한다. - 테이블의 수가 많아서 조인이 많이 발생하고 관리하기 어렵다. |
Plus Type | - 슈퍼 타입과 서브 타입 테이블로 도출한다. - 조인이 발생하고 관리가 어렵다. |
Single Type | - 슈퍼 타입과 서브 타입을 하나의 테이블로 도출한다. - 조인 성능이 좋고 관리가 편하지만, 입출력 성능이 나쁘다. |