반응형
성능 데이터 모델링
성능 데이터 모델링이란 데이터베이스 성능향상을 목적으로 설계단계의 데 이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것이다.
성능 데이터 모델링 고려사항
- 데이터 모델링을 할 때 정규화를 정확하게 수행한다.
- 데이터베이스 용량산정을 수행한다.
- 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.
트랜잭션: 데이터베이스 연산의 단위 (e.g. 입금, 출금) - 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
- 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등을 수행한다.
- 성능관점에서 데이터 모델을 검증한다.
정규화
정규화 | 내용 |
1차 | 함수종속, 복수의 속성값을 갖는 속성을 분리, 속성의 원자성확보 |
2차 | 함수종속, 주식별자에 완전종속적이지 않은 속성의 분리 부분종속 속성(PARTIAL DEPENDENCY ATTRIBUTE)을 분리 |
3차 | 함수종속, 일반속성에 종속적인 속성의 분리 이전종속 속성(TRANSITIVE DEPENDENCY)의 분리 |
보이스-코드 | 함수종속, 결정자안에 함수종속을 가진 주식별자 분리 |
4차 | 다가 종속(Multi-Valued Dependency) 속성분리 |
5차 | 결합종속(Join Dependency)일 경우는 두개 이상의 n개로 분리 |
정규화를 통한 성능 향상 전략
- 정규화를 수행한다는 것은 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반속성을 의존자로 하여 입력/수정/삭제 이상현상을 제거하는 것이다.
- 데이터의 중복속성을 제거하고 결정자에 의해 동일한 의미의 일반속성이 하나의 테이블로 집약되 므로 한 테이블의 데이터 용량이 최소화되는 효과가 있다.
- 따라서 정규화된 테이블은 처리조건에 따라 데이터를 처리할 때 속도가 빨라질 수도 있고 느려질 수도 있는 특성이 있다.
반정규화된 테이블의 성능저하
반정규화의 정의
- 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발(Development)과 운영 (Maintenance)의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다.
- 데이터 무결성이 깨질 수 있는 위험을 무릅쓰고 데이터를 중복하여 반정규화를 적용하는 이유는 데 이터를 조회할 때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능 저하가 예상되거나 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 반정규화를 수행하 게 된다.
- 비정규화는 아예 정규화를 수행하지 않은 모델을 지칭할 때 사용한다.
참조 - 한국데이터진흥원(2019). SQL 전문가 가이드 2013 Edition. 서울: 한국데이터진흥원.
반응형
'데이터베이스 > SQLD 공부' 카테고리의 다른 글
[SQLD] 데이터 모델링 - 식별자 (0) | 2019.09.21 |
---|---|
[SQLD] 데이터 모델링 - IE/Crow's Foot 표기법 (까마귀발 표기법) & ERD 표기법 (2) | 2019.09.18 |
[SQLD] 데이터 모델링 - 관계 (0) | 2019.09.10 |
[SQLD] 데이터 모델링 - 속성 Attribute (0) | 2019.09.10 |
[SQLD] 데이터 모델링 - 엔터티 Entity (0) | 2019.09.10 |