sqld 1κ³Όλͺ©. λ°μ΄ν° λͺ¨λΈλ§μ μ΄ν΄
λ°μ΄ν° λͺ¨λΈλ§μ μ΄ν΄
- λ°μ΄ν° λͺ¨λΈλ§ κ°μ
- μν°ν°
- μμ±
- κ΄κ³ with ERD
- μλ³μ
- μ±λ₯ λ°μ΄ν° λͺ¨λΈλ§
- μ κ·ν
- λ°μ κ·ν
- κΈ°ν λ§λ¬Έμ κ°λ μ 리
1) λ°μ΄ν° λͺ¨λΈλ§μ νΉμ§
- μΆμν : νμ€ μΈκ³λ₯Ό μΌμ ν νμμ λ§μΆ° νννκΈ° μν¨
- μ νν : λꡬλ μ΄ν΄ν μ μλλ‘ νμμ κΈ°μ
- λ¨μν : 볡μ‘ν νμ€μ μ΄ν΄νκΈ° μ½κ² μ νλ μΈμ΄μ νκΈ°λ²μΌλ‘ λ¨μνκ² νννκΈ° μν¨
>>> νμ€μΈκ³λ₯Ό λ¨μνκ² μΆμννμ¬ μ ννκ² κ³΅μ νλ μμ μ΄ λ°μ΄ν° λͺ¨λΈλ§!! - μ 보μμ€ν μ ꡬμΆνκΈ° μν μ 무 λΆμ κΈ°λ²
- νμ€μΈκ³μ λ°μ΄ν°μ λν΄ μ½μλ νκΈ°λ²μΌλ‘ νν
- λ°μ΄ν°λ² μ΄μ€λ₯Ό ꡬμΆνκΈ° μν λΆμκ³Ό μ€κ³λ₯Ό μν κ³Όμ
λ°μ΄ν° λͺ¨λΈλ§μ μ μμ¬ν
- μ€λ³΅μ± : μ€λ³΅μ μ΅μνν΄μΌ ν¨(κ°μ μ 보λ₯Ό μ¬λ¬λ² μ μ₯νλ κ²μ μ§μ)
- λΉμ μ°μ± : λ°μ΄ν°μ μ μ <=> λ°μ΄ν° μ¬μ© νλ‘μΈμ€, νλ‘κ·Έλ¨ <=> ν
μ΄λΈ κ°μ μ°κ³μ±μ μ€μ¬μ,
λ°μ΄ν° νΉμ νλ‘μΈμ€μ λ³νκ° λ°μ΄ν°λ² μ΄μ€μ μ€λν λ³νλ₯Ό μ΄λνμ§ μλλ‘ μ μ°νκ² κ΄λ¦¬ν΄μΌ ν¨ - λΉμΌκ΄μ± : 'μ½μλ νκΈ°λ²'μ μ€μ©νλ λ± μ 무λ₯Ό λͺ ννκ² μ μν΄μ μ 보 κ΄λ¦¬μ μΌκ΄μ±μ μ΅λν ν΄μΌν¨
λ°μ΄ν° λͺ¨λΈλ§μ λ¨κ³
- κ°λ μ λ°μ΄ν° λͺ¨λΈλ§ : μΆμν μμ€μ΄ λμ, μ μ¬μ λͺ¨λΈλ§ μ λ§μ΄ ν¨, ν¬κ΄μ μμ€μ λͺ¨λΈλ§
- λ Όλ¦¬μ λ°μ΄ν° λͺ¨λΈλ§ : Key, μμ±, κ΄κ³ λ±μ μ νν κΈ°μ νλ λͺ¨λΈλ§
- 물리μ λ°μ΄ν° λͺ¨λΈλ§ : μ€μ λ‘ λ°μ΄ν° λ² μ΄μ€μ μ΄μ κ°λ₯νλλ‘ μ μ₯, μ±λ₯ λ± λ¬Όλ¦¬μ μΈ νΉμ±μ κ³ λ €ν λͺ¨λΈλ§
λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§ ꡬ쑰 3λ¨κ³
- μΈλΆμ€ν€λ§ : [μ¬μ©μ κ΄μ ] μμ©νλ‘κ·Έλ¨μ μ¬μ©νλ κ°λ³ μ¬μ©μ κ΄μ μΌλ‘ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ μνλ ꡬ쑰
- κ°λ μ€ν€λ§ : [ν΅ν© κ΄μ ] λͺ¨λ μ¬μ©μμ κ΄μ μ ν΅ν©ν μ‘°μ§ μ 체μ κ΄μ μ ν΅ν©μ λ°μ΄ν° λ² μ΄μ€ ꡬ쑰
- λ΄λΆμ€ν€λ§ : [κ°λ°μ κ΄μ ] μ΄λ€ λ°μ΄ν°λ₯Ό μ΄λ»κ² μ μ₯ν κ²μΈμ§ λ°μ΄ν°λ² μ΄μ€μ 물리μ μ μ₯ ꡬ쑰
λ°μ΄ν°μ ꡬμ±
μν°ν°(Entity) μ€μ!!!
- ν΄λΉ μ 무μμ νμνκ³ κ΄λ¦¬ν΄μΌνλ μ 보μ¬μΌ ν¨
- μ μΌν μλ³μμ μν΄ μλ³μ΄ κ°λ₯ν΄μΌ ν¨ (ex νμ ν μ΄λΈ μ κ³ κ°λ²νΈ)
- νλμ μν°ν°λ λ°λμ 2κ° μ΄μμ μΈμ€ν΄μ€λ₯Ό κ°μ ΈμΌ ν¨
- νλμ μν°ν°λ λ°λμ μμ±μ΄ μμ΄μΌ ν¨ (2κ° μ΄μ)
- νλμ μν°ν°λ λ°λμ 1κ° μ΄μμ κ΄κ³κ° μμ΄μΌ ν¨ (ν΅κ³μ±, μ½λμ± μν°ν° μ μΈ)
- λ°μ μμ μ λ°λ₯Έ μν°ν° λΆλ₯
- κΈ°λ³Έμν°ν° : λ 립μ μμ±λλ μν°ν°
- μ€μ¬μν°ν° : κΈ°λ³Έ μν°ν°λ‘λΆν° λ°μνκ³ νμ μν°ν°λ₯Ό μμ±ν¨
- νμμν°ν° : κΈ°λ³Έ, μ€μ¬ μν°ν° λ± 2κ° μ΄μμ μν°ν°λ‘λΆν° λ°μν¨
- 물리μ ννμ λ°λ₯Έ μν°ν° λΆλ₯
- μ νμν°ν° : 물리μ ννκ° μλ μν°ν°
- κ°λ μν°ν° : 물리μ ννλ μμ§λ§ κ΄λ¦¬ν΄μΌνλ κ°λ μ μ 보
- μ¬μ μν°ν° : λΉμ¦λμ€ νλ‘μΈμ€ μ€ μκΈ°λ μν°ν°
μμ±(Column)
- μΈμ€ν΄μ€μμ κ΄λ¦¬νκ³ μ νλ μλ―Έκ° λ μ΄μ λΆλ¦¬λμ§ μλ μ΅μμ λ°μ΄ν° λ¨μ
- 1κ°μ μμ±μ 1κ°μ μμ±κ°μ κ°μ§λ€
- κΈ°λ³Έμμ± / μ€κ³μμ± / νμμμ±
- μ€κ³ μμ± : μ½λμ± μ»¬λΌ, μΌλ ¨λ²νΈ λ± κ·μΉνλ₯Ό μν μμ±
- νμ μμ± : κ³μ°λ κ° (ν μ΄λΈ λ΄μ μ μμλ‘ μ’μ)
- κΈ°λ³Έ μμ± : μ 무μ λ°λ‘ μ μκ° κ°λ₯ν μμ±(μ΄λ¦, κ³μ’λ²νΈ, μ£Όλ¬ΈμΌμ..)
EX) μνμ κ³ κ°μκ² μ§κΈλλ μλ¨μ 'μ΄μ'λ₯Ό κ΄λ¦¬νκ³ μ νλ€. μ΄λ μ΄μλ μ΄λ€ μμ±μΌκΉ? νμμμ±
ex) κ·Έλ λ€λ©΄, μκΈ λΆλ₯μ λ°λΌ κ΄λ¦¬λλ 'μ΄μμ¨'μ μ΄λ€ μμμΌκΉ? κΈ°λ³Έμμ±
- κ° μμ±μ΄ κ°μ§ μ μλ κ°μ λ²μλ₯Ό μμ±μ 'λλ©μΌ'μ΄λΌκ³ ν¨ (λ°μ΄ν° νμ
, ν¬κΈ°, μ μ½μ¬ν λ± μ§μ )
ex) μνκ³μ’ λΌλ μν°ν°κ° μμ λ, κ³μ’λͺ μ΄λΌλ μμ±μ κΈΈμ΄κ° 20μ리 μ΄λ΄μ λ¬Έμμ΄λ‘ μ μ
κ΄κ³ with ERD(Entity-Relationship Model)
- νλμ μν°ν°λ 1κ° μ΄μμ κ΄κ³λ₯Ό κ°μ ΈμΌ ν¨(ν΅κ³μ±, μ½λμ± μν°ν° μ μΈ)
- κ΄κ³μ κ΅¬λΆ : νμμ μν κ΄κ³, μ‘΄μ¬μ μν κ΄κ³
>> ERD μμλ λ κ΄κ³λ₯Ό ꡬλΆμμ΄ λμΌν νκΈ°λ²μΌλ‘ ννν¨
(λ¨, ν΄λμ€λ€μ΄μ΄κ·Έλ¨μμλ ꡬλΆνμ¬ μ°κ΄κ΄κ³μ μμ‘΄κ΄κ³λ‘ μ€μ κ³Ό μ μ μ νκΈ°λ²μΌλ‘ λ€λ₯΄κ² ννν¨)
* λ κ°μ μν°ν° μ¬μ΄μμ κ΄κ³λ₯Ό λμΆν λ 체ν¬ν΄μΌ νλ μ¬ν
- κ΄μ¬μλ μ°κ΄κ·μΉ μ¬λΆ
- μ 보μ μ‘°ν© μ¬λΆ
- μ 무기μ μ, μ₯νμ κ΄κ³μ°κ²°μ κ°λ₯νκ² νλ λμ¬ μ¬λΆ
- μ 무기μ μ, μ₯νμ κ΄κ³μ°κ²°μ λν κ·μΉ μμ μ¬λΆ
* ERD μμ±μμ
1) μν°ν° λμΆ & 그리기
2) μν°ν° λ°°μΉ(κ°μ₯ μ€μν μν°ν°λ₯Ό μ’μΈ‘ μλ¨μ λ°°μΉ, μΆκ° λ°μνλ μν°ν°λ μ°μΈ‘κ³Ό νλ¨μ λ°°μΉ)
3) μν°ν° κ°μ κ΄κ³λ₯Ό μ€μ
4) μν°ν° κ°μ κ΄κ³λͺ κΈ°μ
5) κ΄κ³μ μ°Έμ¬λ κΈ°μ (1:1, 1:N, M:N)
6) κ΄κ³μ νμμ¬λΆ κΈ°μ (νμμ κ΄κ³ : I, μ νμ κ΄κ³ : O)
μλ³μ ꡬλΆ
λνμ± μ¬λΆ
- μ£Όμλ³μ : μ μΌμ±, μ΅μμ±, λνμ±μ λ§μ‘±νλ μλ³μμ΄λ©° ν μν°ν°μ μ°Έμ‘° κ΄κ³λ‘ μ°κ²°λ μ μλ€.(Primary Key)
- 보쑰μλ³μ : μ μΌμ±, μ΅μμ±μ λ§μ‘±νμ§λ§ λνμ±μ κ°μ§ λͺ»νλ μλ³μμ΄λ€.
μμ±μ μ
- λ¨μΌ μλ³μ
- λ³΅ν© μλ³μ : 2κ°Έ μ΄μμ μμ±μ ꡬμ±λ μλ³μ
μ€μ€λ‘ μμ± μ¬λΆ
- λ΄λΆ μλ³μ : μν°ν° λ΄μμ μμ±λ μλ³μ
- μΈλΆ μλ³μ : ν μν°ν°μμ κ΄κ³λ₯Ό ν΅ν΄ λ°μμ€λ μλ³μ(Foreign Key)
λ체 μ¬λΆ
- λ³Έμ§ μλ³μ : μ 무μ μν΄ λ§λ€μ΄μ§λ μλ³μ
- μΈμ‘° μλ³μ : 볡μ‘ν μμ‘° μλ³μ λμ μ μΈμμ μΌλ‘ λ§λ€μ΄μ§ μλ³μ(ex. μΌλ ¨λ²νΈ)
μ£Όμλ³μ
- μ μΌμ± : μ£Όμλ³μμ μν΄ μν°ν° μ λͺ¨λ μΈμ€ν΄μ€λ€μ΄ μ μΌνκ² κ΅¬λΆλ μ μμ΄μΌ ν¨
- μ΅μμ± : μ£Όμλ³μλ₯Ό ꡬμ±νλ μμ±μ μλ μ μΌμ±μ λ§μ‘±νλ μ΅μμ μκ° λμ΄μΌ ν¨
- λΆλ³μ± : μ§μ λ μ£Όμλ³μμ κ°μ μμ£Ό λ³νμ§ μλ κ²μ΄μ΄μΌ ν¨
- μ‘΄μ¬μ± : μ£Όμλ³μκ° μ§μ λλ©΄ λ°λμ κ°μ΄ μμ΄μΌ ν¨(NULL)
2) λ°μ΄ν° λͺ¨λΈκ³Ό μ±λ₯
μ±λ₯ λ°μ΄ν° λͺ¨λΈλ§
- λ°μ΄ν°λ² μ΄μ€μ μ±λ₯ ν₯μμ μν΄ λΆμ/μ€κ³ λ¨κ³λΆν° μ±λ₯κ³Ό κ΄λ ¨λ μ¬νμ΄ λ°μ΄ν° λͺ¨λΈλ¦¬μ λ°μλλλ‘ νλ κ²
- λ°μ΄ν°μ μ¦κ°κ° λΉ λ₯Όμλ‘ μ±λ₯ κ°μ λΉμ©μ΄ μ¦κ°ν¨
- μ€κ³λ¨κ³λΆν° κ³ λ €ν μ ©μ° λΉμ© μ΅μνκ° κ°λ₯ν¨
μ±λ₯ λ°μ΄ν° λͺ¨λΈλ§ μμ
- λ°μ΄ν° λͺ¨λΈλ§ μ μ κ·νλ₯Ό μ νν μνν¨
- λ°μ΄ν°λ² μ΄μ€ μ©λμ μ°μ ν¨
- λ°μ΄ν°λ² μ΄μ€μ λ°μνλ νΈλμμ μ νμ νμ ν¨
- μ©λκ³Ό νΈλμμ μ μ νμ λ°λΌ λ°μ κ·νλ₯Ό μνν¨
- μ΄λ ₯λͺ¨λΈ, PK/FK μ‘°μ , μνΌνμ /μλΈνμ μ‘°μ μ μνν¨
μ κ·νλ?
- λ°μ΄ν°λ₯Ό λΆν΄νλ κ³Όμ
- λͺ©μ : λ°μ΄ν°μ μ€λ³΅μ μ΅μννκ³ , μ μ°μ±μ κ°μ§λ©°, λ³κ²½μ μ΅μννκ³ , λ°μ΄ν°κ° μΌκ΄λ μ μλλ‘ νλ λ°©λ²
- μ 1~5 μ κ·νκ° μμ§λ§, μ£Όλ‘ 1~3 μ κ·νκΉμ§ μνν¨
* μ 1μ κ·ν
- κΈ°λ³Έν€λ₯Ό μ€μ νλ κ³Όμ
- μμ±μ μμμ±κ³Ό μν°ν°μ μ μΌμ±μ ν보ν¨
- λͺ¨λ μμ±μ΄ μλ³μμ μ’
μλμ΄μΌ ν¨
Xκ° λ³νλ©΄ Yκ° λ³νλ€(Tλ Xμ ν¨μμ μΌλ‘ μ’ μλ¨)
μλ³μκ° λ³νλ©΄ μμ±μ΄ λ³ν¨ - μμ±κ°μ μ€λ³΅ μ¬λΆ 체ν¬! (λ¨μΌ -> λ³΅ν© μ)
* μ 2μ κ·ν
- κΈ°λ³Έν€κ° 2κ° μ΄μμΌλ‘ ꡬμ±λ κ²½μ° μνν¨
- λͺ¨λ μμ±(μ§μλͺ , μ μ£Όλͺ , λ©λ΄λͺ , μΆμμΌ, κ°κ²©)μ΄ μλ³μμ μ’ μν΄μΌνλ©°, μλλ©΄ λΆν΄ν΄μΌ ν¨
- λΆλΆν¨μ μ’ μμ±μ λΆν΄ν¨
- μ£Όμλ³μ μ€ μΌλΆλ‘λΆν° λ 립νμ¬ 1:M μ κ΄κ³λ‘ μ¬μ€κ³
* μ 3μ κ·ν
- κΈ°λ³Έν€ μΈμ 컬λΌκ° μ’ μμ±μ μ κ±°ν¨
- μ΄ν ν¨μ μ’ μμ± μ κ±°
λ°μ κ·ν
- μ κ·νλ₯Ό νμ λ μ±λ₯μ΄ λμ± μ νλ κ²½μ°, λ°μ΄ν°μ μ€λ³΅μ νμ©νκ³ μ‘°μΈμ μ€μ¬μ μ±λ₯μ ν₯μμν€λ λ°©λ²
λ°μ κ·ν κΈ°λ²(μ»¬λΌ & ν μ΄λΈ)
* μ»¬λΌ μΆκ° - μ€λ³΅ μ»¬λΌ μΆκ°, νμμ»¬λΌ μΆκ°(ex. κ³μ°λ 컬λΌ), μ΄λ ₯ν μ΄λΈ μ»¬λΌ μΆκ°, PKμ μν μΉΌλΌ μΆκ° λ±
ex) μ€λ³΅ μ»¬λΌ μΆκ°
A ν
μ΄λΈμ μλ a, b μ 보λ₯Ό μ‘°νν λ, C ν
μ΄λΈμ c μ 보μ D ν
μ΄λΈμ dμ 보λ₯Ό λ ν¨κ» μ‘°ννλ€λ©΄?
>>> κ³Όλν μ‘°μΈμ μ€μ΄κΈ° μν΄ A ν μ΄λΈμ c, d 컬λΌμ μΆκ°νμ¬ μ‘°ν μ±λ₯μ ν₯μμν¨λ€.
ex) νμμ»¬λΌ μΆκ°
μ¬λ¬ ν μ΄λΈμ JOINν΄μ μ»μ μ μλ μ 보 κ°μ΄ μμ£Ό μ¬μ©λλ€λ©΄?
>>> 미리 κ³μ°λ 컬λΌμ μΆκ°ν΄λλ€. ex) SUM(λ¨κΈ°)
* ν μ΄λΈ λ³λ°₯ / ν μ΄λΈ λΆν / ν μ΄λΈ μΆκ°
- ν
μ΄λΈ λ³ν© : 1:1κ΄κ³ ν
μ΄λΈ λ³ν©, 1:M κ΄κ³ ν
μ΄λΈ λ³ν©, μνΌ/μλΈνμ
ν
μ΄λΈ λ³ν©
* μνΌ νμ (νμ) <=> μλΈ νμ (κ°μΈνμ, λ²μΈνμ) - ν
μ΄λΈ λΆν
* μμ§λΆν : [a, b, c, d] μ»¬λΌ -> [a,b] [c,d] λ‘ λΆλ¦¬νμ¬ λ³΄κ΄
* μνλΆν : νλμ ν μ΄λΈμ μλ κ°μ κΈ°μ€μΌλ‘ ν μ΄λΈ λΆν (Partition κΈ°λ²)
ex. λ©μΌ μμ΄λ κ³ κ°λ³ μμΉ μ 보λ₯Ό ν ν μ΄λΈμ λ£μ΄λλ©΄ μμΈμ€ λ²μκ° λμ -> μ°λλ³λ‘ μͺΌκ°μ μ μ₯ - ν μ΄λΈ μΆκ° : μ€λ³΅ν μ΄λΈ, ν΅κ³ν μ΄λΈ, μ΄λ ₯ν μ΄λΈ, λΆλΆν μ΄λΈ
κΈ°ν μ±λ₯κ΄λ ¨ λ§λ¬Έμ κ°λ μ 리
1. ν ν μ΄λΈμ λ무 λ§μ μΉΌλΌμ΄ μ‘΄μ¬νλ©° λ‘μ°μ²΄μ΄λμ΄ λ°μνλ λ± μ‘°νμ±λ₯ μ νκ° λ°μνλ€λ©΄
=> νΈλμμ μ΄ μ κ·Όνλ μ»¬λΌ μ νμ λΆμν΄ ν μ΄λΈμ λΆλ¦¬νλ©΄, λμ€ν¬ I/Oκ° μ€μ΄μ μ±λ₯μ΄ ν₯μλ μ μλ€.
2. WHEREλ¬Έμ ν΅ν΄ μ‘°νλ₯Ό ν λ μμ£Ό μ¬μ©λλ PK μμΌλ‘ μμλ₯Ό λ³κ²½νκ³ μΈλ±μ€λ₯Ό μμ±νλ κ²μ΄ μ±λ₯μ μ 리ν μ μλ€
ex) WHERE μ§μλͺ = 'μμΈ' AND μΆμμΌ BETWEEN '20220101' AND '20220331'
-> (1) μμκ°μΌλ‘ μ‘°ννλ PK(2) λ²μλ‘ μ‘°ννλ PK μ
-> μμͺ½μ μμΉν μμ±μ κ°μ΄ κ°κΈμ '=', μ΅μν λ²μλ₯Ό λνλ΄λ 'BETWEEN', '<' '>'κ° λ€μ΄μμΌ μΈλ±μ€λ₯Ό μ¬μ©ν μ μλ€
3. νΈλμμ μ ν΅ν© / κ°λ³ μ²λ¦¬ μΌμ΄μ€
- λ°μ΄ν° μ 체λ₯Ό λμμΌλ‘ μΌκ΄ μ²λ¦¬νλλ° ν μ΄λΈμ΄ λΆλ¦¬λμ΄ κ°λ³λ‘ κ΄λ¦¬νλ©΄ μ€νλ € μ°μ°λμ λ릴 μ μκ³
- λ°μ΄ν°λ₯Ό κ°λ³λ‘ μ²λ¦¬νλλ° ν μ΄λΈμ νλλ‘ ν΅ν©λμ΄ κ΄λ¦¬νλ©΄ λΆνμνκ² λ§μ λ°μ΄ν°μ μ§μ μΌλ‘ μ±λ₯μ΄ μ νλ μ μμ
-> νΈλμμ μ ν΅ν©νμ¬ μ²λ¦¬νλ©΄ ν΅ν©ν΄λλ κ²μ΄ μ±λ₯μ μ’κ³ , κ°λ³λ‘ μ²λ¦¬νλ©΄ κ°λ³λ‘ μ μ§νλ κ²μ΄ μ’λ€