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단계는 "정보가 서로 얽히지 않게 따로 분리해요!"그래서 나중에 찾고 바꾸기 쉽게 만들어요!