Search

성능 데이터 모델링

성능 데이터 모델링의 정의

① 성능 데이터 모델링이란 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것으로 정의할 수 있다.

성능 데이터 모델링 수행시점

① 성능 향상을 위한 비용은 프로젝트 수행 중에 있어서 사전에 할수록 비용이 들지 않는다. ② 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재 업무(Rework) 비용을 최소화 할 수 있는 기회를 가지게 된다. ③ 분석/설계 단계에서 데이터베이스 처리 성능을 향상시킬 수 있는 방법을 주도면밀하게 고려해야 한다.
운영까지 가서 성능 데이터 모델링을 하려면 너무나 많은 비용을 필요로 하기 때문에 좋지 않다 ⇒ 앞단계인 분석/설계 단계에서부터 성능 데이터 모델링을 수행하여야 비용 최소화를 실현시킬 수 있다.

성능 데이터 모델링 고려사항

① 데이터 모델링을 할 때 정규화를 정확하게 수행한다. ② 데이터베이스 용량 산정을 수행한다. ③ 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다. ④ 용량과 트랜잭션의 유형에 따라 반 정규화를 수행한다. ⑤ 이력 모델의 조정, PK/FK조정, 슈퍼 타입/서브타입 조정 등을 수행한다. ⑥ 성능관점에서 데이터 모델을 검증한다
데이터 모델링을 할 때 기본적으로 정규화를 완벽하게 수행해야 한다. 정규화된 모델이 데이터를 주요 관심사별로 분산시키는 효과가 있기 때문에 그 자체로 성능을 향상시키는 효과가 있다.
데이터 모델에 발생되는 트랜잭션의 유형을 파악할 필요가 있다. 트랜잭션의 유형에 대한 파악은 CRUD 매트릭스를 보고 파악하는 것도 좋은 방법이 될 수 있고 객체지향 모델링을 적용한다면 시퀀스 다이어그램을 보면 트랜잭션의 유형을 파악하기에 용이하다.
파악된 용량 산정과 트랜잭션의 유형데이터를 근거로 정확하게 테이블에 대해 반 정규화를 적용하도록 한다. 반 정규화는 테이블, 속성, 관계에 대해 포괄적인 반 정규화의 방법을 적용해야 한다.
대량 데이터가 처리되는 이력 모델에 대해 성능 고려를 하고 PK/FK의 순서가 인덱스 특성에 따라 성능에 영향을 미치는 영향도가 크기 때문에 반드시 PK/FK를 성능이 우수한 순서대로 칼럼의 순서를 조정해야 한다.