ν°μ€ν 리 λ·°
μ κ·νλ?
μ΄μ νμμ΄ λ°μνμ§ μλλ‘ Relationμ κ΄λ ¨μ΄ μλ μ νΈλ¦¬λ·°νΈλ€λ‘λ§ κ΅¬μ±νκΈ° μν΄ Relationμ λΆν΄νμ¬ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬λ°λ₯΄κ² μ€κ³ν΄λκ°λ κ³Όμ μ΄λ€.
μ¬κΈ°μ μ΄μ νμμ΄λ?
λ°μ΄ν°λ² μ΄μ€λ₯Ό μλͺ» μ€κ³νλ©΄ λΆνμν λ°μ΄ν° μ€λ³΅μ΄ λ°μν΄ Relationμ λν λ°μ΄ν°μ μ½μ , μμ , μμ μ°μ°μ μνν λ λΆμμ©μ΄ λ°μνλλ°, μ΄λ¬ν λΆμμ©μ μ΄μ νμ(AnomalyλΌκ³ νλ€.
μ΄μ νμμ μ‘°κΈ μμΈν μ΄ν΄ 보면, μΈ κ°μ§λ‘ λΆλ₯ν μ μλ€.
첫λ²μ§Έλ μ½μ μ΄μ(Insertion Anomaly)μΌλ‘,
μ λ°μ΄ν°λ₯Ό μ½μ νκΈ° μν΄ λΆνμν λ°μ΄ν°λ ν¨κ» μ½μ ν΄μΌ νλ λ¬Έμ κ° λ°μν λ μκΈ°λ μ΄μ νμμ΄λ€.
λλ²μ§Έλ κ°±μ μ΄μ(Update Anomaly)μΌλ‘,
μ€λ³΅λλ ννλ€ μ€μμ μΌλΆλ§ λ³κ²½λμ΄ λ°μ΄ν°κ° λΆμΌμΉνκ²λλ λͺ¨μμ΄ μκΈ°λ μ΄μ νμμ΄λ€.
λ§μ§λ§μΌλ‘λ μμ μ΄μ(Deletion Anomaly)μΌλ‘,
ννμ μμ ν λ κΌ νμν λ°μ΄ν°κΉμ§ ν¨κ» μμ λμ΄ λ°μ΄ν°κ° μμ€λλ μ΄μ νμμ΄λ€.
μ΄λ° μ΄μ νμμ μ λ°μνλκ°?
Relationμ μ¬λ¬ μ΄μ νμμ΄ λ°μνλ μ΄μ λ 'κ΄λ ¨μ΄ μλ μμ±λ€μ νλμ 릴λ μ΄μ μ λͺ¨μλκ³ μκΈ° λλ¬Έ'μ΄λ€.
μ΄μ νμμ΄ λ°μνμ§ μλλ‘ νλ €λ©΄, κ΄λ ¨μ΄ μλ μμ±λ€λ‘λ§ λ¦΄λ μ΄μ μ ꡬμ±ν΄μΌ ν κ²μ΄λ€.
μ¦, μ΄μ νμμ΄ λ°μνμ§ μλλ‘ λ¦΄λ μ΄μ μ κ΄λ ¨μ΄ μλ μμ±λ€λ‘λ§ κ΅¬μ±νκΈ° μν΄ '릴λ μ΄μ μ λΆν΄νλ κ³Όμ 'μ΄λ€.
ν¨μ μ’ μμ 무μμ΄κΈΈλ μκΎΈ λμ¬κΉ?
μμμ λ΄€λ―μ΄ μ κ·νλ₯Ό μννλ €λ©΄ μ νΈλ¦¬λ·°νΈλ€ κ°μ κ΄λ ¨μ±μ νλ¨ν μ μμ΄μΌ ν κ²μ΄λ€.
λ°λΌμ μ΄λ° μ νΈλ¦¬λ·°νΈλ€ κ°μ κ΄λ ¨μ±μ ν¨μμ μ’ μμ±(FD: Functional Dependency)λΌκ³ μ μνλ€.
μ€,κ³ λ±νκ΅ λ λ°°μ λ ν¨μλ₯Ό μκ°ν΄λ³΄μ.
X κ°μ λμλλ Yκ°μ΄ μ‘΄μ¬νλλ°, λ¨ νλμ Yκ°λ§ μ‘΄μ¬νλ€λ©΄
"Xκ° Yλ₯Ό ν¨μμ μΌλ‘ κ²°μ νλ€" "Yκ° Xμ ν¨μμ μΌλ‘ μ’ μλλ€" λΌκ³ νννλ€.
ν¨μ μ’ μ κ΄κ³λ μλμ κ°μ΄ νννκ³ , Xλ₯Ό κ²°μ μ, Yλ₯Ό μ’ μμλΌκ³ νλ€.
X (κ²°μ μ) -> Y (μ’ μμ)
μΌλ°μ μΌλ‘λ 릴λ μ΄μ μ ν¨μμ μ’ μμ±μ΄ λ± νλ μ‘΄μ¬νλλ‘ λ¦΄λ μ΄μ μ λΆν΄νλ€.
ν¨μ μ’ μμλ μμ ν¨μ μ’ μκ³Ό λΆλΆ ν¨μ μ’ μμ΄ μλ€.
μμ ν¨μ μ’ μμ 릴λ μ΄μ μμ μ νΈλ¦¬λ·°νΈ μ§ν© Yκ° μ νΈλ¦¬λ·°νΈ μ§ν© Xμ ν¨μμ μΌλ‘ μ’ μλμ΄ μμ λ,
μ νΈλ¦¬λ·°νΈ μ§ν© Xμ μΌλΆλΆμ μ’ μλ κ²μ΄ μλ μ 체μ μΌλ‘ μ’ μλμ΄ μλ κ²μ μλ―Ένλ€.
λΆλΆ ν¨μ μ’ μμ 릴λ μ΄μ μμ μ νΈλ¦¬λ·°νΈ μ§ν© Yκ° μ νΈλ¦¬λ·°νΈ μ§ν© Xμ μ μ²΄κ° μλ μΌλΆλΆμλ ν¨μμ μΌλ‘ μ’ μλλ κ²μ μλ―Ένλ€.
λΆλΆ ν¨μ μ’ μ κ΄κ³κ° μ±λ¦½νλ €λ©΄ κ²°μ μκ° μ¬λ¬ κ°μ μμ±λ€λ‘ ꡬμ±λμ΄ μμ΄μΌ νλ€.
μ κ·νμ μ’ λ₯
μ κ·νμ ν¬κ² κΈ°λ³Έ μ κ·νκ³Ό κ³ κΈ μ κ·νμΌλ‘ λλμ΄μ§λ€.
κΈ°λ³Έ μ κ·νμλ μ 1μ κ·ν, μ 2μ κ·ν, μ 3μ κ·ν, 보μ΄μ€/μ½λ μ κ·ν(BCNF)κ° μκ³
κ³ κΈ μ κ·νμλ μ 4μ κ·ν, μ 5μ κ·νμ΄ μλ€.
μ κ·νμ μ°¨μκ° λμμ§μλ‘ μꡬλλ μ μ½μ‘°κ±΄μ λ§μμ§κ³ , μ격ν΄μ§λ€.
릴λ μ΄μ μ΄ νΉμ μ κ·νμ μ μ½μ‘°κ±΄μ λ§μ‘±νλ©΄, 릴λ μ΄μ μ΄ ν΄λΉ μ κ·νμ ν¬ν¨λλ€κ³ νννλ€.
κΈ°λ³Έ μ κ·ν
μ 1 μ κ·ν:
릴λ μ΄μ μ μν λͺ¨λ μ νΈλ¦¬λ·°νΈμ λλ©μΈμ΄ μμ κ°μΌλ‘λ§ κ΅¬μ±λμ΄ μλ€.
μ 2 μ κ·ν:
릴λ μ΄μ μ΄ μ 1μ κ·νμ μνκ³ ,
κΈ°λ³Έν€κ° μλ λͺ¨λ μ νΈλ¦¬λ·°νΈκ° κΈ°λ³Έν€μ μμ ν¨μ μ’ μλλ€.
μ 3μ κ·ν:
릴λ μ΄μ μ΄ μ 2μ κ·νμ μνκ³ ,
'κΈ°λ³Έν€κ° μλ λͺ¨λ μ νΈλ¦¬λ·°νΈ'κ° κΈ°λ³Έν€μ μ΄νμ ν¨μ μ’ μμ΄ λμ§ μλλ€.
보μ΄μ€/μ½λ μ κ·ν:
릴λ μ΄μ μ΄ μ 3μ κ·νμ μνκ³ ,
릴λ μ΄μ μ ν¨μ μ’ μ κ΄κ³μμ λͺ¨λ κ²°μ μκ° ν보ν€μ΄λ€.
(ν보ν€κ° μλ μ νΈλ¦¬λ·°νΈκ° κ²°μ μκ° λλ©΄ μλλ€.)
κ³ κΈ μ κ·ν
μ 4μ κ·ν:
릴λ μ΄μ μ΄ λ³΄μ΄μ€/μ½λ μ κ·νμ μνκ³ ,
ν¨μ μ’ μμ΄ μλ λ€μΉ μ’ μμ±(MVD: Multi Valued Dependency)λ₯Ό μ κ±°ν΄μΌ λ§μ‘±ν μ μλ€.
(λ€μΉμ’ μμ΄λ λκ°μ λ 립λ μ νΈλ¦¬λ·°νΈκ° 1:N κ΄κ³λ‘ λμνλ κ΄κ³λ‘, "β " νμ΄νλ‘ μ’ μμ±μ νμνλ€.)
μ¦, μ νΈλ¦¬λ·°νΈκ° μμκ°μ΄ μλ κ°μ μ¬λ¬κ° κ°μ§ λ 릴λ μ΄μ μ λΆν΄ν΄ μ νΈλ¦¬λ·°νΈκ° μμκ°μ κ°λλ‘ νλ μ κ·νμ΄λ€.
μ 5μ κ·ν:
릴λ μ΄μ μ΄ μ 4μ κ·νμ λ§μ‘±νλ©΄μ
ν보ν€λ₯Ό ν΅νμ§ μλ μ‘°μΈ μ’ μ(JD: Join Dependecy)λ₯Ό μ κ±°ν΄μΌ λ§μ‘±ν μ μλ€.
μ‘°μΈ μ’ μμ 릴λ μ΄μ μ€ν€λ§μ λͺ¨λ μ¬λ°λ₯Έ 릴λ μ΄μ μνκ° λΆν΄λ λ,
νμ μλ λ°μ΄ν°κ° μκΈ°μ§ μλ λΉλΆκ°μ μ‘°μΈ λΆν΄,
νμν λ°μ΄ν°κ° μ¬λΌμ§μ§ μλ 무μμ€ λΆν΄λ₯Ό κ°μ ΈμΌ ν¨μ λνλΈλ€.
'π§π»βπ» CS > λ°μ΄ν°λ² μ΄μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°μ΄ν°λ² μ΄μ€] Three Schema Architecture (3λ¨κ³ μ€ν€λ§ μν€ν μ²) (0) | 2022.10.17 |
---|---|
[λ°μ΄ν°λ² μ΄μ€] λ°μ΄ν°λ² μ΄μ€ κ°λ μ΄μ 리 (0) | 2022.10.14 |
- Total
- Today
- Yesterday
- mdn
- DOM
- useState
- μκ³ λ¦¬μ¦
- μ λ ¬
- React Query
- leetcode
- DB
- zustand
- error
- Component
- Browser
- CSS
- Python
- κ·Έλν
- git
- react
- λ°μ΄ν°λ² μ΄μ€
- ν¨μ
- μλ°μ€ν¬λ¦½νΈ
- λΈλΌμ°μ
- μλ¬
- μλ£κ΅¬μ‘°
- JavaScript
- BOJ
- 리μ‘νΈ
- νμ΄μ¬
- github
- Context API
- state
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |