본문 바로가기

SQL/SQLD (개발자)

1-2. 데이터 모델과 성능_(1)성능 데이터 모델링의 개요, 정규화와 성능

제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에 의존하지 않고 일반컬럼에 의존하는 컬럼들을 분리