성능 데이터 모델링의 개요
성능 데이터 모델링 고려 사항
•
데이터 모델링을 할 때 정규화를 정확하게 수행한다.
•
데이터베이스 용량 산정을 수행한다.
•
데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.
•
용량과 트랜잭션의 유형에 따라 반 정규화를 수행한다.
•
이력 모델의 조정, PK/FK 조정, 슈퍼 타입/ 서브타입 조정 등을 수행한다.
•
성능관점에서 데이터 모델을 검증한다.
정규화와 성능
정규화 이론
정규화 유형 | 설명 |
1차 정규화 | 함수 종속, 복수의 속성값을 갖는 속성을 분리하여 속성의 원자성 확보 |
2차 정규화 | 함수 종속, 주식별자에 완전 종속적이지 않은 속성의 분리. (제 1 정규형을 만족하는 상태에서 모든 Non-key 컬럼은 기본 키 전체에 종속되어야 한다.) |
3차 정규화 | 함수 종속, 일반 속성에 종속적인 속성의 분리 |
대량 데이터에 따른 성능
Range partition
요금을 예로 들어보자. 요금의 경우, 특정 기간을 놔눠서 지불이된다. 이런식으로 범위를 단위로 반복 되는 경우 range partition 을 이용하여 대용량 테이블을 수평분할하여 성능을 향상한다.
List partition
고객을 예로 들어보자. 고객의 경우, 서울, 인천, 전북 등 사는 지역을 기준으로 나눌 수 있다. 이런식으로 대용량 테이블을 수평분할 하여 성능을 향상시키는 경우 List partition 이라고 한다.
Hash partition
•
지정된 hash 조건에 따라 해싱 알고리즘이 적용되어 테이블이 분리된다.
•
설계자는 테이블에 데이터가 정확하게 어떻게 들어갔는지 알 수 없다.
•
성능향상을 위해 사용하며 데이터 보관 주기에 따라 쉽게 삭제하는 기능은 제공될 수 없다.
데이터베이스 구조와 성능
슈퍼타입 / 서브타입 모델
•
All in One 타입
•
슈퍼타입과 서브타입을 슈퍼/서브 타입으로 만든 타입
•
슈퍼타입과 서브타입을 1:1 로 해체하여 개별로 테이블을 만드는 타입
수평분할과 수직타입은 불가
분산 데이터베이스와 성능
분산 데이터베이스의 투명성
투명성 | 설명 |
분할 투명성(단편화) | 하나의 논리적 관계가 여러 단편으로 분할되어 각 단편의 사본이 여러 site 에 저장 |
위치 투명성 | 사용하려는 데이터의 저장 장소 명시 불필요. 위치 정보가 System Catalog 에 유지되어야 한다. |
지역 사상 투명성 | 지역 DBMS 와 물리적 DB 사이의 Mapping 보장. 각 지역 시스템 이름과 무관한 이름 사용 가능 |
중복 투명성 | DB 객체가 여러 site 에 중복 되어 있는지 알 필요가 없는 성질 |
장애 투명성 | 구성 요소 (DBMS, Computer) 의 장애에 무관한 Transaction 의 원자성 유지 |
병행 투명성 | 다수 Transaction 동시 수행 시 결과의 일관성 유지, Time stamp, 분산 2 단계 Locking 을 이용 구현 |