정규화(Normalization)
테이블 내의 데이터 중복을 최소화하고, 이상(Anomaly)을 방지하기 위해
속성 간의 종속 관계를 분석하여 데이터를 무손실 분해 하는 과정
정규화 목적
- 데이터 중복 제거
- 동일한 정보가 여러 곳에 저장되는 것을 방지
- 이상(Anomaly) 제거
- 삽입, 삭제, 갱신 이상 방지
- 데이터 무결성 향상
- 데이터의 일관성과 신뢰성 확보
- 데이터 구조 단순화
- 테이블 구조를 체계적으로 정리
- 유지보수 효율 향상
- 데이터 수정 시 영향 최소화
정규화 과정

- 단계가 높아질수록 중복이 줄고, 데이터 구조가 정교해짐
제 1정규형(1NF, First Normal Form)
모든 속성의 값이 원자값만을 가지도록 분해한 형태
- 모든 속성의 도메인은 원자값만 허용
- 반복 그룹 제거
- 하나의 칸(속성)에 여러 값이 들어가면 안 됨
- ex)
| 학생 | 수강과목 |
| 김민수 | 데이터베이스 운영체제 |
→ 정규화 후
| 학생 | 수강과목 |
| 김민수 | 데이터베이스 |
| 김민수 | 운영체제 |
제 2정규형(2NF, Second Normal Form)
제 1정규형을 만족하고,
기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형
- 1NF 만족
- 부분 함수적 종속 제거
- 기본키 일부 속성에만 종속되는 속성을 제거
- ex)
| 학번 | 과목명 | 교수명 | 학과 |
| 20240929 | DB | 이교수 | 컴퓨터공학 |
→ 학과는 학번에만 종속 → 부분 함수적 종속 발생
⇒ 학과 정보를 별도 테이블로 분리
| 학번 | 과목명 | 교수명 |
| 20240929 | DB | 이교수 |
| 학번 | 학과 |
| 20240929 | 컴퓨터공학 |
→ 수강(학번, 과목명, 교수명)
학생(학번, 학과)
제 3정규형(3NF, Third Normal Form)
제 2정규형을 만족하고,
기본키가 아닌 속성이 기본키에 대해 이행적 함수적 종속을 가지지 않음
- 2NF 만족
- 이행적 종속 제거
- 기본키가 아닌 속성이 다른 기본키가 아닌 속성을 결정하면 안 됨
- ex)
| 학번 | 학과 | 건물 |
| 20240929 | 컴퓨터공학 | IT관 |
→ 학번 → 학과 → 건물(이행 종속 발생)
⇒ 학과-건물 관계를 별도 테이블로 분리
| 학번 | 학과 |
| 20240929 | 컴퓨터공학 |
| 학과 | 건물 |
| 컴퓨터공학 | IT관 |
- 학생(학번, 학과)
- 학과(학과, 건물)
BCNF(Boyce-Codd Normal Form)
모든 결정자가 후보키인 정규형
- 3NF 만족
- 모든 결정자가 후보키
- 후보키가 여러 개인 경우에도 종속 관계 중 결정자가 후보키인지 확인
- ex)
| 교수 | 과목 | 교재 |
| 김교수 | DB | SQL 입문 |
| 김교수 | 운영체제 | OS 기초 |
→ 과목 → 교재, 교수 → 과목
→ 모든 결정자가 후보키가 아닐 경우 BCNF 위배
제 4정규형(4NF, Fourth Normal Form)
다중값 종속(MVD; Multi-Valued Dependency)을 제거한 정규형
- BCNF 만족
- 다중값 종속 제거
- 하나의 결정자가 여러 독립적인 다중값 종속을 가질 때 분리
- ex) 한 교수는 여러 과목을 가르치고, 여러 연구실을 가질 수 있음
→ 과목과 연구실은 서로 독립
⇒ 분리하여 다중값 종속 제거
제 5정규형(5NF, Fifth Normal Form)
모든 조인 종속이 후보키를 통해서만 성립되는 정규형
(조인으로부터 완전히 복원 가능한 형태)
- 4NF 만족
- 조인 종속 제거
- 테이블이 여러 개로 분해되어도 조인을 통해 완전 복원이 가능해야 함
- 데이터가 완전히 독립적인 가장 높은 정규형
정리
- 정규화는 함수적 종속 관계를 이용한 무손실 분해 과정
- 1NF → 2NF → 3NF → BCNF → 4NF → 5NF
- 중복을 줄이고 이상을 제거
'정보처리기사' 카테고리의 다른 글
| 정보처리기사 실기 - 시스템 카탈로그(+ 메타 데이터, 데이터 디렉터리) (0) | 2025.11.01 |
|---|---|
| 정보처리기사 실기 - 반정규화 (0) | 2025.11.01 |
| 정보처리기사 실기 - 이상 & 함수적 종속 (0) | 2025.11.01 |
| 정보처리기사 실기 - 관계대수 및 관계해석 (0) | 2025.11.01 |
| 정보처리기사 실기 - 데이터베이스 무결성 제약조건(개체, 참조, 도메인 무결성) (0) | 2025.11.01 |