[DB] μ •κ·œν™” / λ°˜μ •κ·œν™” / ν•¨μˆ˜μ  쒅속성
Computer Science

[DB] μ •κ·œν™” / λ°˜μ •κ·œν™” / ν•¨μˆ˜μ  쒅속성

728x90
λ°˜μ‘ν˜•

 

 

πŸŽ‡ ν•¨μˆ˜μ  쒅속성(Functional Dependency)

μ •κ·œν™”λ₯Ό μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ 속성듀 κ°„μ˜ 관련성을 νŒŒμ•…ν•΄μ•Ό ν•˜λŠ”λ°, 속성듀 κ°„μ˜ 관련성을 ν•¨μˆ˜μ  쒅속성이라고 ν•œλ‹€. 일반적으둜 ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜μ—λŠ” ν•˜λ‚˜μ˜ ν•¨μˆ˜μ  μ’…μ†μ„±λ§Œμ΄ μ‘΄μž¬ν•˜λ„λ‘ μ •κ·œν™”λ₯Ό ν•˜κ²Œ λœλ‹€.

A -> B : AλŠ” κ²°μ •μž BλŠ” μ’…μ†μž

 

πŸ”ΆλΆ€λΆ„ ν•¨μˆ˜μ  쒅속

속성집합 Bκ°€ 속성집합A의 전체가 μ•„λ‹Œ 일뢀뢄에도 ν•¨μˆ˜μ μœΌλ‘œ 쒅속됨을 μ˜λ―Έν•œλ‹€.

 

πŸ”Άμ™„μ „ ν•¨μˆ˜μ  쒅속

속성집합Bκ°€ 속성집합A 전체에 λŒ€ν•΄μ„œλ§Œ ν•¨μˆ˜μ μœΌλ‘œ μ’…μ†λœ 경우λ₯Ό μ˜λ§ˆν•œλ‹€.

  • 일반적으둜 ν•¨μˆ˜μ  쒅속성은 μ™„μ „ν•¨μˆ˜μ’…μ†μ„ μ˜λ―Έν•œλ‹€.

 

πŸŽ‡λ°μ΄ν„°λ² μ΄μŠ€ μ •κ·œν™”

λ°μ΄ν„°λ² μ΄μŠ€μ— μ‚½μž…μ΄μƒ, 갱신이상, μ‚­μ œμ΄μƒ λ“± μ΄μƒν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•ŠκΈ° μœ„ν•΄μ„œλŠ” μ •κ·œν™” 과정이 κΌ­ ν•„μš”ν•˜λ‹€

 

πŸ”Άμ •κ·œν™”(Normalization)

κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ„€κ³„μ—μ„œ 쀑볡을 μ΅œμ†Œν™”ν•˜κ²Œ 데이터λ₯Ό κ΅¬μ‘°ν™”ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ‹€.

  • 즉, ν•¨μˆ˜μ  쒅속성을 μ΄μš©ν•΄ μ—°κ΄€μ„± μžˆλŠ” 속성듀을 λΆ„λ₯˜ν•˜κ³ , 각 λ¦΄λ ˆμ΄μ…˜μ—μ„œ μ΄μƒν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•Šκ²Œ μ‘°μ •ν•˜λŠ” 과정이닀.

  • μ •κ·œν™” 된 정도λ₯Ό 'μ •κ·œν˜•'으둜 ν‘œν˜„ν•˜λŠ”λ° 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, 6NF κΉŒμ§€ μžˆλ‹€. ->μš°λ¦¬κ°€ ν”νžˆ μ™Έμš°λŠ” 도뢀이결닀쑰!

  • μΌλ°˜μ μœΌλ‘œλŠ” 3NFκ°€ 되면 μ •κ·œν™” 됐닀고 λ§ν•œλ‹€.

  • μ •κ·œν™” κ³Όμ •μ—μ„œ μ£Όμ˜ν•  점은 μ •κ·œν™”λ₯Ό 톡해 λΆ„ν•΄λœ λ¦΄λ ˆμ΄μ…˜λ“€μ΄ 쑰인을 톡해 μ›λž˜μ˜ ꡬ쑰둜 볡원될 수 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 것이닀.

 

