정규화 목적 - 이상 현상 (Anomaly) 방지
데이터들이 불필요하게 중복 되어 릴레이션 (테이블) 조작 시 예기치 않게 발생하는 곤란한 현상
- 삽입 이상
(=Insertion~) 데이터 삽입 시 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상
- 삭제 이상
(=Deletion~) 튜플 삭제 시 의도와 상관 없는 값들도 함께 삭제,
연쇄 삭제 발생하는 현상
- 갱신 이상
(=Update ~) 속성 값 갱신 시 일부 튜플의 정보만 갱신,
정보에 불일치성(Incomsistency) 이 생기는 현상
- 정규화란 무엇인가?
- 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정
- 중복을 최소화하면서 데이터 구조를 짜는 프로세스
- 데이터 무결성 유지 / DB의 저장 용량 확보
정규화 단계
- 제 1정규형 (1NF)
테이블의 모든 속성을 원자화
(= 한 속성이 여러 개의 값을 가지지 않음)
- 제 2정규형 (2NF)
기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수 종속을 만족 = 부분적 함수적 종속 제거
주 식별자가 아닌 속성을 분리한다
- 제 3정규형 (3NF)
이행 함수 종속 제거
A→ B이고, B→ C면서 A→ C가 함께 있는 경우를 분리
BCNF 모든 결정자가 후보키인 정규형
= 결정자이면서 후보키 아닌 것 제거
직접 영향 주는 결정자를 후보키로 분리
- 제 4정규형 (4NF)
다치 종속성 제거
= 1: 다끼리만 남기기
즉 A →→ B가 존재할 때 모든 속성이 A에 함수적 종속
- 제 5정규형(5NF)
테이블의 모든 조인 종속이 후보키를 통해서만 성립
조인 종속성 이용
💡 요약 답변
정규화란 데이터의 중복을 최소화하면서, 데이터 구조를 짜는 프로세스입니다. 정규화 과정은 이상 현상을 방지하기 위해 수행합니다. 이상 현상은 데이터들이 불필요하게 중복 되어 릴레이션 (테이블) 조작 시 예기치 않게 발생하여 데이터의 값을 제대로 다룰 수 없는 현상을 말하며, 삽입 이상, 삭제 이상, 갱신 이상 등이 있습니다. 정규화 단계는 각 총 6개의 정규형을 만족하도록 하는 과정을 거칩니다.