728x90
정규화
- 잘못 설계된 관계형 스키마를 더 작은 속성의 묶음으로 쪼개어 바람직한 스키마로 만들어가는 과정
- 삽입 이상, 삭제 이상, 갱신 이상 등과 같은 이상 현상을 해결하기 위해,
저장공간 최소화와 같이 성능을 향상시키기 위한 과정
정규형 (NF, Normal Form)
제1정규형
- 모든 도메인이 원자 값으로만 되어 있는 정규형
- 모든 속성 값이 원자 값으로만 되어 있는 정규형
- 릴레이션의 모든 속성이 단순 영역에서 정의
- ex. 취미를 나타낼 때
{”이름”: ”수달”, 취미: “게임, 코딩, 골프”} 가 아닌
{”이름”: “수달”, “취미”=”게임”},
{”이름”: “수달”, “취미”=”코딩”},
{”이름”: “수달”, “취미”=”골프”}
제2정규형
- 1NF를 만족
- 부분 함수적 종속성 제거 (→ 완전 함수 종속으로 만든다)
- 기본키가 아닌 모든 속성이 기본키에 완전 함수적 종속이 되도록 한다.
- 기본키의 부분집합이 결정자가 되어서는 안된다. (→ 기본키의 부분집합을 이용할 경우 테이블을 두 개로 나눈다)
> 함수적 종속성과 완전 함수 종속
더보기
- 함수적 종속성
- ex. 직원명(종속자)과 직원코드(결정자)
(직원명은 직원코드에 함수적으로 종속된다)
- ex. 직원명(종속자)과 직원코드(결정자)
- 완전 함수 종속
- 릴레이션의 속성 A → (함수적 종속) → 속성 집합 B 전체에 대해 함수적 종속,
어떠한 진부분 집합에는 함수적 종속이 아닌 경우
- 릴레이션의 속성 A → (함수적 종속) → 속성 집합 B 전체에 대해 함수적 종속,
제3정규형
- 2NF를 만족
- 이행적 종속성 제거
> 이행적 종속성
더보기
- A→B와 B→C일 때 C가 A에 이행적으로 함수 종속
보이스/코드 정규형 (BCNF, Boyce-Codd Normal Form)
- 3NF를 만족
- 모든 결정자가 후보키(중복x, not null)가 되도록 테이블 분해
- 키가 아닌 모든 속성은 각 키에 대해 완전 종속
- 어떤 속성도 키가 아닌 속성에 대해 완전 종속할 수 없다
> 결정자
더보기
X→Y 일 때
X는 결정자
Y는 종속자
제4정규형
- 다치 종속 제거
- 테이블을 분리해 해결
> 다치 종속
더보기
하나의 속성이 다른 속성을 여럿 결정하는 상황 (1정규형의 예시와 같은 상황)
제5정규형
- 조인 종속 이용
- 모든 조인 종속이 후보키를 통해서만 성립
반정규화
- 시스템의 성능 향상, 운영, 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정.
- 의도적인 정규화 위배
728x90
'CS note > 데이터베이스' 카테고리의 다른 글
트랜잭션과 무결성 (1) | 2023.02.17 |
---|---|
ERD (Entity Relationship Diagram) (0) | 2023.02.17 |
데이터베이스 기본 용어 (0) | 2023.02.17 |
댓글