성능 데이터 모델링과 정규화
데이터 모델 성능
- 쿼리문이 비효율적이면 DB 전체 성능에 영향
성능 데이터 모델링 수행시점
- 어떤 트랜잭션이 비즈니스 로직의 핵심인지 파악
( 트랜잭션 : 데이터 베이스의 상태를 변화시키기 위해 수행하는 작업 단위)
성능 데이터 모델링 고려사항
- 정규화를 정확하게 수행
- 데이터베이스 용량 산정 수행
- 데이터베이스에서 발생되는 트랜잭션의 유형을 파악
- 데이터베이스의 용량과 트랜잭션 유형에 따라 반정규화 수행
- 이력 모델, PK/FK, 슈퍼타입/서브타입 조정
- 성능 관점에서 데이터 모델 검증
정규화를 통한 성능 향상 전략
- 정규화 : 데이터의 일관성 유지, 데이터 중복 방지, 데이터 유연성 유지위해 데이터를 분해하는 과정
- 정규화 수행 : 데이터 중복성 제거, 성능 향상
- 정규화 이전 구조이 조회 성능이 더 좋을 수도 있음 (무조건 정규화가 좋은게 아님)
정규화 용어
- 정규화 : 작은 단위의 테이블로 나눠가는 과정
- 정규형 : 정규화된 결과물
- 함수적 종속성 : 특정 칼람 값(A)을 알고 있으면 다른 칼람 값(B)을 알수 있다고 가정할 때, B는 A에 함수 종속성을 갖음
정규화의 이점
- 데이터의 유연성
- 응집도 : 요소들 서로 관련되어 있는 정도 (높을수록 굿)
- 결합도 : 요소들 간 상호 의존하는 정도 (낮을수록 굿)
-데이터의 재활용성
- 데이터의 중복 최소화
정규화 이론
제1정규화
: 한 속성에 여러 개의 속성이 포함 or 같은 유형의 속성이 여러 개로 나눠져 있는 경우 해당 속성 분리
제2정규화
: 제 1정규화 만족 and PK가 아닌 모든 칼럼은 PK 전체에 종속, 일부만 종속되어 있는 경우 해당 칼럼 분리
제3정규화
: 제2정규화 만족 and 일반 속성 간에도 함수 종속 관계 존재하지 않도록 분리
반정규화
반정규화
: 성능 향상이 목적, 성능 향상을 위해서 데이터가 중복이 되어도 수행
- 정규화 vs 반정규화
- 정규화 : 데이터 중복 최소화
- 반정규화 : 데이터 중복 허용
반정규화 절차
1. 반정규화 대상 조사
2. 다른 방법 유도 검토
3. 반정규화 적용
: 반정규화를 반드시 적용해야하는 요소가 아님
테이블 반정규화
- 테이블 병합
- 테이블 분할
- 테이블 추가
칼럼 반정규화
- 중복 칼럼 추가 : 조인 연산을 수행하지 않도록
- 파생 칼럼 추가 : 미리 계산한 칼럼을 따로 구성
- 이력 테이블 칼럼 추가 : 불특정한 날에 대한 조회나 최근 값을 조회할 때
관계 반정규화
- 중복 관계 추가
: 여러 경로에 걸체 테이블 조인 하는 경우 (A-B-C 형태로 테이블 조인 발생한다면 A-C 로 줄이는 것)
'자격증 > SQLD' 카테고리의 다른 글
| SQLD | 데이터 모델링 요소 (0) | 2025.01.07 |
|---|---|
| SQLD | 데이터 모델링 (0) | 2025.01.07 |