Database normalization
λ°μ΄ν°λ² μ΄μ€ μ κ·ν
Database Normalization
μΆμ λΉλ: μ
λΉμΆ νκ·Έ: μ’ μμ±, μ κ·ν λ¨κ³, μ΄μ νμ
1. λ°μ΄ν° μ’ μμ± (Data Dependency)
1.1 κΈ°λ³Έ κ°λ
- μ μ: λ°μ΄ν°μ λ λ€λ₯Έ λ°μ΄ν°κ° μλ‘ μμ‘΄κ΄κ³λ₯Ό κ°μ§λ κ²
- Aκ° λ³κ²½λ λ Bλ λ³κ²½λ¨
- Aκ° μμ λ λ Bλ μμ λ¨
- λ°μ΄ν° μ’ μμ±μΌλ‘ μΈν΄ λ³κ²½, μ½μ , μμ λ± μ μ½μ΄ λ°λ₯΄κ±°λ 무결μ±μ΄ νΌμλ¨
1.2 μ’ μμ±μ μ’ λ₯
- ν¨μ μ’ μ
- λ€κ°(λ€μΉ)μ’ μ
- μ‘°μΈ μ’ μ
2. ν¨μμ μ’ μ (Functional Dependency)
2.1 μ μ
- ν μμ±μ΄ λ€λ₯Έ μμ±μ μ μΌνκ² μλ³ν μ μλ μν
- νκΈ°λ²: A β B (Aμμ±μ΄ Bμμ±μ μ μΌνκ² μλ³)
2.2 ꡬμ±μμ
- κ²°μ μ(Determinant)
- μ’ μμ± κ·λͺ μ κΈ°μ€ μμ±
- μ μΌν¨
- μ€λ³΅ λΉνμ©
- μ’
μμ(Dependent)
- κ²°μ μμ μν΄ κ°μ΄ μ ν΄μ§λ μμ±
- μ€λ³΅ νμ©
3. λ€κ°(λ€μΉ) μ’ μ (MultiValued Dependency)
- νλμ κ²°μ μκ° λ€λ₯Έ μ¬λ¬ κ΄λ ¨μλ μμ±μ κ°μ κ²°μ
-
νκΈ°λ²: G -Β» H J -
μμ: νλ² -> μ΄λ¦ λμ¬νμ - νΉμ§: H, Jλ μλ‘ κ΄λ ¨μ΄ μμ
4. μ‘°μΈ μ’ μ (Join Dependency)
- μ μ΄μμ 릴λ μ΄μ μΌλ‘ λΆν΄ν λ€ λ€μ μ‘°μΈνμ¬ λ³΅μ κ°λ₯
- 곡ν΅ν€λ₯Ό κΈ°μ€μΌλ‘ λ€μ μ‘°μΈλμ΄ λ³΅μν μ μμ΄μΌ ν¨
5. νν¬ (Closure)
5.1 μ μ
- νΉμ μμ±μ μ’ μλμλ€κ³ μΆλ‘ κ°λ₯ν λͺ¨λ μμ±μ μ§ν©
- νκΈ°λ²: νμλ²νΈ+
5.2 μ’ μμ± μΆλ‘ κ·μΉ
- λ°μ¬(Reflexivity)
- Yκ° Xμ λΆλΆμ§ν©μΌ λ XβY μ±λ¦½
- μ¦κ°(Augmentation)
- XβYμ΄λ©΄ XZβYZ μ±λ¦½
- μ΄ν(Transitivity)
- XβYμ΄κ³ YβZμ΄λ©΄ XβZ μ±λ¦½
- κ²°ν©(Union)
- XβYμ΄κ³ XβZμ΄λ©΄ XβYZ μ±λ¦½
- λΆν΄(Decomposition)
- XβYZμ΄λ©΄ XβYμ΄κ³ XβZ μ±λ¦½
- μμ¬μ΄ν(Pseudo Transitivity)
- XβYμ΄κ³ YZβWμ΄λ©΄ XZβW μ±λ¦½
6. μ κ·ν (Normalization)
6.1 μ μμ νΉμ§
- μ€λ³΅μ±μ μ΅μννκ³ μ 보μ μΌκ΄μ±μ 보μ₯
- λ Όλ¦¬ λ°μ΄ν° λͺ¨λΈλ§ μμΈνμμ κ°μ₯ μ€μν λ¨κ³
- νΉμ§
- μ νμ±, μΌμΉμ±, λ¨μμ±, λΉμ€λ³΅μ±, μμ μ± λ³΄μ₯
- λΆν΄ νλ¨κΈ°μ€ μ 곡
- λ¬΄κ²°μ± μ μ§
- μ μ°ν λ°μ΄ν° κ΅¬μΆ κ°λ₯ (λ¨, 물리μ μ κ·Όκ²½λ‘κ° λ³΅μ‘ν΄μ§)
6.2 μ κ·ν λ¨κ³
- λΉμ κ·ν: μ κ·ν μ§ν μλ μν
- κΈ°λ³Έ μ κ·ν
- 1NF
- 2NF (λΆλΆ ν¨μ μ’ μ μ κ±°)
- 3NF (μ΄νμ ν¨μ μ’ μ μ κ±°)
- BCNF
- κ³ κΈ μ κ·ν
- 4NF (λ€μΉ μ’ μ μ κ±°)
- 5NF (μ‘°μΈ μ’ μ μ κ±°)
6.3 μ΄μ νμ
- λͺ©μ : λ°μ΄ν° μ½μ , κ°±μ , μμ μμ λ°μνλ μ΄μνμ μ κ±°
- μ’
λ₯
- μ½μ μ΄μ: νν μ½μ μ κ΄λ ¨μλ μ 보 ν¨κ» μ½μ
- κ°±μ μ΄μ: νν κ°±μ μ λ°μ΄ν° λΆμΌμΉ
- μμ μ΄μ: νν μμ μ κ΄λ ¨λ μ 보 ν¨κ» μμ
6.4 μ κ·ν λ¨κ³λ³ μ€λͺ
μ 1μ κ·ν (1NF)
- λͺ¨λ μμ±μ λλ©μΈμ΄ μμκ°μ κ°μ§
- μμκ°μ΄ μλ κ°μ κ°μ§λ μμ± μ κ±°
- μ€λ³΅ μ κ±°κ° μλ μμκ° λ³΄μ₯μ΄ λͺ©μ
μ 2μ κ·ν (2NF)
- λͺ¨λ μμ±μ΄ μμ ν¨μ μ’ μμ κ°μ§
- μμ ν¨μ μ’ μ: μ’ μμκ° λͺ¨λ κ²°μ μμ μ’ μ
- λΆλΆ ν¨μ μ’ μ: μ’ μμκ° μΌλΆ κ²°μ μμ μ’ μ
- μμ
- λΆλΆν¨μμ’ μ: νλ²βμ΄λ¦
- μμ ν¨μμ’ μ: {νλ²,κ³Όλͺ©}βμ±μ
μ 3μ κ·ν (3NF)
- μ΄νμ ν¨μ μ’ μμ κ°μ§ μμ± μ κ±°
- μμ: λμμ½λβλμλͺ , λμλͺ βμ μ, λμμ½λβμ μ
BCNF (Boyce-Codd Normal Form)
- κ²°μ μκ° ν보ν€κ° μλ ν¨μ μ’ μ μ κ±°
- 릴λ μ΄μ μ΄ 3NFμ΄κ³ λͺ¨λ κ²°μ μκ° ν보ν€
- μ€μ μ μΈ μ κ·νμ λͺ©ν λ¨κ³
μ 4μ κ·ν (4NF)
- λ€μΉμ’ μμ±μ κ°μ§ μμ± μ κ±°
-
μμ: κ³Όλͺ© -Β» κ°μ¬ νλ‘κ·Έλ¨
μ 5μ κ·ν (5NF)
- μ‘°μΈ μ’ μμ μ κ±°
- μ‘°μΈ μ’ μμ±μ΄ ν보ν€λ₯Ό ν΅ν΄μλ§ μ±λ¦½
7. λ Όλ¦¬ λ°μ΄ν° λͺ¨λΈ νμ§ κ²μ¦
7.1 λ°μ΄ν° λͺ¨λΈμ νκ°μμ
- μμ μ±(Completeness)
- μ€λ³΅ λ°°μ (Non-Redundancy)
- μ 무 κ·μΉ(Business Rule)
- λ°μ΄ν° μ¬μ¬μ©(Data Reusability)
- μμ μ± λ° νμ₯μ±
- κ°κ²°μ±
- μμ¬μν΅
7.2 λ Όλ¦¬ λ°μ΄ν° λͺ¨λΈ νμ§ κΈ°μ€
- μ νμ±
- μμ μ±: λλ½ μ΅μν
- μ€κ±°μ±: λ°μ΄ν° νμ€, νμ€ν κ·μΉ, λ²μ μ건 μ€μ
- μ΅μ μ±
- μΌκ΄μ±(ν΅ν©μ±)
- νμ©μ±