DB(Database)/Basic Concept

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

탱저 2021. 11. 5. 08:59
  • μ •κ·œν™”μ˜ ν•„μš”μ„±, μ΄μƒν˜„μƒμ˜ 의미
  • μ •κ·œν™”λ₯Ό μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ ν•¨μˆ˜ μ’…μ†μ„±μ˜ κ°œλ… 이해
  • μ •κ·œν˜•μ˜ μœ ν˜•, 관계 νŒŒμ•…

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

이상 ν˜„μƒμ˜ μ’…λ₯˜

  • μ‚½μž… 이상: μƒˆ 데이터 μ‚½μž… μœ„ν•΄ λΆˆν•„μš”ν•œ 데이터도 ν•¨κ»˜ μ‚½μž…ν•΄μ•Ό ν•˜λŠ” 문제
  • κ°±μ‹  이상: 쀑볡 νˆ¬ν”Œ 쀑 μΌλΆ€λ§Œ λ³€κ²½ν•΄ 데이터가 λΆˆμΌμΉ˜ν•˜κ²Œ λ˜λŠ” λͺ¨μˆœμ˜ 문제
  • μ‚­μ œ 이상: νˆ¬ν”Œμ„ μ‚­μ œν•˜λ©΄ κΌ­ ν•„μš”ν•œ λ°μ΄ν„°κΉŒμ§€ ν•¨κ»˜ μ‚­μ œλ˜λŠ” 데이터 μ†μ‹€μ˜ 문제

μ •κ·œν™”

  • 이상 ν˜„μƒμ΄ λ°œμƒν•˜κΈ° μ•Šλ„λ‘, λ¦΄λ ˆμ΄μ…˜μ„ κ΄€λ ¨ μžˆλŠ” μ†μ„±λ“€λ‘œλ§Œ κ΅¬μ„±ν•˜κΈ° μœ„ν•΄ λ¦΄λ ˆμ΄μ…˜μ„ λΆ„ν•΄ν•˜λŠ” κ³Όμ •
  • ν•¨μˆ˜μ„± 쒅속성을 νŒλ‹¨ν•΄ μ •κ·œν™” μˆ˜ν–‰
    • ν•¨μˆ˜μ„± 쒅속성(FD; Functional Dependency): 속성듀 κ°„μ˜ κ΄€λ ¨μ„±

 

ν•¨μˆ˜ 쒅속

  • Xκ°€ Yλ₯Ό ν•¨μˆ˜μ μœΌλ‘œ κ²°μ •ν•œλ‹€
  • λ¦΄λ ˆμ΄μ…˜ 내이 λͺ¨λ“  νˆ¬ν”Œμ—μ„œ ν•˜λ‚˜μ˜ X값에 λŒ€ν•œ Y값이 항상 ν•˜λ‚˜
  • X와 YλŠ” ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” μ†μ„±λ“€μ˜ λΆ€λΆ„ 집합
  • = Yκ°€ X에 ν•¨μˆ˜μ μœΌλ‘œ μ’…μ†λ˜μ–΄ μžˆλ‹€
  • X → Y둜 ν‘œν˜„ (X: κ²°μ •μž, Y: μ’…μ†μž)
  • ν•¨μˆ˜ 쒅속 관계 νŒλ‹¨ μ‹œ 유의 사항
    • 속성 자체의 νŠΉμ„±, 의미λ₯Ό 기반으둜 ν•¨μˆ˜ 쒅속성 νŒλ‹¨ν•΄μ•Ό 함
    • 일반적으둜 κΈ°λ³Έν‚€, ν›„λ³΄ν‚€λŠ” λ¦΄λ ˆμ΄μ…˜μ˜ λ‹€λ₯Έ λͺ¨λ“  속성듀을 ν•¨μˆ˜μ μœΌλ‘œ κ²°μ •
    • κΈ°λ³Έν‚€, 후보킀 μ•„λ‹ˆμ–΄λ„ λ‹€λ₯Έ 속성 값을 μœ μΌν•˜κ²Œ κ²°μ •ν•˜λŠ” 속성은 ν•¨μˆ˜ 쒅속 κ΄€κ³„μ—μ„œ κ²°μ •μžκ°€ 될 수 있음
    • β€» 이런 속성듀 λ•Œλ¬Έμ— μ’…μ’… ν•¨μˆ˜ 쒅속 κ΄€κ³„μ—μ„œ 이상 ν˜„μƒ λ°œμƒ !
  • μ™„μ „ ν•¨μˆ˜ 쒅속(FFD; Full Functional Dependency)
    • λ¦΄λ ˆμ΄μ…˜μ—μ„œ 속성 집합 Yκ°€ 속성 집합 X에 ν•¨μˆ˜μ μœΌλ‘œ μ’…μ†λ˜μ–΄ μžˆμ§€λ§Œ, 속성 집합 X의 전체가 μ•„λ‹Œ μΌλΆ€λΆ„μ—λŠ” μ’…μ†λ˜μ§€ μ•ŠμŒ
    • 일반적으둜 ν•¨μˆ˜ 쒅속은 μ™„μ „ ν•¨μˆ˜ 쒅속을 의미
    • EX) 당첨 μ—¬λΆ€λŠ” {고객아이디, 이벀트번호}에 μ™„μ „ ν•¨μˆ˜ 쒅속
  • λΆ€λΆ„ ν•¨μˆ˜ 쒅속(PFD; Partial Functional Dependency)
    • λ¦΄λ ˆμ΄μ…˜μ—μ„œ 속성 집합 Yκ°€ 속성 집합 X의 전체가 μ•„λ‹Œ 일뢀뢄에도 ν•¨μˆ˜μ μœΌλ‘œ 쒅속됨
    • EX) 고객이름은 {고객아이디, 이벀트번호}에 λΆ€λΆ„ ν•¨μˆ˜ 쒅속됨

 

