정규화 1~3 Normalization

agnusdei·2025년 5월 5일
0

Database

목록 보기
16/30

2정규형(2NF)과 3정규형(3NF)은 릴레이션 모델에서 데이터 중복 제거데이터 무결성 유지를 위한 핵심 정규화 단계입니다. 기술사 관점에서는 정의, 적용 조건, 예시, 효과까지 구조적으로 정리해야 합니다.


1. 제1정규형 (1NF) - 전제조건

속성의 원자성(Atomicity) 만족:
하나의 필드는 하나의 값만 저장 (반복 속성 제거)

예시 (1NF 위반)

order_idcustomer_nameitem_list
1001홍길동책A, 책B, 책C

item_list는 다중 값 → 1NF 위반


2. 제2정규형 (2NF: Second Normal Form)

정의

  • 1NF를 만족하고
  • 기본키가 복합키일 때,
  • **부분 함수 종속(Partial Dependency)**을 제거한 형태

조건

  • 모든 **비주요 속성(Non-prime attribute)**은
    기본키 전체에 대해 완전 함수 종속이어야 한다.

문제 상황

예시 테이블: OrderItem(order_id, book_id, book_title, quantity)

  • 기본키: (order_id, book_id)
  • book_titlebook_id에만 종속 → 부분 종속

해결 (2NF 적용)

  • OrderItem(order_id, book_id, quantity)
  • Book(book_id, book_title)로 분리

3. 제3정규형 (3NF: Third Normal Form)

정의

  • 2NF를 만족하고
  • **비주요 속성이 다른 비주요 속성에 이행적으로 종속(Transitive Dependency)**되지 않아야 한다.

조건

  • 비주요 속성 A가
    → 비주요 속성 B를 결정하고
    → B가 기본키에 종속되면
    → A는 기본키에 이행적 종속

문제 상황

예시 테이블: Member(member_id, name, zip_code, city)

  • zip_codecity를 결정함 → 이행적 종속

해결 (3NF 적용)

  • Member(member_id, name, zip_code)
  • ZipCode(zip_code, city)로 분리

정규화 요약 비교표

구분정의제거 대상효과
1NF속성의 원자성반복 속성기본적인 릴레이션 구조화
2NF기본키에 완전 종속부분 함수 종속복합키 기준 정합성 확보
3NF이행적 종속 제거이행 함수 종속비정규화된 중복 정보 제거

정규화 적용 효과

  • 데이터 중복 감소 → 저장공간 절약
  • 갱신 이상(UPDATE anomaly) 방지
  • 삽입/삭제 이상 방지
  • 데이터 무결성 향상

어린이 버전 요약

1단계에서는 "하나 칸에 한 가지 정보만 써요!"
2단계는 "부분적인 정보 말고, 전체랑 연결되게 해요!"
3단계는 "정보가 서로 얽히지 않게 따로 분리해요!"

그래서 나중에 찾고 바꾸기 쉽게 만들어요!


0개의 댓글