topic난이도 · 약 20

정규화 — 1NF·2NF·3NF

이상(Anomaly) 제거를 위한 테이블 분해 과정. 함수 종속 판별이 핵심.

#DB#정규화#함수종속
왜 배우는가

정규화 단계 판별 문제가 매회 1문항 이상 출제된다. 1NF(원자값) → 2NF(부분 종속 제거) → 3NF(이행 종속 제거) 흐름을 예제와 함께 확실히 잡자.

이상(Anomaly)이란 데이터 중복으로 인해 삽입·갱신·삭제 시 문제가 발생하는 현상이다. 정규화는 이 이상을 체계적으로 제거한다.

정규화 4단계 — 비정규형 → 1NF(원자값) → 2NF(부분 종속 제거) → 3NF(이행 종속 제거) 테이블 분해
정규형제거 대상한 줄 요약
1NF반복 그룹모든 속성이 원자값
2NF부분 함수 종속비키 속성 → 복합키 전체에 종속
3NF이행 함수 종속비키 → 비키 종속 제거
BCNF비후보키 결정자모든 결정자가 후보키

예제: 테이블(학번, 과목, 이름, 성적)에서 기본키가 (학번, 과목)일 때, `학번 → 이름`은 부분 함수 종속이다. 이를 분해하면 2NF가 된다.

암기법 — 도·부·이·결 (도메인, 부분, 이행, 결정자) = 1NF / 2NF / 3NF / BCNF에서 제거하는 것.

반정규화(Denormalization): 성능 향상을 위해 정규화된 테이블을 의도적으로 합치거나 중복을 허용하는 기법. 조인 횟수를 줄여 읽기 성능을 높인다.

실기 드릴 5문항
edit실기 드릴 · 단답형

복합키의 일부에만 종속되는 비키 속성을 제거하면 어느 정규형이 되는가?

check_circle실기 드릴 · OX

1NF를 만족하려면 모든 속성 값이 원자값이어야 한다.

space_bar실기 드릴 · 빈칸 채우기

A → B, B → C일 때 A → C는 (___) 함수 종속이며, 이를 제거하면 (___)가 된다.

edit실기 드릴 · 단답형

테이블 (학번, 과목, 이름, 학과, 성적) 기본키 (학번, 과목). 이 스키마의 정규형 단계는?

edit실기 드릴 · 단답형

테이블 (학번, 이름, 학과, 학과장) — 학과 → 학과장 종속일 때 정규형 단계와 분해 결과는?