[SQL-D]#05 데이터 모델과 성능 - 정규화, 반정규화와 성능
성능 데이터 모델링 개요
- 성능 데이터 모델링 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터
정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것으로 정의할 수 있다
- 성능 데이터 모델링 고려사항
- 정규화를 정확하게 수행한다.
- DB 용량산정을 수행한다.
- DB에서 발생되는 트랜잭션의 유형을 파악한다.
- 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
- 이력모델의 조정, PK/FK 조정, 슈퍼타입/서브타입 조정 등을 수행한다.
정규화, 반정규화와 성능
정규화만을 강조하다 보면 성능의 이슈가 발생될 수 있고 반정규화를 과도하게 적용하다 보면 데이터 무결성이 깨질 수 있는 위험이 증가하게 된다. → 판단의 주의가 요구된다
- 정규화(Normalization)
정규화 수행 모델은 데이터의 입력/수정/삭제할 때 일반적으로 반정규화된 테이블에 비해 처리 성능이 향상된다. 단 데이터를 조회할 때에는 처리 조건에 따라 조회 성능이 향상될 수도 있고 저하될 수도 있다. →
정규화를 수행하면 무조건 조회성능이 저하된다는 것은 아니다.
- 함수적 종속성(Fuctional dependency)
데이터들이 어떤 기준값에 의해 종속되는 현상을 지칭하는 것이다. 기준값을 결정자(Determinant)라고 하고 종속되는 값을 종속자(Dependent)라고 한다.
어떤 사람의 주민등록번호가 신고되면 그 사람의 이름, 출생지, 호주가 생성되어 단지 하나의 값만을 가지게 된다. → "주민등록번호가 이름, 출생지, 호주를 함수적으로 결정한다."
cf) 논리적 데이터 모델링
2021.04.19 - [Certification_Note/SQL-D] - 제1장. 데이터 모델링의 이해(추가자료) - 논리적 모델링
제1장. 데이터 모델링의 이해(추가자료) - 논리적 모델링
dasp를 공부하면서 논리적 데이터모델링 정리부분이 있어 부록으로 올립니다. 데이터 모델링 이해 논리 데이터 모델링의 핵심은 업무에서 필요로 하는 데이터에 존재하는 사실을 인식, 기록하는
wierd-ds.tistory.com
- 반정규화(Denormalization)
성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정
- 반정규화를 고려하는 상황
- 자주 사용되는 테이블에 접근하는 프로세스의 수가 많고 항상 일정한 범위만을 조회하는 경우에 검토한다.
- 테이블에 대량의 데이터가 있고 데이터 범위를 자주 처리하는 경우에 처리범위를 일정하게 줄이지 않으면 성능을 보장할 수 없을 경우에 반정규화를 검토한다.
- 통계성 프로세스에 의해 통계 정보를 필요로 할 때 별도의 통계테이블을 생성한다.
- 테이블에 지나치게 많은 조인이 걸려 데이터를 조회하는 작업이 기술적으로 어려울 경우 반정규화를 고려한다.
- 반정규화의 대상에 대해 다른 방법으로 처리할 수 있는지 검토
- 뷰를 사용하여 조회의 성능을 향상시킬 수 있는가
- 클러스터링을 적용 or 인덱스를 조정함으로써 성능을 향상시킬 수 있는가
- 파티셔닝을 적용하여 성능을 향상시킬 수 있는가
- 응용 애플리케이션의 로직을 변경하여 성능을 향상시킬 수 있는가
cf)물리적 데이터 모델링
2021.04.19 - [Certification_Note/SQL-D] - 제1장. 데이터 모델링의 이해(추가자료) - 물리 데이터 모델링
제1장. 데이터 모델링의 이해(추가자료) - 물리 데이터 모델링
dasp에서 공부하던 요약자료를 부록형식으로 올립니다. 4.1 - 물리 데이터 모델링의 이해 물리적 모델 정의 물리 데이터 모델이란 논리적 모델을 특정 데이터베이스로 설계함으로써 생성된 데이
wierd-ds.tistory.com
Uploaded by Notion2Tistory v1.1.0