DB

DB μ •κ·œν™”λž€?

DAHLIA CHOI 2024. 1. 14. 00:39

πŸ”Έμ •κ·œν™”λž€?

μ΄μƒν˜„μƒμ΄ μžˆλŠ” λ¦΄λ ˆμ΄μ…˜μ„ λΆ„ν•΄ν•΄ν•˜μ—¬ μ΄μƒν˜„μƒμ„ μ—†μ• λŠ” κ³Όμ • μ΄μƒν˜„μƒμ΄ μ‘΄μž¬ν•˜λŠ” λ¦΄λ ˆμ΄μ…˜μ„ λΆ„ν•΄ν•˜μ—¬ μ—¬λŸ¬ 개의 λ¦΄λ ˆμ΄μ…˜μ„ μƒμ„±ν•˜κ²Œ λœλ‹€. 이λ₯Ό λ‹¨κ³„λ³„λ‘œ κ΅¬λΆ„ν•˜μ—¬ μ •κ·œν˜•μ΄ λ†’μ•„μ§ˆ 수둝 μ΄μƒν˜„μƒμ΄ μ€„μ–΄λ“€κ²Œ λœλ‹€.

 

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

  1. 각 컬럼이 ν•˜λ‚˜μ˜ μ†μ„±λ§Œ κ°€μ Έμ•Ό ν•œλ‹€.
  2. ν•˜λ‚˜μ˜ μ»¬λŸΌμ€ 같은 μ’…λ₯˜λ‚˜ νƒ€μž…μ˜ 값을 κ°€μ Έμ•Ό ν•œλ‹€.
  3. 각 컬럼이 μœ μΌν•œ 이름을 κ°€μ Έμ•Όν•œλ‹€.
  4. 칼럼의 μˆœμ„œκ°€ 상관없어야 ν•œλ‹€.
학생 번호 이름 κ³Όλͺ©
101 μ•„μ΄μœ  운영체제, DB
102 ν•œνš¨μ£Ό μžλ°”

 

ν•΄λ‹Ή ν…Œμ΄λΈ”μ€ κ³Όλͺ©μ—μ„œ ν•˜λ‚˜λ§Œμ˜ 속성을 가지고 μžˆμ§€ μ•ŠμŒ!!

 

ν•΄κ²°

ν•™μƒλ²ˆν˜Έ 이름 κ³Όλͺ©
101 μ•„μ΄μœ  운영체제
101 μ•„μ΄μœ  DB
102 ν•œνš¨μ£Ό μžλ°”

 

μΉ΅ 칼럼이 μ›μž 값을 갖도둝 ν•˜λ©΄ 제1 μ •κ·œν˜•μ„ λ§Œμ‘±ν•  수 있음



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

  1. 1μ •κ·œν˜•μ„ λ§Œμ‘±ν•΄μ•Ό ν•œλ‹€.
  2. λͺ¨λ“  칼럼이 뢀뢄적 쒅속이 μ—†μ–΄μ•Ό ν•œλ‹€. (즉, λͺ¨λ“  칼럼이 μ™„μ „ ν•¨μˆ˜ 쒅속을 λ§Œμ‘±ν•΄μ•Ό ν•œλ‹€)

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

이 ν…Œμ΄λΈ”μ€ (ν•™μƒλ²ˆν˜Έ + κ°•μ’Œμ΄λ¦„)으둜 성적을 κ²°μ •ν•˜κ³  μžˆλ‹€!! 즉, 뢀뢄집합 (ν•™μƒλ²ˆν˜Έ + κ°•μ’Œμ΄λ¦„)이 이 ν…Œμ΄λΈ”μ˜ κΈ°λ³Έν‚€κ°€ 되고 μžˆλ‹€. ν•˜μ§€λ§Œ κ°•μ˜μ‹€μ€ κ°•μ’Œμ΄λ¦„μœΌλ‘œ κ²°μ •λ˜κΈ° λ•Œλ¬Έμ— 제2 μ •κ·œν˜•μ— λ§žμ§€ μ•Šλ‹€.

 

ν•΄κ²°

