π¨π» μ κ·ν(Normalization)
μ κ·νμ κΈ°λ³Έ λͺ©νλ 'ν μ΄λΈ κ°μ μ€λ³΅λ λ°μ΄ν°λ₯Ό νμ©νμ§ μλλ€'λ κ²μ΄λ€. μ€λ³΅λ λ°μ΄ν°λ₯Ό νμ©νμ§ μμμΌλ‘μ¨ λ¬΄κ²°μ±μ μ μ§ν μ μμΌλ©° DBμ μ μ₯ μ©λ μμ μ€μΌ μ μλ€. μ΄λ¬ν ν μ΄λΈμ λΆν΄νλ μ κ·ν λ¨κ³κ° μ μλμ΄ μλλ° ν μ΄λΈμ μ΄λ»κ² λΆν΄λλμ§μ λ°λΌ μ κ·ν λ¨κ³κ° λ¬λΌμ§λ€.
[ μ 1 μ κ·ν ]
βοΈ ν μ΄λΈμ 컬λΌμ΄ μμκ°(Atomic Value, νλμ κ°)μ κ°λλ‘ ν μ΄λΈμ λΆν΄νλ κ²


βοΈ μμ μΆμ μμ λ°μΈλ¦¬λ μ¬λ¬ κ°μ μ·¨λ―Έλ₯Ό κ°μ§κ³ μκΈ° λλ¬Έμ μ 1 μ κ·νμ λ§μ‘±νμ§ λͺ»νκ³ μλ€. κ·Έλ κΈ° λλ¬Έμ μ΄λ₯Ό μ 1μ κ·ννμ¬ λΆν΄νλ©΄ μ€λ₯Έμͺ½ ν μ΄λΈκ³Ό κ°λ€.
[ μ 2 μ κ·ν ]
βοΈ μ 1 μ κ·νλ₯Ό μ§νν ν μ΄λΈμ λν΄ μμ ν¨μμ μ’ μμ λ§μ‘±νλ ν μ΄λΈμ λΆν΄νλ κ²
π‘ μμ ν¨μμ μ’ μ : κΈ°λ³Έν€μ λΆλΆμ§ν©μ΄ κ²°μ μκ° λμ΄μ μλλ€λ κ²

βοΈ μ ν μ΄λΈμμ κΈ°λ³Έν€λ (νμλ²νΈ, κ°μ’μ΄λ¦)μΌλ‘ 볡ν©ν€μ΄λ€. κ·Έλ¦¬κ³ (νμλ²νΈ, κ°μ’μ΄λ¦)μΈ κΈ°λ³Έν€λ μ±μ μ κ²°μ νκ³ μλ€. κ·Έλ°λ° μ¬κΈ°μ κ°μμ€μ΄λΌλ 컬λΌμ κΈ°λ³Έν€μ λΆλΆμ§ν©μΈ κ°μ’μ΄λ¦μ μν΄ κ²°μ λ μ μλ€.
β‘οΈ κΈ°λ³Έν€(νμλ²νΈ, κ°μ’μ΄λ¦)μ λΆλΆν€μΈ κ°μ’μ΄λ¦μ΄ κ²°μ μμ΄κΈ° λλ¬Έμ μμ ν μ΄λΈμ κ²½μ° λ€μκ³Ό κ°μ΄ κΈ°μ‘΄μ ν μ΄λΈμμ κ°μμ€μ λΆν΄νμ¬ λ³λμ ν μ΄λΈλ‘ κ΄λ¦¬νμ¬ μ 2 μ κ·νμ λ§μ‘±μν¬ μ μλ€.

[ μ 3 μ κ·ν ]
βοΈ μ 2 μ κ·νλ₯Ό μ§νν ν μ΄λΈμ λν΄ μ΄νμ μ’ μμ μμ λλ‘ ν μ΄λΈμ λΆν΄νλ κ²
π‘ μ΄νμ μ’ μ : A -> B, B -> Cκ° μ±λ¦½ν λ A -> Cκ° μ±λ¦½λλ κ²

βοΈ κΈ°μ‘΄μ ν μ΄λΈμμ νμ λ²νΈλ κ°μ’ μ΄λ¦μ κ²°μ νκ³ μκ³ κ°μ’ μ΄λ¦μ μκ°λ£λ₯Ό κ²°μ νκ³ μλ€. κ·Έλ κΈ° λλ¬Έμ μ΄λ₯Ό (νμ λ²νΈ, κ°μ’ μ΄λ¦) ν μ΄λΈκ³Ό (κ°μ’ μ΄λ¦, μκ°λ£) ν μ΄λΈλ‘ λΆν΄ν΄μΌ νλ€.
βοΈ μ΄νμ μ’ μμ μ κ±°νλ μ΄μ λ νμλ²νΈ -> κ°μ’μ΄λ¦ -> μκ°λ£ μΌλ κ°μ’ μ΄λ¦μ΄ λ³κ²½λ λ μκ°λ£κ° λ³κ²½λμ§ μκΈ° λλ¬Έμ΄λ€. κ°μ’ μ΄λ¦μ λ§κ² μκ°λ£λ₯Ό λ€μ λ³κ²½νλ©΄ λμ§λ§ μ΄λ¬ν λ²κ±°λ‘μμ ν΄κ²°νκΈ° μν΄ μ 3 μ κ·νλ₯Ό μ§ννλ€.

[ BCNF μ κ·ν ]
βοΈ μ 3 μ κ·νλ₯Ό μ§νν ν μ΄λΈμ λν΄ λͺ¨λ κ²°μ μκ° ν보ν€κ° λλλ‘ ν μ΄λΈμ λΆν΄νλ κ²

