SQL

SQL - 성능데이터 모델링

데이터_박과장 2023. 10. 28. 15:27

성능 데이터모델

분석 및 설계 단계에서부터 성능과 관련한 데이터모델링을 수행하는 것입니다. 정규화, 반정규화, 테이블 분할/병합/추가, 칼럼 추가 , PK/FK 조정, 슈퍼타입/서브타입 조정들의 기능을 합니다.

Q. 성능 데이터모델링에 대한 설명으로 부적절한 것은?

1) 성능이 저하된 결과를 대상으로 데이터모델을 겨냥하기보다는 문제발생 시점의 SQL을 중심으로 집중하여 튜닝을 한다.

2) 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 증가한다.

3) 데이터모델은 성능을 튜닝하면서 변경이 될 수 있는 특징이 있다.

4) 분석/설계 단계에서 성능을 고려한 데이터모델링을 수행할 경우 성능 저하에 따른 Rework 비용을 최소화 할 수 있는 기회를 가지게 된다.

답은 1번입니다. 성능 데이터모델링은 '분석 및 설계 단계' 에서 진행하는 것이라 했습니다. 따라서 문제발생 시점은 틀린 말입니다.

나머지 2,3,4번은 맞는 말이므로 성능 데이터모델링의 특징이라 보면 되겠습니다. 2번은 당연한 말이고, 3번은 성능을 튜닝하면서 변경이 가능하다. <- 이 특징을 외워두면 되겠습니다. 4번 분석/설계 단계 얘기가 나오고 불필요한 처리비용을 줄이기 위한 방법이 성능 데이터모델링이라는 점에서 맞는 말이 됩니다.

성능 데이터 모델링 순서 (빈출)

딱 잘라 말하겠습니다. 정규화 -> 용량산정 -> 트랜잭션 -> 반정규화 -> 기타 조정 이 5가지 키워드 절차에 따라 모델링이 이뤄집니다.

Q. 아래 설명을 읽고 다음에 들어갈 말은? A. 데이터모델링을 할 때 정규화를 정확하게 수행한다. B. 데이터베이스 용량산정을 수행한다. C. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다. D. 용량과 트랜잭션의 유형에 따라 ( ) 를 수행한다. E. 이력모델의 조정, PK/FK의 조정, 슈퍼타입/서브타입 조정을 수행한다.

보시면 각 문장 별로 키워드가 있어요. 정규화 하구요 -> 용량산정 하구요. -> 트랜잭션 하네요. 다음은? 반정규화겠죠?

Q. 다음 중 성능데이터 모델링을 할 때 고려사항으로 가장 부적절한 것은?

1) 데이터 모델링의 정규화는 항상 조회 성능저하를 나타내므로 반정규화 관점에서만 성능을 고려하여 설계하도록 한다.

2) 용량산정은 전체적인 데이터베이스에 발생되는 트랜잭션의 유형과 양을 분석하는 자료가 되므로 성능데이터 모델링을 할 때 중요한 작업이 될 수 있다.

3) 물리적인 데이터 모델링을 할 때 PK/FK의 칼럼의 순서조정, FK인덱스 생성 등은 성능 향상을 위한 데이터 모델링 작업에 중요한 요소가 된다.

4) 이력데이터는 시간에 따라 반복적으로 발생이 되기 때문에 대량 데이터일 가능성이 높아 특별히 성능을 고려하여 칼럼 등을 추가하도록 설계해야 한다.

1번부터 봅시다. 정규화는 항상 조회 성능저하를 나타내므로, 반정규화 관점에서만 성능을 고려하여?? 아까 5가지 키워드 절차 말씀드렸을 때, 정,용,트,반,기 <- 이렇게 나왔었죠? 정규화를 가장 먼저 수행합니다. 따라서 1번은 틀렸어요.

2번은 용량산정은 트랜잭션을 위해 중요한 작업이 된다라는 말인데 맞습니다.

3번은 기타 조정에 대한 얘기네요. 중요한 절차죠.

4번도 기타 조정에 대한 얘기입니다. 맨 위에 성능 데이터모델링에 대한 기능 중 '칼럼 추가'를 쓴게 보이죠?? 맞는 말입니다.

'SQL' 카테고리의 다른 글

SQL - 문장의 종류  (0) 2023.10.28
SQL - 정규화  (2) 2023.10.28
SQL - 속성  (1) 2023.10.28
SQL - 엔터티  (0) 2023.10.28
SQL - 데이터 모델링의 특징  (0) 2023.10.28