Terriermon - Digimon

정규화

2025. 3. 4. 16:27자격증/정보처리기사

📌 정규화(Normalization)란?

  • 데이터베이스에서 중복을 최소화하고 데이터 무결성을 보장하기 위한 과정.
  • **정규형(Normal Form, NF)**은 1NF, 2NF, 3NF, BCNF, 4NF, 5NF 등의 단계가 있음.
  • 핵심 목표: 데이터 중복을 제거하고, 이상(Anomaly)을 방지하여 데이터 무결성을 높이는 것.

🔹 정규형(NF)별 차이점과 적용 방법

1. 제1정규형 (1NF) → 원자성 (Atomicity)

📌 조건

  • 모든 컬럼의 값이 원자적(Atomic)이어야 한다.
  • 즉, 한 칸(셀)에 여러 값이 들어가면 안 됨.

적용 방법

  • 다중값(Multivalued)이 들어가 있으면 각 값을 개별 행으로 분리.

🔹 예제 (1NF 위반)

고객ID강좌명강사번호

A01 영어회화, 토익 P001, P002

🔺 강좌명과 강사번호에 여러 개의 값이 들어있음 → 1NF 위반

1NF 적용 후

고객ID강좌명강사번호

A01 영어회화 P001
A01 토익 P002

🔹 한 칸(셀)에 하나의 값만 포함되도록 변환하면 1NF 만족!


2. 제2정규형 (2NF) → 부분 종속 제거

📌 조건

  • 1NF를 만족하면서, 기본 키의 일부가 아닌 속성은 기본 키 전체에 종속되어야 한다.
  • 즉, **부분 함수 종속(Partial Dependency)**을 제거해야 함.

적용 방법

  • 기본 키의 일부에만 종속되는 속성이 있으면 별도 테이블로 분리.

🔹 예제 (2NF 위반)

고객ID강좌명강사번호강사이름

A01 영어회화 P001 홍길동
A02 토익 P002 김철수
  • 기본 키 = (고객ID, 강좌명)
  • 강사번호와 강사이름은 강좌명에만 종속됨. (즉, 고객ID와 무관함) → 2NF 위반

2NF 적용 후

🔹 고객-강좌 테이블

고객ID강좌명

A01 영어회화
A02 토익

🔹 강좌 테이블

강좌명강사번호강사이름

영어회화 P001 홍길동
토익 P002 김철수

🔹 이제 모든 속성이 기본 키 전체에 종속되므로 2NF 만족!


3. 제3정규형 (3NF) → 이행적 종속 제거

📌 조건

  • 2NF를 만족하면서, 기본 키에 직접 종속되지 않는 속성이 없어야 한다.
  • 즉, 이행적 종속(Transitive Dependency) 제거가 필요함.

적용 방법

  • 기본 키가 아닌 속성이 또 다른 속성을 결정하면 별도 테이블로 분리.

🔹 예제 (3NF 위반)

강좌명강사번호강사이름

영어회화 P001 홍길동
토익 P002 김철수
  • 강사이름은 강좌명에 의해 결정되는 것이 아니라, 강사번호(P001, P002)에 의해 결정됨.
    (즉, 강좌명 → 강사번호 → 강사이름이라는 이행적 종속이 발생) → 3NF 위반

3NF 적용 후

🔹 강좌 테이블

강좌명강사번호

영어회화 P001
토익 P002

🔹 강사 테이블

강사번호강사이름

P001 홍길동
P002 김철수

🔹 강사이름을 강사번호 테이블로 분리하면 3NF 만족!


4. BCNF (Boyce-Codd Normal Form) → 복합키 종속 제거

📌 조건

  • 3NF를 만족하면서, 모든 결정자가 후보키(Super Key)여야 한다.
  • 즉, 후보키가 아닌 속성이 다른 속성을 결정하면 BCNF 위반.

적용 방법

  • 후보키가 아닌 속성이 또 다른 속성을 결정하면 별도 테이블로 분리.

🔹 예제 (BCNF 위반)

학생ID과목교수

S01 데이터베이스 김교수
S02 운영체제 이교수
  • 기본 키 = (학생ID, 과목)
  • 하지만 과목 → 교수 종속성이 존재. (즉, 과목이 교수명을 결정)
  • BCNF 위반

BCNF 적용 후

🔹 학생-수업 테이블

학생ID과목

S01 데이터베이스
S02 운영체제

🔹 과목-교수 테이블

과목교수

데이터베이스 김교수
운영체제 이교수

🔹 정리: 정규형 단계별 특징

정규형핵심 개념

1NF 원자성 (한 칸에 하나의 값)
2NF 부분 종속 제거 (기본 키 전체에 종속)
3NF 이행적 종속 제거 (기본 키만이 다른 속성을 결정)
BCNF 모든 결정자가 후보키여야 함
반응형