IT’s Portfolio

[Lecture] DataBase - Day 9 λ³Έλ¬Έ

Development Study

[Lecture] DataBase - Day 9

f1r3_r41n 2023. 5. 22. 11:17
728x90
λ°˜μ‘ν˜•

πŸ–₯ DataBase - Day 9

πŸ‘‰πŸ» [Chapter 09] μ •κ·œν™”

[01] μ •κ·œν™”μ˜ κ°œλ…κ³Ό 이상 ν˜„μƒ

  • 1.1 μ •κ·œν™”μ˜ κ°œλ…
    • 이상(anomaly) ν˜„μƒ : λΆˆν•„μš”ν•œ 데이터 쀑볡이 λ°œμƒν•˜μ—¬ λ¦΄λ ˆμ΄μ…˜μ— λŒ€ν•œ λ°μ΄ν„°μ˜ μ‚½μž…, μˆ˜μ •, μ‚­μ œ 연산을 μˆ˜ν–‰ν•  λ•Œ λ°œμƒν•  수 μžˆλŠ” λΆ€μž‘μš©
    • μ •κ·œν™”(normalization) : 이상 ν˜„μƒμ„ μ œκ±°ν•˜λ©΄μ„œ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ„€κ³„ν•΄λ‚˜κ°€λŠ” κ³Όμ •
  • 1.2 이상 ν˜„μƒμ˜ μ’…λ₯˜
    • μ‚½μž… 이상(insertion anomaly) : μƒˆ 데이터λ₯Ό μ‚½μž…ν•˜κΈ° μœ„ν•΄ λΆˆν•„μš”ν•œ 데이터도 ν•¨κ»˜ μ‚½μž…ν•΄μ•Ό ν•˜λŠ” 문제
    • κ°±μ‹  이상(update anomaly) : 쀑볡 νŠœν”Œ 쀑 μΌλΆ€λ§Œ λ³€κ²½ν•˜μ—¬ 데이터가 λΆˆμΌμΉ˜ν•˜κ²Œ λ˜λŠ” λͺ¨μˆœμ˜ 문제
    • μ‚­μ œ 이상(deletion anomaly) : νŠœν”Œμ„ μ‚­μ œν•˜λ©΄ κΌ­ ν•„μš”ν•œ λ°μ΄ν„°κΉŒμ§€ ν•¨κ»˜ μ‚­μ œλ˜λŠ” 데이터 μ†μ‹€μ˜ 문제
  • 1.3 μ •κ·œν™”μ˜ ν•„μš”μ„±
    • μ •κ·œν™”
      • 이상 ν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•Šλ„λ‘, λ¦΄λ ˆμ΄μ…˜μ„ 관련이 μžˆλŠ” μ†μ„±λ“€λ‘œλ§Œ κ΅¬μ„±ν•˜κΈ° μœ„ν•΄ λ¦΄λ ˆμ΄μ…˜μ„ λΆ„ν•΄(decomposition) ν•˜λŠ” κ³Όμ •
      • ν•¨μˆ˜μ  쒅속성(속성듀 κ°„μ˜ κ΄€λ ¨μ„± / FD; Functional Dependency)을 νŒλ‹¨ν•˜μ—¬ μ •κ·œν™” μˆ˜ν–‰
      • ν•¨μˆ˜μ  쒅속성을 μ΄μš©ν•΄, λ¦΄λ ˆμ΄μ…˜μ„ 연관성이 μžˆλŠ” μ†μ„±λ“€λ‘œλ§Œ κ΅¬μ„±λ˜λ„λ‘ λΆ„ν•΄ν•˜μ—¬ 이상 ν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•ŠλŠ” μ˜¬λ°”λ₯Έ λ¦΄λ ˆμ΄μ…˜μœΌλ‘œ λ§Œλ“€μ–΄ λ‚˜κ°€λŠ” κ³Όμ •

