제2정규형 (2NF)

핵심 인사이트 (3줄 요약)

  1. 본질: 제2정규형 (Second Normal Form, 2NF)은 1NF를 만족하며, 기본 키가 복합 키인 경우 모든 비키 속성이 기본 키에 완전 종속하는 상태다.
  2. 가치: 2NF는 부분 종속성 (Partial Dependency)을 제거하여 데이터 중복을 줄이고, 갱신 이상의 한 원인를 제거한다.
  3. 융합: 2NF 적용은 복합 키를 가지는 테이블 (주문항목, 수강 내역 등)에서 특히 중요하며, E-R 모델에서 관계의분해理论基础가 된다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

개념 정의

제2정규형 (2NF)은 1NF를 만족하고, 기본 키가 복합 키인 경우 모든 비키 속성이 기본 키에 완전 종속하는 상태다.

부분 종속성이란?

부분 종속성이란 복합 기본 키의 일부에만 종속되는 비키 속성을 말한다.

┌─────────────────────────────────────────────────────────────────────┐
│                    부분 종속성 예시                                       │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│   [复合键 테이블: 주문항목]                                           │
│   ┌────────┬────────┬────────┬────────┬──────────┐            │
│   │ 주문ID  │ 상품ID  │ 수량   │ 단가   │ 상품명    │ ← 상품명    │
│   ├────────┼────────┼────────┼────────┼──────────┤   은 상품ID   │
│   │ O001   │ P001   │ 2      │ 500000 │ TV       │ ← 에만 종속  │
│   │ O001   │ P002   │ 1      │ 800000 │ 냉장고    │   (부분 종속) │
│   │ O002   │ P001   │ 3      │ 500000 │ TV       │            │
│   └────────┴────────┴────────┴────────┴──────────┘            │
│       ↑                                                           │
│       └────────────────── 기본 키 (복합 키)                          │
│                                                                     │
│   부분 종속성 문제점:                                               │
│   • 상품명 변경 시 상품ID=P001인 모든 행을 수정해야 함                │
│   • 새 상품의 가격이 확정되었지만 주문이 없으면 삽입 불가 (삽입 이상)   │
│   • 상품ID=P001인 모든 주문 삭제 시 상품 정보도 함께 삭제 (삭제 이상)   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

[다이어그램 해설] 주문항목 테이블에서 (주문ID, 상품ID)가 기본 키이고, 수량과 단가는 기본 키 전체에 종속된다. 그러나 상품명은 상품ID에만 종속되므로 부분 종속성이다. 이 경우 상품명 변경 시 여러 행을 수정해야 하고, 새商品的 정보만 삽입하려면 주문ID가 필요하므로 삽입이 불가능하다.

비유

부분 종속성은 반에서 학번만으로 알 수 있는 정보를 별도 표에 두는 것과 같다. 반, 학번, 이름, 학과가 있을 때, (반, 학번)이 기본 키인데 이름은 학번만으로 알 수 있다. 이러면 이름은 학번에만 종속되는 부분 종속성이다.

  • **📢 섹션 요약 비유:**학급에서 "반+번호"를 해야 학생을 찾을 수 있는데, "이름"은 "번호"만으로도 찾을 수 있다면, 이름은 별도 표로 분리해야 부분 종속이 사라져요.

Ⅱ. 2NF 분해 과정

분해 전 (1NF, but not 2NF)

┌─────────────────────────────────────────────────────────────────────┐
│                    2NF 분해 전 (부분 종속성 존재)                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│   주문항목 (1NF, 部分 종속 존재):                                     │
│   ┌────────┬────────┬────────┬────────┬──────────┐            │
│   │ 주문ID* │ 상품ID* │ 수량   │ 단가   │ 상품명    │            │
│   ├────────┼────────┼────────┼────────┼──────────┤            │
│   │ O001   │ P001   │ 2      │ 500000 │ TV       │            │
│   │ O001   │ P002   │ 1      │ 800000 │ 냉장고    │            │
│   │ O002   │ P001   │ 3      │ 500000 │ TV       │            │
│   └────────┴────────┴────────┴────────┴──────────┘            │
│       * = 기본 키 (복합 키)                                          │
│                                                                     │
│   종속성:                                                          │
│   • (주문ID, 상품ID) → 수량 (완전 종속)                             │
│   • (주문ID, 상품ID) → 단가 (완전 종속)                             │
│   • (주문ID, 상품ID) → 상품명 (상품ID에만 종속 → 부분 종속)         │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

