정규화(Normalization) 는 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정이다. 이상현상이 존재하는 릴레이션을 분해하여 여러 개의 릴레이션을 생성하게 된다. 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다.
한 칸엔 하나의 데이터만
=> 제 1 정규형 테이블
현재 테이블의 주제와 관련없는 컬럼으 다른 테이블로 빼는 작업
partial dependency를 제거한 테이블
=> 제 2 정규형 테이블
composite primary key : 합쳐서 primary key(unique column)역할을 할 수 있는 columns
위의 테이블에서 가격이라는 컬럼이 프로그램 컬럼에 종속됨.
이때 가격 컬럼이 하나의 composite primary key에 종속되어 있는 것을 Partial Dependency라고 함.
제 2 정규형 테이블은 테이블 하나만 봐서는 세부적인 사항을 바로 알 수 없음
위에서 김민수가 얼마를 납부했는지, 해야하는지 알려면 가격테이블을 참조해야 함
이런 불편한 점 때문에 관계형DB들은 테이블을 정규화 해두는게 일반적이지만,
일반 컬럼에만 종속된 컬럼은 다른 테이블로 빼기