Study/Computer Science

[Database] 정규화

욘아리 2024. 5. 15. 18:24

정보처리기사 필기를 공부하다가 정규화 과정에 대해 간단하게 정리해두려고 한다.

 

정규화(Normalization)

이상 현상을 제거하기 위해 데이터베이스를 구조화하는 과정이다.

정규화를 통해 데이터 간의 종속성을 제거하여 중복되는 데이터를 줄이고 데이터의 일관성과 무결성을 보장한다.

 

정규화 과정은 정규형 원칙을 기반으로 정규형을 만들어가는 과정이며, 정규화된 정도는 정규형(NF, Normal Form)으로 표현한다.

  • 기본 정규형 - 제1정규형, 제2정규형, 제3정규형, 보이스/코드 정규형
  • 고급 형규형 - 제4정규형, 제5정규형

 

1NF(제1정규형)

릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자값만으로 구성되어야 한다.

릴레이션의 속성 값 중에서 한 개의 기본키에 대해 두 개 이상의 값을 가지는 반복 집합이 있어서는 안 된다. 만약에 반복 집합이 있다면 제거해야 한다.

 

2NF(제2정규형)

부분 함수의 종속성을 제거한 형태를 말한다.

🔸부분 함수의 종속성 제거란, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적인 것을 말한다.

 

3NF(제3정규형)

기본키가 아닌 모든 속성이 이행적 함수 종속을 만족하지 않는 상태를 말한다.

 

🔸이행적 함수 종속이란 A -> B와 B -> C가 존재하면 논리적으로 A -> C가 성립하는데, 이때 집합 C가 집합 A에 이행적으로 함수 종속이 되었다고 한다.

 

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

결정자가 후보키가 아닌 함수 종속 관계를 제거하여 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키인 상태를 말한다.

🔸결정자는 함수 종속 관계에서 특정 종속자를 결정짓는 요소, 'X -> Y'일 때 X는 결정자, Y는 종속자이다.

 

4NF(제4정규형)

다치 종속을 제거하는 것을 목표로 한다.

 

5NF(제5정규형)

조인 종속을 제거하는 것을 목표로 한다. 

 

 

✨👩‍💻 ✨

시험을 위한 암기는 두부이걸다줘?!!(도부이결다조)

 

 

 

 

출처

면접을 위한 CS 전공지식 노트, 주홍철