κ°•μ˜μ‹€μ„ κ°•μ’Œμ΄λ¦„μ΄ κΈ°λ³Έν‚€κ°€ λ˜λŠ” ν…Œμ΄λΈ”λ‘œ λ”°λ‘œ λΆ„λ¦¬ν•œλ‹€λ©΄ 제2 μ •κ·œν˜•μ„ λ§Œμ‘±ν•  수 μžˆλ‹€.



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

  1. 제2 μ •κ·œν˜•μ„ λ§Œμ‘±ν•΄μ•Ό ν•œλ‹€.
  2. κΈ°λ³Έν‚€λ₯Ό μ œμ™Έν•œ 속성듀 κ°„μ˜ 이행 쒅속성이 μ—†μ–΄μ•Ό ν•œλ‹€.

이행 쒅속성 μ΄λž€? A→ Bκ°€ μ„±λ¦½ν•˜κ³ , B → Cκ°€ 성립할 λ•Œ A → Cκ°€ μ„±λ¦½λ˜λŠ” 것을 λ§ν•œλ‹€.

이 ν…Œμ΄λΈ”μ„ λ³Έλ‹€λ©΄ ν•™μƒλ²ˆν˜ΈλŠ” κ°•μ’Œμ΄λ¦„μ„ κ²°μ •ν•˜κ³  있고 κ°•μ’Œμ΄λ¦„은 μˆ˜κ°•λ£Œλ₯Ό κ²°μ •ν•˜κ³  μžˆλ‹€. 즉, μ „μ²΄μ μœΌλ‘œ λ³Έλ‹€λ©΄ 학생 λ²ˆν˜Έκ°€ μˆ˜κ°•λ£Œλ₯Ό κ²°μ •ν•˜κ³  μžˆλŠ” 것이닀.

λ§Œμ•½, 501번 학생이 자료ꡬ쑰 μˆ˜μ—…μ„ λ“£κ³  싢을 λ•Œ 이 ν…Œμ΄λΈ”μ—μ„œλŠ” 501번 ν•™μƒμ˜ κ°•μ’Œ 이름과 μˆ˜κ°•λ£Œ 두 λ²ˆμ„ λͺ¨λ‘ μˆ˜μ •ν•΄μ•Όλœλ‹€.

 

ν•΄κ²°

μ΄λ ‡κ²Œ λ‚˜λˆ μ„œ ν…Œμ΄λΈ”μ„ μ„€κ³„ν•œλ‹€λ©΄ 501번 학생이 λ‹€λ₯Έ κ°•μ˜λ₯Ό λ“£λŠ”λ‹€κ³  ν•˜λ”λΌλ„ κ°•μ’Œμ΄λ¦„ ν•œ 번만 λ°”κΎΈλ©΄ λœλ‹€.



🫧 λ°˜μ •κ·œν™” (BCNF)

  1. 제3 μ •κ·œν˜•μ„ λ§Œμ‘±ν•΄μ•Ό ν•œλ‹€.
  2. λͺ¨λ“  κ²°μ •μžκ°€ 후보킀 집합에 속해야 ν•œλ‹€.

→ 후보킀 집합에 μ—†λŠ” 칼럼이 κ²°μ •μžκ°€ λ˜μ–΄μ„œλŠ” μ•ˆλœλ‹€λŠ” 뜻

이 ν…Œμ΄λΈ”μ—μ„œλŠ” (ν•™μƒλ²ˆν˜Έ + κ³Όλͺ©)으둜 지도 ꡐ수λ₯Ό μ•Œ 수 μžˆλ‹€. λ˜ν•œ, μ§€λ„κ΅μˆ˜ → κ³Όλͺ©μ„ μ•Œ 수 μžˆλ‹€. ν•˜μ§€λ§Œ 같은 κ³Όλͺ©μ„ λ‹€λ₯Έ κ΅μˆ˜κ°€ κ°€λ₯΄ν‚¬ μˆ˜λ„ μžˆμ–΄μ„œ κ³Όλͺ© → μ§€λ„κ΅μˆ˜λŠ” μ„±λ¦½ν•˜μ§€ μ•ŠλŠ”λ‹€.