β€» μ •κ·œν™” 주의 사항

μ •κ·œν™”λ₯Ό 톡해 λ¦΄λ ˆμ΄μ…˜μ€ 무손싀 λΆ„ν•΄λ˜μ–΄μ•Ό 함

  • λ¦΄λ ˆμ΄μ…˜μ΄ μ˜λ―Έμƒ λ™λ“±ν•œ λ¦΄λ ˆμ΄μ…˜λ“€λ‘œ λΆ„ν•΄λ˜μ–΄μ•Ό ν•˜κ³ , λΆ„ν•΄λ‘œ μΈν•œ 정보 손싀이 λ°œμƒν•˜μ§€ μ•Šμ•„μ•Ό 함
  • λΆ„ν•΄λœ λ¦΄λ ˆμ΄μ…˜λ“€μ„ μžμ—° μ‘°μΈν•˜λ©΄ λΆ„ν•΄ μ „μ˜ λ¦΄λ ˆμ΄μ…˜μœΌλ‘œ 볡원 κ°€λŠ₯ν•΄μ•Ό 함 

μ •κ·œν˜•(NF; Normal Form)

  • λ¦΄λ ˆμ΄μ…˜μ΄ μ •κ·œν™”λœ 정도
  • 각 μ •κ·œν˜•λ§ˆλ‹€ μ œμ•½ 쑰건 쑴재 -> μ •κ·œν˜•μ˜ μ°¨μˆ˜κ°€ λ†’μ•„μ§ˆμˆ˜λ‘ μš”κ΅¬λ˜λŠ” μ œμ•½μ‘°κ±΄μ΄ λ§Žμ•„μ§€κ³  엄격해짐
  • λ¦΄λ ˆμ΄μ…˜μ˜ νŠΉμ„±μ„ κ³ λ €ν•΄ μ ν•©ν•œ μ •κ·œν˜• 선택

μ •κ·œν˜•μ˜ μ’…λ₯˜

제 1 μ •κ·œν˜•

  • λ¦΄λ ˆμ΄μ…˜μ˜ λͺ¨λ“  속성이 λ”λŠ” λΆ„ν•΄λ˜μ§€ μ•Šμ€ μ›μž κ°’λ§Œ 가지면 만쑱
  • 제 1 μ •κ·œν˜•μ„ λ§Œμ‘±ν•΄μ•Ό 관계 λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ¦΄λ ˆμ΄μ…˜μ΄ 될 자격이 μžˆλ‹€.

 

제 2 μ •κ·œν˜•

  • λ¦΄λ ˆμ΄μ…˜μ΄ 제 1 μ •κ·œν˜•μ— μ†ν•˜κ³ , κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ λͺ¨λ“  속성이 기본킀에 μ™„μ „ ν•¨μˆ˜ μ’…μ†λ˜λ©΄ 만쑱
  • 제 1 μ •κ·œν˜•μ˜ λ¦΄λ ˆμ΄μ…˜μ—μ„œ λΆ€λΆ„ ν•¨μˆ˜ 쒅속을 μ œκ±°ν•˜κ³ , λͺ¨λ“  속성이 기본킀에 μ™„μ „ ν•¨μˆ˜ μ’…μ†λ˜λ„λ‘ λΆ„ν•΄

 

