⭐알게 된 점⭐
👉 정규화 (Normalization)
- 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정
- 릴레이션의 분해로 인해 JOIN 연산이 많아지는데 이때 성능 저하가 나타난다면 반정규화 진행
제 1 정규형 (1NF)
- 각 컬럼이 하나의 속성을 가져야 함
- 하나의 컬럼은 같은 종류나 타입의 값을 가져야 함
- 각 컬럼이 유일한 이름을 가져야 함
- 컬럼의 순서가 상관 없어야 함


제 2 정규형 (2NF)
- 제 1 정규형 만족
- 모든 컬럼이 부분적 종속이 없어야 함
( 부분적 종속 ? 기본키 중에 특정 컬럼에만 종속되는 것 )


제 3 정규형 (3NF)
- 제 2 정규형 만족
- 기본키를 제외한 속서들 가늬 이해 종속성이 없어야 함
( 이행 종속성 ? A->B, B->C 일 때 A->C가 성립하는 것)


BCNF
- 제 3 정규형 만족
- 모든 결정자가 후보키 집합에 속해야 함


- 학생 번호와 지도교수는 다치 종속성이 발생하는데 이는 제 4정규형에서 다룸
제 4 정규형
- BCNF 만족
- 다치 종속이 없어야 함
다치 종속
1. A->B 일 때 하나의 A값에 여러 개의 B값이 존재하면 다치 종속성을 가진다고 하고 A↠B라고 표시한다
2. 최소 3개의 칼럼이 존재한다.
3. R(A, B, C)가 있을 때 A와 B 사이에 다치 종속성이 있을 때 B와 C가 독립적이다.



제 5 정규형
- 제 4정규형 만족
- 조인 종속이 없어야 함
- 조인 연산을 했을 때 손실이 없어야 함
- 현실의 데이터베이스는 제 5정규형을 잘 사용하지 않음

참고 : https://code-lab1.tistory.com/48
🐰 END
영차영차