본문 바로가기

DB

[DB] 정규화의 정의 및 법칙(1, 2, 3, BCNF)

정규화란?

- 데이터베이스 정규화란 데이터베이스의 설계를 재구성하는 테크닉입니다. 정규화를 통해 불필요한 데이터(redundancy)를 없앨 수 있고, 삽입/갱신/삭제 시 발생할 수 있는 각종 이상현상(Anamolies)들을 방지할 수 있습니다. 

정규화가 왜 필요한가?

- 정규화의 법칙을 따르지 않고 삽입/갱신/삭제가 이루어 진다면 데이터 불일치, NULL값 등 테이블의 구성이 논리적이지 못하게 됩니다.

 

정규화의 법칙

 

정규화 법칙 설명

1차 정규화

 

각 로우마다 컬럼의 값이 1개씩만 있어야 합니다.

이를 컬럼이 원자값(Atomic Value)를 갖는다고 합니다. 

2차 정규화

 

2차 정규형은 테이블의 모든 컬럼이 완전 함수적 종속을 만족하는 것입니다.

완전 함수적 종속이란 기본키중에 특정 컬럼에만 종속된 컬럼(부분적 종속)이 없어야 한다는 것

3차 정규화

 

3차 정규화 과정은 기본키가 하나이므로 2차 정규형은 만족하는 것으로 볼 수 있습니다. 

기본키를 제외한 속성들 간의 이행적 함수 종속이 없는 것 입니다.

BCNF

3차정규형을 만족하면서 모든 결정자가 후보키 집합에 속한 정규형입니다.

 

'DB' 카테고리의 다른 글

[DB] 분산 데이터베이스란?  (0) 2020.03.11
[DB] 관계대수와 관계해석  (0) 2020.02.27
[DB] 트랜잭션 정의 및 성질  (0) 2020.01.29
[DB] 데이터베이스 용어 정리  (5) 2020.01.22
[DB] View 와 Index  (4) 2020.01.21