상세 컨텐츠

본문 제목

정규화, 반정규화

Computer Science/데이터베이스

by yooputer 2023. 4. 26. 10:16

본문

정규화란?

정규화 절차

함수적 종속성

정규화의 문제점

반정규화란?

반정규화의 장점

반정규화 절차

반정규화 기법


정규화란?

데이터를 분해하여 데이터의 일관성, 데이터 중복 최소화, 유연성, 독립성을 향상시키기 위한 방법

제1정규화부터 제5정규화까지 존재. 일반적으로 제 3정규화까지 실행

 

정규화 절차

제1정규화 속성의 원자성 확보. 다중값 속성 제거. 기본키 설정
제2정규화 부분함수 종속성 제거
제3정규화 이행함수 종속성 제거
BCNF 후보키가 기본키를 종속시키면 제거
제4정규화 다중값 종속성 제거
제5정규화  

 

함수적 종속성

함수적 종속성 : X→Y일 때 Y는 X에 함수적으로 종속. X가 바뀌면 Y도 바뀜.


완전 함수 종속성 : 기본키에 의해서만 종속


부분 함수 종속성 : 기본키의 일부 속성에 종속되는 경우


이행 함수 종속성 : 기본키를 제외한 칼럼간의 종속성

 

정규화의 문제점

데이터를 잘게 쪼개기 때문에 데이터 조회시 Join을 유발한다.

Join연산은 CPU와 메모리를 많이 사용한다.

 

반정규화란?

데이터의 중복을 허용하고 조인을 줄여 데이터베이스 성능을 향상시키는 방법이다

조회성능은 향상하지만, 입출력 성능은 저하된다

다량의 범위를 자주 처리하거나 특정 범위만 처리하거나 요약/집계 정보를 필요로 하는 경우 사용한다

 

반정규화 절차

1. 데이터 처리 범위, 통계성을 확인해 반정규화 대상을 조사한다

2. 다른 방법이 있는지 검토한다 ex) 클러스터링, 뷰, 인덱스 튜닝, 응용프로그램, 파티션

3. 반정규화를 수행한다

 

반정규화 기법

1. 계산된 칼럼 추가

2. 테이블 수직 분할 : 테이블의 컬럼을 분할한다

3. 테이블 수평 분할 : 파티션 기법을 사용해 테이블의 튜플을 분할한다

4. 테이블 병합 : 슈퍼타입과 서브타입 관계가 발생하면 테이블을 통합하여 성능을 향상시킨다

 

파티션 기법

Range Partition

List Partition

Hash Partition

Composite partition

 

슈퍼타입및 서브타입 변환 방법

OneToOne Type ㅇㅇ슈퍼타입과 서브타입을 개별 테이블로 도출
조인 증가, 관리 어렵
Plus Type 슈퍼타입과 서브타입 테이블로 도출
조인, 관리 어렵
Single Type 슈퍼타입과 서브타입을 하나로
조인 굳, 관리 굳, 입출력 성능 밷

 

관련글 더보기