- 중복된 자료를 없애기 위해서 하는 것이 정규화다.
- 정규화의 목적 : 테이블이 계속 쪼개지는 것.
어떤 관계로 쪼갤 것인가? 함수 종속성으로 쪼갠다.
-> 사번이 함수 결정자(pk)라 하고, 사번을 이용하면 사원명과 급여를 알 수 있다.-> 함수 종속자(일반컬럼)
-> 일반 컬럼은 PK에 종속성(함수종속)을 갖는다.
- 1 정규화
: 테이블의 컬럼이 원자값을 갖도록 테이블을 분해하는 것이다.
2 정규화
: 복합키인 경우에만 하면된다. 복합키일 경우에만 2차 정규화를 할지 안 할지 결정. 2개의 PK에 완전한 종속성을 갖는 일반컬럼으로 나눠져서 같은 테이블로만 구성한다. 다르면 다른 테이블로 나눔
3 정규화
: 2차정규화를 진행한 테이블에 대해 이행적 종속(일반컬럼들 사이에서 함수종속성이 있는가 확인)이 없도록 테이블을 분해

- 강좌이름(결정자)에 대한 수강료(종속자)이지, 학생에 대한 수강료가 아님

예제

- 원래 상품에 모든것을 담았다면, 제조일자, 칼로리, 단백질이 상품번호에 대한 영양정보일 수 있지만 3차정규화를 진행해서 상품과 상품영양정보를 따로 뺀것

- 위와 같은 로직을 어떻게 짤것인지를 정해야 클래스를 나눌 수 있다.