μ§€λ„κ΅μˆ˜λ₯Ό 톡해 κ³Όλͺ©μ„ μ•Œ 수 μžˆλŠ” κ²ƒμ²˜λŸΌ 제3 μ •κ·œν˜•μ„ λ§Œμ‘±ν•œ ν…Œμ΄λΈ”μ΄ 후보킀 집합이 μ•„λ‹Œ 칼럼이 κ²°μ •μžκ°€ λ˜μ–΄λ²„λ¦° 상황이닀.

 

ν•΄κ²°

μ΄λ ‡κ²Œ 두 ν…Œμ΄λΈ”λ‘œ λ‚˜λˆ„λ©΄ λœλ‹€.

μ΄λ ‡κ²Œ ν•˜λ©΄ 학생 λ²ˆν˜Έλž‘ μ§€λ„κ΅μˆ˜κ°€ λ‹€μΉ˜ 쒅속성이 λ°œμƒν•œλ‹€λŠ”λ° 이건 4μ •κ·œν˜•μ—μ„œ ν•˜λŠ”λ“―…! 근데 4μ •κ·œν˜• μ΄μƒκΉŒμ§€ ν•˜λ©΄ 단점듀이 λ„ˆλ¬΄ λ§Žμ•„μ„œ ꡳ이 μ•ˆν•˜λŠ” 것 κ°™λ‹€.



😊 μž₯점

  • λ°μ΄ν„°λ² μ΄μŠ€ λ³€κ²½ μ‹œ μ΄μƒν˜„μƒμ„ μ œκ±°ν•  수 μžˆλ‹€.
  • μ •κ·œν™” 된 λ°μ΄ν„°λ² μ΄μŠ€ κ΅¬μ‘°μ—μ„œλŠ” μƒˆλ‘œμš΄ 데이터 ν˜•μ˜ μΆ”κ°€λ‘œ μΈν•œ ν™•μž₯ μ‹œ, κ·Έ ꡬ쑰λ₯Ό λ³€κ²½ν•˜μ§€ μ•Šμ•„λ„ λ˜κ±°λ‚˜ μΌλΆ€λ§Œ 변경해도 λœλ‹€.
  • λ°μ΄ν„°λ² μ΄μŠ€μ™€ μ—°λ™λœ μ‘μš© ν”„λ‘œκ·Έλž¨μ— μ΅œμ†Œν•œ 영ν–₯λ§Œμ„ 미치게 λ˜μ–΄ μ‘μš©ν”„λ‘œκ·Έλž¨μ˜ 생λͺ…을 μ—°μž₯μ‹œν‚¨λ‹€.

 

πŸ˜“ 단점

  • λ¦΄λ ˆμ΄μ…˜ λΆ„ν•΄λ‘œ 인해 λ¦΄λ ˆμ΄μ…˜ κ°„μ˜ JOIN연산이 λ§Žμ•„μ§„λ‹€.
  • μ§ˆμ˜μ— λŒ€ν•œ 응닡이 느렀질 수 μžˆλ‹€.
  • λ°μ΄ν„°μ˜ 쀑볡 속성을 μ œκ±°ν•˜κ³  κ²°μ •μžμ— μ˜ν•΄ λ™μΌν•œ 의미인 일반 속성이 ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”λ‘œ μ§‘μ•½λ˜λ―€λ‘œ ν•œ ν…Œμ΄λΈ”μ˜ 데이터 μš©λŸ‰μ„ μ΅œμ†Œν™” ν•˜λŠ” νš¨κ³Όκ°€ μžˆλ‹€.
  • λ”°λΌμ„œ 데이터λ₯Ό μ²˜λ¦¬ν•  λ•Œ 속도가 빨라질 μˆ˜λ„ 있고 느렀질 μˆ˜λ„ μžˆλ‹€.
  • λ§Œμ•½μ— 쑰인이 많이 λ°œμƒν•˜λ©΄ λ°˜μ •κ·œν™”λ₯Ό μ μš©ν•œλ‹€.