정의
데이터의 중복을 최소화하고 이상 현상을 방지하기 위해 테이블을 쪼개는 것
- 이상현상 : 삽입 이상, 갱신 이상, 삭제 이상
- 데이터의 저장 공간을 효율적으로 사용, 데이터의 무결성 유지
- 릴레이션 내 속성들의 함수적 종속성을 기반으로 동작
- 함수적 종속성: X(결정자) -> Y(종속자) , X가 Y를 함수적으로 결정한다
- 완전 함수 종속: Y가 X 전체에 종속된것
- 부분 함수 종속: Y가 X 일부에 종속된 것
제 1 정규형
- 릴레이션의 모든 도메인이 원자값으로만 구성되어야 한다는 규칙
제 2 정규형
- 기본키가 아닌 모든 속성이 기본키에 완전함수 종속
제 3 정규형
- 기본키가 아닌 속성이 기본키에 이행적으로 종속되지 있지 않아야 한다
- 이행 함수 종속: A-> B, B-> C이면 A-> C
보이스/코드 정규형(BCNF)
정규화의 필요성?
- 정규화 과정은 데이터 중복을 줄이고, 데이터 무결성을 유지하는데 중요한 역할을 하지만, 과도한 정규화는 데이터베이스의 성능 저하를 초래할 수 있음 (복잡한 조인 연산이 필요할 수 있기 때문에)