제1절 성능 데이터 모델링의 개요
*정규화: 입력, 수정, 삭제 이상을 제거
*반정규화: 테이블 통합, 분리, 칼럼의 중복
1. 성능 데이터 모델링의 정의
- 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터
성능과 관련된 사항(정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등)이
데이터 모델링에 반영될 수 있도록 하는 것
2. 성능 데이터 모델링 수행시점
- 분석/설계 단계에서 치밀하게 성능에 대비
3. 성능 데이터 모델링 고려사항
- 정규화 수행, 반정규화 수행, 용량산정, 트랜잭션의 유형 파악 등
제2절 정규화와 성능
1. 정규화를 통한 성능 향상 전략
- 정규화를 수행한다는 것은 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반속성을
의존자로 하여 입력/수정/삭제 이상을 제거하는 것
2. 반정규화된 테이블의 성능저하 사례1 테이블이 통합되어 불필요한 컬럼까지 조회가 필요한 경우
3. 반정규화된 테이블의 성능저하 사례2: 100만건, 2만건의 각 테이블에서 2만건에 맞춰 정규화 하면 성능 향상됨
4. 반정규화된 테이블의 성능저하 사례3: 속성(커럼)이 너무 많은 경우 테이블로 따로 정규화 분리
5. 반정규화된 테이블의 성능저하 사례4: 컬럼단위로 중복된 모델을 정규화 하여 분리
6. 함수적 종속성(Functional Dependency)에 근거한 정규화 수행 필요
- 함수적 종속성: 데이터들이 어떤 기준값에 의해 종속되는 현상을 지칭하는 것
- 주민등록번호 → 생일, 출생지, 호주 등
- 1차 정규화 : 같은 성격과 내용의 컬럼이 연속적으로 나타나는 컬럼이 존재할 때, 해당 컬럼을 제거하고 기본테이블의 PK를 추가해 새로운 테이블을 생성하고, 기존의 테이블과 1:N 관계를 형성하는 것
- 2차 정규화 : PK가 여러 키로 구성된 복합키로 구성된 경우가 2차 정규화의 대상이 되며, 복합키 전체에 의존하지 않고 복합키의 일부분에만 종속되는 속성들이 존재할 경우(즉, 부분적 함수 종속 관계) 이를 분리하는 것
- 3차 정규화 : PK에 의존하지 않고 일반컬럼에 의존하는 컬럼들을 분리
'SQL > SQLD (개발자)' 카테고리의 다른 글
1-2. 데이터 모델과 성능_(3)데이터베이스 구조와 성능, 분산 데이터베이스와 성능 (0) | 2021.08.11 |
---|---|
1-2. 데이터 모델과 성능_(2)반정규화와 성능, 대량 데이터에 따른 성능 (0) | 2021.08.11 |
1-1. 데이터 모델링의 이해_(5)식별자(Identifiers) (0) | 2021.08.09 |
1-1. 데이터 모델링의 이해_(4)관계(Relationship) (3) | 2021.08.07 |
1-1. 데이터 모델링의 이해_(3)속성(Attribute) (0) | 2021.08.07 |