반응형
Ⅰ. 관계형 데이터베이스 중복 최소화, 정규화의 개요
가. 정규화의 개념
- 관계형 데이터베이스 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스로 관련 없는 함수 종속성을 별개의 릴레이션으로 표현
나. 정규화의 종류
| 기본 정규화 | - 1차 정규화, 2차 정규화, 3차 정규화, BCNF |
| 고급 정규화 | - 4차 정규화, 5차 정규화 |
Ⅱ. 정규화 상세 설명
| 구분 | 정규화 | 설명 |
| 기본 정규화 | 1차 정규화 | - 릴레이션에 속한 모든 속성의 도메인이 더 이상 분해되지 않는 원자값으로 구성 |
| 2차 정규화 | - 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되도록 구성 | |
| 3차 정규화 | - 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속이 되지 않도록 구성 | |
| BCNF | - 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키이면 만족 | |
| 고급 정규화 | 4차 정규화 | - 릴레이션이 BCNF를 만족하고, 함수 종속이 아닌 다치 종속을 제거 |
| 5차 정규화 | - 릴레이션이 제 4 정규형을 만족하고 후보키를 통하지 않는 조인 종속을 제거 |
- 일반적으로 제3정규형 또는 BCNF에 속하도록 릴레이션 분해하여 데이터베이스 설계
Ⅲ. 질의 성능 향상을 위한 중복허용, 반정규화
| 정의 | - 정규화로 분해된 데이터를 관련 있는 릴레이션으로 통합하여 DB 성능 향상시키는 기법 | |
| 주요 기법 | 테이블 병합 | - 1:1 병합, 1:N 테이블 병합으로 Join수 감소 |
| 테이블 분한 | - 테이블 수직 분할: 접근 빈도에 따라 분할 - 테이블 수평 분할: 파티션 적용으로 성능 향상 |
|
| 테이블 추가 | - 통계, 이력, 중복, 부분 테이블 추가 | |
| 중복 컬럼 추가 | - 갱신보다 조회 성능 더 중요시 중복 저장 | |
| 계산 컬럼 추가 | - 여러 테이블 조인이 필요한 계산 결과 컬럼 추가 | |
| 이력 컬럼 추가 | - 변경 이력, 발생 이력 최신 정보 컬럼 추가 | |
| 중복 관계 추가 | - 부모-자식 관계 추가로 데이터 접근경로 단축 | |
- 시스템의 성능 향상과 개발 및 운영의 단순화를 위해 역정규화 진행
반응형
'IT 기술 > DB' 카테고리의 다른 글
| 데이터베이스 트랜잭션 (0) | 2024.12.04 |
|---|---|
| 빅데이터 분석 도구 선택 원칙 (0) | 2024.12.04 |
| NoSQL (1) | 2024.12.04 |
| 스타 스키마 (1) | 2024.12.04 |
| 데이터 전처리 결측값과 이상값 (2) | 2024.12.04 |