본문 바로가기
공부는 평생하는 것이다/SQLP(D)

[SQLD/SQLP] [노트정리]제2장 데이터 모델과 성능(1)

by IT Daily Life 2022. 10. 16.
728x90
반응형

성능 데이터 모델링이란?

데이터베이스 성능 향상을 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것이다.

성능을 고려한 데이터모델링 순서

가. 데이터 모델링을 할 때 정규화를 정확하게 수행

나. 데이터베이스 용량 산정을 수행

다. 데이터베이스에 발생되는 트랜잭션의 유형을 파악

라. 용량과 트랜잭션의 유형에 따라 반정규화를 수행

마. 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정등을 수행

바. 성능 관점에서 데이터 모델을 검증

정규화

제 1 정규형 : 모든 속성은 반드시 하나의 값을 가져야 한다.

제 2 정규형 : 엔티티의 일반속성은 주식별자 전체에 종속적이어야 한다.

제 3 정규형 : 엔티티의 일반속성 간에는 서로 종속적이지 않는다.

반정규화

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

반정규화는 데이터를 중복하여 성능을 향상시키기 위한 기법이라고 정의할 수 있고 좀 더 낣은 의미의 반정규화는 성능을 향상 시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 의미한다. 데이터 무결성이 깨질 수 있는 위험을 무릅쓰고 데이터를 중복하여 반정규화를 적용하는 이유는 데이터를 조히할 때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능 저하가 예상되거나 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 반정규화를 수행하게 된다.

반정규화 기법

테이블, 속성, 관계에 대해서 반정규화를 적용.

* 테이블의 반정규화

기법분류
반정규화의 기법
테이블 병합
1:1관계 테이블 병합
1:M 관계 테이블 병합
슈퍼/서브타입 테이블 병합
테이블 분할
수직분할
수평분할
테이블 추가
중복 테이블 추가
통계 테이블 추가
이력 테이블 추가
부분 테이블 추가

* 컬럼의 반정규화

반정규화 기법
중복컬럼 추가
파생컬럼 추가
이력 테이블 칼럼 추가
PK에 의한 칼럼 추가
응용시스템 오작동을 위한 칼럼 추가

슈퍼/서브 타입 데이터 모델의 변환기술

- 개별로 발생되는 트랜잭션에 대해서는 개별 테이블로 구성

- 슈퍼타입 + 서브타입에 대해 발생되는 트랜잭션에 대해서는 슈퍼타입 + 서브타입 테이블로 구성

- 전체를 하나로 묶어 트랜잭션이 발생할 때에는 하나의 테이블로 구성

728x90
반응형