νΈλμμ
(Transaction)
λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€κΈ° μν΄ μννλ μμ
μ λ¨μ
νΈλμμ
μ΄ νμν μ΄μ
SELECT β UPDATE β INSERT μμΌλ‘ λμνλ λΉμ¦λμ€ λ‘μ§μ΄ μλ€κ³ κ°μ νμ.
λ§μ½ UPDATEλ₯Ό μ±κ³΅μ μΌλ‘ μνν ν INSERTλ₯Ό μννλ κ³Όμ μμ μ€λ₯κ° λ°μν΄ μ±κ³΅μ μΌλ‘ INSERTκ° μνλμ§ μμλ€λ©΄, μ΄λ λ‘μ§μ μμ±ν κ°λ°μκ° μλνλλ‘ μ²λ¦¬λ κ²μ΄ μλλΌκ³ λ΄μΌ νλ€. λ°λΌμ κ°λ°μλ μ΄λ»κ²λ μνλ UPDATEλ₯Ό λλλ €μΌ νκ³ , μ΄λ 볡μ‘ν μΆκ° μμ μ μꡬνλ€.
νΈλμμ μ λμ νλ©΄ INSERTκΉμ§ λͺ¨λ μΏΌλ¦¬κ° μ μμ μΌλ‘ μνλ κ²½μ°μλ§ λ³κ²½ μ¬νμ λ°μνκ³ (Commit), μ€κ°μ μμΈ λ±μ μν΄ μΌλΆ μΏΌλ¦¬κ° μ μμ μΌλ‘ μνλμ§ λͺ»ν κ²½μ°μλ μνλ 쿼리μ λ³κ²½ μ¬νμ λλλ €(Rollback) λ°μ΄ν°λ₯Ό νλμ λ¨μλ‘ λ€λ£¨κ³ μΌκ΄μ±μ 보μ₯ν μ μκ² νλ€.
νΈλμμ
μ νΉμ§
νΈλμμ μ λ€μμ μμλ€μ 보μ₯ν¨μΌλ‘μ¨ μμ μ±μ 보μ₯νλ€.
μμμ± (Atomicity)
μμμ±μ΄λ λ μμ λΆλΆμΌλ‘ μͺΌκ°€ μ μμμ μλ―Έ
νλμ μμ λ¨μλ λͺ¨λ λ°μλκ±°λ(Commit) κ·Έλ μ§ μκ±°λ(RollBack) λ μ€ νλμ¬μΌ νμ§ μΌλΆλ§ λ°μλμ΄μλ μ λ¨
μΌκ΄μ± (Consistency)
νΈλμμ κ²°κ³Όλ μΌκ΄μ μΈ λ°μ΄ν°λ² μ΄μ€μ μ μ©λμ΄μΌ ν¨
μ¦, νΈλμμ λμ€ λ°μ΄ν°λ² μ΄μ€μ λ³νκ° μΌμ΄λλ νΈλμμ μ μ²μ μμ μ μ°Έμ‘°ν λ°μ΄ν°λ² μ΄μ€λ₯Ό κΈ°μ€μΌλ‘ μ§ν
κ²©λ¦¬μ± (Isolation)
μ¬λ¬ κ°μ νΈλμμ μ΄ μ€νλ λ, νλμ νΈλμμ μ μλ‘ λ€λ₯Έ νΈλμμ μ κ°μν μ μμ
λμΌν λ°μ΄ν°λ² μ΄μ€ λ μ½λμ μ κ·Όνλ©΄ λμμ± λ¬Έμ κ° λ°μνκΈ° λλ¬Έ
νΈλμμ 격리
μ μ°κ²°
μ§μμ± (Durability)
νΈλμμ μ μ²λ¦¬ κ²°κ³Όλ λ°μ΄ν°λ² μ΄μ€μ μꡬμ μΌλ‘ λ°μλμ΄μΌ ν¨
HW κ²°ν¨, DB μλ² λ€μ΄ λ±μλ λ°μ΄ν°κ° 보쑴λμ΄μΌ ν¨μ μλ―Έ (λΉνλ°μ±μΌλ‘ μ μ₯)
μ€μν μμλ μμμ±κ³Ό 격리μ±μ΄λ€. νΈλμμ μ λ¬Έμ κ° λ°μνμ λ λ‘€λ°±ν λ²μλ₯Ό μ§μ νκΈ° μν΄ λ€μμ 쿼리λ₯Ό νλμ λ¨μλ‘ λ¬Άλ κΈ°λ₯μ΄λΌλ κ²(μμμ±), νΈλμμ κ°μ μμ 곡κ°μ μΉ¨λ²νκ² λλ©΄ μλνμ§ μμ λ³μκ° λ°μν μ μκΈ° λλ¬Έμ νΈλμμ μ 격리ν΄μΌ νλ€λ κ²(격리μ±)μ μ§μ€ν΄μΌ νλ€.
Commitκ³Ό Rollback
Commit
νλμ νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μνλ κ²½μ° μ΄ μ¬μ€μ νΈλμμ μ κ΄λ¦¬ 주체μκ² μλ¦Ό
μ΄ν ν΄λΉ λ³κ²½ μ¬νμ λ°μ΄ν°λ² μ΄μ€μ λ°μλ¨
Rollback
νΈλμμ μ μ²λ¦¬μ μ€ν¨ν κ²½μ° νΈμΆλλ λͺ λ Ή
μμμ±μ 보μ₯νκΈ° μν΄ μμ μνν λͺ λ Ήλ€μ μ·¨μμν΄
Last updated