[02] ν•¨μˆ˜ 쒅속

  • "Xκ°€ Yλ₯Ό ν•¨μˆ˜μ μœΌλ‘œ κ²°μ •ν•œλ‹€"
    • λ¦΄λ ˆμ΄μ…˜ λ‚΄μ˜ λͺ¨λ“  νŠœν”Œμ—μ„œ X 값에 λŒ€ν•œ Y 값은 항상 ν•˜λ‚˜μž„
    • X와 YλŠ” ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” μ†μ„±λ“€μ˜ λΆ€λΆ„ 집합
    • "Yκ°€ X에 ν•¨μˆ˜μ μœΌλ‘œ μ’…μ†λ˜μ–΄ μžˆλ‹€"와 같은 의미
    • $X \rightarrow Y$둜 ν‘œν˜„
      • XλŠ” κ²°μ •μž
      • YλŠ” μ’…μ†μž
  • ν•¨μˆ˜ 쒅속 관계 νŒλ‹¨ μ‹œ 유의 사항
    • 속성 자체의 νŠΉμ„±κ³Ό 의미λ₯Ό 기반으둜 ν•¨μˆ˜ 쒅속성을 νŒλ‹¨
      • 속성 값은 계속 λ³€ν•  수 있기 λ•Œλ¬Έμ— ν˜„μž¬ λ¦΄λ ˆμ΄μ…˜μ— ν¬ν•¨λœ 속성 κ°’λ§ŒμœΌλ‘œ νŒλ‹¨ν•˜λ©΄ μ•ˆλ¨
    • 일반적으둜 기본킀와 ν›„λ³΄ν‚€λŠ” λ¦΄λ ˆμ΄μ…˜μ˜ λ‹€λ₯Έ λͺ¨λ“  속성듀을 ν•¨μˆ˜μ μœΌλ‘œ 결정함
    • κΈ°λ³Έν‚€λ‚˜ 후보킀가 μ•„λ‹ˆλ”λΌλ„ λ‹€λ₯Έ 속성 값을 μœ μΌν•˜κ²Œ κ²°μ •ν•˜λŠ” 속성은 ν•¨μˆ˜ 쒅속 κ΄€κ³„μ—μ„œ κ²°μ •μžκ°€ 될 수 있음
  • μ™„μ „ ν•¨μˆ˜ 쒅속(FFD; Full Functional Dependency)
    • λ¦΄λ ˆμ΄μ…˜μ—μ„œ 속성 집합 Yκ°€ 속성 집합 X에 ν•¨μˆ˜μ μœΌλ‘œ μ’…μ†λ˜μ–΄ μžˆμ§€λ§Œ, 속성 집합 X 전체에 μ’…μ†λœ 것이지 일뢀뢄에 μ’…μ†λœ 것이 μ•„λ‹˜μ„ 의미
    • 일반적으둜 ν•¨μˆ˜ 쒅속은 μ™„μ „ ν•¨μˆ˜ 쒅속을 μ˜λ―Έν•¨
  • λΆ€λΆ„ ν•¨μˆ˜ 쒅속(PFD; Partial Functional Dependency)
    • 속성 집합 Yκ°€ 속성 집합 X의 전체가 μ•„λ‹Œ 일뢀뢄에도 ν•¨μˆ˜μ μœΌλ‘œ 쒅속됨을 μ˜λ―Έν•¨
  • κ²°μ •μžμ™€ μ’…μ†μžκ°€ κ°™κ±°λ‚˜, κ²°μ •μžκ°€ μ’…μ†μžλ₯Ό ν¬ν•¨ν•˜λŠ” κ²ƒμ²˜λŸΌ λ‹Ήμ—°ν•œ ν•¨μˆ˜ 쒅속 κ΄€κ³„λŠ” κ³ λ €ν•˜μ§€ μ•ŠμŒ

