π μ κ·ν vs λ°μ κ·ν
μ κ·ν (Normalization)
λ°μ΄ν°λ₯Ό μ€λ³΅ μμ΄ λλμ΄ μ μ₯νλ κ²
μ κ·νλ λ°μ΄ν°λ₯Ό μν μ λ§κ² λΆλ¦¬ν΄μ μ€λ³΅μ μ΅μννλ λ°©μμ΄λ€.
μ΄κ±Έ μ½κ² λΉμ νλ©΄ μ°½κ³ μ 리λ λΉμ·νλ€.
λͺ¨λ 물건μ ν μμμ λ€ λ£μ΄λλ©΄ μ°ΎκΈ°λ νλ€κ³ κ°μ λ¬Όκ±΄μ΄ κ³μ μμΈλ€.
κ·Έλμ μ’ λ₯λ³λ‘ λλ μ 보κ΄νλ©΄ νμν κ±Έ μ°ΎκΈ°λ μ¬μμ§κ³ κ΄λ¦¬λ νΈν΄μ§λ€.
μ κ·νλ λκ°λ€.
λ°μ΄ν°λ₯Ό μν μ λ§κ² λλ μ μ€λ³΅μ μ€μ΄λ κ²μ΄λ€.
μλ₯Ό λ€μ΄ νλμ ν
μ΄λΈμ μ¬μ©μ μ 보, μ£Όλ¬Έ μ 보, μν μ λ³΄κ° μ λΆ λ€μ΄μλ€λ©΄
κ°μ μ¬μ©μλ μν μ λ³΄κ° κ³μ λ°λ³΅λ μ μλ€.
μ΄κ±Έ μ κ·ννλ©΄ μ¬μ©μ ν
μ΄λΈ, μ£Όλ¬Έ ν
μ΄λΈ, μν ν
μ΄λΈ μ΄λ κ² λλκ² λλ€.
μ€λ³΅ μ κ±°μ λ°μ΄ν° μΌκ΄μ± μ μ§ μ΄λ κ² λκ°κ° ν΅μ¬μ΄λ€.
μ‘°κΈ λ μ ννκ² λ§νλ©΄ μ κ·νλ μ΄μ νμμ΄ λ°μν μ μλ ꡬ쑰λ₯Ό λΆν΄ν΄μ λ¬Έμ κ° μκΈ°μ§ μλλ‘ λ§λλ κ³Όμ μ΄λ€.
μ κ·νμ λͺ©μ
μ κ·νλ₯Ό νλ μ΄μ λ λ¨μν κΉλνκ² μ 리νκΈ° μν΄μκ° μλλ€.
- λ°μ΄ν° μ€λ³΅μ μ€μ¬ μ μ₯ 곡κ°μ ν¨μ¨μ μΌλ‘ μ¬μ©νκΈ° μν΄
- λ°μ΄ν° μμ μ λ°μνλ μ΄μ νμμ λ°©μ§νκΈ° μν΄
- λ°μ΄ν° ꡬ쑰λ₯Ό λ λͺ
ννκ³ λ
Όλ¦¬μ μΌλ‘ λ§λ€κΈ° μν΄
νΉν μ€μν 건 μ΄μ νμμ΄λ€.
νλμ λ°μ΄ν°λ§ μμ νλλ° λ€λ₯Έ κ³³μμλ κ·Έλλ‘ λ¨μμλ€λ©΄ λ°μ΄ν°κ° μλ‘ λ€λ₯Έ κ°μ κ°μ§κ² λλ€..
μ΄λ° λ¬Έμ λ₯Ό λ§κΈ° μν΄ μ κ·νλ₯Ό νλ κ²μ΄λ€.
μ΄μ νμ (Anomaly)
μ κ·νλ₯Ό μ΄ν΄νλ €λ©΄ μ΄μ νμμ λ¨Όμ μμμΌ νλλ°, λνμ μΌλ‘ μΈ κ°μ§κ° μλ€.
μ½μ μ΄μ : λ°μ΄ν°κ° λΆμ‘±ν΄μ μΌλΆ μ 보λ₯Ό λ£μ§ λͺ»νλ κ²½μ°
μμ μ΄μ : νλλ₯Ό μμ νλλ° κ΄λ ¨λ λ€λ₯Έ μ 보κΉμ§ κ°μ΄ μ¬λΌμ§λ κ²½μ°
μμ μ΄μ : κ°μ λ°μ΄ν°λ₯Ό μ¬λ¬ κ³³μμ μμ ν΄μΌ νλ κ²½μ°
μ κ·νλ μ΄λ° λ¬Έμ λ₯Ό ꡬ쑰μ μΌλ‘ ν΄κ²°νλ κ³Όμ μ΄λ€.
μ κ·ν λ¨κ³
μ κ·νλ λ¨κ³μ μΌλ‘ μ§νλλ€.
보ν΅μ 3μ κ·ν(3NF)κΉμ§λ₯Ό κΈ°μ€μΌλ‘ λ§μ΄ μ¬μ©νκ³ ,
νμμ λ°λΌ BCNFκΉμ§ κ³ λ €νλ€.
1μ κ·ν (1NF)
νλμ 컬λΌμλ νλμ κ°λ§ λ€μ΄κ°μΌ νλ€
μ¦, 컬λΌμ μμκ°(Atomic Value)μ κ°μ ΈμΌ νλ€.
| μ¬μ©μ | μ νλ²νΈ |
|---|---|
| A | 010-1111, 010-2222 |
μμ κ°μ λ°μ΄ν°κ° μλ€κ³ ν΄λ³΄μ.
μ΄κ±΄ νλμ 컬λΌμ μ¬λ¬ κ°μ΄ λ€μ΄κ° μκΈ° λλ¬Έμ 1μ κ·νμ λ§μ‘±νμ§ μλλ€.
μ΄κ±Έ μ κ·ννλ©΄ μλκ°μ΄ λ°λλλ°,
| μ¬μ©μ | μ νλ²νΈ |
|---|---|
| A | 010-1111 |
| A | 010-2222 |
μ΄λ κ² βν μΉΈ = νλμ κ°βμ΄ λλλ‘ λ§λλ κ²μ΄ 1μ κ·νμ΄λ€.
2μ κ·ν (2NF)
λΆλΆ ν¨μ μ’ μ μ κ±°
κΈ°λ³Έν€κ° μ¬λ¬ 컬λΌμΌλ‘ μ΄λ£¨μ΄μ§ κ²½μ°μλ§ μλ―Έκ° μλ€.
| μ£Όλ¬ΈID | μνID | μνλͺ | μλ |
|βββ|βββ|βββ|ββ|
μ΄ ν
μ΄λΈμμ κΈ°λ³Έν€κ° (μ£Όλ¬ΈID, μνID)λΌκ³ νλ©΄
μνλͺ
μ μνIDλ§μΌλ‘λ κ²°μ λλ€.
μ¦, μνID β μνλͺ
μ΄λ° κ΄κ³κ° μκΈ° λλ¬Έμ μνλͺ μ μ 체 ν€κ° μλλΌ μΌλΆ ν€μλ§ μμ‘΄νκ³ μλ€.
μ΄κ² λ°λ‘ λΆλΆ ν¨μ μ’ μμ΄λ€.
μ΄ κ²½μ° ν μ΄λΈμ μλμ κ°μ΄ λλκ³ ,
μ£Όλ¬Έ ν
μ΄λΈ
| μ£Όλ¬ΈID | μνID | μλ |
μν ν
μ΄λΈ
| μνID | μνλͺ
|
μ΄λ κ² λΆλ¦¬νλ©΄ 2μ κ·νμ λ§μ‘±νλ€.
3μ κ·ν (3NF)
μ΄νμ μ’ μ μ κ±°
μ΄λ€ 컬λΌμ΄ λ€λ₯Έ 컬λΌμ κ±°μ³μ μμ‘΄νλ κ²½μ°λ₯Ό μ κ±°νλ λ¨κ³λ€.
| μ¬μ©μID | λΆμID | λΆμμ΄λ¦ |
μ¬μ©μID β λΆμID
λΆμID β λΆμμ΄λ¦
μ΄λ°μμΌλ‘ κ΄κ³κ° νμ±λλλ°..
μ¬μ©μID β λΆμμ΄λ¦ (κ°μ μ μΌλ‘)
μ΄λ° ꡬ쑰λ₯Ό μ΄νμ μ’ μμ΄λΌκ³ νλ€. νμ§λ§ μ΄κ±Έ κ·Έλλ‘ λλ©΄ λ¬Έμ κ° μκΈ΄λ€.
μλ₯Ό λ€μ΄ λΆμ μ΄λ¦μ΄ λ°λλ©΄ κ°μ κ°μ μ¬λ¬ νμμ μ λΆ μμ ν΄μΌ νλ€.
μ¬μ©μ ν
μ΄λΈ
| μ¬μ©μID | λΆμID |
λΆμ ν
μ΄λΈ
| λΆμID | λΆμμ΄λ¦ |
κ·Έλμ μ΄λ°μμΌλ‘ λΆλ¦¬νλ©΄ 3μ κ·νμ λ§μ‘±νλ€.
BCNF
λͺ¨λ κ²°μ μκ° ν보ν€κ° λλλ‘ λ§λλ κ²
3μ κ·νκΉμ§ λ§μ‘±ν΄λ μ¬μ ν μ΄μ νμμ΄ λ°μν μ μλ κ²½μ°κ° μλ€.
μλ₯Ό λ€μ΄ 보μ.
| κ΅μ | κ³Όλͺ© | κ°μμ€ |
- ν κ΅μλ νλμ κ³Όλͺ©λ§ λ΄λΉνλ€
- νλμ κ³Όλͺ©μ μ¬λ¬ κ΅μκ° λ΄λΉν μ μλ€
μμ κ°μ 쑰건μΌλ, κ΄κ³λ μ΄λ κ² λλ€.
κ΅μ β κ³Όλͺ©
κ³Όλͺ© β κ°μμ€
μ¦, κ³Όλͺ©μ΄ κ°μμ€μ κ²°μ νμ§λ§ κ³Όλͺ©μ ν보ν€κ° μλλ€.
μ΄ μνμμλ λ°μ΄ν° μ΄μμ΄ λ°μν μ μλ€.
κ·Έλμ ν μ΄λΈμ λΆλ¦¬νλ€.
κ΅μ-κ³Όλͺ© ν
μ΄λΈ
| κ΅μ | κ³Όλͺ© |
κ³Όλͺ©-κ°μμ€ ν
μ΄λΈ
| κ³Όλͺ© | κ°μμ€ |
μ΄λ κ² νλ©΄ λͺ¨λ κ²°μ μκ° ν보ν€κ° λλ©΄μ BCNFλ₯Ό λ§μ‘±νκ² λλ€.
μ΅μ’
μ μΌλ‘ μ 리λ₯Ό νμλ©΄
1NF β κ° νλλ§
2NF β μΌλΆ 컬λΌμλ§ μμ‘΄νλ κ² μ κ±°
3NF β μ»¬λΌ κ° κ°μ μμ‘΄ μ κ±°
BCNF β λͺ¨λ κ²°μ μκ° ν보ν€
μ κ·νμ μ₯μ
μ κ·νλ₯Ό νλ©΄ μ»λ μ₯μ μ λͺ ννλ€.
- λ°μ΄ν° μ€λ³΅μ΄ μ€μ΄λ λ€
- λ°μ΄ν° μμ μ΄ μ¬μμ§λ€
- λ°μ΄ν° 무결μ±μ μ μ§ν μ μλ€
νΉν νλλ§ μμ ν΄λ μ 체 λ°μ΄ν°κ° μΌκ΄λκ² μ μ§λλ€λ μ μ΄ κ°μ₯ ν¬λ€.
μ κ·νμ λ¨μ
νμ§λ§ μ κ·νλ 무쑰건 μ’μ κ²λ§μ μλλ€.
- ν μ΄λΈμ΄ μ¬λ¬ κ°λ‘ λλλ©΄μ JOIN μ°μ°μ΄ λ§μμ§λ€
- μ‘°ν μ±λ₯μ΄ λ¨μ΄μ§ μ μλ€
κ·Έλμ λ°μ΄ν°κ° λ§μμ§μλ‘ JOIN λΉμ©μ΄ μ±λ₯μ μν₯μ μ£Όκ² λλ€.
μ½κ² λΉμ λ₯Ό λ€λ©΄, λμ₯κ³ , μλ, μ°½κ³ μ 물건μ λ€ λ°λ‘ μ 리ν΄λ¨λλ°
μ리νλ €λ©΄ λ€μ μ λΆ κΊΌλ΄μΌ νλ μν©μ΄λ€..
μ 리λ μ λμ΄μμ§λ§ ν λ²μ μ°κΈ°μλ λ²κ±°λ‘μμ§κ±°λ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ±μ₯ν κ°λ
μ΄ λ°λ‘ λ°μ κ·νλ€.
λ°μ κ·ν (Denormalization)
μΌλΆλ¬ λ°μ΄ν°λ₯Ό ν©μ³μ μ‘°ν μ±λ₯μ λμ΄λ κ²
κ·Έλμ λ±μ₯ν κ² λ°μ κ·νλ€.
μ κ·νκ° λ무 μ λμ΄ μμΌλ©΄ μ€νλ € μ‘°νκ° λλ €μ§ μ μλ€.
νΉν JOINμ΄ λ§μμ§μλ‘ μ±λ₯μ΄ λ¨μ΄μ§λ€.
κ·Έλμ μ΄λ€ κ²½μ°μλ μμ λ°μ΄ν°λ₯Ό λ€μ ν©μ³λ²λ¦°λ€.
μ λ°μ κ·νκ° νμνκ°
μ¬μ©μ μ΄λ¦ + μ£Όλ¬Έ μ 보λ₯Ό κ°μ Έμ€λ €λ©΄ λ ν μ΄λΈμ JOIN ν΄μΌ νλ€.
λ°μ΄ν° μμ΄ μ μ λλ λ¬Έμ κ° μμ§λ§, λ°μ΄ν°κ° λ§μμ§μλ‘ JOIN μ°μ° λΉμ©μ΄ μ μ 컀μ§λ€.
νΉν λ€μκ³Ό κ°μ μν©μμλ λ¬Έμ κ° λ ν¬κ² λνλλ€.
- μ‘°νκ° λ§€μ° μμ£Ό λ°μνλ κ²½μ°
- μ¬λ¬ ν μ΄λΈμ κ³μ JOIN ν΄μΌ νλ κ²½μ°
- μ€μκ° μλ΅ μλκ° μ€μν μλΉμ€
κ·Έλμ μ΄λ° κ²½μ°μλ μμ λ°μ΄ν°λ₯Ό ν©μ³λ²λ¦¬λ μ νμ νκ² λλ€.
μ΄κ² λ°λ‘ λ°μ κ·νλ€.
λ°μ κ·νμ λ°©μ
λ°μ κ·νλ λ¨μν ν©μΉλ€κ° μλλΌ μν©μ λ§κ² μ¬λ¬ λ°©μμΌλ‘ μ μ©λλ€.
1. ν μ΄λΈ λ³ν©
μμ£Ό ν¨κ» μ‘°νλλ ν μ΄λΈμ νλλ‘ ν©μΉλ λ°©μμ΄λ€.
μλ₯Ό λ€μ΄ μ¬μ©μ + μ£Όλ¬Έ
μ΄λ κ² λ°λ‘ μλ κ²μ νλμ ν μ΄λΈλ‘ ν©μ³μ λ°λ‘ μ‘°ν κ°λ₯νκ² λ§λ λ€.
2. μ€λ³΅ μ»¬λΌ μΆκ°
λ€λ₯Έ ν μ΄λΈμ μλ κ°μ μΌλΆλ¬ 볡μ¬ν΄μ μ μ₯νλ λ°©μμ΄λ€.
μ£Όλ¬Έ ν μ΄λΈμ μ¬μ©μ μ΄λ¦μ κ°μ΄ μ μ₯νλ κ²½μ°λ€.
μλλ JOIN ν΄μΌ νμ§λ§ μ΄λ κ² νλ©΄ λ°λ‘ μ‘°νν μ μλ€.
3. μ§κ³ λ°μ΄ν° 미리 μ μ₯
COUNT, SUM κ°μ κ²°κ³Όλ₯Ό 미리 κ³μ°ν΄μ μ μ₯νλ λ°©μμ΄λ€.
κ²μκΈ μ’μμ μλ λκΈ κ°μ κ°μ κ±Έ λ§€λ² κ³μ°νμ§ μκ³ μ»¬λΌμΌλ‘ λ°λ‘ μ μ₯ν΄λλ κ²½μ°λ€.
λ°μ κ·νμ μ₯μ
λ°μ κ·νλ₯Ό νλ©΄ μ»λ κ°μ₯ ν° μ₯μ μ λͺ ννλ€.
- JOIN μμ΄ λΉ λ₯Έ μ‘°ν κ°λ₯
- μλ΅ μλ κ°μ
- μ½κΈ° μ±λ₯ ν₯μ
νΉν νΈλν½μ΄ λ§μ μλΉμ€μμλ μ΄ μ°¨μ΄κ° λ§€μ° ν¬κ² λνλλ€.
λ°μ κ·νμ λ¨μ
νμ§λ§ λ°μ κ·νλ λΆλͺ ν λκ°κ° μλ€.
- λ°μ΄ν° μ€λ³΅ λ°μ
- μμ μ μ¬λ¬ κ³³μ ν¨κ» λ³κ²½ν΄μΌ ν¨
- λ°μ΄ν° λΆμΌμΉ κ°λ₯μ± μ¦κ°
μλ₯Ό λ€μ΄ μ¬μ©μ μ΄λ¦μ΄ λ³κ²½λμλλ° μ¬λ¬ ν μ΄λΈμ μ μ₯λ κ°μ μ λΆ μμ νμ§ μμΌλ©΄ μλ‘ λ€λ₯Έ κ°μ΄ μ‘΄μ¬νκ² λλ€.
μ κ·ν vs λ°μ κ·ν
μ κ·νμ λ°μ κ·νλ μλ‘ λ°λλλ κ°λ
μ²λΌ 보μ΄μ§λ§ μ¬μ€μ λͺ©μ μ΄ λ€λ₯΄λ€.
μ κ·ν β λ°μ΄ν°μ μ νμ±κ³Ό μΌκ΄μ±
λ°μ κ·ν β μ‘°ν μ±λ₯κ³Ό μλ
κ·Έλμ μ€μ μ€κ³μμλ μ κ·νλ₯Ό κΈ°λ³ΈμΌλ‘ νκ³ μ±λ₯ λ¬Έμ κ° λ°μνλ λΆλΆλ§ μ νμ μΌλ‘ λ°μ κ·νλ₯Ό μ μ©νλ κ²½μ°κ° λ§λ€.
μ 리
μ²μμλ μ κ·νλ μ’μ κ² λ°μ κ·νλ λΉν¨μ¨μ μΈ κ² μ΄λΌκ³ μκ°νλλ°
μ 리ν΄λ³΄λκΉ λ λ€ νμν μ νμ§μλ€.
μ κ·νλ λ°μ΄ν°λ₯Ό μμ μ μΌλ‘ κ΄λ¦¬νκΈ° μν ꡬ쑰μ΄κ³
λ°μ κ·νλ μ±λ₯μ μν΄ μΌλΆλ₯Ό ν¬μνλ λ°©λ²μ΄λ€.
κ²°κ΅ μ€μν 건 λ μ€ μ΄λ€ κ² λ μ’μμ§κ° μλλΌ
μ§κΈ μν©μμ μ΄λ€ μ νμ΄ λ μ μ νμ§ νλ¨νλ κ²μ΄λ€.