π― νΈλμμ (Transaction)
νΈλμμ
(Transaction)μ λ°μ΄ν°λ² μ΄μ€μμ μΌμ΄λλ μμ
μ λ
Όλ¦¬μ λ¨μλ₯Ό μλ―Έν©λλ€. λ³΄ν΅ λ°μ΄ν°λ² μ΄μ€μμ λ°μ΄ν°λ₯Ό μ μ₯, μμ , μμ νλ μμ
μ μνν λ, μ¬λ¬ λ¨κ³μ μμ
μ μνν΄μΌ νλ κ²½μ°κ° μμ΅λλ€. μ΄λ¬ν μμ
μ μννλ λμ€μ μ΄λ€ λ¬Έμ κ° λ°μνμ¬ μ€κ°μ μμ
μ΄ μ€ν¨νλ©΄, λ°μ΄ν°μ 무결μ±μ΄ κΉ¨μ§ μ μμ΅λλ€.
μ΄λ¬ν λ¬Έμ λ₯Ό λ°©μ§νκΈ° μν΄, νΈλμμ
μ λͺ¨λ μμ
μ΄ μ±κ³΅μ μΌλ‘ μνλ λλ§ λ°μλλλ‘ λ³΄μ₯ν©λλ€.
νΈλμμ μ ACID
β
μμμ±(Atomicity): νΈλμμ
μ "μμμ "μ΄μ΄μΌ ν©λλ€. μ¦, λͺ¨λ μμ
μ΄ νλμ λ
Όλ¦¬μ μΈ λ¨μλ‘ μ²λ¦¬λμ΄μΌ νλ©°, νλμ μμ
μ΄λΌλ μ€ν¨νλ©΄ μ 체 μμ
μ΄ μ·¨μλμ΄μΌ ν©λλ€.
β
μΌκ΄μ±(Consistency): νΈλμμ
μν ν λ°μ΄ν°λ² μ΄μ€λ μΌκ΄μ± μλ μνκ° μ μ§λμ΄μΌ ν©λλ€. μ¦, λ°μ΄ν°λ² μ΄μ€μμ μ μλ μ μ½ μ‘°κ±΄(Constraint)μ λͺ¨λ λΆν©ν΄μΌ ν©λλ€.
β
κ³ λ¦½μ±(Isolation): νΈλμμ
μν μ€μ λ€λ₯Έ νΈλμμ
μ μμ
μ μν₯μ λ°μ§ μλλ‘ κ³ λ¦½λμ΄μΌ ν©λλ€. μ¦, ν νΈλμμ
μ΄ μνλλ λμ λ€λ₯Έ νΈλμμ
μμ κ°μ λ°μ΄ν°λ₯Ό μμ νκ±°λ μμ νμ§ λͺ»νλλ‘ λ³΄μ₯ν΄μΌ ν©λλ€.
β
μ§μμ±(Durability): νΈλμμ
μ΄ μ±κ³΅μ μΌλ‘ μλ£λλ©΄, ν΄λΉ μμ
μ΄ λ°μ΄ν°λ² μ΄μ€μ λ°μλμ΄μΌ ν©λλ€. λ§μ½ λ°μ΄ν°λ² μ΄μ€μ λ¬Έμ κ° λ°μνμ¬ μμ
μ΄ μ€λ¨λλ©΄, μ΄μ μ μλ£λ μμ
κΉμ§ λͺ¨λ 볡ꡬλμ΄μΌ ν©λλ€.
λ°λΌμ, νΈλμμ μ λ°μ΄ν°λ² μ΄μ€μμ λ°μ΄ν°μ 무결μ±μ 보μ₯νκΈ° μν μ€μν κ°λ μ€ νλμ λλ€.
νΈλμμ κ΄λ¦¬
νΈλμμ κ΄λ¦¬λ λ°μ΄ν°λ² μ΄μ€ μμ€ν μμ λ§€μ° μ€μν μν μ ν©λλ€. μ΄λ λ°μ΄ν°λ² μ΄μ€μ 무결μ±κ³Ό μΌκ΄μ±μ 보μ₯νκΈ° μν΄ νΈλμμ μ΄ μμμ±, μΌκ΄μ±, κ³ λ¦½μ±, μ§μμ±μ μΆ©μ‘±ν΄μΌ νκΈ° λλ¬Έμ λλ€.
- νΈλμμ
μμ (Begin Transaction)
- νΈλμμ μ μμνκΈ° μν΄ λ°μ΄ν°λ² μ΄μ€ μμ€ν μμλ νΈλμμ μλ³μλ₯Ό μμ±ν©λλ€.
- μμ
μν
- νΈλμμ μμ μνν μμ μ μ μν©λλ€. μ΄λ, νΈλμμ μ κ° λ¨κ³λ μμμ±μ μ μ§ν΄μΌ ν©λλ€.
- μ»€λ° λλ λ‘€λ°±
- νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μλ£λλ©΄, 컀λ°(Commit)μ μννμ¬ λ°μ΄ν°λ² μ΄μ€μ λ³κ²½ μ¬νμ λ°μν©λλ€. λ§μ½ μμ μ€μ μ€λ₯κ° λ°μνκ±°λ, νΈλμμ μ μ·¨μν΄μΌ νλ κ²½μ° λ‘€λ°±(Rollback)μ μννμ¬ μ΄μ μνλ‘ λλ립λλ€.
- νΈλμμ
μ’
λ£ (End Transaction)
- νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μλ£λμλ€λ©΄, νΈλμμ μ μ’ λ£ν©λλ€. μ΄λ, νΈλμμ μλ³μλ ν¨κ» μμ λ©λλ€.
λ°μ΄ν°λ² μ΄μ€ μμ€ν μμλ νΈλμμ μ κ΄λ¦¬νκΈ° μν μ¬λ¬ κΈ°μ κ³Ό μκ³ λ¦¬μ¦μ΄ μμ΅λλ€.μλ₯Ό λ€μ΄, λ‘κΉ (Logging) κΈ°μ μ νΈλμμ μν κ³Όμ μμ λ°μνλ λͺ¨λ λ³κ²½ λ΄μ©μ λ‘κ·Έμ κΈ°λ‘νμ¬, 볡ꡬνκΈ° μ½κ² λ§λ€μ΄ μ€λλ€.
λν, κ΅μ°© μν(Deadlock)λ₯Ό λ°©μ§νκΈ° μν΄ νΈλμμ
κ°μ μ°μ μμλ₯Ό κ²°μ νκ±°λ, λ½(Lock)μ μ€μ νμ¬ κ³ λ¦½μ±μ μ μ§ν μ μμ΅λλ€.
μ΄λ¬ν κΈ°μ κ³Ό μκ³ λ¦¬μ¦μ ν΅ν΄, λ°μ΄ν°λ² μ΄μ€ μμ€ν
μμ μμ μ μΈ νΈλμμ
μ²λ¦¬κ° κ°λ₯ν΄μ§λλ€.
'Database' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Database] μ μ₯ νλ‘μμ (Stored Procedure) (0) | 2023.03.26 |
---|---|
[Database] νΈλμμ μ 격리 μμ€(Isolation Level) (0) | 2023.03.26 |
[Database] μΈλ±μ€(Index) (0) | 2023.03.26 |
[Database] μ΄μ(Anomaly) (0) | 2023.03.26 |
[Database] μ κ·ν(Normalization) (0) | 2023.03.26 |