성능 데이터 모델링의 정의
성능 데이터 모델링이란 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것으로 정의할 수 있다.
성능 데이터 모델링 수행 시점
1. 성능 향상을 위한 비용은 프로젝트 수행 중에 있어서 사전에 할 수록 비용이 들지 않는다.
2. 분석/설계 단계에서 데이터 모델의 성능을 고려한 데이터 모델링을 수행할 경우, 성능 저하에 따른 재업무(rework) 비용을 최소화 할 수 있는 기회를 가지게 된다.
3. 분석/설계 단계에서 데이터베이스 처리 성능을 향상시킬 수 있는 방법을 주도면밀하게 고려해야 한다.
성능 데이터 모델링 고려사항
1. 데이터 모델링을 할 때 정규화를 정확하게 수행한다.
2. 데이터베이스 용량 산정을 수행한다.
3. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.
4. 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
5. 이력 모델의 조정, PK/FK 조정, 슈퍼 타입/서브타입 조정 등을 수행한다.
6. 성능 관점에서 데이터 모델을 검증한다.
- 데이터 모델링을 할 때 정규화를 완벽하게 수행해야 한다. 정규화된 모델이 데이터를 주요 관심사별로 분산시키는 효과가 있기 때문에 그 자체로 성능을 향상시키는 효과가 있다.
- 데이터 모델에 발생되는 트랜잭션의 유형을 파악할 필요가 있다. 트랜잭션의 유형에 대한 파악은 CRUD 매트릭스를 보고 파악하는 것도 좋은 방법이 될 수 있고, 객체지향 모델링을 적용한다면 시퀀스 다이어그램을 보면 트랜잭션의 유형을 파악하기에 용이하다.
- 파악된 용량 산정과 트랜잭션의 유형데이터를 근거로 정확하게 테이블에 대해 반정규화를 적용하도록 한다. 반정규화는 테이블, 속성, 관계에 대해 포괄적인 반정규화의 방법을 적용해야 한다.
- 대량 데이터가 처리되는 이력 모델에 대해 성능을 고려하지 않고 PK/FK의 순서가 인덱스 특성에 따라 성능에 영향을 미치는 영향도가 크기 때문에 반드시 PK/FK를 성능이 우수한 순서대로 칼럼의 순서를 조정해야 한다.
'으쌰으쌰💪 > SQL' 카테고리의 다른 글
데이터 모델과 성능 - 반정규화와 성능 (0) | 2023.08.16 |
---|---|
데이터 모델과 성능 - 정규화와 성능 (0) | 2023.08.16 |
데이터 모델링 - 연습문제 오답노트 (0) | 2023.08.15 |
데이터 모델링 - 식별자 (Identifiers) (0) | 2023.08.15 |
데이터 모델링 - 관계 (Relationship) (0) | 2023.08.13 |