![article thumbnail image](https://blog.kakaocdn.net/dn/bR4Dt6/btqDJgdguhH/QUVdwsofMqT5sXHLzTM7pK/img.png)
정규화의 개요
정규화: 함수의 종속성을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성으로 쪼개는 과정, 데이터의 중복을 최소화로 줄이기 위함
데이터베이스의 논리적 설계 단계에서 수행한다.
정보의 무손실 표현: 정보의 손실이 있어서는 안 된다.
분리의 원칙: 독립된 관계성은 하나의 독립된 릴레이션으로 분리시켜야 한다.
데이터 중복성 감소
Anomaly(이상)의 개념 및 종류
Anomaly: 정규화를 거치지 않으면 불필요하게 중복된 데이터로 인해, 릴레이션 조작 시 예기치 못한 현상이 발생한다.
삽입 이상(Insertion Anomaly): 원치 않은 값도 함께 삽입해야 하는 현상
삭제 이상(Deletion Anomaly): 원치 않은 값도 함께 삭제되는 현상, 연쇄 삭제 현상
갱신 이상(Update Anomaly): 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
정규화 과정
1NF(제1정규형): 모든 도메인이 원자값으로 되어 있는 릴레이션
2NF(제2정규형): 기본키에 대하여 완전 함수적 종속 관계 만족
함수적 종속 관계: 릴레이션 내 모든 튜플을 대상으로 하나의 X 값에 대한 Y 값이 항상 하나인 관계, "Y가 X에 함수적으로 종속되어 있다"
<고객> 릴레이션이 (아이디, 이름, 등급)일 때, 각 아이디 속성 값에 대응되는 이름 속성과 등급 속성 값이 단 하나임
아이디→이름, 아이디→등급
완전 함수적 종속 관계: 릴레이션에서 속성 집합 Y가 속성 집합 X에 함수적으로 종속되어 있으나, 속성 집합 X의 전체가 아닌 일부분에는 종속되지 않음
<수강> 릴레이션이 (학번, 과목, 성적)일 때, 성적은 (학번, 과목명)에는 함수 종속적이지만, (학번)이나 (과목명)에는 함수 종속이 아님
(학번, 과목명)→성적
이행적 종속 관계: A→B이고 B→C일 때, A→C를 만족하는 관계
3NF(제3정규형): 기본키에 대해 이행적 종속 관계를 이루지 않도록 제한한 관계형
BCNF(Boyce-Codd 정규형): 결정자가 모두 후보키