βοΈ νΉκ°μκ° ν μ΄λΈμμ κΈ°λ³Έν€λ (νμλ²νΈ, νΉκ°μ΄λ¦)μ΄λ€. κ·Έλ¦¬κ³ κΈ°λ³Έν€ (νμλ²νΈ, νΉκ°μ΄λ¦)μ κ΅μλ₯Ό κ²°μ νκ³ μλ€. κ΅μλ νΉκ°μ΄λ¦μ κ²°μ νκ³ μλ€.
βοΈ κ·Έλ°λ° λ¬Έμ λ κ΅μκ° νΉκ°μ΄λ¦μ κ²°μ νλ κ²°μ μμ§λ§ ν보ν€κ° μλλΌλ μ μ΄λ€. κ·Έλ κΈ° λλ¬Έμ BCNF μ κ·νλ₯Ό λ§μ‘±μν€κΈ° μν΄μ ν μ΄λΈμ λΆν΄ν΄μΌ νλ€.

π¨π» λΉμ κ·ν(Unnormalized form), μμ κ·ν(Denormalization)
βοΈ μμ κ·νμ λΉμ κ·νκ° κ°μ μλ―Έλ‘ μ°μ΄λ κ² κ°μ§λ§ μμ°ν λ§νλ©΄ λ€λ₯΄λ€.
β‘οΈ λΉμ κ·ν : μ κ·νλ ν μ΄λΈ(릴λ μ΄μ )μ μ½κΈ°μ±λ₯ ν₯μμ μν΄ ν μ΄λΈμ λ€μ ν©μΉλ λ°©λ²μ΄λ€. (μμ κ·ν, Entity ν©μ²΄, Entity λΆν΄ λ± μ¬λ¬ λ°©λ²μ΄ μμ§λ§ μμ κ·νκ° μΌλ°μ )
β‘οΈ μμ κ·ν : μ κ·νλ ν μ΄λΈμ λΉμ κ·ν μνλ‘ λ§λ€κΈ° μν λ°©λ² μ€ νλμ΄λ€.(λΉμ κ·νκ° λ ν¬κ΄μ μ)

βοΈ λΉμ κ·νλ₯Ό μ¬μ©νλ μ΄μ λ λ°μ΄ν°λ² μ΄μ€μ μλ²½ν ꡬ쑰μ€κ³λ₯Ό ν¬κΈ°νκ³ λ°μ΄ν°μ 무결μ±μ λ¨μ΄νΈλ¦¬λ λμ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ½κΈ° μ±λ₯ ν₯μμν€κΈ° μν¨μ΄λ€.
βοΈ (3κ΅μ μ μλμ κ°μμ μκ°λ£)λ₯Ό μκ³ μΆλ€λ©΄ μ κ·νλ ν μ΄λΈμμ
- <κ°μ¬>ν μ΄λΈμμ (κ°μμκ°, μ΄λ¦, λ΄λΉμμ )μ νμΈνκ³ ,
- <μμ >ν μ΄λΈμμ (μμ μ½λ)λ₯Ό νμΈνκ³
- <μκ°λ£>ν μ΄λΈμμ (μκ°λ£)λ₯Ό νμΈν΄μΌ νλ€.
λ°μ΄ν°λ² μ΄μ€μμλ 3κ°μ§ ν μ΄λΈμ κ°μν€λ‘ JOIN νμ¬ λ°μ΄ν° κ°μ μ°Ύλλ€. λ§μ½ ν μ΄λΈ μκ° λ μ¦κ°νλ©΄ λ§μ JOINμ μ¬μ©ν΄μΌ νκΈ° λλ¬Έμ λ°μ΄ν° μ½κΈ° ν¨μ¨μ±μ΄ λ¨μ΄μ§λ€.
β‘οΈ κ·Έλμ <μκ°ν> ν μ΄λΈμ²λΌ λΉμ κ·νλ₯Ό μν€λ κ²μ΄λ€.
βοΈ νμ§λ§ λΉμ κ·νλ₯Ό ν λ κ³ λ €ν΄μΌ ν μ μ΄ μλ€.
- 무결μ±(λ°μ΄ν°μ μ νμ±)μ΄ λ¨μ΄μ§λ κ²μ μ£Όμ
- μ½κΈ°(μ‘°ν)μλλ λΉ¨λΌμ§μ§λ§ μ°κΈ°(μ½μ , μμ , μμ ) μλλ λλ €μ§λ€.
- μ μ₯곡κ°μ ν¨μ¨μ΄ λ¨μ΄μ§λ€.
- μ μ§λ³΄μκ° μ΄λ ΅λ€.
π‘ μ΄λ° λ¬Έμ κ° μμμλ λΉμ κ·νλ₯Ό νλ μ΄μ λ μ€λ‘μ§ μ±λ₯ λ¬Έμ κ° μλ(μ½κΈ° μμ μ΄ λ§μ΄ νμν) ν μ΄λΈ λλ¬Έμ΄λ€.
'Database' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| MySQL μμ§ μν€ν μ² μ΄ν΄νκΈ° (0) | 2025.10.09 |
|---|---|
| MySQL, PostgreSQLμ λ μ§μ μκ° νμ μ΄ λ§λ νΌλ (1) | 2025.04.23 |
| [λ°μ΄ν°λ² μ΄μ€] RDBMS, NoSQL (2) | 2023.12.16 |
| [λ°μ΄ν°λ² μ΄μ€] Index (2) | 2023.12.01 |
| [λ°μ΄ν°λ² μ΄μ€] Join (0) | 2023.11.29 |