제 6절 데이터 모델링의 개요

연쇄코딩마·2022년 9월 27일
0

정의

성능 데이터 모델링 : 데이터베이스 성능 향상을 목적으로 설계단계의 데이터 모델링때부터 성능과 관련된 사항이 데이터 모델링에 반영 될수 있도록 하는 것

전제

  • 데이터의 용량이 증가하고 기업의 의사결정이 빨라질수록 데이터를 처리하는 속도는 빨라져야한다.
  • 어플리케이션의 처리속도가 느린 경우를 개발자가 짜놓은 sql문 때문이라고 하는 경우도 있지만 원초적으로 디자인이 잘못되어서 그런 경우도 빈번하다.

성능 저하되는 경우

  • 데이터 모델 구조에 의해 성능 저하
  • 데이터가 대용량이 됨으로 인해 불가피하게 성능 저하
  • 인덱스 특성을 충분히 고려하지 않고 인덱스를 생성함으로 인해 성능 저하

참고 : 성능 데이터 모델링이 단순히 반정규화 만을 의미하지 않음을 주목해야 한다. 성능데이터 모델링은 정규화를 통해서도 수행 할수 있고 인덱스의 특징을 고려해서 칼럼의 순서도 변형할 수 있다. 또 대량의 데이터 특성에 따라 비록 정규화된 모델이라도 테이블을 수직 또는 수평 분할하고 논리적인 테이블을 물리적인 테이블로 전환 할때 데이터 처리의 성격에 따라 변환하는 방법도 성능 데이터 모델링의 범주에 포함 될 수 있다.

참조: 정규화(Normalization)와 반정규화(De-Normalization)

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

  • 성능 향상의 위한 비용을 프로젝트 수행중 사전에 할수록 적다. 특히 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재업무 비용을 최소화 할 수 있다.

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

  1. 데이터 모델링을 할 때 정규화를 정확하게 수행한다.
  2. 데이터베이스 용량산정을 수행한다.
  3. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.
  4. 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
  5. 이력모델의 조정, PK/FK 조정, 슈퍼타입/서브타입 조정 등을 수행한다.
  6. 성능 관점에서 데이터 모델을 검증한다.
profile
只要功夫深,铁杵磨成针, 하고자 하면 쇠 막대기도 바늘로 만들 수 있다

0개의 댓글

관련 채용 정보