정규화는 관계형 데이터베이스에서 데이터의 중복을 최소화하고, 데이터 무결성을 보장하기 위해 테이블 구조를 체계적으로 분해하는 과정이다. 정규화를 통해 이상 현상을 방지하고, 데이터 구조의 안정성과 유지보수성을 향상시킬 수 있다.

정규화 과정

정규화가 되기 위해 준수해야 하는 몇 가지 rule들이 있는데 각각의 rule를 normal form이라고 부른다.

1NF에서 BCNF까지는 FD와 key만으로 정의되는 normal forms이다.
보통 3NF까지 도달하면 정규화 됐다고 말하기도 한다.

정규형핵심 조건제거 대상
1NF (제1정규형)모든 속성 값은 원자값(Atomic Value) 이어야 한다.다중값 속성
2NF (제2정규형)1NF를 만족하고, 부분 함수 종속을 제거해야 한다. (완전 함수 종속)부분 함수 종속
3NF (제3정규형)2NF를 만족하고, 이행 함수 종속을 제거해야 한다.이행 함수 종속
BCNF (보이스-코드 정규형)3NF를 만족하고, 모든 결정자가 후보키여야 한다.후보키가 아닌 결정자
4NF (제4정규형)BCNF를 만족하고, 다치 종속(Multi-valued Dependency) 을 제거해야 한다.다치 종속
5NF (제5정규형)4NF를 만족하고, 조인 종속(Join Dependency) 이 후보키를 통해서만 성립되어야 한다.조인 종속
중요 핵심 키워드는 다음과 같음.
  • 1NF → 원자값
  • 2NF → 부분 함수 종속 제거
  • 3NF → 이행 함수 종속 제거
  • BCNF → 모든 결정자가 후보키

1NF

제 1 정규형은 릴레이션의 모든 속성 값이 원자값으로만 구성되어야 한다는 규칙이다.

2NF

제 2정규형은 릴레이션이 1NF를 만족하고, 부분 함수 종속을 모두 제거한 완전함수 종속 상태를 말한다.
즉, 모든 속성이 기본키 전체에 완전 함수 종속 되어야 한다. (기본키가 단일 속성이면 항상 2NF를 만족합니다.)

3NF

제3정규형은 2NF를 만족한 뒤, 키가 아닌 컬럼끼리 이어서 값을 결정하는 구조를 제거한 상태를 말한다.

BCNF (Boyce-Codd Normal Form)

릴레이션의 모든 결정자가 후보키여야 한다는 규칙이다.

출처 및 참고자료

BJ.49-1 DB 정규화(normalization)는 DB를 설계하는 공식적인 방법이죠~ 1부에서는 정규화 개념과 정규화 과정의 앞 부분인 1NF, 2NF를 설명합니다#정규화 #1NF #2NF #normalization #DB설계 #database #쉬운코드 #백발백중 지난 시간에 배웠던 functional dependency를 바탕으로 DB 테이블을 설계하는 공식적인 방법인 정규화(normalization)를 배워봅니다1부에서는 정규화의 뜻과...www.youtube.com 데이터베이스 정규화와 반정규화데이터베이스 정규화의 1NF부터 5NF까지 각 정규형과 반정규화를 예제로 설명합니다. Denormalization과 정규화되지 않은 상태의 차이, 반정규화·비정규화·역정규화의 번역 용례도 함께 정리합니다.jeongcheogi.edugamja.com