본문 바로가기

SQLD

[SQLD : Ⅱ. 데이터 모델과 성능] 1. 성능 데이터 모델링의 개요

* 성능 데이터 모델링의 정의

 - 데이터 용량이 커질수록 기업의 의사결정의 속도가 빨라질수록 데이터 처리 속도는 빨라져야 함

 - 일반적으로 성능은 데이터조회의 성능을 의미

    데이터 입력, 수정, 삭제는 일시적이고 빈번하지 않고 단건 처리가 많지만

    데이터 조회는 반복적이고 빈번하고 여러 건을 처리하는 경우가 많기 때문

 - 데이터 모델링 시 작업 유형에 따라 어떤 성능 향상을 도모해야 하는지 목표를 분명하게 해야 함

 - 성능 데이터 모델링이란 데이터베이스 성능향상을 목적으로

    설계 단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영되도록 하는 것

 - 성능 데이터 모델링이 단순히 반정규화만을 의미하지 않음

    정규화, 인덱스, 수직 또는 수평분할, 데이터 처리의 성격에 따라 변환 등

 

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

 - 성능 향상을 위한 비용은 프로젝트 수행 중 사전에 할수록 비용이 적음

 - 분석/설계 단계때부터 치밀하게 성능에 대비한 설계를 하지 않아 성능 저하를 대상으로 근시안적 튜닝 적용X

 - 분석/설계 단계에서 데이터베이스 처리 성능 향상을 위한 방법을 주도면밀하게 고려해야 함

 

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

 - 데이터 모델링 시 정규화를 정확하게 수행 : 데이터를 주요 관심사별로 분산시키는 효과

 - 데이터베이스 용량산정 수행 : 각 엔티티에 어느 정도 트랜잭션이 들어오는지 살펴보기 좋음

 - 데이터베이스에 발생되는 트랜잭션의 유형을 파악 : CRUD매트릭스, 객체지향 모델링 시 시퀀스 다이어그램

 - 용량과 트랜잭션의 유형에 따라 반정규화 수행 : 테이블, 속성, 관계에 대해 포괄적인 반정규화 적용

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

 - 성능 관점에서 데이터 모델 검증