코딩하렴

정규화 Normalization

by 으렴


정규화 Normalization


정규화는 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며 데이터를 분해하는 과정.

데이터 중복을 제거하고 데이터 모델의 독립성을 확보하기 위한 방법이다.

정규화를 수행하면 비즈니스에 변화가 발생하여도 데이터 모델의 변경을 최소화 할 수가 있다.

정규화는 제1정규화부터 제5정규화까지 있지만 실질적으로는 제3정규화까지만 수행한다.


정규화 절차

1. 제1정규화

 - 속성의 원자성을 확보한다.

 - 기본키를 설정한다.


2. 제2정규화

 - 기본키가 2개 이상의 속성으로 이루어진 경우. 부분 함수 종속성을 제거한다.


3. 제3정규화

 - 기본키를 제외한 칼럼간에 종속성을 제거한다.

 - 이행함수 종속성을 제거한다.


4. BCNF

 - 기본키를 제외하고 후보키가 있는 경우, 후보키가 기본키를 종속시키면 분해한다.


5. 제4정규화

 - 여러 칼럼들이 하나의 칼럼을 종속시키는 경우 분해하여 다중 값 종속성을 제거한다.


6. 제5정규화

 - 조인에 의해서 종속성이 발생되는 경우 분해한다.



함수적 종속성


1. 제1정규화

정규화는 함수적 종속성을 근거로 한다. 함수적 종속성이란 X→Y이면 Y는 X에 함수적으로 종속한다고 말한다.

함수적 종속성은 X가 변화하면 Y도 변화하는지 확인한다.


2. 제2정규화

부분 함수 종속성이란, 기본키가 2개 이상의 칼럼으로 이루어진 경우에만 발생한다.

기본키가 하나의 칼럼으로 이루어지면 제2정규화는 생략한다.


3. 제3정규화

이행함수 종속성을 제거해야한다. 이행 함수 종속성이란, 기본키를 제외하고 칼럼 간에 종속성이 발생하는 것이다.

제3정규화는 제1정규화와 제2정규화를 수행한 다음에 해야한다.


4. BCNF(Boyce-Codd Normalization Form)

BCNF는 복수의 후보키가 있고 후보키들이 복합속성이어야 하며 서로 중첩되어야 한다.


마무리

1. 정규화란 무엇인가

2. 정규화 절차에대해 설명하라

3. 함수적 종속성에 대하여 설명하라

'DATABASE > SQL' 카테고리의 다른 글

DDL Data Definition Language - CREATE 테이블 생성  (0) 2019.02.26
정규화와 성능  (0) 2019.02.24
Entity Identifier 엔티티 식별자  (0) 2019.02.24
식별 관계와 비식별 관계  (0) 2019.02.23
Relationship 관계  (0) 2019.02.23

사이트의 정보

코딩하렴

으렴

활동하기