기획자의 데이터 공부 - 데이터 모델과 성능
* 성능 데이터 모델링의 정의
- 데이터 용량이 커질수록 기업의 의사결정의 속도가 빨라질수록 데이터 처리 속도는 빨라져야 함
- 일반적으로 성능은 데이터조회의 성능을 의미
데이터 입력, 수정, 삭제는 일시적이고 빈번하지 않고 단건 처리가 많지만
데이터 조회는 반복적이고 빈번하고 여러 건을 처리하는 경우가 많기 때문
- 데이터 모델링 시 작업 유형에 따라 어떤 성능 향상을 도모해야 하는지 목표를 분명하게 해야 함
- 성능 데이터 모델리이란 데이터베이스 성능향상을 목적으로
설계 단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영되도록 하는 것
- 성능 데이터 모델링이 단순히 반정규화만을 의미하지 않음
정규화, 인덱스, 수직 또는 수평분할, 데이터 처리의 성격에 따라 변환 등
* 성능 데이터 모델링 수행시점
- 성능 향상을 위한 비용은 프로젝트 수행 중 사전에 할수록 비용이 적음
- 분석/설계 단계때부터 치밀하게 성능에 대비한 설곌ㄹ 하지 않아 성능 저하를 대상으로 근시안적 튜닝 적용X
- 분석/설계 단계에서 데이터베이스 처리 성능 향상을 위한 방법을 주도면밀하게 고려해야 함
* 성능 데이터 모델시 고려사항
- 데이터 모델링 시 정규화를 정확하게 수행 : 데이터를 주요 관심사별로 분산시키는 효과
- 데이터베이스 용량산정 수행 : 각 엔티티에 어느 정도 트랜잭션이 들어오는지 살펴보기 좋음
- 데이터베이스에 발생되는 트랜잭션의 유형을 파악 : CRUD 매트릭스, 객체지향 모델링 시 시퀀스 다이어그램
- 용량과 트랜잭션의 유형에 따라 반정규화 수행 : 테이블, 관계에 대해 포괄적인 반정규화 적용
- 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등을 수행
- 성능 관점에서 데이터 모델 검증
[본 글은 SQLD 자격증 공부를 위해 아카이빙한 글입니다.