#1 μ κ·ν(Nomalization)
β΄οΈ μ κ·νλ?
: λ°μ΄ν°μ μΌκ΄μ±, μ΅μνμ λ°μ΄ν° μ€λ³΅, μ΅λνμ λ°μ΄ν° μ μ°μ±μ μν λ°©λ², λ°μ΄ν°λ₯Ό λΆν΄νλ κ³Όμ
: λ°μ΄ν° μ€λ³΅μ μ κ±°νκ³ λ°μ΄ν° λͺ¨λΈμ λ 립μ±μ ν보νκΈ° μν λ°©λ²
→ μ€λ³΅μ μ κ±°νλ €λ©΄ λΆν΄λ₯Ό ν μλ°μ μμ.
: μννλ©΄ λΉμ¦λμ€μ λ³νκ° λ°μνμ¬λ λ°μ΄ν° λͺ¨λΈμ λ³κ²½μ μ΅μν ν μ μμ
: μ 1 μ κ·νλΆν° μ 5 μ κ·νκΉμ§ μμ§λ§, μ€μ§μ μΌλ‘λ μ 3 μ κ·νκΉμ§λ§ μν
: 무결μ±, μμμ±μ κ°μ§κΈ° μν΄ νλ κΈ°λ² μ€ νλ
β΄οΈ ν¨μμ μ’ μμ±(Functional Dependency)
: μ κ·νλ ν¨μμ μ’ μμ±μ κ·Όκ±°λ‘ ν¨ → ν¨μμ μ’ μμ± : X→Yμ΄λ©΄ Yλ Xμ ν¨μμ μΌλ‘ μ’ μ
Ex) νμ IDκ° λ³ννλ©΄ μ΄λ¦λ λ³κ²½ → νμIDκ° κΈ°λ³Έν€, νμIDκ° μ΄λ¦μ ν¨μμ μΌλ‘ μ’ μ
β΄οΈ μ κ·νμ κΈ°λ³Έ λͺ©ν
: ν μ΄λΈκ°μ μ€λ³΅λ λ°μ΄ν° νμ© X
: λ¬΄κ²°μ± μ μ§
: DBμ μ μ₯μ©λ μ€μ΄κΈ°
β΄οΈ μ κ·ν μ μ°¨
μ κ·ν μ μ°¨ | μ€λͺ |
μ 1μ κ·ν | μμ±(Attribute)μ μμμ± ν보 κΈ°λ³Έν€(Primary Key) μ€μ |
μ 2μ κ·ν | κΈ°λ³Έν€κ° 2κ° μ΄μμ μμ±μΌλ‘ μ΄λ£¨μ΄μ§ κ²½μ°, λΆλΆ ν¨μ μ’ μμ±μ μ κ±°(λΆν΄) |
μ 3μ κ·ν | κΈ°λ³Έν€λ₯Ό μ μΈν μΉΌλΌ κ°μ μ’
μμ±μ μ κ±° μ΄ν ν¨μ μ’ μμ±μ μ κ±° |
BCNF | κΈ°λ³Έν€λ₯Ό μ μΈνκ³ ν보ν€κ° μλ κ²½μ°, ν보ν€κ° κΈ°λ³Έν€λ₯Ό μ’ μμν€λ©΄ λΆν΄ |
μ 4μ κ·ν | μ¬λ¬ μΉΌλΌλ€μ΄ νλμ μΉΌλΌμ μ’ μμν€λ κ²½μ° λΆν΄ → λ€μ€κ° μ’ μμ±μ μ κ±° |
μ 5μ κ·ν | JOINμ μν΄μ μ’ μμ±μ΄ λ°μλλ κ²½μ° λΆν΄ |
: BCNF → μ 3μ κ·νλ₯Ό μννκ³ λ λ€μμ ν μ΄λΈμ λν΄ λͺ¨λ κ²°μ μκ° ν보ν€κ° λλλ‘ ν μ΄λΈμ λΆν΄νλ κ²
β΄οΈ μ΄μνμ(Anomaly)
: λΉμ κ·νλ μνμμ λ°μ΄ν° μ‘°μ μ λ°μν μ μλ λ¬Έμ λ₯Ό μλ―Έ
μ’ λ₯ | μ€λͺ |
μ½μ μ΄μ (Insertion Anomaly) | λ°μ΄ν°λ₯Ό μ½μ ν λ, νΉμ μ 보λ₯Ό μ½μ νκΈ° μν΄ λΆνμν λ°μ΄ν°κΉμ§ ν¨κ» μ½μ ν΄μΌνλ λ¬Έμ |
μμ μ΄μ (Deletion Anomaly) | λ°μ΄ν°λ₯Ό μμ ν λ, μλμΉ μκ² λ€λ₯Έ μ€μν λ°μ΄ν°κΉμ§ μμ λλ λ¬Έμ |
κ°±μ μ΄μ (Update Anomaly) | λμΌν λ°μ΄ν°κ° μ¬λ¬ κ³³μ μ€λ³΅λμ΄ μ μ₯λμ΄ μμ λ, λ°μ΄ν°λ₯Ό κ°±μ ν λ λͺ¨λ μ€λ³΅λ λ°μ΄ν°λ₯Ό λμμ κ°±μ νμ§ μμΌλ©΄ μΌκ΄μ±μ΄ κΉ¨μ§λ λ¬Έμ |
#2 μ 1~3μ κ·ν
β΄οΈ μ 1μ κ·ν
: κΈ°λ³Έν€λ₯Ό μ‘λ κ²μ΄ μ 1μ κ·ν
: μμμ±μ κ°μ§λ κ²
β΄οΈ μ 2μ κ·ν
: λΆλΆ ν¨μ μ’ μμ± → κΈ°λ³Έν€κ° 2κ° μ΄μμ μΉΌλΌμΌλ‘ μ΄λ£¨μ΄μ§ κ²½μ°μλ§ λ°μ ⇒ λΆλΆν¨μ μ’ μμ±μ΄ λ°μνλ©΄ λΆν΄λ₯Ό ν΄μΌν¨
: κΈ°λ³Έν€κ° νλμ μΉΌλΌμΌλ‘ μ΄λ£¨μ΄μ§λ©΄ μ 2μ κ·νλ μλ΅ν¨
β΄οΈ μ 3μ κ·ν
: μ΄ν ν¨μ μ’ μμ± → κΈ°λ³Έν€λ₯Ό μ μΈνκ³ μ»¬λΌ κ°μ μ’ μμ±μ΄ λ°μνλ κ²
: μ 1μ κ·ν, μ 2μ κ·νλ₯Ό μνν λ€μμ ν΄μΌν¨
'πΎ SQL_' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[SQLD] λ°μ κ·ν κΈ°λ² (0) | 2025.02.23 |
---|---|
[SQLD] μ κ·ν & κ·Έ λ¬Έμ μ (0) | 2025.02.20 |
[SQLD] μ€λ΅λ ΈνΈ #1 (0) | 2025.02.16 |
[SQL] MySQL - Foreign Key & Join (0) | 2025.02.14 |
[SQL] Table μμ μ μ₯λ λ°μ΄ν°λ₯Ό μΆλ ₯νκ³ μμ νκΈ° (0) | 2025.02.13 |