SQL가이드 요약: 과목I 데이터 모델링의 이해 - 2장

2장 데이터 모델과 성능

정규화

1차 (1NF) : 도메인이 원자값 (한 속성에는 한 값만!)

이름 과목
홍길동 국어, 영어
임꺽정 영어
▼
이름 과목
홍길동 국어
홍길동 영어
임꺽정 영어

2차 (2NF) : 부분 종속 분리 (이름>과목, 이름>나이, 과목<>나이)

이름 과목 나이
홍길동 국어 20
홍길동 영어 20
임꺽정 영어 21
▼
이름 과목
홍길동 국어
홍길동 영어
임꺽정 영어
이름 나이
홍길동 20
홍길동 20
임꺽정 21

3차 (3NF) : 이행적 종속 분리 (홍길동<국어교육과<인문대. 학과만 알면 대학은 알 수 있다)

이름 학과 단과대학
홍길동 국어교육과 인문대
임꺽정 영어교육과 인문대
전우치 국어교육과 인문대
▼
이름 학과
홍길동 국어교육과
임꺽정 영어교육과
이한음 국어교육과
학과 단과대학
국어교육과 인문대
영어교육과 인문대

BCNF (Boyce and Codd) : 결정자이면서 후보키가 아닌 것 제거 (학번+강의:교수, 강의:교수, 학번<>교수)

학번 강의코드 강의 담당교수
100 DB01 데이터베이스 홍길동
100 DS01 자료구조 임꺽정
200 NW01 네트워크 장영실
▼
학번 강의코드
100 DB01
100 DS01
200 NW01
강의코드 강의 담당교수
DB01 데이터베이스 홍길동
DS01 자료구조 임꺽정
NW01 네트워크 장영실

(작성중…)