π[DB] νΈλμμ μ΄λ?
νΈλμμ μ΄λ?
νΈλμμ
μ΄λ, λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€κΈ° μν΄ μννλ μμ
μ λ¨μ
λ₯Ό λ»νλ€.
λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν¨λ€.
μ΄ λ§μ SQLμ ν΅ν΄ λ°μ΄ν°λ² μ΄μ€μ μ κ·Όνλ κ²μ μλ―Ένλ€.
- SELECT
- INSERT
- DELETE
- UPDATE
μμ μ λ¨μλ μ§μμ΄ ν λ¬Έμ₯μ΄ μλλ€. μμ μ λ¨μλ λ§μ μ§μμ΄ λͺ λ Ήλ¬Έλ€μ μ¬λμ΄ μ νλ κΈ°μ€μ λ°λΌ μ νλ κ²μ΄λ€.
νΈλμμ μ νΉμ§
νΈλμμ μ νΉμ§μ ν¬κ² 4κ°μ§λ‘ ꡬλΆλλ€.
- μμμ±(Atommicity)
- μΌκ΄μ±(Consistency)
- λ 립μ±(Isolation)
- μ§μμ±(Durability)
μμμ±(Atomicity)
μμμ±μ νΈλμμ
μ΄ λ°μ΄ν°λ² μ΄μ€μ λͺ¨λ λ°μμ΄ λκ±°λ μ ν λ°μμ΄ λμ§ μμμΌνλ€
λ λ»μ΄λ€.
λ§μ½ νΈλμμ
λ¨μλ‘ λ°μ΄ν°κ° μ²λ¦¬λμ§ μλλ€λ©΄, μ€κ³ν μ¬λμ λ°μ΄ν° μ²λ¦¬ μμ€ν
μ μ΄ν΄νκΈ° νλ€κ³ μ€μλ μ μμΈμ μ°ΎκΈ°κ° λ§€μ° νλ€μ΄μ§ μ μλ€.
μΌκ΄μ±(Consistency)
μΌκ΄μ±μ νΈλμμ
μ μμ
μ²λ¦¬ κ²°κ³Όκ° νμ μΌκ΄μ±μ΄ μμ΄μΌ νλ€
λ λ»μ΄λ€.
νΈλμμ
μ΄ μ§νλλ λμ λ°μ΄ν°λ² μ΄μ€κ° λ³κ²½ λλλΌλ μ
λ°μ΄νΈλ λ°μ΄ν°λ² μ΄μ€λ‘ νΈλμμ
μ΄ μ§νλλ κ²μ΄ μλλΌ, μ²μ νΈλμμ
μ μ§ννκΈ° μν΄ μ°Έμ‘°ν λ°μ΄ν°λ² μ΄μ€λ‘ μ§νλλ€.
λ 립μ±(Isolation)
λ
립μ±μ λ μ΄μμ νΈλμμ
μ΄ λμμ μ€νλκ³ μμ κ²½μ°, μ΄λ€ νλμ νΈλμμ
μ΄λΌλ λ€λ₯Έ νΈλμμ
μ μ°μ°μ λΌμ΄λ€ μ μλ€
λ λ»μ΄λ€.
νλμ νΉμ νΈλμμ
μ΄ μλ£λ λκΉμ§ λ€λ₯Έ νΈλμμ
μ΄ νΉμ νΈλμμ
μ κ²°κ³Όλ₯Ό μ°Έμ‘°ν μ μλ€.
μ§μμ±(Durability)
μ§μμ±μ νΈλμμ
μ΄ μ±κ³΅μ μΌλ‘ μλ£λμ κ²½μ°, κ²°κ³Όλ μꡬμ μΌλ‘ λ°μλμ΄μΌ νλ€.
λ λ»μ΄λ€.
νΈλμμ μ°μ°(COMMIT, ROLLBACK)
COMMIT
COMMITμ΄λ νλμ νΈλμμ
μ΄ μ±κ³΅μ μΌλ‘ λλ¬κ³ , λ°μ΄ν°λ² μ΄μ€κ° μΌκ΄μ±μλ μνμ μμ λ νλμ νΈλμμ
μ΄ λλ¬λ€
λ κ²μ μλ €μ£Όλ μ°μ°μ΄λ€.
COMMITμ΄ μ¬μ©λλ©΄ μννλ νΈλμμ
μ΄ λ‘κ·Έμ μ μ₯λλ€.
ROLLBACKμ΄λ νλμ νΈλμμ
μ²λ¦¬κ° λΉμ μμ μΌλ‘ μ’
λ£λμ΄ νΈλμμ
μ μμμ±μ΄ κΉ¨μ§ κ²½μ°, νΈλμμ
μ μ²μλΆν° λ€μ μμνκ±°λ νΈλμμ
μ λΆλΆμ μΌλ‘λ§ μ°μ°λ κ²°κ³Όλ₯Ό λ€μ μ·¨μ
μν€λ μ°μ°μ΄λ€.
νμ μ¬μ©μκ° νΈλμμ
μ²λ¦¬λ λ¨μλλ‘ ROLLBACKμ μ§νν μ μλ€.
λκΈλ¨κΈ°κΈ°