정규화는 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과저이다.
1. 이상 현상
데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상이다.
- 삽입 이상 : 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
- 삭제 이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
- 갱신 이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
2. 정규화의 단계
- 1단계 : 도메인 원자값으로 구성
- 2단계 : 부분 함수 종속 제거(완전 함수적 종속 관계)
- 3단계 : 이행함수 종속 제거
- 4단계 : 결정자 후보 키가 아닌 함수 종속 제거(테이블 분리 후 후보키를 찾는게 중요)
- 5단계 : 다치(다중 값) 종속 제거
- 6단계 : 조인 종속 제거
3. 정규화 상세 단계
- 1차 정규화 (1NF)
- 2차 정규화 (2NF)