공부/데이터베이스
[데이터베이스] DB 정규화 (Normalization)
강갱갱
2025. 6. 15. 06:45
9장: 정규화 (Normalization)
정규화는 데이터베이스 설계 과정에서 데이터 중복을 최소화하고, 이상현상(Anomaly)을 제거하기 위해 사용되는 중요한 절차입니다.
이상(Anomaly) 현상이란?
데이터 삽입, 수정, 삭제 시 발생하는 불일치 또는 비효율 문제를 말합니다.
데이터 삽입, 수정, 삭제 시 발생하는 불일치 또는 비효율 문제를 말합니다.
📌 이상(Anomaly)의 종류
- 삽입 이상 : 특정 데이터를 삽입할 때 불필요한 데이터까지 함께 삽입해야 하는 문제
- 갱신 이상 : 중복된 데이터 중 일부만 수정되어 데이터 불일치가 발생
- 삭제 이상 : 하나의 데이터만 삭제하고 싶지만, 다른 중요한 데이터까지 함께 삭제되는 문제
📌 함수 종속(Function Dependency)
X → Y : X를 알면 Y를 유일하게 알 수 있는 관계입니다. 여기서 X는 결정자(Determinant), Y는 종속자(Dependent)입니다.
학번 → 이름
→ 학번을 알면 이름을 안다.고객아이디 → 고객이름
{고객아이디, 이벤트번호} → 당첨여부
{고객아이디, 이벤트번호} → 고객이름
→ 부분 함수 종속
부분 함수 종속 : 기본키의 일부에만 종속되는 경우
이행적 함수 종속 : A → B, B → C 이면 A → C 관계가 생기는 경우
이행적 함수 종속 : A → B, B → C 이면 A → C 관계가 생기는 경우
📚 정규형 종류
✅ 제1 정규형 (1NF)
모든 속성 값이 원자값(Atomic Value)만을 가지는 상태.
즉, 반복되는 그룹 또는 배열 구조 제거
✅ 제2정규형 (2NF)
1NF를 만족하면서, 기본키의 모든 속성에 완전 함수 종속해야 함.
→ 부분 함수 종속 제거
✅ 제3정규형 (3NF)
2NF를 만족하면서, 이행적 함수 종속 제거
- 예: 고객아이디 → 등급, 등급 → 할인율 ⇒ 고객아이디 → 할인율 (이행적 종속)
✅ 보이스-코드 정규형 (BCNF)
릴레이션에 존재하는 모든 결정자(Determinant)가 반드시 후보키여야 함.
결정자가 후보키가 아니라면 정규화 더 필요함.
💡 후보키가 아닌 결정자가 있으면 → BCNF 위반
✅ 제4정규형 (4NF)
다치종속(Multivalued Dependency) 제거
한 릴레이션 내에서 두 개의 독립적인 다치 속성이 있을 때 분해
✅ 제5정규형 (5NF)
조인 종속(Join Dependency)을 만족하는 상태
→ 여러 릴레이션을 조인하여 원래 릴레이션을 복원할 수 있어야 함
📌 요약 정리
- 1NF : 원자값
- 2NF : 부분 함수 종속 제거
- 3NF : 이행적 함수 종속 제거
- BCNF : 결정자가 후보키
- 4NF : 다치 종속 제거
- 5NF : 조인 종속 제거
🔄 PDF 예제와 함께 공부하면 완벽하게 이해됩니다!
반응형