λ°μ΄ν„°λ² μ΄μŠ€ μ •κ·œν™”

Database Normalization

μΆœμ œλΉˆλ„: 상
빈좜 νƒœκ·Έ: 쒅속성, μ •κ·œν™” 단계, 이상 ν˜„μƒ

1. 데이터 쒅속성 (Data Dependency)

1.1 κΈ°λ³Έ κ°œλ…

  • μ •μ˜: 데이터와 또 λ‹€λ₯Έ 데이터가 μ„œλ‘œ μ˜μ‘΄κ΄€κ³„λ₯Ό κ°€μ§€λŠ” 것
    • Aκ°€ 변경될 λ•Œ B도 변경됨
    • Aκ°€ μ‚­μ œλ  λ•Œ B도 μ‚­μ œλ¨
  • 데이터 μ’…μ†μ„±μœΌλ‘œ 인해 λ³€κ²½, μ‚½μž…, μ‚­μ œ λ“± μ œμ•½μ΄ λ”°λ₯΄κ±°λ‚˜ 무결성이 훼손됨

1.2 μ’…μ†μ„±μ˜ μ’…λ₯˜

  1. ν•¨μˆ˜ 쒅속
  2. λ‹€κ°€(λ‹€μΉ˜)쒅속
  3. 쑰인 쒅속

2. ν•¨μˆ˜μ  쒅속 (Functional Dependency)

2.1 μ •μ˜

  • ν•œ 속성이 λ‹€λ₯Έ 속성을 μœ μΌν•˜κ²Œ 식별할 수 μžˆλŠ” μƒνƒœ
  • ν‘œκΈ°λ²•: A β†’ B (A속성이 B속성을 μœ μΌν•˜κ²Œ 식별)

2.2 κ΅¬μ„±μš”μ†Œ

  • κ²°μ •μž(Determinant)
    • 쒅속성 규λͺ…μ˜ κΈ°μ€€ 속성
    • μœ μΌν•¨
    • 쀑볡 λΉ„ν—ˆμš©
  • μ’…μ†μž(Dependent)
    • κ²°μ •μžμ— μ˜ν•΄ 값이 μ •ν•΄μ§€λŠ” 속성
    • 쀑볡 ν—ˆμš©

3. λ‹€κ°€(λ‹€μΉ˜) 쒅속 (MultiValued Dependency)

  • ν•˜λ‚˜μ˜ κ²°μ •μžκ°€ λ‹€λ₯Έ μ—¬λŸ¬ κ΄€λ ¨μ—†λŠ” μ†μ„±μ˜ 값을 κ²°μ •
  • ν‘œκΈ°λ²•: G -Β» H J
  • μ˜ˆμ‹œ: ν•™λ²ˆ -> 이름 λŒ€μ—¬νšŸμˆ˜
  • νŠΉμ§•: H, JλŠ” μ„œλ‘œ 관련이 μ—†μŒ

4. 쑰인 쒅속 (Join Dependency)

  • μ…‹ μ΄μƒμ˜ λ¦΄λ ˆμ΄μ…˜μœΌλ‘œ λΆ„ν•΄ν•œ λ’€ λ‹€μ‹œ μ‘°μΈν•˜μ—¬ 볡원 κ°€λŠ₯
  • 곡톡킀λ₯Ό κΈ°μ€€μœΌλ‘œ λ‹€μ‹œ μ‘°μΈλ˜μ–΄ 볡원할 수 μžˆμ–΄μ•Ό 함

5. 폐포 (Closure)

5.1 μ •μ˜

  • νŠΉμ • 속성에 μ’…μ†λ˜μ—ˆλ‹€κ³  μΆ”λ‘  κ°€λŠ₯ν•œ λͺ¨λ“  μ†μ„±μ˜ μ§‘ν•©
  • ν‘œκΈ°λ²•: νšŒμ›λ²ˆν˜Έ+

5.2 쒅속성 μΆ”λ‘  κ·œμΉ™

  1. λ°˜μ‚¬(Reflexivity)
    • Yκ°€ X의 뢀뢄집합일 λ•Œ Xβ†’Y 성립
  2. 증가(Augmentation)
    • Xβ†’Y이면 XZβ†’YZ 성립
  3. 이행(Transitivity)
    • Xβ†’Y이고 Yβ†’Z이면 Xβ†’Z 성립
  4. κ²°ν•©(Union)
    • Xβ†’Y이고 Xβ†’Z이면 Xβ†’YZ 성립
  5. λΆ„ν•΄(Decomposition)
    • Xβ†’YZ이면 Xβ†’Y이고 Xβ†’Z 성립
  6. μ˜μ‚¬μ΄ν–‰(Pseudo Transitivity)
    • Xβ†’Y이고 YZβ†’W이면 XZβ†’W 성립

6. μ •κ·œν™” (Normalization)

6.1 μ •μ˜μ™€ νŠΉμ§•

  • 쀑볡성을 μ΅œμ†Œν™”ν•˜κ³  μ •λ³΄μ˜ 일관성을 보μž₯
  • 논리 데이터 λͺ¨λΈλ§ μƒμ„Έν™”μ—μ„œ κ°€μž₯ μ€‘μš”ν•œ 단계
  • νŠΉμ§•
    • μ •ν™•μ„±, μΌμΉ˜μ„±, λ‹¨μˆœμ„±, 비쀑볡성, μ•ˆμ •μ„± 보μž₯
    • λΆ„ν•΄ νŒλ‹¨κΈ°μ€€ 제곡
    • 무결성 μœ μ§€
    • μœ μ—°ν•œ 데이터 ꡬ좕 κ°€λŠ₯ (단, 물리적 μ ‘κ·Όκ²½λ‘œκ°€ λ³΅μž‘ν•΄μ§)

