κ΅λΉμ§μ D+32
- DBμ΄μνμ, μ κ·ν -
DBμ΄μνμ
μ°λ¦¬κ° μΆ©λΆν λͺ¨λΈλ§κ³Όμ μ κ±°μΉνμ λ°μ΄ν°λ₯Ό μμ±νμλ κ³Όμ° νλ‘κ·Έλ¨μ΄ μ λμκ°κΉ?
μ λ΅μ μλλ€.
λ°λ‘ μ κ·νκ³Όμ μ κ±°μΉμ§ μμκΈ° λλ¬Έμ΄λ€.
μ°λ¦¬λ μ κ·νκ³Όμ μ 본격μ μΌλ‘ μμ보기 μ μ μ κ·νλ₯Ό κ±°μΉμ§ μμΌλ©΄ μ΄λ ν μ΄μνμμ΄ λ°μλλμ§ μμ보μ.
• DB μ΄μνμ (DB Anomaly)
- λ°μ΄ν°μ μ€λ³΅μΌλ‘ μΈν΄ λ°μ΄ν°μ μ½μ , μμ , κ°±μ μ ν κ²½μ° λ°μλλ λΆμμ©μ΄λ€.
- DBλ₯Ό λ§λ€λ μ λλ‘ μ κ·ν μ²λ¦¬λ₯Ό νμ§ μμΌλ©΄ λ°μλ μ μλ€.
- μ½μ μ΄μ : λ°μ΄ν° μ½μ μ μμΉ μμ λ°μ΄ν°λ₯Ό κ°μ΄ λ£μ΄μΌ νλ μ΄μνμμΌλ‘ μΌλ°μ μΌλ‘ κ΄κ³λ₯Ό μλͺ» λ§Ίμ λ λ°μνλ€.
- μμ μ΄μ : λ°μ΄ν° μμ μ λ€λ₯Έ λ°μ΄ν°κΉμ§ κ°μ΄ μμ λλ μ΄μνμ
- κ°±μ μ΄μ : λ°μ΄ν° μμ μ μ€λ³΅μΌλ‘ μΈν΄ λ°μ΄ν°μ λΆμΌμΉκ° λ°μνλ μ΄μνμ
μ κ·ν (Normalization)
μ κ·νλ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ μ€κ³μ μ€λ³΅μ μ΅μννκ³ , μ΄μνμμ λ°©μ§ λ° μ±λ₯ κ°μ μ μν νλ‘μΈμ€μ΄λ€.
μ κ·νμλ 6λ¨κ³κ° μλλ° νλμ© λ¨κ³λ₯Ό κ±°μ³λκ°λ©΄ DBκ° μ λμλκ³ ERDμμλ λ¬Έμ κ° λ°μλμ§ μλλ€.
μ΄ 6λ¨κ³κ° μ‘΄μ¬νμ§λ§ 6λ¨κ³κΉμ§ κ°λ κ³Όμ μμ 3λ¨κ³ μ΄νλΆν°λ μ»μ μ μλ μ΄μ μ΄ νμ ν μ μ΄μ§κΈ° λλ¬Έμ 보ν΅μ 3λ¨κ³κΉμ§λ§ νλ€.
• μ 1μ κ·ν
- λ°λ³΅λλ μμ±μ μ κ±°νμ¬ λͺ¨λ μμ±μ΄ μμ λλ©μΈ(μμμ±, Atomic columns)μ κ°μ§ μ μλλ‘ νλ μ κ·ν
- Atomic Columns : 컬λΌμ΄ νλμ κ° / νλμ μλ―Έλ₯Ό κ°μ ΈμΌ νλ€.
- κΈ°μ‘΄ m:nμ κ΄κ³λ₯Ό 맀νν μ΄λΈμ ν΅ν΄μ 1:nμΌλ‘ λ³κ²½μμΌ μ€λ€.
ν΄λΉ ν μ΄λΈμμ tag컬λΌμ 보면 λ‘μ°λ°μ΄ν°μλν κ°μ΄ νλκ° μλλΌ μ¬λ¬κ°μ tagκ°μ κ°μ§κ³ μλ κ²μ νμΈν μ μλ€.
μ΄λ μμμ±μ μλ°°λλ κ²μΌλ‘ tagμ κ°μ νλλ‘ μ§μ ν΄μ£Όμ΄μΌ νλ€.
λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μλ λ¨Όμ tag컬λΌμ κΈ°μ‘΄ ν μ΄λΈκ³Ό λΆλ¦¬μμΌμ€ λ€μ λ°λ‘ tagν μ΄λΈμ μμ±ν΄μ€λ€.
μ΄νμ κΈ°μ‘΄ ν μ΄λΈμ idκ³Ό tagμ idλ₯Ό μ°κ²°μμΌμ€ μ μλ 맀νν μ΄λΈμ λ§λ€μ΄μ£Όλ©΄ 컬λΌμμ μμμ±μ μλ°°λλ λ¬Έμ λ ν΄κ²°λλ κ²μ΄λ€.
• μ 2μ κ·ν
- μ 1μ κ·νμ λ§μ‘±νλ ν μ΄λΈμμ λΆλΆ μ’ μμμ μ κ±°νμ¬ μμ ν¨μ μ’ μμ±μ λ§μ‘±νλ μ κ·ν (λΆλΆν¨μμ’ μμ μ κ±°)
- μ΄μ€ν€(=μ€λ³΅ν€)λ₯Ό μ¬μ©νμ§ μμ κ²½μ° μ 2μ κ·νλ νμ§ μλλ€.
- μ€λ³΅ν€ : ν€κ° μλ κ²μ μλλ‘ 2κ° μ΄μ μ‘°ν©ν΄ ν€λ₯Ό λ§λ κ²
- ν¨μμ μ’ μ : Xκ° λ 립λ³μ, Yκ° μ’ μλ³μλΌκ³ ν λ Yλ Xμ μ’ μλλ κ²μΌλ‘, λͺ¨λ λ°μ΄ν°κ° ν€μ μ’ μλλ κ²μ μλ―Ένλ€.
ν΄λΉ ν μ΄λΈμμ titleκ³Ό typeλ₯Ό μ΄μ€ν€λ‘ μ§μ νμλ, ν μ΄λΈμμ λ§μ½ titleκ³Ό typeκ°μ΄ λ³ν λ price컬λΌμ λ ν€μ λν΄ μ’ μλμ΄ λ³λλμ§λ§, desc, created, author_id, author_nameκ°μ κ²½μ°λ titleν€μλ§ μ’ μλμ΄ μλ κ²μ νμΈν μ μλ€.
μ΄λ μμ ν¨μ μ’ μμ΄ μλ λΆλΆμ’ μν¨μμ΄λ―λ‘ μμ ν¨μ μ’ μμΌλ‘ λ³κ²½ν΄μ£Όμ΄μΌ νλ€.
λ¨Όμ priceλ titleκ³Ό typeμ μμ μ’ μλκΈ° λλ¬Έμ κ·Έλλ‘ μ μ§νλ©°, titleμλ§ μ’ μλλ λλ¨Έμ§ μ»¬λΌμ titleκ³Ό ν¨κ» λ°λ‘ λΆλ¦¬νλ€.
μ΄κ³Όμ μμ λ°μλλ μ€λ³΅κ°μ΄ μ κ±°λκ³ λλ©΄ μ΅μ’ μ μΌλ‘ λ ν μ΄λΈλ‘ λΆλ¦¬λλ κ²μ νμΈν μ μμΌλ©°, κ° λ ν μ΄λΈμ΄ κ° ν€μ μμ μ’ μλλ κ²μ νμΈν μ μλ€.
• μ 3μ κ·ν
- μ΄νν¨μ μ’ μμ±μ μ κ±°(No transitive dependencies)νλ μ κ·ν
- μ΄νν¨μ μ’ μμ± : X, Y, Zκ° μμ λ X→Y, Y→ZμΌ κ²½μ° X→Zκ° μ±λ¦½λ λ μ΄νν¨μ μ’ μμ΄λΌκ³ νλ€.
ν΄λΉν μ΄λΈμ titleμ΄ ν€μ΄λ€.
titleμ μ μΈν λλ¨Έμ§ μ»¬λΌμ μ΄ν΄λ³΄λ©΄ desc, created, author_idλ titleμ μ’ μμ μ΄μ§λ§ author_nameμ titleμ΄ μλ author_idμ μ’ μμ μ΄λ€.
μ¦ μ΄ ν μ΄λΈμ μ’ μμ μΈ ν μ΄λΈμ΄ μλ μ΄νμ μΈ κ΄κ³λ‘ μ€λ³΅μ΄λΌλ λ¬Έμ κ° λ°μλλ€.
λ¬Έμ λ₯Ό ν΄κ²°ν΄ μ£ΌκΈ° μν΄μλ μ΄νμ κ΄κ³λ₯Ό μ λ°νλ author_idμ author_nameμ λ€λ₯Έ ν μ΄λΈλ‘ λλλ©΄ λ ν μ΄λΈμ κ°μ μ΄νμ κ΄κ³κ° μλ μ’ μμ κ΄κ³μΈ ν μ΄λΈμ΄ λ κ²μ νμΈν μ μλ€.
• μμ½
μ κ·νλ₯Ό μ§νν λ μ£Όμν΄μΌν κ²μ μ κ·νλ₯Ό ν μλ‘ tableμ κ°μκ° μ¦κ°νλ€.
κ·Έλ κ² λλ©΄ joinμ κ³Όλ€μ¬μ©ν μ μμ΄ μ΄λ₯Ό λ§κΈ° μν΄ μ€νλ € tableμ κ°μλ₯Ό μ€μ΄κΈ° μν΄ μ κ·νλ₯Ό λ μ§νν μλ μλ€.
μ¦, 무쑰건 λ§μ μ κ·νκ° μ’λ€κ³ λ¨μ μ§μ μ μμ λΏλλ¬ λΉμ¦λμ€μ λ§μΆ°μ μ κ·νλ₯Ό μ§ννλκ²μ΄ κ°μ₯ λ°λμ§νκΈ° λλ¬Έμ μ κΈ°μ΅ν΄μΌνλ€.
'μλ > κ΅λΉμ§μ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[D+35] 곡κ°λΆν νκ·Έ, μλ©ν±νκ·Έ (0) | 2022.11.10 |
---|---|
[D+34] HTML κ°λ λ° νκ·Έ μ’ λ₯ (0) | 2022.11.09 |
[D+31] JOIN, λͺ¨λΈλ§ (0) | 2022.11.04 |
[D+30] DB μΈλν€, κ·Έλ£Ήν, DBκ°λ (1) | 2022.11.03 |
[D+29] DB ν μ΄λΈ μμ± λ° λ°μ΄ν° μΆκ°/μμ , μ‘°ν, μλΈμΏΌλ¦¬ (0) | 2022.11.02 |
λκΈ