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 네트워크 장영실

(작성중…)