πŸ”Ά μ œ 1 μ •κ·œν˜•

λ¦΄λ ˆμ΄μ…˜μ— μ†ν•œ λͺ¨λ“  μ†μ„±μ˜ 도메인이 μ›μžκ°’μœΌλ‘œ ꡬ성돼 있으면 제 1 μ •κ·œν˜•μ— μ†ν•œλ‹€.

  • κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ¦΄λ ˆμ΄μ…˜μ€ λͺ¨λ“  속성이 μ›μž 값을 κ°€μ§€λŠ” νŠΉμ„±μ΄ 있기 λ•Œλ¬Έμ—, μ΅œμ†Œν•œ 제1μ •κ·œν˜•μ„ λ§Œμ‘±ν•΄μ•Ό λ¦΄λ ˆμ΄μ…˜μ΄ 될 자격이 μžˆλ‹€.

πŸ”Ά μ œ 2 μ •κ·œν˜•

제 1 μ •κ·œν˜•μ— μ†ν•˜λ©΄μ„œ, κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ λͺ¨λ“  속성이 기본킀에 μ™„μ „ ν•¨μˆ˜ μ’…μ†λ˜λ©΄ 제 2 μ •κ·œν˜•μ΄λ‹€. (즉, λΆ€λΆ„ ν•¨μˆ˜ 쒅속 제거!)

  • 제 1 μ •κ·œν˜•λ§Œ λ§Œμ‘±μ‹œν‚€λŠ” λ¦΄λ ˆμ΄μ…˜μ—μ„œ λΆ€λΆ„ ν•¨μˆ˜ 쒅속성을 κ°€μ§€κ²Œ λ˜λŠ” 경우 μ‚½μž…, κ°±μ‹ , μ‚­μ œ 이상 ν˜„μƒ λͺ¨λ‘ λ‚˜νƒ€λ‚˜κ²Œ λœλ‹€.

πŸ”Ά μ œ 3 μ •κ·œν˜•

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

  • 이행적 ν•¨μˆ˜ 쒅속 : X -> Y, Y -> Z 이면 X -> Z이닀. Zκ°€ X에 μ΄ν–‰μ μœΌλ‘œ ν•¨μˆ˜ 쒅속됐닀.

  • X->Y, Y->Z ν•¨μˆ˜μ  μ’…μ†κ΄€κ³„λ‘œ 인해 X->Z 의 이행적 ν•¨μˆ˜ 쒅속 관계가 λ‚˜νƒ€λ‚˜λ©΄ [X, Y], [Y, Z] 두 λ¦΄λ ˆμ΄μ…˜μœΌλ‘œ λΆ„ν•΄ν•œλ‹€.

πŸ”Ά BCNF(Boyce-Codd Normal Form)

X -> Y μ—μ„œ Yκ°€ X의 λΆ€λΆ„μ§‘ν•©μ΄κ±°λ‚˜, X λŠ” λ¦΄λ ˆμ΄μ…˜ R 의 μŠˆνΌν‚€μ΄λ‹€.

 

 

πŸŽ‡ λ°μ΄ν„°λ² μ΄μŠ€ λ°˜μ •κ·œν™”

πŸ”Ά λ°˜μ •κ·œν™”(Denormalization)

반 μ •κ·œν™”λŠ” μ‹œμŠ€ν…œ μ„±λŠ₯ ν–₯상과 개발 및 운영의 λ‹¨μˆœν™”λ₯Ό μœ„ν•΄ 데이터 λͺ¨λΈμ„ ν†΅ν•©ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ„±λŠ₯ν–₯상 기법이닀.

  • μ •κ·œν™”λŠ” μͺΌκ°œκ³  λ°˜μ •κ·œν™”λŠ” ν•©μΉ˜λŠ” λŠλ‚Œ

     

λ°˜μ‘ν˜•