제 3 μ •κ·œν˜•

  • λ¦΄λ ˆμ΄μ…˜μ΄ 제 2 μ •κ·œν˜•μ— μ†ν•˜κ³ , κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ λͺ¨λ“  속성이 기본킀에 이행적 ν•¨μˆ˜ 쒅속이 λ˜μ§€ μ•ŠμœΌλ©΄ 만쑱

 

β€» 이행적 ν•¨μˆ˜ 쒅속

λ¦΄λ ˆμ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” 3개의 속성 집합 X, Y Z에 λŒ€ν•΄ ν•¨μˆ˜ 쒅속 관계 X → Y와 Y → Zκ°€ μ‘΄μž¬ν•˜λ©΄ λ…Όλ¦¬μ μœΌλ‘œ X → Zκ°€ μ„±λ¦½λ˜λŠ”λ° 이 λ•Œ Zκ°€ X에 μ΄ν–‰μ μœΌλ‘œ ν•¨μˆ˜ μ’…μ†λ˜μ—ˆλ‹€κ³  함

 

보이슀/μ½”λ“œ μ •κ·œν˜•(BCNF; Boyce/Codd Normal Form)

  • λ¦΄λ ˆμ΄μ…˜μ˜ ν•¨μˆ˜ 쒅속 κ΄€κ³„μ—μ„œ λͺ¨λ“  κ²°μ •μžκ°€ 후보킀이면 보이슀/μ½”λ“œ μ •κ·œν˜•
  • ν•„μš”μ„±: ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜μ— μ—¬λŸ¬ 개의 후보킀가 μ‘΄μž¬ν•˜λŠ” 경우, 제 3 μ •κ·œν˜•κΉŒμ§€ λͺ¨λ‘ λ§Œμ‘±ν•΄λ„ 이상 ν˜„μƒμ΄ λ°œμƒν•  수 있음
  • 의미: κ°•ν•œ 제 3 μ •κ·œν˜•
    • 후보킀λ₯Ό μ—¬λŸ¬ 개 가지고 μžˆλŠ” λ¦΄λ ˆμ΄μ…˜μ— λ°œμƒν•  수 μžˆλŠ” 이상 ν˜„μƒμ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ 제 3 μ •κ·œν˜•λ³΄λ‹€ μ’€ 더 μ—„κ²©ν•œ μ œμ•½ 쑰건 μ œμ‹œ
    • 보이슀/μ½”λ“œ μ •κ·œν˜•μ— μ†ν•˜λŠ” λͺ¨λ“  λ¦΄λ ˆμ΄μ…˜μ€ 제 3 μ •κ·œν˜•μ— μ†ν•˜μ§€λ§Œ, 제 3 μ •κ·œν˜•μ— μ†ν•˜λŠ” λͺ¨λ“  λ¦΄λ ˆμ΄μ…˜μ΄ 보이슀/μ½”λ“œ μ •κ·œν˜•μ— μ†ν•˜λŠ” 것 μ•„λ‹˜

 

제 4 μ •κ·œν˜•

  • λ¦΄λ ˆμ΄μ…˜μ΄ 보이슀/μ½”λ“œ μ •κ·œν˜•μ„ λ§Œμ‘±ν•˜λ©΄μ„œ, ν•¨μˆ˜ 쒅속이 μ•„λ‹Œ λ‹€μΉ˜ 쒅속을 μ œκ±°ν•˜λ©΄ 만쑱

 

제 5 μ •κ·œν˜•

  • λ¦΄λ ˆμ΄μ…˜μ΄ 제 4 μ •κ·œν˜• λ§Œμ‘±ν•˜λ©΄μ„œ, 후보킀λ₯Ό ν†΅ν•˜μ§€ μ•ŠλŠ” 쑰인 쒅속을 μ œκ±°ν•˜λ©΄ 만쑱

 

μ •κ·œν™” κ³Όμ •

 

β€» μ •κ·œν™” μ‹œ μ£Όμ˜μ‚¬ν•­

- λͺ¨λ“  λ¦΄λ ˆμ΄μ…˜μ΄ 제 5 μ •κ·œν˜•μ— μ†ν•΄μ•Όλ§Œ λ°”λžŒμ§ν•œ 것 μ•„λ‹˜

- 일반적으둜 제 3 μ •κ·œν˜•μ΄λ‚˜ 보이슀/μ½”λ“œ μ •κ·œν˜•μ— μ†ν•˜λ„λ‘ λ¦΄λ ˆμ΄μ…˜μ„ λΆ„ν•΄ν•˜μ—¬ 데이터 쀑볡 쀄이고, 이상 ν˜„μƒμ„ ν•΄κ²°

728x90