[SQLD / 자격증 공부] 요약 정리 4. 성능 데이터 모델링, 정규화, 반정규화
my code archive
article thumbnail
반응형

📖성능 데이터 모델링의 개요

 

성능 데이터 모델링의 정의

일반적으로 성능이라고 하면 데이터 조회의 성능을 의미함. (데이터 입력, 수정, 삭제는 일시적이고 빈번하지 않고 단건 처리가 많은 반면 데이터 조회의 경우 반복적이고 빈번하며 여러 건을 처리하는 경우가 많기 때문)

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

 

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

프로젝트 수행 중에 있어 사전에 할수록 비용이 들지 않는다. 특히 분석&설계 단계에서 데이터 모델 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재업무(Rework) 비용을 최소화할 수 있다.

분석&설계 단계에서 데이터베이스 처리 성능을 향상시킬 수 있는 방법을 고려해야함. 

 

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

  • 데이터 모델링을 할 때 정규화를 정확하게 수행한다.
  • 데이터베이스 용량 산정을 수행한다.
  • 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.
  • 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
  • 이력모델의 조정, PK&FK 조정, 슈퍼타입&서브타입 조정 등을 수행한다.
  • 성능 관점에서 데이터 모델을 검증한다.

 

📖정규화와 성능

 

정규화를 통한 성능 향상 전략

  • 정규화를 하는 것은 기본적으로 데이터에 대한 중복성을 제거하여 주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 갖고 있다.
  • SQL 문장에서 조인이 많아져 이로 이한 성능 저하가 나타나는 경우도 있기 때문에 반정규화를 적용하는 전략이 필요하다.

📖반정규화와 성능

 

반정규화를 통한 성능 향상 전략

  • 반정규화(=역정규화)는 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능 향상과 개발, 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미함.
  • 성능을 향상시키기 위한 기법, 더 넓은 의미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 의미함.
  • 데이터 조회 시 디스크 I/O 양이 많아 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능 저하가 예상될 때 반정규화를 수행함.

반정규화 적용 방법

  • 반정규화 적용 시 기본적으로 데이터 무결성이 깨질 가능성이 있기 때문에 반드시 데이터 무결성을 보장할 수 있는 방법을 고려한 후 반정규화 적용 필요.
  • 반정규화 대상 조사 -> 다른 방법 유도 검토 -> 반정규화 적용

 

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형