1정규화 - 컬럼이 원자값을 갖도록 테이블을 분해
2정규화 - 제1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것
완전 함수 종속은 기본키의 부분집합이 결정자가 되지 않게 하는 것
3정규화 - 제2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해
이행적 종속이라는 것은 A -> B, B -> C가 성립할 때 A -> C가 성립되는 것을 의미
위와같은 테이블에서 수강하는 강좌가 바뀌면 수강료도 갱신을 해줘야하는 번거로움이 있다
이행적 종속을 제거해서 학생 번호를 통해 강좌 이름을 참조하고, 강좌 이름으로 수강료를 참조하도록 테이블을 분해했다
BCNF 정규화 - 제3 정규화를 진행한 테이블에 대해 기본키를 제외하고 후보키가 있는 경우 후보키가 기본키를 종속시키면 분해한다
(학생번호, 특강이름)을 기본키로 가지고 있고, 기본키가 교수를 결정한다
교수는 특강이름을 결정하지만 후보키 속성을 만족하지 못한다
결정자인 교수를 교수 테이블로 분리해서 후보키로 만든다
출처: https://mangkyu.tistory.com/110 [MangKyu's Diary:티스토리]