νΈλμ μ μ΄λ?
λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€λ νλμ λ Όλ¦¬μ κΈ°λ₯μ μννκΈ° μν μμ μ λ¨μ λλ νκΊΌλ²μ λͺ¨λ μνλμ΄μΌ ν μΌλ ¨μ μ°μ°λ€
νΈλμ μ μ μ±μ§ (ACID)
Atomicity (μμμ±)
- All or Nothing
- νΈλμμ μ "μ λΆ μ±κ³΅"νκ±°λ "μ λΆ μ€ν¨"νλ μμμ μΈ λ¨μλ‘ μ²λ¦¬λμ΄μΌ νλ€.
- νλμ νΈλμμ λ΄μμ μνλλ λͺ¨λ μ°μ°μ λͺ¨λ μ±κ³΅ν΄μΌλ§ λ°μ΄ν°λ² μ΄μ€ μνκ° λ³κ²½λκ³ , μ΄λ νλλΌλ μ€ν¨νλ κ²½μ° μ΄μ μνλ‘ λ‘€λ°±(νΈλμ μ μ λΆ μ·¨μ)λλ€.
Consistency (μΌκ΄μ±)
- νΈλμμ μν μ κ³Ό μν νμ λ°μ΄ν°λ² μ΄μ€κ° λμΌν κ·μΉκ³Ό μ μ½μ‘°κ±΄μ λ°λ₯΄λ©°, λ°μ΄ν° κ°μ μΌμΉμ±μ΄ μ μ§ν΄μΌ νλ€.
ex) μν μ‘κΈ κΈ°λ₯μμ νΈλμ μ μν μ΄μ μ μ‘κΈμμ μκΈμμ μμ± ν©μ΄ μν νμ λ¬λΌμ§κ±°λ, νΉμ μμ‘μ λνλ΄λ μλ£νμ΄ μ μνμμ λ¬Έμμ΄λ‘ λ°λλ λ±μ λͺ¨μμ΄ λ°μνλ©΄ μ λλ€.
Isolation (λ 립μ±, 격리μ±)
- λ μ΄μμ νΈλμμ μ΄ λμμ λ³ν μ€νλλ κ²½μ° μ΄λ νλμ νΈλμμ μ€ν μ€μ λ€λ₯Έ νΈλμμ μ μ°μ°μ΄ λΌμ΄λ€ μ μλ€.
- μν μ€μΈ νΈλμμ μ μμ ν μλ£λ λκΉμ§ λ€λ₯Έ νΈλμμ μμ μν κ²°κ³Όλ₯Ό κ°μ Έμ¬ μ μλ€.
Durability (μμμ±, μ§μμ±)
- νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μλ£λλ©΄, κ·Έ κ²°κ³Όλ μꡬμ μΌλ‘ μ μ§λμ΄μΌ νλ€. μμ€ν μ₯μ λ μ μ μ₯μ λ±μ μν©μ΄ λ°μν΄λ, νΈλμμ μ κ²°κ³Όλ μꡬμ μΌλ‘ λ°μλμ΄μΌ νλ€.
νΈλμ μ μ μ°μ°
Commit
- νλμ νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μ’ λ£λ ν, λ°μ΄ν°λ² μ΄μ€κ° μΌκ΄λ μνλ₯Ό μ μ§ν λ κ°±μ μ°μ°μ΄ μλ£λμλ€κ³ νΈλμμ κ΄λ¦¬μμκ² μλ €μ£Όκ³ κ²°κ³Όλ₯Ό μ΅μ’ μ μΌλ‘ λ°μ΄ν°λ² μ΄μ€μ λ°μνλ μ°μ°
Rollback
- νλμ νΈλμμ μ²λ¦¬κ° λΉμ μμ μΌλ‘ μ’ λ£λμ΄ λ°μ΄ν°λ² μ΄μ€μ μΌκ΄μ±μ κΉ¨λ¨λ Έμ λ, μ΄ νΈλμμ μ μΌλΆκ° μ μμ μΌλ‘ μ²λ¦¬λμλλΌλ νΈλμμ μ μμμ±μ ꡬννκΈ° μν΄ μ΄ νΈλμμ μ΄ νν λͺ¨λ μ°μ°μ μ·¨μ(Undo)νλ μ°μ°
- νΈλμμ μ μ΄λ μμ μμ λ¬Έμ κ° λ°μνλ©΄ Rollbackμ΄ μ€νλμ΄ μ΄μ μ μνλ λͺ¨λ μ°μ°μ μ·¨μνκ³ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ΄μ μνλ‘ λλλ¦°λ€. μ¦, νΈλμμ μ μμ μ μ·¨μνκ³ λ³κ²½λ λ°μ΄ν°λ₯Ό μλμ μνλ‘ λ³΅μνλ€.
νΈλμ μ μ μν
1. νμ±ν(Active) : νΈλμμ μ΄ μμ μ μμνμ¬ μ€ν μ€μΈ μν
2. μ€ν¨(Failed) : νΈλμμ μ μ€λ₯κ° λ°μνμ¬ μ€νμ΄ μ€λ¨λ μν
3. μ² ν(Aborted) : νΈλμμ μ΄ λΉμ μμ μΌλ‘ μ’ λ£λμ΄ Rollback μ°μ°μ μνν μν
4. λΆλΆ μλ£(Partially Committed) : νΈλμμ μ λ§μ§λ§ μ°μ°κΉμ§ μ€ννκ³ commitμ΄ λκΈ° μ§μ μ μν. (λ°μ΄ν°λ² μ΄μ€μ μμ§ λ°μνμ§ μμ μν)
5. μλ£(Committed) : νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μ’ λ£λμ΄ commit μ°μ°μ μ€νν νμ μν (λ°μ΄ν°λ² μ΄μ€μ λ°μ)
Reference
[DBκΈ°μ΄] νΈλμμ μ΄λ 무μμΈκ°?
[λ°μ΄ν°λ² μ΄μ€] Transaction, νΈλμμ μ΄λ?
[DB] 9. νΈλμμ (Transaction) - (1) νΉμ±, ACID, μ°μ°, μν
'π‘CS > Database' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Database] μΈλ±μ€ (Index) (0) | 2023.06.16 |
---|---|
[Database] μ κ·ν(Normalization) (0) | 2023.06.16 |
컀λ₯μ ν(Connection Pool)μ΄λ? (0) | 2023.04.05 |
λκΈ