정규화란?
- 정의
- 데이터베이스 정규화는 데이터 중복성을 줄이고, 데이터 무결성을 향상시키기 위해 데이터를 구조화하는 과정
- 목적
- 중복 제거 : 데이터 중복을 줄여 저장 공간을 효율적으로 사용
- 데이터 무결성 향상 : 데이터베이스 내의 데이터 정확성, 일관성을 유지
- 업데이트 이상 최소화 : 데이터 수정, 삭제, 삽입 시 발생할 수 있는 문제점들을 줄임
- 효과
- 저장 공간의 효율적 사용데이터 무결성 및 일관성 유지 데이터베이스 수정 시 발생할 수 있는 오류 감소
- 제1 정규화, 제2 정규화, 제3 정규화, 보이스/코드 정규형이 있음
제1 정규화
- 모든 필드의 값이 원자값을 가지도록 테이블을 구조화하는 것
즉, 각 필드에는 반복되는 그룹이나 리스트가 없어야 함

제2 정규화
- 모든 테이블이 제1 정규형을 만족하며, 기본 키가 아닌 모든 필드가 기본 키에 완전 함수적으로 종속되는 상태


제3 정규화
- 모든 테이블이 제2정규형을 만족하며, 기본 키가 아닌 모든 필드가 이행적 종속을 만족하지 않는 상태
즉, 기본 키가 아닌 모든 필드가 기본 키에만 종속되어야 함
- 이행적 종속

보이스/코드 정규화
- 제3 정규형
- 테이블이 이미 제3 정규형(3NF)에 있어야 함
- 모든 결정자가 후보 키여야 함 즉, 비후보 키 속성이 다른 속성을 결정하지 않아야 함