sqld에선 이 정도만 알고있어도 충분한듯
정규화
- 데이터 정합성 (데이터의 정확성과 일관성을 유지)을 위해 엔터티를 작은 단위로 분리하는 과정
- 입력/ 수정/ 삭제의 이상현상(한 엔터티에 2개 이상의 종속성이 있을 때)을 제거
- 중복 속성 제거, 데이터 용량 최소화
제 1 정규형
- 모든 속성은 반드시 하나의 값만 가져야 한다.
- 속성의 원자성 확보
제 2 정규형
- 엔터티의 모든 일반 속성은 반드시 모든 주식별자에 종속되어야 한다.
= 완전 함수 종속
= 부분 함수 종속이 있으면 안된다.
= 기본키의 부분 집합이 결정자가 되어선 안된다.
결정자? X -> Y인 함수적 관계를 성립시키는 X
함수적 관계? Y값이 오직 하나로 결정되는 관계
제 3 정규형
- 주식별자가 아닌 모든 속성간에 서로 종속될 수 없다.
- 이전 종속 속성 분리
보이스 / 코드 정규형
- 제3 정규화를 진행한 테이블에 대해 "모든 결정자가 후보키가 되도록" 테이블을 분해한다.