관계형 데이터베이스, 정규화

출제 빈도: ★★★★★ | 기본 필수


답안.

Ⅰ. 개요

관계형 데이터베이스(RDB)란 데이터를 2차원 테이블(릴레이션)로 표현하고, SQL을 통해 집합 기반 연산을 수행하는 데이터 관리 시스템이다. 정규화(Normalization)는 데이터 중복을 제거하고 이상(Anomaly)을 방지하기 위해 릴레이션을 분해하는 설계 기법이다.

Ⅱ. 정규화 단계

단계조건해결하는 문제
1NF원자값만 허용 (반복 그룹 제거)다중값 속성
2NF1NF + 부분 함수 종속 제거복합키의 부분 종속
3NF2NF + 이행 함수 종속 제거A→B→C에서 A→C
BCNF모든 결정자가 후보키3NF에서 못 잡는 이상
4NF다치 종속 제거독립적 다중값 속성
5NF조인 종속 제거3개 이상 릴레이션 분해
비정규 릴레이션
  │ ← 반복 그룹 제거
  ▼
 1NF
  │ ← 부분 종속 제거
  ▼
 2NF
  │ ← 이행 종속 제거
  ▼
 3NF / BCNF ← 실무 목표

Ⅲ. 이상 현상

정규화가 부족하면 세 가지 이상이 발생한다. 삽입 이상(불필요 데이터 강제 삽입), 갱신 이상(일부만 수정 시 불일치), 삭제 이상(유용한 데이터 함께 소실). 정규화는 이러한 이상을 구조적으로 방지한다.

Ⅳ. 반정규화

성능 최적화를 위해 의도적으로 중복을 허용하는 기법이다. 조인 비용이 과다한 읽기 중심 워크로드에서 테이블 통합, 파생 컬럼 추가, 중복 테이블 생성 등을 적용한다. 반정규화 시에는 데이터 일관성 유지 방안(트리거, 배치 동기화)을 반드시 함께 설계해야 한다.

Ⅴ. 시험 포인트

① 1NF~BCNF 단계별 정의와 예시 ② 이상현상 3종 설명 ③ 함수 종속성 다이어그램 ④ 반정규화의 적용 조건과 트레이드오프


관련: 트랜잭션 ACID(02번) · 인덱스(03번) · NoSQL(04번) · 분산 DB(05번)