정규화란?
정규화 절차
함수적 종속성
정규화의 문제점
반정규화란?
반정규화의 장점
반정규화 절차
반정규화 기법
데이터를 분해하여 데이터의 일관성, 데이터 중복 최소화, 유연성, 독립성을 향상시키기 위한 방법
제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 | 슈퍼타입과 서브타입을 하나로 조인 굳, 관리 굳, 입출력 성능 밷 |
데이터베이스의 종류 | 관계형 데이터베이스의 연산 | 테이블의 구조 (1) | 2023.05.10 |
---|---|
분산 데이터베이스 (0) | 2023.04.26 |
엔티티, 속성, 관계, 식별자 (0) | 2023.04.12 |
데이터 모델링, ERD, 3층 스키마 (0) | 2023.04.12 |
[mac] mysql 데이터베이스 생성 | 관리자 생성 | 접근권한 부여 | 권한 확인 (0) | 2022.11.02 |