κ³Όλͺ©II SQL κΈ°λ³Έ λ° νμ© 1μ₯ - 4μ TCL
4μ . TCL (TRANSACTION CONTROL LANGUAGE)
νΈλμμ
- λ°μ΄ν°λ² μ΄μ€μ λ Όλ¦¬μ μ°μ°λ¨μ
- λΆν ν μ μλ μ΅μμ λ¨μ
- νλμ νΈλμμ μλ νλ μ΄μμ SQLλ¬Έμ₯μ΄ ν¬ν¨λλ€.
- ALL OR NOTHINGμ κ°λ
νΈλμμ μ νΉμ±
1. μμμ± - λͺ¨λ μ±κ³΅μ μΌλ‘ μ€νλλμ§ μ ν μ€νλμ§ μμ μν
2. μΌκ΄μ± - νΈλμμ μ€ν μ κ³Ό νμ μΌκ΄μ±μ΄ μμ΄μΌ ν¨
3. κ³ λ¦½μ±(격리μ±) - νΈλμμ μ΄ μ€νλλ λμ€ λ€λ₯Έ νΈλμμ μ μν₯μ λ°μ μλͺ»λ κ²°κ³Ό λ§λ€λ©΄ μλ¨
4. μ§μμ± - νΈλμμ μνμ κ°±μ ν λ°μ΄ν°λ² μ΄μ€μ λ΄μ©μ μꡬ μ μ₯
1. 컀λ°(COMMIT) - λ³κ²½λ λ°μ΄ν°λ₯Ό λ°μ΄ν°λ² μ΄μ€μ μꡬμ μΌλ‘ λ°μ
COMMIT;
2. λ‘€λ°±(ROLLBACK) - λ³κ²½ μ λ°μ΄ν°λ‘ 볡κ·
ROLLBACK;
ROLLBACK TO SVPT1;
3. μ μ₯μ (SAVEPOINT) - μ§μ ν μ μ₯μ κΉμ§ λ‘€λ°±
SAVEPOINT SVPT1;
ν¨κ³Ό
- λ°μ΄ν° λ¬΄κ²°μ± λ³΄μ₯
- μꡬλ³κ²½ μ λ°μ΄ν°μ λ³κ²½ μ¬ν νμΈ κ°λ₯
- λ Όλ¦¬μ μΌλ‘ μ°κ΄λ μμ μ κ·Έλ£Ήννμ¬ μ²λ¦¬ κ°λ₯
β» DDL λ¬Έμ₯μ μ€νμμλ μλμΌλ‘ 컀λ°λλ€.
ORACLEμ κ²½μ° DML λ¬Έμ₯ μ΄νμ 컀λ°μ΄ μμ΄λ DDLλ¬Έμ₯μ΄ μ€νλλ©΄ DDL μν μ μ μλμΌλ‘ 컀λ°λλ€.
λ°μ΄ν°λ² μ΄μ€ μ μ μ’ λ£μ μλ 컀λ°
λ°μ΄ν°λ² μ΄μ€ μ΄μ μ’ λ£μ μλ λ‘€λ°±
SQL SERVERμ κ²½μ°μλ μλ 컀λ°λͺ¨λμ΄λ―λ‘ λ°λ‘ μ²λ¦¬ νμ X
SQL SERVER - AUTO COMMIT
ORACLE - μμμ νΈλμμ (μμμ DBMSκ° μ²λ¦¬)
+ λͺ μμ νΈλμμ (μμ(BEGIN)κ³Ό λ(COMMIT) λͺ μμ μΌλ‘ μ§μ )
격리μ±μμμ λ¬Έμ μ
1. κ°±μ λΆμ€ (lost update)
- νλμ νΈλμμ μ΄ μνν λ°μ΄ν° λ³κ²½ μ°μ°μ΄ μ μ₯λκΈ° μ μ λ€λ₯Έ νΈλμμ μ΄ λ°μ΄ν°λ₯Ό κ°μ§κ³ κ°μ λ°μ΄ν°λ₯Ό λ³κ²½νκ³ λ€μ μ μ₯νλ κ²½μ° μ²«λ²μ§Έ νΈλμμ μ΄ μνν μ°μ°μ 무ν¨κ° λλ€
2. μ€μνλ (dirty bit)
- commit λμ§ μμ κ°μ μ½μ΄μμ λ, λμ€μ commit μμ΄ μ’ λ£νλ€λ©΄ μ€μλ κ°μ κ°μ§κ³ μκ² λμ΄ κΌ¬μΈλ€.
3. λ°λ³΅ λΆκ°λ₯(uprepeatable read)
- ν νΈλμμ μ΄ κ°μ μ½μ΄μ¨ ν λ€λ₯Έ νΈλμμ μ΄ κ·Έ κ°μ λ³κ²½νκ±°λ μμ λ²λ¦¬λ©΄ κ·Έ dataλ₯Ό λ€μ μ½μ μ μμ.
4. ν¬ν λ¬Έμ
- ν νΈλμμ (T1)μ΄ μ΄λ ν 쑰건μΌλ‘ κ°μ μ‘°νν ν λ€λ₯Έ νΈλμμ (T2)μ΄ ν΄λΉ 쑰건μμ dataλ₯Ό μ½μ ,μμ νλ©΄ T1μ΄ λ€μ κ°μ μ‘°ννμ λ λ³κ²½λ dataκ° μ‘°νλλ€. μ΄ μνμμ T2κ° rollbackνλ€λ©΄?
νΈλμμ μ 4κ°μ§ 격리 λ 벨(isolation level)
λ―Έμλ£λ νΈλμμ μ½κΈ°(read uncommitted)
- 컀λ°νμ§ μμ λ°μ΄ν°λ₯Ό μ½μμ μλ€.
- μ€μνλ , λ°λ³΅λΆκ°λ₯ μ½κΈ° , ν¬ν λ¬Έμ λ°μ
μλ£λ νΈλμμ μ½κΈ°(read committed)
- μ»€λ° μλ£λ λ°μ΄ν°λ§ μ½μ μ μλ€.
- λ°λ³΅ λΆκ°λ₯ μ½κΈ°, ν¬ν λ¬Έμ κ° λ°μ
λ°λ³΅κ°λ₯ μ½κΈ°(repeatable read)
- νΈλμμ
λ΄μμ νλ² μ‘°νν λ°μ΄ν°λ₯Ό λ°λ³΅ν΄μ μ‘°νν΄λ κ°μ λ°μ΄ν°κ° μ‘°ν λλ€.
- ν¬ν λ¬Έμ κ° λ°μ
μ§λ ¬ κ°λ₯(serializable)
- μ 3κ°μ§ λ¬Έμ μ μ λͺ¨λ μλ°© κ°λ₯
- μ€μνλ , λ°λ³΅ λΆκ°λ₯ μ½κΈ°, ν¬ν λ¬Έμ λͺ¨λ μλ°©