[DB] πŸ•΅οΈ 데이터 μ •κ·œν™”μ™€ μ΄μƒν˜„μƒ

ν•΄λ‘±κ·ΈΒ·2023λ…„ 4μ›” 26일
0

λ°μ΄ν„°λ² μ΄μŠ€

λͺ©λ‘ 보기
8/9

μ •κ·œν™”

λ¦΄λ ˆμ΄μ…˜μ— λ°μ΄ν„°μ˜ μ‚½μž…, μ‚­μ œ, κ°±μ‹  μ‹œ λ°œμƒν•˜λŠ” 이상 ν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•Šλ„λ‘ λ¦΄λ ˆμ΄μ…˜μ„ 보닀 μž‘μ€ λ¦΄λ ˆμ΄μ…˜μœΌλ‘œ ν‘œν˜„ν•˜λŠ” κ³Όμ • -> μ‰½κ²Œ 말해 κ°„λ‹¨ν•˜κ²Œ ν‘œν˜„ν•˜λŠ” κ³Όμ •..

μ •κ·œν™”μ˜ λͺ©μ 

  1. 데이터 ꡬ쑰의 μ•ˆμ •μ„±μ„ μ΅œλŒ€ν™”ν•œλ‹€.
  2. 쀑볡 데이터λ₯Ό μ΅œμ†Œν™”ν•œλ‹€.
  3. μˆ˜μ • 및 μ‚­μ œ μ‹œ 이상 ν˜„μƒμ„ μ΅œμ†Œν™”ν•œλ‹€.
  4. ν…Œμ΄λΈ” 뢈일치 μœ„ν—˜μ„ κ°„μ†Œν™”ν•œλ‹€.

관계 μŠ€ν‚€λ§ˆ μ„€κ³„μ˜ 원칙

  1. ν•„μš”ν•œ 개체, 속성, 관계성을 μ‹λ³„ν•˜μ—¬ λ¦΄λ ˆμ΄μ…˜μ„ κ΅¬μ„±ν•œλ‹€.
  2. λΆˆν•„μš”ν•œ λ°μ΄ν„°μ˜ 쀑볡과 쒅속이 λ°œμƒν•˜μ§€ μ•Šλ„λ‘ μ„€κ³„ν•œλ‹€.
  3. 속성 μ‚¬μ΄μ˜ 관계성과 λ°μ΄ν„°μ˜ 쒅속성을 κ³ λ €ν•˜μ—¬ μ„€κ³„ν•œλ‹€.
  4. 효율적인 데이터 μ²˜λ¦¬μ™€ 일관성 μœ μ§€ 방법 등을 κ³ λ €ν•˜μ—¬ μ„€κ³„ν•œλ‹€.

이상 ν˜„μƒ(Anomaly)

