ACID
π§ νΈλμμ (Transaction)μ΄λ?
νΈλμμ (Transaction)μ΄λ, λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€κΈ° ν΄μ μννλ μμ μ λ¨μ
λλ νκΊΌλ²μ λͺ¨λ μνλμ΄μΌ ν μΌλ ¨μ μ°μ°λ€μ μλ―Έ ν©λλ€.
μ§μμ΄(SQL)λ₯Ό μ΄μ©νμ¬ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ κ·Ό νλ κ²μ μλ―Έν©λλ€.
λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³κ²½μν¨λ€λ μ΄μΌκΈ°λ SELECT, UPDATE, INSERT, DELETE μ κ°μ νλμ λ»ν©λλ€.
νλμ νΈλμμ μ Commit (μ μ₯) λκ±°λ Rollback (μ² ν)λ μ μμ΅λλ€.
νΈλμμ μ ACID μμΉμ λ°λ¦ λλ€
π§ ACIDλ?
1. μμμ±(Atomicity):
νΈλμμ μ λͺ¨λ μ°μ°μ μ μ²΄κ° μ±κ³΅νκ±°λ μ ν μ€νλμ§ μμμΌ ν©λλ€.
μ€κ° λ¨κ³μ μ€ν¨κ° λ°μνλ©΄ μ΄μ μνλ‘ λ‘€λ°±λ©λλ€.
2. μΌκ΄μ±(Consistency):
νΈλμμ μ λ°μ΄ν°λ² μ΄μ€μ λ¬΄κ²°μ± κ·μΉμ μ€μνμ¬ μΌκ΄λ μνλ₯Ό μ μ§ν΄μΌ ν©λλ€.
νΈλμμ μ΄ μ€ν μ κ³Ό μ€ν νμλ μΌκ΄μ±μ΄ μ μ§λμ΄μΌ ν©λλ€.
3. λ 립μ±(Isolation):
μ¬λ¬ κ°μ νΈλμμ μ΄ λμμ μ€νλ λ,
κ° νΈλμμ μ λ€λ₯Έ νΈλμμ μκ² μν₯μ μ£Όμ§ μκ³ λ 립μ μΌλ‘ μ€νλμ΄μΌ ν©λλ€.
λ€λ₯Έ νΈλμμ μ μ°μ° κ²°κ³Όλ₯Ό λ³Ό μ μμΌλ©°, μ€κ° μνλ₯Ό μ μ μμ΅λλ€.
4. μ§μμ±(Durability):
νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μλ£λλ©΄, ν΄λΉ λ³κ²½ λ΄μ©μ μꡬμ μΌλ‘ μ μ₯λμ΄μΌ ν©λλ€.
μμ€ν μ₯μ λ μ€λ¨μ΄ λ°μνλλΌλ λ°μ΄ν°μ μ§μμ±μ 보μ₯ν΄μΌ ν©λλ€.
π§Commit, Rollback?
1. Commit
νλμ νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ λλμ λ°μ΄ν°λ² μ΄μ€κ° μΌκ΄μ±μλ μνμ μμμ μλ―Έν©λλ€.
2.Rollback νΈλμμ μ μμμ±μ΄ κΉ¨μ§ λ, μ¦ νλμ νΈλμμ μ²λ¦¬κ° λΉμ μμ μΌλ‘ μ’ λ£ λμμ λμ μνλ₯Ό λ»ν©λλ€.
Rollback μ΄ μ΄λ€μ§λ€λ©΄ νΈλμμ μ λ€μ μ€ννκ±°λ λΆλΆμ μΌλ‘ λ³κ²½λ κ²°κ³Όλ₯Ό μ·¨μν μ μμ΅λλ€.