본문 바로가기
소프트웨어 공학 용어 정리

[DB] 정규화(Normalization) 관련 정리

by minhyeok.lee 2023. 3. 17.
반응형

[DB] 정규화, 이상, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, 정규화의 장, 단점 정리

 

정규화란?

1. 데이터의 중복과 중복으로 인한 이상(Anomaly)을 최소한으로 줄이기 위한 방법이다.

2 .이상현상이 존재하는 릴레이션을 분해하여 여러 개의 릴레이션을 생성하게 된다.

3. 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다.

 

이상(Anomaly)이란?

 - 삽입 이상(Insertion Anomaly) : 튜플 삽입시 불필요한 데이터가 함께 삽입되거나 데이터가 부족해 삽입이 되지 않는 현상이다.

 - 갱신 이상(Modification Anomaly) : 중복 튜플 중 일부만 변경되어 데이터가 불일치가 발생하는 현상이다.

 - 삭제 이상(Deletion Anomaly) : 튜플 삭제시 원치 않는 튜플도 함께 삭제되어 데이터 손실이 발생하는 현상이다.

 


제1정규형(1NF: First Normal Form)

 - 모든 애트리뷰트의 도메인은 원자값만을 가져야한다.

 


제2정규형(2NF: Second Normal Form)

 - 제1정규형을 만족해야한다.
 - 모든 애트리뷰트들에 부분적 함수 의존성이 없어야한다. (완전 함수적 종속이여야한다)

완전 함수적 종속성이란 아래 조건들을 만족할 때를 뜻한다.

1. X -> Y 라 가정한다.

2. X의 어떠한 애트리뷰트라도 제가하면 함수적 종속성이 만족하지 않아야 한다.

3. Y가 X의 부분집합에 종속하지 않아야한다.

 


제3정규형(3NF: Third Normal Form)

 - 제2정규형을 만족해야한다.
 - 이행적 종속성을 제거해야한다.

이행적 종속성이란 A -> B, B -> C 가 성립하고 A -> C 가 성립되는 함수 종속성이다.

 

 

BCNF 정규형

 - 제3 정규형을 만족해야한다.
 - 모든 결정자가 후보키여야한다.

 

 

제4정규형(4NF: Fourth Normal Form)

 - BCNF 정규형을 만족해야한다.
 - 다치 종속(Multi-valued Dependency)이 없어야 한다.

여기서 다치 종속이란 아래 조건들을 만족할 때를 뜻한다.
1. A -> B 일 때 하나의 A값에 여러 개의 B값이 존재하면 다치 종속성을 가진다고 하고 A ↠ B라고 표시한다
2. 최소 3개의 칼럼이 존재한다.
3. R(A, B, C)가 있을 때 A와 B 사이에 다치 종속성이 있을 때 B와 C가 독립적이다.

 

 

제5정규형(5NF: Fifth Normal Form)

 - 제4정규형을 만족해야한다.
 - 조인 종속(Join dependency)이 없어야 한다.
 - 조인 연산을 했을 때 손실이 없어야 한다.

조인 종속은 다치 종속의 좀 더 일반화된 형태로 만약 하나의 릴레이션을 여러 개의 릴레이션으로 무손실 분해했다가 다시 결합할 수 있다면 조인 종속이라고 한다. 

 

* 일반적으로 현실의 DB에서는 4NF, 5NF를 사용하지 않는다. (4NF, 5NF는 이론적이다)

* 제3정규형까지 알면 일반적인 실제 DB를 설게하는데 무리가 없다.


정규화의 장점

1. 데이터의 중복과 이상현상을 제거할 수 있다.

2. 종속성 삭제로 데이터의 일관성과 무결성을 보장한다.

3. 중복 최소화로 저장공간을 효율적으로 사용할 수 있다.

4. DB구조 확장시 구조의 변화의 영향이 적다.

 

정규화의 단점

1. 릴레이션간의 JOIN연산의 증가한다.

2. 시스템 실행이 과다해지고 검색시간의 효율이 떨어진다.

3. 과다한 검색 조건문이 발생한다.

반응형

댓글