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 |
네트워크 |
장영실 |
(작성중…)