정규화
정규화의 개요
정규화의 정의
자료의 손실이나 불필요한 정보의 도입 없이 데이터의 일관성, 데이터 중복을 최소화하고 최대의 데이터 안정성 확보를 위한 안정적 자료구조로 변환하기 위해서 하나의 테이블을 둘 이상으로 분리하는 작업
정규화의 필요성
- 데이터의 중복을 최소화하여 효율적인 저장 공간의 사용
- 종속성 삭제로 데이터의 일관성과 무결성 보장
- 자료구조의 안전성 확대
- 자료의 갱신 및 삭제에 따른 이상 현상의 제거
정규화가 필요한 이유
- 데이터 중복에 따른 이상현상 제거
- 데이터의 일관성 및 무결성 확보
- 데이터 저장 공간 최소화
- 효율적인 검색
- 데이터 신규 발생에 대한 유연성 확보
정규화의 단계
제1차 정규형 (1NF: 1st Normal Form)
- 어떤 릴레이션 R의 모든 속성이 원자값만을 포함한 모델
- 반복되는 속성이나 속성 그룹이 제거된 모델
제2차 정규형 (2NF: 2nd Normal Form)
- 어떤 릴레이션 R이 1차 정규형이며 키가 아닌 속성 모두 기본키에 완전하게 종속되어 있는 모델
- 부분(함수) 종속성이 제거된 모델
제3차 정규형 (3NF: 3rd Normal Form)
- 어떤 릴레이션 R이 2차 정규형이고 키가 아닌 속성 모두 기본키에 대하여 이행적 함수종속이 아닌 모델
- 이행(함수) 종속성이 제거된 모델
보이스-코드 정규형 (BCNF: Boyce-Codd Normal Form)
- 어떤 릴레이션 R에서 생성되는 모든 함수종속 관계에 대하여 모든 결정자가 키인 모델
- 후보키가 하나만 존재하는 경우에는 보이스-코드 정규형과 3차 정규형이 동일
제4차 정규형 (4NF: 4th Normal Form)
- 보이스-코드 정규형이며 다치종속을 포함하지 않는 모델
- 다치종속성이 제거된 모델
제5차 정규형 (5NF: 5th Normal Form)
- 어떤 릴레이션 R에 존재하는 모든 조인종속이 R의 후보키를 통해서만 성립하는 모델