π€μ κ·ν(Normalization)λ?
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ€κ³μμ μ€λ³΅μ μ΅μννκ² λ°μ΄ν°λ₯Ό ꡬ쑰ννλ νλ‘μΈμ€λ₯Ό
μ κ·ν
λΌκ³ νλ€.
κ·Έλ λ€λ©΄ 'μ€λ³΅μ μ΅μννκ² λ°μ΄ν°λ₯Ό ꡬ쑰ν'λΌλ κ² λκΉ?
곡ν΅μ μΌλ‘ ν¨μ μ’ μμ±μ μ¬μ© λλ μ΄μ©ν΄μ ν μ΄λΈ(릴λ μ΄μ )μ κ΄λ ¨ μλ μμ±λ€λ‘λ§ κ΅¬μ±ν΄μ λλ¨Έμ§λ λΆν΄νκ³ μ΄μνμμ΄ λ°μνμ§ μλ ν μ΄λΈμ λ§λ€μ΄κ°λ κ³Όμ μ΄λΌκ³ λλΆλΆμ λΈλ‘κ·Έμμ μ€λͺ λκ³ μλ€.
ν¨μ μ’ μμ±μ΄λΌλ κ±Έ μ¬μ©ν΄μ ν¨μμ’ μμ±κ³Ό κ΄λ ¨λ attibuteλ€λ‘λ§ κ΅¬μ±νκ³ λλ¨Έμ§λ λΆν΄ κ·Έλ¦¬κ³ μ€λ³΅μ΄ λ°μνμ§ μκ² νλ κ³Όμ μ΄κ΅¬λ!
βν¨μ μ’ μμ±μ λμ§?
ν ν μ΄λΈμ μλ λ κ°μ Attribute(s) μ§ν©(set) μ¬μ΄μ μ μ½(a contraint)
- X κ°μ λ°λΌ Y κ°μ΄ μ μΌνκ² κ²°μ λ λ
- Xκ° Yλ₯Ό ν¨μμ μΌλ‘ κ²°μ νλ€(functionally determine)
- Yκ° Xμ ν¨μμ μΌλ‘ μμ‘΄νλ€(functionally dependent)
- λ μ§ν© μ¬μ΄μ μ΄λ¬ν μ μ½κ΄κ³λ₯Ό
Functional Dependency(FD) : ν¨μμ μ’ μμ±
λΌκ³ νλ€.
μ¬μ μ μΌλ‘ μ μνμλ©΄ μ΄λ λ€. X -> YλΌκ³ νμνλ€κ³ νλ€.
μλΏμ§ μλλ€.
μμ λ₯Ό κ°μ Έμλ΄€λ€.
Xκ°μ λ°λΌ Yκ°μ΄ μ μΌνκ² κ²°μ λλ€κ³ νλ€. κ·Έλ λ€λ λ§μ Xκ°μ΄ μ λν¬νλ€κ³ ν μ μμ κ² κ°λ€.
κ·Έλ λ€λ©΄ μνμ΄λ¦κ³Ό κ³μ’λ²νΈκ° μμΌλ©΄ λ€λ₯Έ attributeλ₯Ό κ²°μ ν μ μμ κ² κ°λ€.κ³μ’ λ²νΈλ λ€λ₯Έ μνκ³Ό κ²ΉμΉ μ μμ§ μμκΉ?
μκ°μ΄ λ€κΈ° λλ¬Έμ΄λ€.
κ·Έλ¦¬κ³ κ³μ’λ²νΈ_μμ΄λ
λ κ°μ μνμμλ μμ΄λκ° κ°μΌλ©΄ μ λκΈ° λλ¬Έμ κΈ°λ³Έ ν€λ‘ μ¬μ©μ΄ κ°λ₯ν κ² κ°λ€.
κ·Έλ λ€λ©΄ ν ν
μ΄λΈμ λ κ°μ μμ± κ³μ’λ²νΈ_μμ΄λ
μ λλ¨Έμ§ λͺ¨λ μμ±λ€
μ ν¨μμ μΌλ‘ κ²°μ λκ³ μμ‘΄λλ€κ³ ν μ μλκ±° μλκΉ?
μ΄μ ν¨μμ μ’
μμ±μ μμλ€.
βκ·Έλ¬λ©΄ μ΄μνμμλ λκ° μμκΉ?
ν μ΄λΈμ μμ (κ°±μ , μ½μ , μμ )μ μμΉ μλ λΆμμ©μ΄ λ°μν μ μλ€....
π€κ°±μ μ λκΉ?
βοΈ κ°μμΌ νλ μ λ³΄κ° λ³΅μ κ°μ νμμ ννλλ©΄, μ λ³΄κ° μμ λλ©΄ λͺ¨λ λ μ½λλ₯Ό ν¨κ» μμ ν΄μΌ νλ€. μ΄λ κ°±μ μ΄ μ±κ³΅μ μ΄μ§ μλλ€λ©΄ κ°±μ μ΄μ νμ
μ΄λΌκ³ νλ€.
π€μ½μ μ λκΉ?
βοΈ Nullκ°μ λΉ νμ©νλ 컬λΌμ΄ μλλ° μμ§ μ ν΄μ§μ§ μμ nullμΈ μν (μλ₯Ό λ€μ΄ μ νμ μλλ° λ°μ΄ μ§μ λμ§ μλ)λ₯Ό μ½μ
μ΄μ νμ
μ΄λΌκ³ νλ€.
π€μμ λ λκΉ?
βοΈ μμ λλ©΄ μ λλ μ€μν 컬λΌμ μμ νλ κ²½μ°μ κ·Έ μ 보 μ μ²΄κ° μ¬λΌμ§λλ°, μ΄λ° νμμ μμ μ΄μ νμ
μ΄λΌκ³ νλ€.
βκ·ΈλΌ 'μ κ·ν'λ₯Ό νλ€λ©΄ μ’μκ±ΈκΉ?
κΌ κ·Έλ μ§ μλ€. λ°μ΄ν° μ©λμ΄ μ΅μνλλ ν¨κ³Όλ μμμ§μΈμ λ°μ΄ν°λ₯Ό μ‘°νν λ μ±λ₯μ΄ ν₯μλ μλ μ νλ μλ μλ€. κ·Έλ¦¬κ³ λλ¨Έμ§λ μ±λ₯μ΄ ν₯μλλ€!
μ κ·νμ λ¨μ μ?
μ무λλ ν μ΄λΈλ€μ λλμ΄μ JOINμ°μ°μ΄ λ§μ μ§ κ²μ΄λ€. κ·Έλ κΈ° λλ¬Έμ μλ΅μκ°λν λλ €μ§ μλ μμ κ²μ΄λ€.
π€μ κ·νκ³Όμ μ μ΄λ€κ² μμκΉ?
λλ νμ μ μΌλ‘ λΈλ‘κ·Έλ₯Ό μ°λκ² μλλΌ μ·¨μ κ³Ό μ€λ¬΄μμ μ¬μ©νλκ²μ μ΄μ²¨μ λ§μΆμκΈ° λλ¬Έμ BCNFκΉμ§λ§ ν κ²μ΄λ€.
π©1μ κ·ν(1NF: 1 Normal forms)
1NFλ? -> attributeμ valueλ λ°λμ λλ μ§μ μλ λ¨μΌν κ°μ΄μ΄μΌ νλ€.
- κ° μ»¬λΌμ΄ νλμ μμ±λ§μ κ°μ ΈμΌνλ€.
- νλμ 컬λΌμ κ°μ μ’ λ₯λ νμ μ κ°μ κ°μ ΈμΌνλ€.
- κ° μ»¬λΌμ΄ μ μΌν μ΄λ¦μ κ°μ ΈμΌ νλ€.
- μΉΌλΌμ μμκ° μκ΄μμ΄μΌνλ€.
π©2μ κ·ν(2NF)
ν¨μμ’ μ, μ£Όμλ³μμ μμ μ’ μμ μ΄μ§ μμ μμ±μ λΆλ¦¬, λΆλΆ μ’ μ μμ±(Partial Dependenty Attribute)λ₯Ό λΆλ¦¬
- μ 1μ κ·νλ₯Ό λ§μ‘±
- λͺ¨λ 컬λΌμ΄ λΆλΆμ (Partial Dependency)μ΄ μμ΄μΌ νλ€. λͺ¨λ μΉΌλΌμ΄ μμ ν¨μ μ’ μμ λ§μ‘±ν΄μΌνλ€.
μ΄ν΄κ° μ΄λ €μμ‘λ€. 1 μ κ·ν μμ±μ κ°μ νλμ¬μΌ νλ©΄μ
λͺ¨λ 컬λΌμ΄ λΆλΆμ μ΄ μμ΄μΌ νλ€
μ΄κ² μ΄λ€ λ»μΌκΉ? 그리κ³λͺ¨λ μΉΌλΌμ΄ μμ ν¨μ μ’ μμ λ§μ‘±
μ΄κ±΄ λ μ΄λ€ λ§μΈκ±°μ§? νλμ© μ΄ν΄ 보μ μΌλ¨ μμ ν¨μ μ’ μλΆν° μ΄ν΄λ³΄μ
ν보ν€κ° μλ μμ±λ€μ΄ ν보ν€λ₯Ό μ’ μνκ³ μμ΄μΌ νλ€λΌκ³ λ³Ό μ μλ€.
a~f 컬λΌμ΄ μλ€κ³ κ°μ νκ³ νλ³΄ν€ {a, b} -> {c, d, e, f}λ₯Ό μ’ μνκ³ μκ³
{c} -> {a, b, d, e, f}λ₯Ό μ’ μνλ€λ©΄ μμ ν¨μ μ’ μμ΄λΌκ³ λ³Ό μ μλ€.
κ²°λ‘ μ ν보ν€λ₯Ό ν¨μμ μ’ μ(λ°λΌλ³΄λ μμ±λ€)ν΄μΌνλ€. μ λΆ λΌκ³ ν μ μλ€.
π©3μ κ·ν(3NF)
- 2μ κ·νλ₯Ό λ§μ‘±ν΄μΌνλ€.
- ν보ν€κ° μλ μμ±λ€μμ μ΄ν μ’ μ(Transitive Dependency)μ΄ λ°μνμ§ μμμΌν©λλ€.
νλ³΄ν€ : μ μΌμ±, μ΅μμ±μ 보μ₯νλ ν€
μ΄ν μ’ μμ΄λΌλ κ² λ¬΄μμΌκΉ μ°Ύμλ΄€λλ° μ΄κ² κ°μ₯ μ νν κ² κ°λ€.non-prime attribute : ν보 ν€ μμ±μ μ μΈν λλ¨Έμ§
prime attribute : ν보 ν€ μμ±
μ΄λ κ² μλ€λ©΄
π©BCNF : 보μ΄μ€ μ½λ μ κ·ν
ν¨μμ’ μ, κ²°μ μ μμ ν¨μ μ’ μμ κ°μ§ μ£Όμλ³μ λΆλ¦¬
- 3μ κ·νλ₯Ό λ§μ‘±
- λͺ¨λ κ²°μ μκ° νλ³΄ν€ μ§ν©μ μν΄μΌ νλ€
- μ¦, λͺ¨λ μ ν¨ν non-trivial FD X-> Yλ Xκ° super keyμ¬μΌ νλ€.
'πμ€ν°λ > λ°μ΄ν°λ² μ΄μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°μ΄ν° λ² μ΄μ€] - Key (0) | 2024.03.27 |
---|---|
[λ°μ΄ν° λ² μ΄μ€] - RDBMS, NoSQL (0) | 2024.03.27 |
[λ°μ΄ν° λ² μ΄μ€] - μ€ν€λ§ (0) | 2024.03.26 |