6.2 μ •κ·œν™” 단계

  • λΉ„μ •κ·œν˜•: μ •κ·œν™” μ§„ν–‰ μ•ˆλœ μƒνƒœ
  • κΈ°λ³Έ μ •κ·œν˜•
    • 1NF
    • 2NF (λΆ€λΆ„ ν•¨μˆ˜ 쒅속 제거)
    • 3NF (이행적 ν•¨μˆ˜ 쒅속 제거)
    • BCNF
  • κ³ κΈ‰ μ •κ·œν˜•
    • 4NF (λ‹€μΉ˜ 쒅속 제거)
    • 5NF (쑰인 쒅속 제거)

6.3 이상 ν˜„μƒ

  • λͺ©μ : 데이터 μ‚½μž…, κ°±μ‹ , μ‚­μ œμ—μ„œ λ°œμƒν•˜λŠ” μ΄μƒν˜„μƒ 제거
  • μ’…λ₯˜
    1. μ‚½μž… 이상: νŠœν”Œ μ‚½μž… μ‹œ κ΄€λ ¨μ—†λŠ” 정보 ν•¨κ»˜ μ‚½μž…
    2. κ°±μ‹  이상: νŠœν”Œ κ°±μ‹  μ‹œ 데이터 뢈일치
    3. μ‚­μ œ 이상: νŠœν”Œ μ‚­μ œ μ‹œ κ΄€λ ¨λœ 정보 ν•¨κ»˜ μ‚­μ œ

6.4 μ •κ·œν˜• 단계별 μ„€λͺ…

제1μ •κ·œν˜• (1NF)

  • λͺ¨λ“  μ†μ„±μ˜ 도메인이 μ›μžκ°’μ„ 가짐
  • μ›μžκ°’μ΄ μ•„λ‹Œ 값을 κ°€μ§€λŠ” 속성 제거
  • 쀑볡 μ œκ±°κ°€ μ•„λ‹Œ μ›μžκ°’ 보μž₯이 λͺ©μ 

제2μ •κ·œν˜• (2NF)

  • λͺ¨λ“  속성이 μ™„μ „ ν•¨μˆ˜ 쒅속을 가짐
  • μ™„μ „ ν•¨μˆ˜ 쒅속: μ’…μ†μžκ°€ λͺ¨λ“  κ²°μ •μžμ— 쒅속
  • λΆ€λΆ„ ν•¨μˆ˜ 쒅속: μ’…μ†μžκ°€ 일뢀 κ²°μ •μžμ— 쒅속
  • μ˜ˆμ‹œ
    • λΆ€λΆ„ν•¨μˆ˜μ’…μ†: ν•™λ²ˆβ†’μ΄λ¦„
    • μ™„μ „ν•¨μˆ˜μ’…μ†: {ν•™λ²ˆ,κ³Όλͺ©}→성적

제3μ •κ·œν˜• (3NF)

  • 이행적 ν•¨μˆ˜ 쒅속을 κ°€μ§„ 속성 제거
  • μ˜ˆμ‹œ: λ„μ„œμ½”λ“œβ†’λ„μ„œλͺ…, λ„μ„œλͺ…β†’μ €μž, λ„μ„œμ½”λ“œβ†’μ €μž

BCNF (Boyce-Codd Normal Form)

  • κ²°μ •μžκ°€ 후보킀가 μ•„λ‹Œ ν•¨μˆ˜ 쒅속 제거
  • λ¦΄λ ˆμ΄μ…˜μ΄ 3NF이고 λͺ¨λ“  κ²°μ •μžκ°€ 후보킀
  • μ‹€μ œμ μΈ μ •κ·œν™”μ˜ λͺ©ν‘œ 단계

제4μ •κ·œν˜• (4NF)

  • λ‹€μΉ˜μ’…μ†μ„±μ„ κ°€μ§„ 속성 제거
  • μ˜ˆμ‹œ: κ³Όλͺ© -Β» 강사 ν”„λ‘œκ·Έλž¨

제5μ •κ·œν˜• (5NF)

  • 쑰인 쒅속을 제거
  • 쑰인 쒅속성이 후보킀λ₯Ό ν†΅ν•΄μ„œλ§Œ 성립

7. 논리 데이터 λͺ¨λΈ ν’ˆμ§ˆ 검증

7.1 데이터 λͺ¨λΈμ˜ ν‰κ°€μš”μ†Œ

  1. μ™„μ „μ„±(Completeness)
  2. 쀑볡 배제(Non-Redundancy)
  3. 업무 κ·œμΉ™(Business Rule)
  4. 데이터 μž¬μ‚¬μš©(Data Reusability)
  5. μ•ˆμ •μ„± 및 ν™•μž₯μ„±
  6. κ°„κ²°μ„±
  7. μ˜μ‚¬μ†Œν†΅

7.2 논리 데이터 λͺ¨λΈ ν’ˆμ§ˆ κΈ°μ€€

  1. μ •ν™•μ„±
  2. μ™„μ „μ„±: λˆ„λ½ μ΅œμ†Œν™”
  3. μ€€κ±°μ„±: 데이터 ν‘œμ€€, ν‘œμ€€ν™” κ·œμΉ™, 법적 μš”κ±΄ μ€€μˆ˜
  4. μ΅œμ‹ μ„±
  5. 일관성(톡합성)
  6. ν™œμš©μ„±