20분
2NF: 복합키의 함정
Day 1: 같은 주소가 100군데 있어요 - 정규화
2NF: 복합키의 함정
데이터 모델링 > Day 1: 같은 주소가 100군데 있어요 - 정규화
학습 목표
제2정규형(2NF)의 조건을 이해한다 부분 함수 종속 개념을 파악한다
제2정규형 (2NF)
조건: 1NF + 부분 함수 종속 제거
부분 함수 종속 = 복합키의 일부에만 종속되는 속성
2NF 위반 사례
주문 상세 테이블을 보자:
에디터 로딩 중...
기본키: (order_id, product_id) - 복합키
문제: product_name은 product_id에만 종속됨!
- order_id가 뭐든 P001이면 항상 "노트북"
- 부분 종속!
왜 문제인가?
"노트북을 '랩톱'으로 이름 변경"
에디터 로딩 중...
100개 주문에 노트북이 있으면? 100번 수정해야 함. 한 곳이라도 빠지면 불일치!
2NF 적용
에디터 로딩 중...
복합키의 일부(product_id)에만 종속되는 product_name을 분리!
SQL로 보면
에디터 로딩 중...
2NF 체크리스트
| 체크 | 질문 |
|---|---|
| [ ] | 복합키를 사용하는가? |
| [ ] | 복합키의 일부에만 종속되는 컬럼이 있나? |
단일 키면 2NF는 자동 만족! 복합키일 때만 주의하면 된다.