'μλ곡 2020 μ 보μ²λ¦¬κΈ°μ¬ μ€κΈ°' κ΅μ¬ 곡λΆνλ©΄μ μμ½ν λ΄μ©μ λλ€. μ€μν λ΄μ©κ³Ό μνμ λΉμΆλλ λ΄μ©λ§ μ 리νμμ΅λλ€. μ’μμ κΎΈμ± λλ¬μ£ΌμΈμ :)
λ°μ΄ν° λͺ¨λΈ
λ°μ΄ν° λͺ¨λΈ
νμ€ μΈκ³μ μ 보λ€μ μ»΄ν¨ν°μ νννκΈ° μν΄μ λ¨μν, μΆμννμ¬ μ²΄κ³μ μΌλ‘ ννν κ°λ μ λͺ¨ν
• λ°μ΄ν° λͺ¨λΈμ κ΅¬μ± μμ
- κ°μ²΄(Entity) : μ¬λμ΄ μκ°νλ κ°λ μ΄λ μ 보 λ¨μ κ°μ νμ€ μΈκ³μ λμ체
- μμ±(Attribute) : λ°μ΄ν°μ κ°μ₯ μμ λ Όλ¦¬μ λ¨μ, νμΌ κ΅¬μ‘°μμ λ°μ΄ν° νλͺ©(νλ)
- κ΄κ³(Relationship) : κ°μ²΄ κ°μ κ΄κ³, μμ± κ°μ λ Όλ¦¬μ μΈ μ°κ²°
• λ°μ΄ν° λͺ¨λΈμ μ’ λ₯
- κ°λ
μ λ°μ΄ν° λͺ¨λΈ : νμ€ μΈκ³μ λν μΈκ°μ μ΄ν΄λ₯Ό λκΈ° μν΄ νμ€ μΈκ³μ λν μΈμμ μΆμμ κ°λ
μΌλ‘ νννλ κ³Όμ
- λ Όλ¦¬μ λ°μ΄ν° λͺ¨λΈ : κ°λ μ ꡬ쑰λ₯Ό μ»΄ν¨ν°κ° μ΄ν΄νκ³ μ²λ¦¬ν μ μλ μ»΄ν¨ν° μΈκ³μ νκ²½μ λ§κ² λ³ννλ κ³Όμ
- 물리μ λ°μ΄ν° λͺ¨λΈ : μ€μ μ»΄ν¨ν°μ λ°μ΄ν°κ° μ μ₯λλ λ°©λ²μ μ μνλ 물리 λ°μ΄ν°λ² μ΄μ€ μ€κ³ κ³Όμ
• λ°μ΄ν° λͺ¨λΈμ νμν μμ
- ꡬ쑰(Structure) : λ
Όλ¦¬μ μΌλ‘ ννλ κ°μ²΄ νμ
λ€ κ°μ κ΄κ³
- μ°μ°(Operation) : λ°μ΄ν°λ² μ΄μ€λ₯Ό μ‘°μνλ κΈ°λ³Έ λꡬ
- μ μ½ μ‘°κ±΄(Constraint) : λ°μ΄ν°λ² μ΄μ€μ μ μ₯λ μ μλ μ€μ λ°μ΄ν°μ λ Όλ¦¬μ μΈ μ μ½ μ‘°κ±΄
μ΄μ
μ΄μ
ν μ΄λΈμμ μΌλΆ μμ±λ€μ μ’ μμΌλ‘ μΈν΄ λ°μ΄ν°μ μ€λ³΅(Redundancy)μ΄ λ°μνκ³ , μ΄ μ€λ³΅μΌλ‘ μΈν΄ ν μ΄λΈ μ‘°μ μ λ¬Έμ κ° λ°μνλ νμ
• μ΄μμ μ’ λ₯
- μ½μ μ΄μ(Insertion Anomaly) : μ½μ μ, μνμ§ μμ κ°λ€λ‘ μΈν΄ μ½μ ν μ μκ² λλ νμ
- μμ μ΄μ(Deletion Anomaly) : μμ μ, μκ΄μλ κ°λ€λ ν¨κ» μμ , μ¦ μ°μ μμ κ° λ°μνλ νμ
- κ°±μ μ΄μ(Update Anomaly) : κ°±μ μ, μΌλΆ ννμ μ λ³΄λ§ κ°±μ λμ΄ μ 보μ λΆμΌμΉμ±μ΄ μκΈ°λ νμ
ν¨μμ μ’ μ(Functional Dependency)
ν¨μμ μ’ μ
- μμΈ : ν μ΄λΈμμ μΌλΆ μμ±λ€μ μ’ μμΌλ‘ μΈν΄ λ°μ΄ν°μ μ€λ³΅(Redundancy)μ΄ λ°μ
- κ²°κ³Ό : μ΄ μ€λ³΅μΌλ‘ μΈν΄ ν μ΄λΈ μ‘°μ μ λ¬Έμ κ° λ°μνλ νμ
- μμ
- μ΄λ€ ν μ΄λΈ Rμμ Xμ Yλ₯Ό κ°κ° Rμ μμ± μ§ν©μ λΆλΆ μ§ν©μ΄λ€.
- μμ± Xμ κ° κ°κ°μ λν΄ μκ°μ κ΄κ³μμ΄ νμ μμ± Yμ κ°μ΄ μ€μ§ νλλ§ μ°κ΄λμ΄ μλ€.
- μ΄ λ, Yλ Xμ ν¨μμ μ’ μ λλ Xκ° Yλ₯Ό ν¨μμ μΌλ‘ κ²°μ νλ€κ³ νκ³ , X → Yλ‘ νκΈ°νλ€.
• ν¨μμ μ’ μμ μ’ λ₯
- μμ ν¨μμ μ’ μ : μ΄λ€ ν μ΄λΈ Rμμ μμ± Yκ° λ€λ₯Έμμ± μ§ν© X μ 체μ λν΄ ν¨μμ μ’ μμ΄λ©΄μ μμ± μ§ν© Xμ μ΄λ ν μ§λΆλΆ μ§ν© Z(μ¦, Z ⊂ X)μλ ν¨μμ μ’ μμ΄ μλ λ
- λΆλΆ ν¨μμ μ’ μ : μ΄λ€ ν μ΄λΈ Rμμ μμ± Yκ° λ€λ₯Έ μμ± μ§ν© X μ 체μ λν΄ ν¨μμ μ’ μμ΄λ©΄μ μμ± μ§ν© Xμ μμμ μ§λΆλΆ μ§ν©μ λν΄ ν¨μμ μ’ μμΌ λ
μ κ·ν(Normalization)
μ κ·ν
ν μ΄λΈμ μμ±λ€μ΄ μνΈ μ’ μμ μΈ κ΄κ³λ₯Ό κ°λ νΉμ±μ μ΄μ©νμ¬ ν μ΄λΈμ 무μμ€ λΆν΄νλ κ³Όμ
• μ κ·ν κ³Όμ
μ΄νμ ν¨μμ μ’ μ : A → Bμ΄κ³ B → CμΌ λ A → Cλ₯Ό λ§μ‘±νλ κ΄κ³
λ°μ κ·ν(Denormalization)
λ°μ κ·ν
ν μ΄λΈμ μμ±λ€μ΄ μνΈ μ’ μμ μΈ κ΄κ³λ₯Ό κ°λ νΉμ±μ μ΄μ©νμ¬ ν μ΄λΈμ 무μμ€ λΆν΄νλ κ³Όμ μμ€ν μ μ±λ₯ ν₯μ, κ°λ° λ° μ΄μμ νΈμμ± λ±μ μν΄ μ κ·νλ λ°μ΄ν° λͺ¨λΈμ ν΅ν©, μ€λ³΅, λΆλ¦¬νλ κ³Όμ μΌλ‘, μλμ μΌλ‘ μ κ·ν μμΉμ μλ°°νλ νμ
• λ°μ κ·ν λ°©λ²
ν μ΄λΈ ν΅ν© | λ κ°μ ν μ΄λΈμ΄ μ‘°μΈ(Join)λλ κ²½μ°κ° λ§μ νλμ ν μ΄λΈλ‘ ν©μ³ μ¬μ©νλ κ²μ΄ μ±λ₯ ν₯μμ λμμ΄ λ κ²½μ° μνν¨ |
ν μ΄λΈ λΆν | μν λΆν (Horizontal Partitioning) : λ μ½λ(Record)λ₯Ό κΈ°μ€μΌλ‘ ν
μ΄λΈμ λΆν νλ κ²μΌλ‘, λ μ½λλ³λ‘ μ¬μ© λΉλμ μ°¨μ΄κ° ν° κ²½μ° μ¬μ© λΉλμ λ°λΌ ν
μ΄λΈμ λΆν ν¨ μμ§ λΆν (Vertical Partitioning) : νλμ ν μ΄λΈμ μμ±μ΄ λ무 λ§μ κ²½μ° μμ±μ κΈ°μ€μΌλ‘ ν μ΄λΈμ λΆν νλ κ² |
μ€λ³΅ ν μ΄λΈ μΆκ° | μ¬λ¬ ν
μ΄λΈμμ λ°μ΄ν°λ₯Ό μΆμΆν΄μ μ¬μ©ν΄μΌ νκ±°λ λ€λ₯Έ μλ²μ μ μ₯λ ν
μ΄λΈμ μ΄μ©ν΄μΌ νλ κ²½μ° μ€λ³΅ ν
μ΄λΈμ μΆκ°νμ¬ μμ
μ ν¨μ¨μ±μ ν₯μμν¬ μ μμ μΆκ° λ°©λ² : μ§κ³ ν μ΄λΈμ μΆκ°, μ§ν ν μ΄λΈμ μΆκ°, νΉμ λΆλΆλ§μ ν¬ν¨νλ ν μ΄λΈμ μΆκ° |
μ€λ³΅ μμ± μΆκ° | μ‘°μΈν΄μ λ°μ΄ν°λ₯Ό μ²λ¦¬ν λ λ°μ΄ν°λ₯Ό μ‘°ννλ κ²½λ‘λ₯Ό λ¨μΆνκΈ° μν΄ μμ£Ό μ¬μ©νλ μμ±μ νλ λ μΆκ°νλ κ² |
λ Όλ¦¬ λ°μ΄ν° λͺ¨λΈμ 물리 λ°μ΄ν° λͺ¨λΈλ‘ λ³ν
- μν°ν°(Entity)λ₯Ό ν μ΄λΈλ‘ λ³ν : λ Όλ¦¬ λ°μ΄ν° λͺ¨λΈμμ μ μλ μν°ν°λ₯Ό 물리 λ°μ΄ν° λͺ¨λΈμ ν μ΄λΈλ‘ λ³ν
- μνΌνμ
κΈ°μ€ ν
μ΄λΈ λ³ν : μλΈνμ
μ μνΌνμ
μ ν΅ν©νμ¬ νλμ ν
μ΄λΈλ‘ λ³ν
- μλΈνμ κΈ°μ€ ν μ΄λΈ λ³ν : μνΌνμ μμ±λ€μ κ° μλΈνμ μ μΆκ°νμ¬ μλΈνμ λ€μ κ°λ³μ μΈ ν μ΄λΈλ‘ λ³ν
- κ°λ³νμ
κΈ°μ€ ν
μ΄λΈ λ³ν : μνΌνμ
κ³Ό μλΈνμ
λ€μ κ°λ³μ μΈ ν
μ΄λΈλ‘ λ³ν
- μμ±μ 컬λΌμΌλ‘ λ³ν : λ
Όλ¦¬ λ°μ΄ν° λͺ¨λΈμμ μ μν μμ±μ 물리 λ°μ΄ν° λͺ¨λΈμ 컬λΌμΌλ‘ λ³ν
- κ΄κ³λ₯Ό μΈλν€λ‘ λ³ν : λ Όλ¦¬ λ°μ΄ν° λͺ¨λΈμμ μ μλ κ΄κ³λ κΈ°λ³Έν€μ μ΄λ₯Ό μ°Έμ‘°νλ μΈλν€λ‘ λ³ν
μΈλ±μ€(Index)
μΈλ±μ€
λ°μ΄ν° λ μ½λλ₯Ό λΉ λ₯΄κ² μ κ·ΌνκΈ° μν΄ <ν€ κ°, ν¬μΈν°> μμΌλ‘ ꡬμ±λλ λ°μ΄ν° ꡬ쑰
• μΈλ±μ€ λΆλ₯
ν΄λ¬μ€ν°λ μΈλ±μ€(Clustered Index) | μΈλ±μ€ ν€μ μμμ λ°λΌ λ°μ΄ν°κ° μ λ ¬λμ΄ μ μ₯λλ λ°©μ |
λν΄λ¬μ€ν°λ μΈλ±μ€(Non-Clustered Index) | μΈλ± μ€μ ν€ κ°λ§ μ λ ¬λμ΄ μμ λΏ μ€μ λ°μ΄ν°λ μ λ ¬λμ§ μλ λ°©μ |
• μΈλ±μ€ μ’ λ₯
- νΈλ¦¬ κΈ°λ° μΈλ±μ€ : μΈλ±μ€λ₯Ό μ μ₯νλ λΈλ‘λ€μ΄ νΈλ¦¬ ꡬ쑰λ₯Ό μ΄λ£¨κ³ μλ κ²μΌλ‘, μμ© DBMSμμλ νΈλ¦¬ ꡬ쑰 κΈ°λ°μ B+ νΈλ¦¬ μΈλ±μ€λ₯Ό μ£Όλ‘ νμ©ν¨
- λΉνΈλ§΅ μΈλ±μ€ : μΈλ±μ€ 컬λΌμ λ°μ΄ν°λ₯Ό Bit κ°μΈ 0 λλ 1λ‘ λ³ννμ¬ μΈλ±μ€ ν€λ‘ μ¬μ©νλ λ°©λ²
- ν¨μ κΈ°λ° μΈλ±μ€ : 컬λΌμ κ° λμ 컬λΌμ νΉμ ν¨μ(Function)λ μμ(Expression)μ μ μ©νμ¬ μ°μΆλ κ°μ μ¬μ©νλ κ²μΌλ‘, B+ νΈλ¦¬ μΈλ±μ€ λλ λΉνΈλ§΅ μΈλ±μ€λ₯Ό μμ±νμ¬ μ¬μ©ν¨
- λΉνΈλ§΅ μ‘°μΈ μΈλ±μ€ : λ€μμ μ‘°μΈλ κ°μ²΄λ‘ ꡬμ±λ μΈλ±μ€λ‘, λ¨μΌ κ°μ²΄λ‘ ꡬμ±λ μΌλ°μ μΈ μΈλ±μ€μ μ‘μΈμ€ λ°©λ²μ΄ λ€λ¦
- λλ©μΈ μΈλ±μ€ : κ°λ°μκ° νμν μΈλ±μ€λ₯Ό μ§μ λ§λ€μ΄ μ¬μ©νλ κ²μΌλ‘, νμ₯ν μΈλ±μ€(Extensible Index)λΌκ³ λ ν¨
λ·°(View)
λ·°
μ¬μ©μμκ² μ κ·Όμ΄ νμ©λ μλ£λ§μ μ νμ μΌλ‘ 보μ¬μ£ΌκΈ° μν΄ νλ μ΄μμ κΈ°λ³Έ ν μ΄λΈλ‘λΆν° μ λλ μ΄λ¦μ κ°μ§λ κ°μ ν μ΄λΈ
• λ·°μ νΉμ§
- μ μ₯μ₯μΉ λ΄μ 물리μ μΌλ‘ μ‘΄μ¬νμ§ μμ§λ§, μ¬μ©μμκ²λ μλ κ²μ²λΌ κ°μ£Όλλ€.
- CREATEλ¬ΈμΌλ‘ μ μνκ³ , DROPλ¬ΈμΌλ‘ μ κ±°νλ€.
- λ°μ΄ν°μ λ Όλ¦¬μ λ 립μ±μ μ 곡νλ€.
νΈλμμ (Transaction)
νΈλμμ
λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€λ νλμ λ Όλ¦¬μ κΈ°λ₯μ μννκΈ° μν μμ μ λ¨μ λλ νκΊΌλ²μ λͺ¨λ μνλμ΄μΌ ν μΌλ ¨μ μ°μ°
• νΈλμμ νΉμ§
- Atomicity (μμμ±) : νΈλμμ μ μ°μ°μ λ°μ΄ν°λ² μ΄μ€μ λͺ¨λ λ°μλλλ‘ μλ£(Commit)λλ μ§ μλλ©΄ μ ν λ°μλμ§ μλλ‘ λ³΅κ΅¬(Rollback)λμ΄μΌ ν¨
- Consistency (μΌκ΄μ±) : νΈλμμ μ΄ κ·Έ μ€νμ μ±κ³΅μ μΌλ‘ μλ£νλ©΄ μΈμ λ μΌκ΄μ± μλ λ°μ΄ν°λ² μ΄μ€ μνλ‘ λ³νν¨
- Isolation (λ 립μ±) : λ μ΄μμ νΈλμμ μ΄ λμμ λ³ν μ€νλλ κ²½μ° μ΄λ νλμ νΈλμμ μ€νμ€μ λ€λ₯Έ νΈλμμ μ μ°μ°μ΄ λΌμ΄λ€ μ μμ
- Durability (μ§μμ±) : μ±κ³΅μ μΌλ‘ μλ£λ νΈλμμ μ κ²°κ³Όλ μμ€ν μ΄ κ³ μ₯λλλΌλ μꡬμ μΌλ‘ λ°μλμ΄μΌ ν¨
ν΄λ¬μ€ν°(Cluster)
ν΄λ¬μ€ν°
λ°μ΄ν° μ μ₯ μ λ°μ΄ν° μ‘μΈμ€ ν¨μ¨μ ν₯μμν€κΈ° μν΄ λμΌν μ±κ²©μ λ°μ΄ν°λ₯Ό λμΌν λ°μ΄ν° λΈλ‘μ μ μ₯νλ 물리μ μ μ₯ λ°©λ²
• ν΄λ¬μ€ν° νΉμ§
- ν΄λ¬μ€ν°λ§ν€λ‘ μ§μ λ μ»¬λΌ κ°μ μμλλ‘ μ μ₯λκ³ , μ¬λ¬ κ°μ ν μ΄λΈμ΄ νλμ ν΄λ¬μ€ν°μ μ μ₯λλ€.
- ν΄λ¬μ€ν°λ§ λ ν μ΄λΈμ λ°μ΄ν° μ‘°ν μλλ ν₯μμν€μ§λ§ λ°μ΄ν° μ λ ₯, μμ , μμ μ λν μ±λ₯μ μ νμν¨λ€.
- μ²λ¦¬ λ²μκ° λμ κ²½μ°μλ λ¨μΌ ν μ΄λΈ ν΄λ¬μ€ν°λ§μ, μ‘°μΈμ΄ λ§μ΄ λ°μνλ κ²½μ°μλ λ€μ€ ν μ΄λΈ ν΄λ¬μ€ν°λ§μ μ¬μ©νλ€.
νν°μ (Patition)
νν°μ
λμ©λμ ν μ΄λΈμ΄λ μΈλ±μ€λ₯Ό μμ λ Όλ¦¬μ λ¨μλ‘ λλλ κ²
• λ°μ κ·ν λ°©λ²νν°μ λ λ°©μμ λ°λ₯Έ νν°μ μ μ’ λ₯
- λ²μ λΆν (Range Partitioning) : μ§μ ν μ΄μ κ°μ κΈ°μ€μΌλ‘ λΆν
- ν΄μ λΆν (Hash Partitioning) :ν΄μ ν¨μλ₯Ό μ μ©ν κ²°κ³Ό κ°μ λ°λΌ λ°μ΄ν°λ₯Ό λΆν
- μ‘°ν© λΆν (Composite Partitioning) : λ²μ λΆν λ‘ λΆν ν λ€μ ν΄μ ν¨μλ₯Ό μ μ©νμ¬ λ€μ λΆν
λ°μ΄ν°λ² μ΄μ€ μ©λ μ€κ³
λ°μ΄ν°λ² μ΄μ€ μ©λ μ€κ³
λ°μ΄ν°κ° μ μ₯λ 곡κ°μ μ μνλ κ²
• νΉμ§
- λ°μ΄ν°λ² μ΄μ€ μ©λμ μ€κ³ν λλ ν μ΄λΈμ μ μ₯ν λ°μ΄ν°μκ³Ό μΈλ±μ€, ν΄λ¬μ€ν° λ±μ΄ μ°¨μ§νλ κ³΅κ° λ±μ μμΈ‘νμ¬ λ°μν΄μΌ νλ€.
- λ°μ΄ν°λ² μ΄μ€μ μ©λμ μ νν μ°μ νμ¬ λμ€ν¬μ μ μ₯ 곡κ°μ ν¨κ³Όμ μΌλ‘ μ¬μ©νκ³ νμ₯μ± λ° κ°μ©μ±μ λμΈλ€.
• λ°μ΄ν° μ κ·Όμ±μ ν₯μμν€λ μ€κ³ λ°©λ²
- ν μ΄λΈμ ν μ΄λΈμ€νμ΄μ€μ μΈλ±μ€μ ν μ΄λΈμ€νμ΄μ€λ₯Ό λΆλ¦¬νμ¬ κ΅¬μ±νλ€.
- ν μ΄λΈμ€νμ΄μ€μ μμ ν μ΄λΈμ€νμ΄μ€λ₯Ό λΆλ¦¬νμ¬ κ΅¬μ±νλ€.
- ν μ΄λΈμ λ§μ€ν° ν μ΄λΈκ³Ό νΈλμμ ν μ΄λΈλ‘ λΆλ₯νλ€.