분해 후 (2NF 충족)

┌─────────────────────────────────────────────────────────────────────┐
│                    2NF 분해 후 (2NF 충족)                                 │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│   [주문항목] (기본 키: 주문ID + 상품ID)                              │
│   ┌────────┬────────┬────────┐                                    │
│   │ 주문ID* │ 상품ID* │ 수량   │                                    │
│   ├────────┼────────┼────────┤                                    │
│   │ O001   │ P001   │ 2      │                                    │
│   │ O001   │ P002   │ 1      │                                    │
│   │ O002   │ P001   │ 3      │                                    │
│   └────────┴────────┴────────┘                                    │
│       * = 기본 키 (복합 키)                                          │
│                                                                     │
│   [상품] (기본 키: 상품ID)                                           │
│   ┌────────┬────────┬────────┐                                    │
│   │ 상품ID* │ 상품명  │ 단가   │                                    │
│   ├────────┼────────┼────────┤                                    │
│   │ P001   │ TV     │ 500000 │                                    │
│   │ P002   │ 냉장고  │ 800000 │                                    │
│   └────────┴────────┴────────┘                                    │
│                                                                     │
│   ※ (주문ID, 상품ID)는 외래 키로 상품 테이블을 참조                  │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

[다이어그램 해설] 2NF 분해는 부분 종속성을 분리하는 것이다. 상품명(상품ID에 종속)과 단가(기본 키에 완전 종속)이 상품 테이블로 분리되고, 주문항목 테이블에는 기본 키와 완전 종속인 수량만 남는다. 상품 테이블의 상품ID는 기본 키이자 외래 키로, 주문항목 테이블에서 참조한다.


Ⅲ. 2NF 충족 조건 요약

┌─────────────────────────────────────────────────────────────────────┐
│                    2NF 충족 조건 체크리스트                               │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│   □ 1NF를 만족함                                                    │
│   □ 기본 키가 단일 열이면 → 2NF 자동 충족!                           │
│   □ 기본 키가 복합 키이면 → 모든 비키 속성이 기본 키 전체에 완전 종속    │
│   □ 부분 종속성 제거 (별도 테이블로 분리)                              │
│                                                                     │
│   ※ 주의: 기본 키가 단일 열인 테이블은 1NF만으로 2NF를 충족함          │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘
  • **📢 섹션 요약 비유:**장난감 상자를 종류별로 나누면 (2NF), 같은 종류끼리 모여있어 정리하기 좋고, 새로운 종류를 추가하기도 쉬워져요.

📌 관련 개념 맵 (Knowledge Graph)

개념 명칭관계 및 시너지 설명
부분 종속성복합 기본 키의 일부에만 종속되는 비키 속성으로, 2NF에서 제거 대상이다.
완전 종속성기본 키 전체에 종속되는 것으로, 2NF에서 요구하는 종속성이다.
복합 키두 개 이상의 열로 구성된 기본 키로, 부분 종속성이 존재할 수 있다.
외래 키분해 시 참조 무결성을 위해 필요한 키로, 2NF 분해에서 핵심적이다.

👶 어린이를 위한 3줄 비유 설명

  1. 2NF는 장난감 상자를 종류별로 나누는 것이에요. "자동차 장난감"과 "인형 장난감"을 다른 상자에 넣으면 한 상자에서 찾는 것이 더 쉬워져요.
  2. 만약 "부로콘 자동차"가 여러 상자에 있으면 (부분 종속), 자동차 색을 바꿀 때 여러 상자를 다 찾아봐야 해요.
  3. 종류별로 정리하면 (2NF 분해), 각 상자에는 종류만의 정보가 있게 되어管理가 쉬워져요!