π λ°μ΄ν°λ² μ΄μ€ - νΈλμμ μ΄λ 무μμ΄κ³ μμμ±, μΌκ΄μ±, κ³ λ¦½μ±, μ§μμ±μ΄λ 무μμΈκ°μ?
νΈλμμ
νΈλμμ μ΄λ λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³κ²½ μν€κΈ° μν΄ μννλ μμ λ¨μμ΄λ€.
λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³κ²½ μν¨λ€λ κ²μ SELECT
, INSERT
, UPDATE
, DELETE
μ κ°μ 쿼리λ₯Ό λ λ € μ°μ°μ μννλ κ²μ΄λ€.
νΈλμμ μ νκ΅μ΄λ‘ λ²μνλ©΄ βκ±°λβ
μ¦, λ°μ΄ν°λ² μ΄μ€μμ νΈλμμ μ νλμ κ±°λλ₯Ό μμ νκ² μ²λ¦¬νλλ‘ λ³΄μ₯ν΄μ£Όλ κ²μ΄λΌκ³ ν μ μλ€.
νΈλμμ μ λ Όλ¦¬μ μμ μμλ λͺ¨λ μμ μ΄ μ±κ³΅μ μΌλ‘ μνλκ±°λ νΉμ μ무κ²λ μνλμ§ μμμΌ νλ€.
νΈλμμ μ λ°μ΄ν°λ² μ΄μ€μμ μΌκ΄μ±μ μ μ§νκ³ λ°μ΄ν°μ 무결μ±μ 보μ₯νλλ° μ€μν μν μ νλ€.
μμ
π νΈλμμ μ΄ μλ€λ©΄
λμ μ κΈλκ° κ°κ° κ³μ’μ 5,000
μμ© μλ€κ³ κ°μ ν λ λμ κ° κΈλμκ² λΉλ¦° λμ κ°κΈ° μν΄ 2,000
μμ 보λΈλ€.
νμ§λ§ μ€λ₯λ‘ μΈν΄ λμ λ 2,000
μμ 보λμ§λ§ κΈλλ λ°μ§ λͺ»νλ€.
ν΄λΉ μ€λ₯λ μ¬κ°ν λ¬Έμ μ΄λ€.
νΈλμμ κΈ°λ₯
λ°μ΄ν°λ² μ΄μ€κ° μ 곡νλ νΈλμμ
κΈ°λ₯μ μ¬μ©νλ©΄ commit
κ³Ό rollback
μΌλ‘ μ μμ μ΄ μμ
μ΄ κ°λ₯νκ² ν μ μλ€.
λμ μ κΈλμ μν©μμ βλμ κ° λμ μ΄μ²΄νλ μν© - 1βμ μ±κ³΅νμ§λ§ βκΈλκ° λμ μ
κΈ λ°λ μν©-2βμ μ€ν¨νλ κ²½μ°μ κ°μ΄ μ€κ°μ λ¬Έμ κ° λ°μν λ κ±°λ μ μ μνλ‘ λμκ° μ μλ€. μ΄κ²μ μμ
μ€ νλλΌλ μ€ν¨ν΄μ κ±°λ μ΄μ μΌλ‘ λλ리λ κ²μΌλ‘ λ‘€λ°±(rollback)
μ΄λΌκ³ νλ€. κ·Έλ¦¬κ³ λͺ¨λ μμ
μ΄ μ μμ μΌλ‘ μ±κ³΅νλ κ²½μ° λ°μ΄ν°λ² μ΄μ€μ μ μ λ°μνλ κ²μ 컀λ°(commit)
μ΄λΌκ³ νλ€.
νΈλμμ νΉμ§
νΈλμμ μ ACID μμ±μ λ°λ₯Έλ€. ACIDλ Atomicity(μμμ±), Consistency(μΌκ΄μ±), Isolation(κ³ λ¦½μ±), Durability(μ§μμ±)μ μ½μλ‘ νΈλμμ μ΄ μμ νκ² μνλκ³ λ°μ΄ν°μ 무결μ±μ΄ μ μ§λλλ‘ νλ€.
Atomicity(μμμ±) : νΈλμμ μ μμμ μΈ μμ λ¨μλ‘ κ°μ£Όλμ΄ λͺ¨λ μμ μ΄ μ±κ³΅μ μΌλ‘ μλ£λκ±°λ μ ν μνλμ§ μμμΌ νλ€. μ¦, μ€κ°μ μ΄λ ν μμ μ΄λΌλ μ€ν¨νλ€λ©΄ νΈλμμ μ μ²΄κ° λ‘€λ°±(rollback) λμ΄μΌ νλ€.
Consistency(μΌκ΄μ±) : νΈλμμ μ΄ μνλ νμ λ°μ΄ν°λ² μ΄μ€λ 미리 μ μλ κ·μΉμ λ°λΌ μΌκ΄λ μνμ¬μΌ νλ€.
Isolation(κ³ λ¦½μ±) : μ¬λ¬ νΈλμμ μ΄ λμμ μνλλλΌλ κ° νΈλμμ μ λ€λ₯Έ νΈλμμ μ μμ μ μν₯μ λ°μ§ μμμΌ νλ€. κ°κ°μ νΈλμμ μ λ 립μ μΌλ‘ μ€νλμ΄μΌ νλ€.
Durability(μ§μμ±) : νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μλ£λλ©΄ κ·Έ κ²°κ³Όλ μꡬμ μΌλ‘ λ°μλμ΄μΌ νλ€.
μ¦, λ°μ΄ν°λ² μ΄μ€κ° μμ€λλλΌλ νΈλμμ μ κ²°κ³Όλ 보쑴λμ΄μΌ νλ€.