개발/DB

DB 정규화 한줄 설명

2021. 2. 7. 23:40

"

관계형 데이터베이스의 설계에서

중복을 최소화하게

데이터를 구조화하는 프로세스를

정규화(Normalization)라고 한다.

"

- 위키백과 -

 

정규화 안하면

정규화되지 않은 데이터베이스의 중복된 데이터는 데이터의 수정에 큰 비용이 들게 할 뿐만 아니라, 데이터의 갱신 / 삽입 / 삭제가 제대로 이루어지지 않는 갱신 이상, 삽입 이상, 삭제 이상을 발생시킬 가능성이 있다.

 

 

용어

  • 슈퍼 키 : 행을 특정할 수 있는 속성 집합
  • 후보 키 : 더이상 줄일 수 없는 슈퍼 키
  • 기본 키 : 후보 키 중 테이블의 대표로 선택된 키

 

정규화와 정규형

정규화된 데이터베이스는 특정 정규형을 만족하게 된다. Ex) 제1정규화가 된 데이터베이스는 제1정규형을 만족한다.

 

제1정규형(1NF 또는 최소형)

중복되는 항목이 없으며, 모든 행은 동일한 구조로 이루어져있으며, 행에는 순서가 없다.

 

제2정규형(2NF)

제1정규형을 만족, 모든 속성이 후보 키 일부가 아닌 전체에 따라서 결정된다.

 

제3정규형(3NF)

제2정규형을 만족, 모든 속성이 기본 키에 따라서 결정되며, 기본 키가 아닌 다른 후보 키에 의존하지 않는다.

 

BCNF정규형(보이스-코드 정규형)

전체 속성의 집합이 후보 키이다. (따라서 제3정규형을 만족한다.)