관계형 데이터 모델링 4

물리적 데이터 모델링

물리적 데이터 모델링


개요

논리적 데이터 모델링이 관계형 데이터베이스에 맞는 표를 만드는 것이라면 물리적 데이터 모델링에서는 구체적인 제품에 맞게 성능을 고려하여 현실적인 표로 만드는 것이다.

실제 프로그램을 만들었을 때, 정규화된 데이터베이스에서 문제가 생겨 속도가 느려질 수 있다. 그것을 고치기 위해 방법을 도입하거나 모델을 수정하는 등이 필요하다.

Index

행에 대한 읽기 성능을 향상 시키고 쓰기 성능을 저하 시키는 방법이다.

쓰기를 할 경우 입력된 정보를 알맞게 정리하는데 많은 시간을 소모한다. 또한, 저장공간을 많이 차지할 수 있다.

하지만, 읽기 속도가 매우 향상되기 때문에 사용 가능하다.

application

입력에 대한 실행 결과를 미리 저장해놓는 cache와 같은 방법을 통해 Database의 부하를 줄이는 방법도 가능하다.

역정규화 (Denormalization)

정규화를 통해 만든 이상적인 표를 구조를 변경하는 방법이다.

정규화는 대체로 쓰기의 편리함을 위해 읽기의 성능을 희생하는 방법이다. 읽기를 위해서는 Join을 활용해야 하는데 이때, 많은 시간이 소모된다.

다른 방법을 시도해보고 마지막 수단으로 사용하는 것이 바람직하다.

역정규화에 해당하는 방법은 다음과 같을 수 있다.

  1. 파생 Column의 형성 : 계산 작업을 줄이기

    역정규화 전

    rdb1.png

    author가 작성한 topic의 수를 기능을 요청하는 경우가 많은 경우

    역정규화 후

    !rdb1.png

    각각의 저자가 몇 개의 글을 작성했는지 목록으로 표현함으로서 계산 작업을 줄일 수 있다.

Discussion and feedback