정규화(Normalization) 는 중복과 이상현상을 없애기 위해 테이블을 무손실로 분해 하는 과정입니다. SQLD에서 매 회차 나오는 최상위 빈출 단원으로, "이 표가 몇 정규형인가", "무엇을 제거하는 단계인가" 를 묻습니다.
이 단원, 시험에서 어디에 나오나
- 제1과목 「데이터 모델링의 이해」(10문항·20점)에서 가장 자주 나오는 부분입니다.
- 정규형 단계 판별 과 이상현상 식별 이 핵심 출제 형태입니다.
정규화 단계 — 무엇을 제거하나
그림 1. 각 단계가 "무엇을 제거하는가"로 외웁니다. 2NF는 부분 함수 종속, 3NF는 이행 함수 종속을 없앱니다. (자작 도식)
| 단계 | 제거 대상 |
|---|---|
| 1NF | 한 칸에 값 하나(원자값) |
| 2NF | 부분 함수 종속 제거 |
| 3NF | 이행 함수 종속 제거 |
| BCNF | 모든 결정자를 후보키로 |
2NF vs 3NF — 가장 헷갈리는 구분
- 부분 함수 종속(2NF에서 제거): 복합키의 일부 에만 종속되는 것. 예: 기본키가 (주문번호+상품번호)인데
상품명이 상품번호에만 종속. - 이행 함수 종속(3NF에서 제거): 키가 아닌 속성끼리 X→Y→Z 로 이어지는 종속. 예:
사번→부서코드→부서명.
함정: 단일 컬럼 기본키 는 부분집합이 없어 2NF를 자동 만족 합니다. "2NF 위반"은 복합키에서만 생깁니다.
이상현상 — 정규화로 없애는 문제
정규화가 필요한 이유는 이상현상(Anomaly) 때문입니다.
그림 2. 삽입·삭제·갱신 이상. 정보가 한 테이블에 과하게 뭉쳐 생기며, 분리하면 사라집니다. (자작 도식)
- 삽입 이상: 불필요한 값까지 함께 넣어야 저장됨.
- 삭제 이상: 한 건을 지우면 다른 정보까지 사라짐.
- 갱신 이상: 중복값을 일부만 고쳐 데이터가 불일치.
반정규화 — 정규화의 반대
반정규화(비정규화) 는 조회 성능 을 위해 물리적 모델링 단계 에서 일부러 중복을 허용하는 것입니다. 정규화(논리 단계)와 반대 방향이며, 무분별하면 이상현상이 다시 생깁니다.
자주 틀리는 함정
- 2NF ↔ 3NF 혼동 — 부분 함수 종속(2NF)과 이행 함수 종속(3NF)을 바꿔 설명.
- BCNF 과장 — "BCNF가 모든 함수 종속을 없애는 최강 정규형"은 틀림(4NF·5NF가 더 위).
- 정규화 단계 착각 — 정규화는 논리 단계, 반정규화는 물리 단계.
한 장 정리 (암기 카드)
- 1NF=원자값 · 2NF=부분 함수 종속 제거 · 3NF=이행 함수 종속 제거 · BCNF=결정자=후보키.
- 부분 종속 = 복합키 일부에 종속(단일키는 2NF 자동 만족).
- 이행 종속 = 비키 속성끼리 X→Y→Z.
- 이상현상: 삽입·삭제·갱신. 반정규화 = 성능 위해 물리 단계에서 중복 허용.
참고 출처
- 시험 과목·출제기준: 한국데이터산업진흥원(KDATA) 데이터자격검정 (2026년 7월 확인)
- 정규형·함수 종속·이상현상은 관계형 DB 정규화 표준 이론에 근거하며, 본문 설명·예시·도식은 자작입니다.