# μ •κ·œν™”(Normalization)


λ°μ΄ν„°μ˜ 쀑볡을 쀄이고, 무결성을 ν–₯μƒμ‹œν‚¬ 수 μžˆλŠ” μ •κ·œν™”μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž

# Normalization

κ°€μž₯ 큰 λͺ©ν‘œλŠ” ν…Œμ΄λΈ” κ°„ μ€‘λ³΅λœ 데이터λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” 것이닀.

μ€‘λ³΅λœ 데이터λ₯Ό λ§Œλ“€μ§€ μ•ŠμœΌλ©΄, 무결성을 μœ μ§€ν•  수 있고, DB μ €μž₯ μš©λŸ‰ λ˜ν•œ 효율적으둜 관리할 수 μžˆλ‹€.


# λͺ©μ 

  • λ°μ΄ν„°μ˜ 쀑볡을 μ—†μ• λ©΄μ„œ λΆˆν•„μš”ν•œ 데이터λ₯Ό μ΅œμ†Œν™”μ‹œν‚¨λ‹€.
  • 무결성을 지킀고, 이상 ν˜„μƒμ„ λ°©μ§€ν•œλ‹€.
  • ν…Œμ΄λΈ” ꡬ성을 논리적이고 μ§κ΄€μ μœΌλ‘œ ν•  수 μžˆλ‹€.
  • λ°μ΄ν„°λ² μ΄μŠ€ ꡬ쑰λ₯Ό ν™•μž₯에 μš©μ΄ν•΄μ§„λ‹€.

μ •κ·œν™”μ—λŠ” μ—¬λŸ¬κ°€μ§€ 단계가 μžˆμ§€λ§Œ, λŒ€μ²΄μ μœΌλ‘œ 1~3단계 μ •κ·œν™”κΉŒμ§€μ˜ 과정을 κ±°μΉœλ‹€.


# 제 1μ •κ·œν™”(1NF)

ν…Œμ΄λΈ” 컬럼이 μ›μžκ°’(ν•˜λ‚˜μ˜ κ°’)을 갖도둝 ν…Œμ΄λΈ”μ„ λΆ„λ¦¬μ‹œν‚€λŠ” 것을 λ§ν•œλ‹€.

λ§Œμ‘±ν•΄μ•Ό ν•  쑰건은 μ•„λž˜μ™€ κ°™λ‹€.

  • μ–΄λ–€ λ¦΄λ ˆμ΄μ…˜μ— μ†ν•œ λͺ¨λ“  도메인이 μ›μžκ°’λ§ŒμœΌλ‘œ λ˜μ–΄ μžˆμ–΄μ•Όν•œλ‹€.
  • λͺ¨λ“  속성에 λ°˜λ³΅λ˜λŠ” 그룹이 λ‚˜νƒ€λ‚˜μ§€ μ•ŠλŠ”λ‹€.
  • κΈ°λ³Έν‚€λ₯Ό μ‚¬μš©ν•˜μ—¬ κ΄€λ ¨ λ°μ΄ν„°μ˜ 각 집합을 κ³ μœ ν•˜κ²Œ 식별할 수 μžˆμ–΄μ•Ό ν•œλ‹€.


ν˜„μž¬ ν…Œμ΄λΈ”μ€ μ „ν™”λ²ˆν˜Έλ₯Ό μ—¬λŸ¬κ°œ 가지고 μžˆμ–΄ μ›μžκ°’μ΄ μ•„λ‹ˆλ‹€. λ”°λΌμ„œ 1NF에 λ§žμΆ”κΈ° μœ„ν•΄μ„œλŠ” μ•„λž˜μ™€ 같이 뢄리할 수 μžˆλ‹€.




# 제 2μ •κ·œν™”(2NF)

ν…Œμ΄λΈ”μ˜ λͺ¨λ“  컬럼이 μ™„μ „ ν•¨μˆ˜μ  쒅속을 λ§Œμ‘±ν•΄μ•Ό ν•œλ‹€.

쑰금 μ‰½κ²Œ λ§ν•˜λ©΄, ν…Œμ΄λΈ”μ—μ„œ κΈ°λ³Έν‚€κ°€ 볡합킀(ν‚€1, ν‚€2)둜 λ¬Άμ—¬μžˆμ„ λ•Œ, 두 ν‚€ 쀑 ν•˜λ‚˜μ˜ ν‚€λ§ŒμœΌλ‘œ λ‹€λ₯Έ μ»¬λŸΌμ„ 결정지을 수 있으면 μ•ˆλœλ‹€.

κΈ°λ³Έν‚€μ˜ 뢀뢄집합 ν‚€κ°€ κ²°μ •μžκ°€ λ˜μ–΄μ„  μ•ˆλœλ‹€λŠ” 것



Manufactureκ³Ό Model이 ν‚€κ°€ λ˜μ–΄ Model Full Name을 μ•Œ 수 μžˆλ‹€.

Manufacturer CountryλŠ” Manufacturer둜 인해 κ²°μ •λœλ‹€. (λΆ€λΆ„ ν•¨μˆ˜ 쒅속)

λ”°λΌμ„œ, Modelκ³Ό Manufacturer CountryλŠ” μ•„λ¬΄λŸ° 연관관계가 μ—†λŠ” 상황이닀.


κ²°κ΅­ μ™„μ „ ν•¨μˆ˜μ  쒅속을 μΆ©μ‘±μ‹œν‚€μ§€ λͺ»ν•˜κ³  μžˆλŠ” ν…Œμ΄λΈ”μ΄λ‹€. λΆ€λΆ„ ν•¨μˆ˜ 쒅속을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ ν…Œμ΄λΈ”μ„ μ•„λž˜μ™€ 같이 λ‚˜λˆ μ„œ 2NFλ₯Ό λ§Œμ‘±ν•  수 μžˆλ‹€.




# 제 3μ •κ·œν™”(3NF)

2NFκ°€ μ§„ν–‰λœ ν…Œμ΄λΈ”μ—μ„œ 이행적 쒅속을 μ—†μ• κΈ° μœ„ν•΄ ν…Œμ΄λΈ”μ„ λΆ„λ¦¬ν•˜λŠ” 것이닀.

이행적 쒅속 : A β†’ B, B β†’ Cλ©΄ A β†’ Cκ°€ μ„±λ¦½λœλ‹€

μ•„λž˜ 두가지 쑰건을 λ§Œμ‘±μ‹œμΌœμ•Ό ν•œλ‹€.

  • λ¦΄λ ˆμ΄μ…˜μ΄ 2NF에 λ§Œμ‘±ν•œλ‹€.
  • κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ 속성듀은 기본킀에 μ˜μ‘΄ν•œλ‹€.


ν˜„μž¬ ν…Œμ΄λΈ”μ—μ„œλŠ” Tournament와 Year이 κΈ°λ³Έν‚€λ‹€.

WinnerλŠ” 이 두 볡합킀λ₯Ό 톡해 κ²°μ •λœλ‹€.

ν•˜μ§€λ§Œ Winner Date of BirthλŠ” κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ Winner에 μ˜ν•΄ κ²°μ •λ˜κ³  μžˆλ‹€.

λ”°λΌμ„œ μ΄λŠ” 3NFλ₯Ό μœ„λ°˜ν•˜κ³  μžˆμœΌλ―€λ‘œ μ•„λž˜μ™€ 같이 뢄리해야 ν•œλ‹€.




# [μ°Έκ³  사항]

μ΅œμ’… μˆ˜μ • : 12/17/2022, 7:23:59 AM