[03] κΈ°λ³Έ μ •κ·œν˜•κ³Ό μ •κ·œν™” κ³Όμ •

  • 3.1 μ •κ·œν™”μ˜ κ°œλ…κ³Ό μ •κ·œν™”μ˜ μ’…λ₯˜
    • μ •κ·œν™”(normalization)
      • ν•¨μˆ˜ 쒅속성을 μ΄μš©ν•˜μ—¬ λ¦΄λ ˆμ΄μ…˜μ„ 연관성이 μžˆλŠ” μ†μ„±λ“€λ‘œλ§Œ κ΅¬μ„±λ˜λ„λ‘ λΆ„ν•΄ν•΄μ„œ, 이상 ν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•ŠλŠ” μ˜¬λ°”λ₯Έ λ¦΄λ ˆμ΄μ…˜μœΌλ‘œ λ§Œλ“€μ–΄ λ‚˜κ°€λŠ” κ³Όμ •
      • κΈ°λ³Έ λͺ©ν‘œ : 관련이 μ—†λŠ” ν•¨μˆ˜ 쒅속성을 λ³„κ°œμ˜ λ¦΄λ ˆμ΄μ…˜μœΌλ‘œ ν‘œν˜„ν•˜λŠ” 것
      • 주의 사항
        • μ •κ·œν™”λ₯Ό 톡해 λ¦΄λ ˆμ΄μ…˜μ€ 무손싀 λΆ„ν•΄(nonloss composition) λ˜μ–΄μ•Ό 함
          • λ¦΄λ ˆμ΄μ…˜μ΄ μ˜λ―Έμƒ λ™λ“±ν•œ λ¦΄λ ˆμ΄μ…˜λ“€λ‘œ λΆ„ν•΄λ˜μ–΄μ•Ό ν•˜κ³ , λΆ„ν•΄λ‘œ μΈν•œ 정보 손싀이 λ°œμƒν•˜μ§€ μ•Šμ•„μ•Ό 함
          • λΆ„ν•΄λœ λ¦΄λ ˆμ΄μ…˜λ“€μ„ μžμ—° μ‘°μΈν•˜λ©΄ λΆ„ν•΄ μ „μ˜ λ¦΄λ ˆμ΄μ…˜μœΌλ‘œ 볡원 κ°€λŠ₯ν•΄μ•Ό 함
    • μ •κ·œν˜•(NF; Normal Form)
      • λ¦΄λ ˆμ΄μ…˜μ΄ μ •κ·œν™”λœ 정도
      • 각 μ •κ·œν˜•λ§ˆλ‹€ λ§Œμ‘±μ‹œμΌœμ•Ό ν•˜λŠ” μ œμ•½μ‘°κ±΄μ΄ 쑴재
        • μ •κ·œν˜•μ˜ μ°¨μˆ˜κ°€ λ†’μ•„μ§ˆμˆ˜λ‘ μš”κ΅¬λ˜λŠ” μ œμ•½μ‘°κ±΄μ΄ λ§Žμ•„μ§€κ³  엄격해짐
      • λ¦΄λ ˆμ΄μ…˜μ˜ νŠΉμ„±μ„ κ³ λ €ν•˜μ—¬ μ ν•©ν•œ μ •κ·œν˜•μ„ 선택함
  • 3.2 제1μ •κ·œν˜•(1NF; First Normal Form)
    • λ¦΄λ ˆμ΄μ…˜μ— μ†ν•œ λͺ¨λ“  μ†μ„±μ˜ 도메인이 μ›μž κ°’(atomic value) 으둜만 κ΅¬μ„±λ˜μ–΄ 있으면 제1μ •κ·œν˜•μ— 속함
    • μ΅œμ†Œν•œ 제1μ •κ·œν˜•μ„ λ§Œμ‘±ν•΄μ•Ό 관계 λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ¦΄λ ˆμ΄μ…˜μ΄ 될 자격이 있음
  • 3.3 제2μ •κ·œν˜•(2NF; Second Normal Form)
    • λ¦΄λ ˆμ΄μ…˜μ΄ 제1μ •κ·œν˜•μ— μ†ν•˜κ³ , κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ λͺ¨λ“  속성이 기본킀에 μ™„μ „ ν•¨μˆ˜ μ’…μ†λ˜λ©΄ 제2μ •κ·œν˜•μ— 속함
    • 제1μ •κ·œν˜•μ— μ†ν•˜λŠ” λ¦΄λ ˆμ΄μ…˜μ΄ 제2μ •κ·œν˜•μ„ λ§Œμ‘±ν•˜κ²Œ ν•˜λ €λ©΄, λΆ€λΆ„ ν•¨μˆ˜ 쒅속을 μ œκ±°ν•˜κ³  λͺ¨λ“  속성이 기본킀에 μ™„μ „ ν•¨μˆ˜ μ’…μ†λ˜λ„λ‘ λΆ„ν•΄
  • 3.4 제3μ •κ·œν˜•(3NF; Third Normal Form)
    • λ¦΄λ ˆμ΄μ…˜μ΄ 제2μ •κ·œν˜•μ— μ†ν•˜κ³ , κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ λͺ¨λ“  속성이 기본킀에 이행적 ν•¨μˆ˜ 쒅속이 λ˜μ§€ μ•ŠμœΌλ©΄ 제3μ •κ·œν˜•μ— 속함
    • 이행적 ν•¨μˆ˜ 쒅속(transitive FD)
      • λ¦΄λ ˆμ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” 3개의 속성 집합 X, Y, Z에 λŒ€ν•΄ ν•¨μˆ˜ 쒅속 관계 $X \rightarrow Y$와 $Y \rightarrow Z$κ°€ μ‘΄μž¬ν•˜λ©΄ λ…Όλ¦¬μ μœΌλ‘œ $X \rightarrow Z$κ°€ μ„±λ¦½ν•˜λŠ”λ°, μ΄λ•Œ 속성 집합 Zκ°€ 속성 집합 X에 μ΄ν–‰μ μœΌλ‘œ ν•¨μˆ˜ μ’…μ†λ˜μ—ˆλ‹€κ³  함
    • 제2μ •κ·œν˜•μ— μ†ν•˜λŠ” λ¦΄λ ˆμ΄μ…˜μ΄ 제3μ •κ·œν˜•μ„ λ§Œμ‘±ν•˜κ²Œ ν•˜λ €λ©΄, λͺ¨λ“  속성이 기본킀에 이행적 ν•¨μˆ˜ 쒅속이 λ˜μ§€ μ•Šλ„λ‘ λΆ„ν•΄
  • 3.5 보이슀/μ½”λ“œ μ •κ·œν˜•(BCNF; Boyce/Codd Normal Form)
    • λ¦΄λ ˆμ΄μ…˜μ˜ ν•¨μˆ˜ 쒅속 κ΄€κ³„μ—μ„œ λͺ¨λ“  κ²°μ •μžκ°€ 후보킀이면 보이슀/μ½”λ“œ μ •κ·œν˜•μ— 속함
    • ν•„μš”μ„± : ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜μ— μ—¬λŸ¬ 개의 후보킀가 μ‘΄μž¬ν•  μˆ˜λ„ μžˆλŠ”λ°, 이 κ²½μš°μ—λŠ” 제3μ •κ·œν˜•κΉŒμ§€ λͺ¨λ‘ λ§Œμ‘±ν•˜λ”λΌλ„ 이상 ν˜„μƒμ΄ λ°œμƒν•  수 있음
    • κ°•ν•œ 제3μ •κ·œν˜•(strong 3NF)
      • 후보킀λ₯Ό μ—¬λŸ¬ 개 가지고 μžˆλŠ” λ¦΄λ ˆμ΄μ…˜μ— λ°œμƒν•  수 μžˆλŠ” 이상 ν˜„μƒμ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ 제3μ •κ·œν˜•λ³΄λ‹€ μ’€ 더 μ—„κ²©ν•œ μ œμ•½μ‘°κ±΄μ„ μ œμ‹œ
      • 보이슀/μ½”λ“œ μ •κ·œν˜•μ— μ†ν•˜λŠ” λͺ¨λ“  λ¦΄λ ˆμ΄μ…˜μ€ 제3μ •κ·œν˜•μ— μ†ν•˜μ§€λ§Œ, 제3μ •κ·œν˜•μ— μ†ν•˜λŠ” λ¦΄λ ˆμ΄μ…˜μ΄λΌκ³  ν•΄μ„œ λ‹€ 보이슀/μ½”λ“œ μ •κ·œν˜•μ— μ†ν•˜λŠ” 것은 μ•„λ‹˜
  • 3.6 제4μ •κ·œν˜•κ³Ό 제5μ •κ·œν˜•
    • 제4μ •κ·œν˜•
      • λ¦΄λ ˆμ΄μ…˜μ΄ 보이슀/μ½”λ“œ μ •κ·œν˜•μ„ λ§Œμ‘±ν•˜λ©΄μ„œ, ν•¨μˆ˜ 쒅속이 μ•„λ‹Œ λ‹€μΉ˜ 쒅속(MVD; Multi Valued Dependency) 을 μ œκ±°ν•˜λ©΄ 제4μ •κ·œν˜•μ— 속함
    • 제5μ •κ·œν˜•
      • λ¦΄λ ˆμ΄μ…˜μ΄ 제4μ •κ·œν˜•μ„ λ§Œμ‘±ν•˜λ©΄μ„œ 후보킀λ₯Ό ν†΅ν•˜μ§€ μ•ŠλŠ” 쑰인 속성(JD; Join Dependency) 을 μ œκ±°ν•˜λ©΄ 제5μ •κ·œν˜•μ— 속함
    • μ •κ·œν™” μ‹œ 주의 사항
      • λͺ¨λ“  λ¦΄λ ˆμ΄μ…˜μ΄ 무쑰건 제5μ •κ·œν˜•μ— μ†ν•˜λ„λ‘ λΆ„ν•΄ν•˜λŠ” 것은 λ°”λžŒμ§ν•˜μ§€ μ•ŠμŒ
      • μΌλ°˜μ μœΌλ‘œλŠ” 제3μ •κ·œν˜•μ΄λ‚˜ 보이슀/μ½”λ“œ μ •κ·œν˜•μ— μ†ν•˜λ„λ‘ λ¦΄λ ˆμ΄μ…˜μ„ λΆ„ν•΄ν•˜μ—¬ 데이터 쀑볡을 쀄이고 이상 ν˜„μƒμ΄ λ°œμƒν•˜λŠ” 문제λ₯Ό ν•΄κ²°ν•˜λŠ” κ²½μš°κ°€ 많음
  • 3.7 μ •κ·œν™” κ³Όμ • 정리
728x90
λ°˜μ‘ν˜•

'Development Study' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Lecture] Data Communication - Day 9~10  (0) 2023.05.28
[Lecture] Operating System with Ubuntu - Day 7~8  (0) 2023.05.22
[Lecture] DataBase - Day 8  (0) 2023.05.15
[Lecture] Data Communication - Day 8  (0) 2023.05.14
[Lecture] DataBase - Day 7  (1) 2023.05.08
Comments