2정규형(2NF)과 3정규형(3NF)은 릴레이션 모델에서 데이터 중복 제거와 데이터 무결성 유지를 위한 핵심 정규화 단계입니다. 기술사 관점에서는 정의, 적용 조건, 예시, 효과까지 구조적으로 정리해야 합니다.
속성의 원자성(Atomicity) 만족:
하나의 필드는 하나의 값만 저장 (반복 속성 제거)
| order_id | customer_name | item_list |
|---|---|---|
| 1001 | 홍길동 | 책A, 책B, 책C |
→ item_list는 다중 값 → 1NF 위반
OrderItem(order_id, book_id, book_title, quantity)order_id, book_id)book_title은 book_id에만 종속 → 부분 종속OrderItem(order_id, book_id, quantity)Book(book_id, book_title)로 분리Member(member_id, name, zip_code, city)zip_code → city를 결정함 → 이행적 종속Member(member_id, name, zip_code)ZipCode(zip_code, city)로 분리| 구분 | 정의 | 제거 대상 | 효과 |
|---|---|---|---|
| 1NF | 속성의 원자성 | 반복 속성 | 기본적인 릴레이션 구조화 |
| 2NF | 기본키에 완전 종속 | 부분 함수 종속 | 복합키 기준 정합성 확보 |
| 3NF | 이행적 종속 제거 | 이행 함수 종속 | 비정규화된 중복 정보 제거 |
1단계에서는 "하나 칸에 한 가지 정보만 써요!"
2단계는 "부분적인 정보 말고, 전체랑 연결되게 해요!"
3단계는 "정보가 서로 얽히지 않게 따로 분리해요!"그래서 나중에 찾고 바꾸기 쉽게 만들어요!
