# 반정규화
- 시스템의 성능 향상, 개발 및 운영 편의성 등을 위해 정규화된 데이터 모델을 의도적으로 정규화 원칙을 위배하는 행위
- 반정규화 수행 시 시스템 성능 향상, 관리 효율성 증가 BUT 데이터 일관성 및 정합성 저하 가능성 O
- 과도한 반정규화는 오히려 성능 저하
- 반정규화를 위해서는 데이터 일관성, 무결성을 우선으로 할지 데이터베이스 성능, 단순화를 우선으로 할지 결정 必
# 반정규화의 대상
- 디스크 I/O량이 많아 성능저하
- 경로가 너무 멀어 조인으로 성능저하
- 컬럼을 계산하여 읽을 때 성능 저하
# 반정규화 기법 - 1 테이블 병합
- 1:1 관계
- 1:M 관계
- 슈퍼/서브타입
# 반정규화 기법 - 2 테이블 분할
- 수직분할
- 수평분할
# 반정규화 기법 - 3 테이블 추가
- 중복테이블 추가
- 통계테이블 추가 : SUM,AVG를 미리 수행하여 계산해둬 조회 시 성능을 향상
- 이력테이블 추가
# 정규화 과정
- 제 1 정규화 : 테이블의 속성 하나는 하나의 속성값만을 가져야한다
- 제 2 정규화 : 기본키 중에 특정 컬럼에만 종속된 컬럼이 존재할 경우 테이블을 분해,분리한다.
- 제 3 정규화 : 제2정규형을 만족하는 상태에서 이행 함수 종속을 제거하는 정규화 과정 (= 주식별자를 제외한 칼럼간에 종속성을 확인해서 종속성이 있으면 분할하는 과정이다.)
# 슈퍼/서브타입 데이터 모델의 변환타입 비교
# 엔터티의 종류
- 유형, 무형 기준 : 유형 엔터티, 개념 엔터티, 사건 엔터티
- 발생시점 기준 : 기본 엔터티, 중심 엔터티, 행위 엔터티
# 이외의 엔터티 종류
- 독립 엔터티 : 사람, 장소 등과 같이 현실세계에 존재하는 엔터티
- 업무중심 엔터티 : 트랜잭션이 실행되면서 발생하는 엔터티
- 종속 엔터티 : 1차 정규화로 인해 관련 중심엔터티로부터 분리된 엔터티
- 교차 엔터티 : M:N의 관계를 해소하려는 목적으로 만들어진 엔터티
'sqld 공부' 카테고리의 다른 글
SQLD 35회 기출 문제 풀이 (0) | 2022.08.30 |
---|---|
SQLD 38회 기출 문제 풀이 (1) | 2022.08.27 |
SQLD 34회 기출 문제 풀이 (0) | 2022.08.24 |
SQLD 33회 기출문제 풀이 (0) | 2022.08.23 |
Entity(엔터티)란? (0) | 2022.08.22 |