정규화(Normalization)
: 정규화는 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정이며 분해하는 과정에서 여러 개의 릴레이션을 생성하게 된다. 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다.
장점
- 데이터베아스 변경 시 이상 현상(Anomaly)을 제거할 수 있다.
- 정규화된 데이터베이스 구조에서 새로운 데이터 형의 추가로 인한 확장 시, 그 구조를 변경하지 않아도 되거나 일부만 변경할 수 있다.
- 데이터베이스와 연동된 응용 프로그램에 최소한의 영향만을 미치게 되어 응용 프로그램의 생명을 연장시킨다.
단점
- 릴레이션의 분해로 인해 릴레이션 간의 JOIN 연산이 많아진다.
- 질의에 대한 응답 시간이 느려질 수 있다.
- JOIN이 많이 발생하여 성능 저하가 나타나면 반정규화(De-normalization)를 적용할 수도 있다.
제 1 정규형(1NF)
제 1 정규형은 아래와 같은 규칙들을 만족해야 한다.
1. 각 컬럼이 하나의 속성만을 가져야 한다.
2. 하나의 컬럼은 같은 종류 / 타입의 값을 가져야 한다.
3. 각 컬럼이 유일한(unique) 이름을 가져야 한다.
4. 칼럼의 순서가 상관 없어야 한다.
제 2 정규형(2NF)
제 2 정규형은 아래와 같은 규칙을 만족해야 한다.
1. 제 1 정규형을 만족해야 한다.
2. 모든 컬럼에 부분적 종속(Partial Dependency)이 없어야 한다.
-> 모든 컬럼이 완전 함수 종속을 만족해야 한다.
완전 함수 종속(Full Functional Dependency)
: A 와 B 가 릴레이션 R 의 속성이고 A -> B 종속성이 성립할 때, B 가 A 의 속성 전체에 함수가 종속하고 부분 집합 속성에함수가 종속하지 않을 경우 완전 함수 종속이라고 한다.
제 3 정규형(3NF)
제 3 정규형은 아래와 같은 규칙을 만족해야 한다.
1. 제 2 정규형을 만족해야 한다.
2. 기본키를 제외한 속성들 간의 이행 종속성(Transitive Dependenyc)이 없어야 한다.
이행 종속성(직접 종속)
: A -> B -> C 가 성립할 때 A -> C 가 성립되는 함수 종속성을 의미한다.
BCNF(Boyce-Codd Normal Form)
BCNF 는 제 3 정규형을 좀 더 강화한 것으로 아래와 같은 규칙을 만족해야 한다.
1. 제 3 정규형을 만족해야 한다.
2. 모든 결정자가 후보키 집합에 속해야 한다.
-> 후보키 집합에 없는 칼럼이 결정자가 되어서는 안된다.
'CS 지식' 카테고리의 다른 글
교착상태(Dead Lock) (0) | 2023.01.08 |
---|---|
트랜잭션(Transaction) (0) | 2023.01.02 |
B-Tree (0) | 2022.12.25 |
Hash / Hash Table (1) | 2022.12.25 |
결합 인덱스(Composite Index) (0) | 2022.12.04 |