20분
3NF: 꼬리에 꼬리를 무는 종속
Day 1: 같은 주소가 100군데 있어요 - 정규화
3NF: 꼬리에 꼬리를 무는 종속
데이터 모델링 > Day 1: 같은 주소가 100군데 있어요 - 정규화
학습 목표
제3정규형(3NF)의 조건을 이해한다 이행 함수 종속 개념을 파악한다
제3정규형 (3NF)
조건: 2NF + 이행 함수 종속 제거
이행 종속 = A → B → C 관계에서 A → C로 건너뛰는 종속
3NF 위반 사례
직원 테이블을 보자:
에디터 로딩 중...
기본키: emp_id (단일키)
종속 관계:
- emp_id → dept_id (직원 → 부서ID)
- dept_id → dept_name (부서ID → 부서이름)
- dept_id → dept_location (부서ID → 부서위치)
이행 종속: emp_id → dept_id → dept_name = emp_id가 dept_name을 직접 결정하는 게 아니라 dept_id를 거쳐서 결정함
왜 문제인가?
"개발팀이 7층으로 이사합니다"
에디터 로딩 중...
개발팀 직원이 100명이면? 100번 수정. 중복 저장의 문제!
3NF 적용
에디터 로딩 중...
이행 종속의 중간 다리(dept_id → dept_name)를 별도 테이블로 분리!
SQL로 보면
에디터 로딩 중...
3NF 체크리스트
| 체크 | 질문 |
|---|---|
| [ ] | 기본키가 아닌 컬럼이 다른 비키 컬럼을 결정하나? |
| [ ] | A → B → C 형태의 종속 관계가 있나? |
있다면 B를 별도 테이블로 분리!