μ‚½μ‚­κ°± -> μ‚½μ‚΄κ°œλ‘œ μ™Έμš°μž..~~

  1. μ‚½μž… 이상 : 데이터λ₯Ό μ‚½μž…ν–ˆμ„ λ•Œ λΆˆν•„μš”ν•œ 데이터가 μ‚½μž…λ˜λŠ” ν˜„μƒ
  2. μ‚­μ œ 이상 : λ¦΄λ ˆμ΄μ…˜μ˜ ν•œ νŠœν”Œμ„ μ‚­μ œν•¨μœΌλ‘œμ¨ 연쇄 μ‚­μ œλ‘œ 인해 μ •λ³΄μ˜ 손싀을 λ°œμƒμ‹œν‚€λŠ” ν˜„μƒ
  3. κ°±μ‹  이상 : νŠœν”Œ μ€‘μ—μ„œ 일뢀 속성을 κ°±μ‹ ν•¨μœΌλ‘œμ¨ μ •λ³΄μ˜ λͺ¨μˆœμ„±μ΄ λ°œμƒν•˜λŠ” ν˜„μƒ

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

  • 제1μ •κ·œν˜•(1NF) : μ›μžκ°’ ꡬ성, λΆ€λΆ„ν•¨μˆ˜μ’…μ† 쑴재
  • 제2μ •κ·œν˜•(2NF) : λΆ€λΆ„ν•¨μˆ˜μ’…μ† 제거, μ΄ν–‰ν•¨μˆ˜μ’…μ† 쑴재
  • 제3μ •κ·œν˜•(3NF) : μ΄ν–‰ν•¨μˆ˜μ’…μ† 제거
  • 보이슀-μ½”λ“œ μ •κ·œν˜•(BCNF) : λ¦΄λ ˆμ΄μ…˜ μ•„λž˜ λͺ¨λ“  κ²°μ •μžκ°€ 후보킀
  1. 제1μ •κ·œν˜•
    λ¦΄λ ˆμ΄μ…˜μ— μ†ν•˜λŠ” μ†μ„±μ˜ 값이 λͺ¨λ‘ μ›μžκ°’(Atomic Value)만으둜 κ΅¬μ„±λ˜μ–΄μ•Ό ν•œλ‹€.
    *μ›μžκ°’? 더 이상 μͺΌκ°œμ§ˆ 수 μ—†λŠ” λ‹¨μœ„

    예λ₯Ό λ“€μ–΄ μœ„μ²˜λŸΌ λ¦΄λ ˆμ΄μ…˜μ΄ 이루어져 μžˆλ‹€λ©΄, 제1μ •κ·œν˜•μ„ λ§Œμ‘±ν•˜μ§€ λͺ»ν•œλ‹€. ν•™λ²ˆμ΄ 100인 ν•™μƒμ˜ κ³Όλͺ©λ²ˆν˜Έμ™€ 성적이 2개둜 이루어져 있기 λ•Œλ¬Έμ΄λ‹€. λ”°λΌμ„œ 제1μ •κ·œν˜•μ΄ 되렀면 μ•„λž˜μ™€ 같이 속성 값을 뢄리해주어야 ν•œλ‹€.

    제1μ •κ·œν˜•μ—μ„œ λ°œμƒν•  수 μžˆλŠ” μ΄μƒν˜„μƒ
  • μ‚½μž… 이상 : 학생이 μƒˆ κ³Όλͺ©μ„ μˆ˜κ°• μ‹ μ²­ν•  λ•Œ λ°˜λ“œμ‹œ ν•™μƒμ˜ 학과와 μ§€λ„κ΅μˆ˜λ₯Ό μ•Œμ•„μ•Ό ν•œλ‹€. (λΆˆν•„μš”ν•œ 정보)
  • μ‚­μ œ 이상 : 300번 학생이 C400 κ³Όλͺ©μ„ μ·¨μ†Œν•˜λ©΄, ν•΄λ‹Ή κ³Όλͺ©μ— λŒ€ν•œ 정보가 λͺ¨λ‘ 사라진닀. (정보 손싀)
  • κ°±μ‹  이상 : 100번 학생이 μ§€λ„κ΅μˆ˜λ₯Ό λ³€κ²½ν•  λ•Œ, P1인 행을 λͺ¨λ‘ μ°Ύμ•„μ„œ λ³€κ²½ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.

    μ΄μƒν˜„μƒμ΄ λ°œμƒν•˜λŠ” 이유
    κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ 속성듀이 기본킀에 μ™„μ „ ν•¨μˆ˜ μ’…μ†λ˜μ§€ λͺ»ν•˜κ³  λΆ€λΆ„ ν•¨μˆ˜ 쒅속이 λ˜μ–΄μžˆκΈ° λ•Œλ¬Έ 즉, κΈ°λ³Έν‚€μ˜ 일뢀 μ†μ„±μ—λ§Œ μ˜μ‘΄ν•˜κ³  있기 λ•Œλ¬Έ

    κΈ°λ³Έν‚€λŠ” ν•™λ²ˆ, κ³Όλͺ© 번호이고, μ§€λ„κ΅μˆ˜μ™€ ν•™κ³Όκ°€ λΆ€λΆ„ ν•¨μˆ˜ 쒅속 λ˜μ–΄μžˆλ‹€.
  1. 제2μ •κ·œν˜•
    제1μ •κ·œν˜•μ΄λ©΄μ„œ, 기본킀에 μ†ν•˜μ§€ μ•Šμ€ 속성 λͺ¨λ‘κ°€ 기본킀에 μ™„μ „ ν•¨μˆ˜ 쒅속인 μ •κ·œν˜•

    μœ„ 그림처럼 각 속성듀이 λͺ¨λ‘ μ™„μ „ ν•¨μˆ˜ 쒅속이 λ˜λ„λ‘ λ¦΄λ ˆμ΄μ…˜μ„ λΆ„λ¦¬μ‹œμΌœμ€€λ‹€. λ”°λΌμ„œ μ•„λž˜μ™€ 같이 λ¦΄λ ˆμ΄μ…˜μ΄ ν˜•μ„±λœλ‹€.

    κ·ΈλŸ¬λ‚˜ 제2μ •κ·œν˜•μ—λ„ μ—¬μ „νžˆ μ΄μƒν˜„μƒμ΄ μ‘΄μž¬ν•œλ‹€.

    제2μ •κ·œν˜•μ—μ„œ λ°œμƒν•  수 μžˆλŠ” μ΄μƒν˜„μƒ
  • μ‚½μž… 이상 : μ§€λ„κ΅μˆ˜κ°€ 학과에 μ†Œμ†λ˜μ–΄ μžˆμŒμ„ μΆ”κ°€ν•  λ•Œ λ°˜λ“œμ‹œ 지도 학생이 μžˆμ–΄μ•Ό ν•œλ‹€. (λΆˆν•„μš”ν•œ 정보)
  • μ‚­μ œ 이상 : 300번 학생이 μžν‡΄ν•˜λŠ” 경우, P3 ꡐ수의 ν•™κ³Ό 정보도 ν•¨κ»˜ 사라진닀. (연쇄 μ‚­μ œλ‘œ μΈν•œ 정보 손싀)
  • κ°±μ‹  이상 : μ§€λ„κ΅μˆ˜μ˜ ν•™κ³Όκ°€ λ³€κ²½λ˜λŠ” 경우 λͺ¨λ‘ μ°Ύμ•„μ„œ λ³€κ²½μ‹œμΌœμ£Όμ–΄μ•Ό ν•œλ‹€. (μ§€λ„κ΅μˆ˜κ°€ λ™μΌν•œ 학생이 μ—¬λŸ¬λͺ… μžˆλŠ” 경우 맀우 뢈편..)

    μ΄μƒν˜„μƒμ΄ λ°œμƒν•˜λŠ” 이유
    이행 ν•¨μˆ˜ 쒅속 λ•Œλ¬Έ!
    이행 ν•¨μˆ˜ 쒅속은 속성이 A->B이고, B->Cμ΄λ©΄μ„œ A->C의 관계에 μžˆλŠ” 것

    μœ„ μ˜ˆμ‹œμ—μ„œλŠ” ν•™λ²ˆ -> μ§€λ„κ΅μˆ˜, μ§€λ„κ΅μˆ˜ -> ν•™κ³Ό, ν•™λ²ˆ -> ν•™κ³Όμ˜ 관계가 μ‘΄μž¬ν•œλ‹€.
    λ”°λΌμ„œ μ§€λ„κ΅μˆ˜μ˜ ν•™κ³Όλ₯Ό μΆ”κ°€ν•˜κΈ° μœ„ν•΄μ„œ 지도 ν•™μƒκΉŒμ§€ ν•„μš”ν•˜κ²Œ 되고, 학생이 μžν‡΄ν•  경우 μ§€λ„κ΅μˆ˜μ˜ ν•™κ³Ό 정보가 μ‚¬λΌμ§€λŠ” 문제점이 λ°œμƒν•˜κ²Œ λ˜λŠ” 것이닀.
  1. 제3μ •κ·œν˜•
    제2μ •κ·œν˜•μ΄λ©΄μ„œ, 이행적 ν•¨μˆ˜ 쒅속성을 μ œκ±°ν•œ μ •κ·œν˜•
    즉, 기본킀에 μ†ν•˜μ§€ μ•Šμ€ λͺ¨λ“  속성이 기본킀에 이행적 ν•¨μˆ˜ 쒅속이 아닐 λ•Œ => κΈ°λ³Έν‚€ μ΄μ™Έμ˜ 속성이 κ·Έ μ™Έ λ‹€λ₯Έ 속성을 κ²°μ • X !!

    μ΄λ ‡κ²Œ 이행적 ν•¨μˆ˜ 쒅속 관계에 μžˆλŠ” 속성을 λΆ„λ¦¬ν•œλ‹€. ν…Œμ΄λΈ”λ‘œ λ‚˜νƒ€λ‚΄λ©΄ μ•„λž˜μ™€ κ°™λ‹€.

  2. BCNF(Boyce and Codd Normal Form)
    제3μ •κ·œν˜•μ„ 쑰금 더 κ°•ν™”μ‹œν‚¨ κ°œλ…μœΌλ‘œ, κ°•ν•œ 제3 μ •κ·œν˜•μ΄λΌκ³ λ„ 함
    μ•„λž˜μ™€ 같은 제3μ •κ·œν˜•μ„ λ§Œμ‘±ν•˜λŠ” λ¦΄λ ˆμ΄μ…˜μ΄ μžˆμ„ λ•Œ, ν•œ κ΅μˆ˜λ‹Ή ν•˜λ‚˜μ˜ μˆ˜μ—…λ§Œ λ§‘λŠ”λ‹€κ³  κ°€μ •ν•œλ‹€.

    μ΄λ ‡κ²Œ 되면 제3μ •κ·œν˜•μ„ λ§Œμ‘±ν•œλ‹€. 이 κ²½μš°μ—λŠ” μ–΄λ–€ μ΄μƒν˜„μƒμ΄ μƒκΈΈκΉŒ?

    BCNFμ—μ„œ λ°œμƒν•  수 μžˆλŠ” μ΄μƒν˜„μƒ

  • μ‚½μž… 이상 : μƒˆλ‘œμš΄ κ΅μˆ˜κ°€ νŠΉμ • κ³Όλͺ©μ„ λ‹΄λ‹Ήν•œλ‹€λŠ” μƒˆλ‘œμš΄ 정보λ₯Ό μΆ”κ°€ν•  수 μ—†λ‹€. 적어도 ν•œ λͺ… μ΄μƒμ˜ μˆ˜κ°• 학생이 μžˆμ–΄μ•Όμ§€λ§Œ κ°€λŠ₯함..
  • μ‚­μ œ 이상 : ν•™λ²ˆμ΄ 100인 학생이 C234κ³Όλͺ©μ„ μ·¨μ†Œν•˜λ©΄, P2κ°€ C234 κ³Όλͺ©μ„ λ‹΄λ‹Ήν•œλ‹€λŠ” 정보도 ν•¨κ»˜ μ‚­μ œλœλ‹€.
  • κ°±μ‹  이상 : P1의 κ³Όλͺ©μ΄ λ³€κ²½λ˜λ©΄ P1인 행을 λͺ¨λ‘ μ°Ύμ•„ λ³€κ²½μ‹œμΌœμ£Όμ–΄μ•Ό ν•œλ‹€.

    μ΄λŸ¬ν•œ μ΄μƒν˜„μƒμ΄ μƒκΈ°λŠ” μ΄μœ λŠ”, κ²°μ •μžκ°€ ν›„λ³΄ν‚€λ‘œ μ·¨κΈ‰λ˜κ³  μžˆμ§€ μ•ŠκΈ° λ•Œλ¬Έμ΄λ‹€. ν›„λ³΄ν‚€λŠ” μŠˆνΌν‚€μ€‘μ—μ„œ μ΅œμ†Œμ„±μ„ κ°–λŠ” ν‚€μ΄λ―€λ‘œ 이 λ¦΄λ ˆμ΄μ…˜μ—μ„œλŠ” (ν•™λ²ˆ, κ³Όλͺ©λͺ…)μ΄λ‚˜ (ν•™λ²ˆ, λ‹΄λ‹Ή ꡐ수)κ°€ 후보킀가 λœλ‹€. λ‹΄λ‹Ή κ΅μˆ˜λ§ŒμœΌλ‘œλŠ” 후보킀가 될 수 μ—†λ‹€.

    ν•˜μ§€λ§Œ, 후보킀가 μ•„λ‹˜μ—λ„ κ³Όλͺ©λͺ…을 κ²°μ •ν•  수 있기 λ•Œλ¬Έμ— λ‹΄λ‹Ή κ΅μˆ˜λŠ” κ²°μ •μžμ— μ†ν•œλ‹€.

    이 μ΄μƒν˜„μƒμ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œ λͺ¨λ“  κ²°μ •μžλŠ” 항상 후보킀가 λ˜λ„λ‘ λ¦΄λ ˆμ΄μ…˜μ„ λΆ„ν•΄ν•΄μ£Όλ©΄ κ°•ν•œ 제3 μ •κ·œν˜•, 즉 BCNFλ₯Ό λ§Œμ‘±ν•˜κ²Œ λœλ‹€.


Reference
좜처

profile
μ‚¬λž‘μ•„ 컴퓨터해 ~

0개의 λŒ“κΈ€