데이터 모델링의 이해

정규화(Normalization) — SQLD 단골, 단계 판별과 함수 종속 정리

CBT 전자문제집 편집팀
#SQLD#정규화#1NF#2NF#3NF#함수종속

정규화(Normalization)중복과 이상현상을 없애기 위해 테이블을 무손실로 분해 하는 과정입니다. SQLD에서 매 회차 나오는 최상위 빈출 단원으로, "이 표가 몇 정규형인가", "무엇을 제거하는 단계인가" 를 묻습니다.

이 단원, 시험에서 어디에 나오나

  • 제1과목 「데이터 모델링의 이해」(10문항·20점)에서 가장 자주 나오는 부분입니다.
  • 정규형 단계 판별이상현상 식별 이 핵심 출제 형태입니다.

정규화 단계 — 무엇을 제거하나

정규화 단계 도식. 1NF 원자값, 2NF 부분 함수 종속 제거, 3NF 이행 함수 종속 제거, BCNF 결정자가 후보키

그림 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.
  • 이상현상: 삽입·삭제·갱신. 반정규화 = 성능 위해 물리 단계에서 중복 허용.

참고 출처

CBT 전자문제집 편집팀

자격증 개념과 기출 유형을 쉽게 정리합니다.

관련 글