Transaction, νΈλμμ
νΈλμμ (Transaction) μ΄λ, λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³κ²½μν€κΈ° μν΄ μννλ μμ λ¨μμ΄λ€.
λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³κ²½μν¨λ€λ μ΄μΌκΈ°λ SELECT, UPDATE, INSERT, DELETE μ κ°μ νλμ λ»νλ€.
μ΄λ° νΈλμμ
μ μν©μ λ°λΌ μ¬λ¬ κ°κ° λ§λ€μ΄μ§ μ μλ€.
κ·Έ νλμ νΈλμμ
μ Commit (μ μ₯) λκ±°λ Rollback (μ² ν)λ μ μλ€.
κ·Έ μ΄μ λ 무μμΌκΉ?
μλ₯Ό λ€μ΄ μ°λ¦¬κ° λ¬Έμ λ₯Ό νλ©΄ ν¬μΈνΈλ‘ λ³κ²½λλ€κ³ κ°μ ν΄λ³΄μ.
A, B, C, D κ° λ¬Έμ λ₯Ό νμ΄ κ°κ° 100 Point μ© μ»μκ³ μ΄λ₯Ό DBμ μ μ₯νλ € νλ€.
A μ μ₯ μλ£, B μ μ₯ μλ£, C μ μ₯ μλ£, D μ μ₯ μ€ν¨
μ΄λ° μν©μ΄ μ€κ² λλ€λ©΄ μλͺ»λ μ²λ¦¬μ΄λ―λ‘ λ€μ μ μ₯μ μνν΄μΌ νλλ°, A, B, Cλ κ·Έ μ μ μ΄λ―Έ μ μ₯μ΄ μλ£λμκΈ° λλ¬Έμ λ€μ μ μ₯μ μμνλ©΄ 200μ μ΄ μ μ₯λλ€.
μ΄λ° λ¬Έμ μ λ€μ μν΄μ νΈλμμ μ Commit κ³Ό Rollback μ μ΄μ©νλ€.
νΈλμμ μ νΉμ§
νΈλμμ μλ 4κ°μ§μ νΉμ§μ΄ μ‘΄μ¬νλ€.
- μμμ±
- μΌκ΄μ±
- λ 립μ±
- μ§μμ±
μμμ±
μμμ±μ νΈλμμ
μ΄ DBμ λͺ¨λ λ°μλκ±°λ, μ ν λ°μλμ§ μκ±°λλ₯Ό λ»νλ€.
All or Nothingμ μκ°νλ©΄ λλ€.
μΌκ΄μ±
μΌκ΄μ±μ νΈλμμ
μμ
μ²λ¦¬μ κ²°κ³Όκ° νμ μΌκ΄λμ΄μΌ νλ€λ₯Ό λ»νλ€.
μ¦, λ°μ΄ν° νμ
μ΄ λ°ν νμ μ μ΄ νμ λμΌν΄μΌ νλ€.
λ 립μ±
λ
립μ±μ νλμ νΈλμμ
μ λ€λ₯Έ νΈλμμ
μ λΌμ΄λ€ μ μκ³ λ§μ°¬κ°μ§λ‘ λ
립μ μμ μλ―Ένλ€.
μ¦, κ°κ°μ νΈλμμ
μ λ
립μ μ΄λΌ μλ‘ κ°μμ΄ λΆκ°λ₯νλ€.
μ§μμ±
μ§μμ±μ νΈλμμ
μ΄ μ±κ³΅μ μΌλ‘ μλ£λλ©΄ μꡬμ μΌλ‘ κ²°κ³Όμ λ°μλμ΄μΌ ν¨μ λ»νλ€.
λ³΄ν΅ commit μ΄ λλ€λ©΄ μ§μμ±μ λ§μ‘±ν μ μλ€.
νΈλμμ μ Commit κ³Ό Rollback
Commit
νλμ νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ λλμ λ°μ΄ν°λ² μ΄μ€κ° μΌκ΄μ±μλ μνμ μμμ μλ―Ένλ€.
Rollback
νΈλμμ
μ μμμ±μ΄ κΉ¨μ§ λ, μ¦ νλμ νΈλμμ
μ²λ¦¬κ° λΉμ μμ μΌλ‘ μ’
λ£ λμμ λμ μνλ₯Ό λ»νλ€.
Rollback μ΄ μ΄λ€μ§λ€λ©΄ νΈλμμ
μ λ€μ μ€ννκ±°λ λΆλΆμ μΌλ‘ λ³κ²½λ κ²°κ³Όλ₯Ό μ·¨μν μ μλ€.
νΈλμμ μ μν
νΈλμμ μ λ Όλ¦¬μ μΌλ‘ 5κ°μ§μ μνμ μμ μ μλ€.
- Active
- νΈλμμ μ΄ νμ¬ μ€ν μ€μΈ μν
- Failed
- νΈλμμ΄ μ€νλλ€ μ€λ₯κ° λ°μν΄μ μ€λ¨λ μν
- Aborted
- λΈλμμ μ΄ λΉμ μ μ’ λ£λμ΄ Rollback μ΄ μνλ μν
- Partially Committed
- νΈλμμ μ μ°μ°μ΄ λ§μ§λ§κΉμ§ μ€νλκ³ Commitμ΄ λκΈ° μ§μ μν
- Committed
- νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μ’ λ£λμ΄ Commit μ°μ°μ μ€νν νμ μν
'π¬web application > - Database' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ€νμ νμ΄μ§μ΄ λλ¦° μ§μ§ μ΄μ (5) | 2023.11.19 |
---|---|
[λ°μ΄ν°λ² μ΄μ€] Isolation Level, κ³ λ¦½ μμ€ (0) | 2021.04.07 |
[SQLλ¬Έ κΈ°μ΄] DML λ°μ΄ν° μ‘°μμ΄ :: INSERT, UPDATE, DELETE (0) | 2020.07.07 |
[SQLλ¬Έ κΈ°μ΄] DDL λ°μ΄ν° μ μμ΄ :: CREATE, ALTER, DROP, TRUNCATE λ¬Έ (1) | 2020.07.07 |
[λ°μ΄ν°λ² μ΄μ€] λ°μ΄ν°λ² μ΄μ€ μ€κ³ - ERDμ λͺ¨λ κ² (0) | 2020.07.07 |
λκΈ