1. νΈλμμ transaction
- λ μ΄μ λΆν ν μ μλ μ΅μ μν λ¨μ
- μ΄λ€ κΈ°λ₯ ν κ°μ§λ₯Ό μννλ 'SQLλ¬Έ λ©μ΄λ¦¬'.
- ν κ° μ΄μμ λ°μ΄ν° μ‘°μ λͺ λ Ήμ΄(DML)λ‘ μ΄λ£¨μ΄μ§
- νΈλμμ μ νλμ νΈλμμ λ΄μ μλ μ¬λ¬ λͺ λ Ήμ΄λ₯Ό ν λ²μ μννμ¬ μμ μ μλ£νκ±°λ λͺ¨λ μμ μ μ·¨μ. ALL OR NOTHING
- λ°μ΄ν°λ² μ΄μ€ κ³μ μ ν΅ν΄ μ μνλ λμμ μμνλ€
- νΈλμμ μ΄ μ’ λ£λκΈ° μ κΉμ§ μ¬λ¬ SQLλ¬Έμ μ€ννκ³ νΈλμμ μ μ μ΄νλ λͺ λ Ή(TCL)μ μ€νν λ κΈ°μ‘΄ νΈλμμ μ΄ λλκ³ κ·Έ ν μλ‘μ΄ νΈλμμ μ΄ μμλλ€
2. νΈλμμ μ μ΄ λͺ λ Ήμ΄ : TCL
- νΈλμμ μ μ μ΄νκΈ° μν΄ μ¬μ©νλ λͺ λ Ήμ΄λ₯Ό TCL : Transaction Control Language μ΄λΌκ³ νλ€
- νΈλμμ μ λ¬Άμ¬μλ DMLμ μν μνλ λͺ¨λ λͺ λ Ήμ΄κ° μ μμ μΌλ‘ μν μλ£λ μν λλ λͺ¨λ λͺ λ Ήμ΄κ° μνλμ§ μμ μ·¨μλ μν λ κ°μ§λ‘λ§ μ‘΄μ¬ν μ μλ€
- νΈλμμ μ μ΄ λͺ λ μ΄λ λ°μ΄ν° μ‘°μ μνλ₯Ό μ λκ°μ§ μν μ€ νλλ‘ μ λνλ λͺ λ Ήμ΄λ₯Ό μλ―Έ
- λ°μ΄ν° μ‘°μμ λ°μ΄ν°λ² μ΄μ€μ μꡬν λ°μνκ±°λ μμ μ 체λ₯Ό μ·¨μ
2-1. νΈλμμ μ μꡬν λ°μνλ COMMIT
- μ§κΈκΉμ§ μνν DML λͺ λ Ήμ΄λ₯Ό λ°μ΄ν°λ² μ΄μ€μ μꡬν λ°μ
- COMMIT ν μλ‘μ΄ νΈλμμ μ΄ μμλλ€
COMMIT;
2-2. νΈλμμ μ μ·¨μνλ ROLLBACK
- νμ¬ νΈλμμ μ ν¬ν¨λ DML λͺ λ Ήμ΄μ μνμ λͺ¨λ μ·¨μ
- λ°λ‘ μ μ νΈλμμ μμ μμ μΌλ‘ λμκ°λ€
- ROLLBACK ν μλ‘μ΄ νΈλμμ μ΄ μμλλ€
ROLLBACK;
3. μΈμ session
- μ΄λ€ νλμ μν μκ°μ΄λ κΈ°κ°
- λ°μ΄ν°λ² μ΄μ€ μ μμ μμμΌλ‘ μ¬λ¬ λ°μ΄ν°λ² μ΄μ€μμ κ΄λ ¨ μμ μ μνν ν μ μμ μ’ λ£νκΈ°κΉμ§ μ 체 κΈ°κ°μ μλ―Έ
- μΈμ μ΄ μ¬λ¬ κ°λΌλ λ§μ νμ¬ μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€μ μ μνμ¬ μ¬μ© μ€μΈ μ°κ²°μ΄ μ¬λ¬ κ° μλ€λ λ»
4. νΈλμμ κ³Ό μΈμ μ μ°¨μ΄
- νΈλμμ μ DMLμ΄ λͺ¨μΈ νλμ μμ λ¨μλ₯Ό λ»νλ©° μΈμ λ΄λΆμλ νλ μ΄μμ νΈλμμ μ΄ μ‘΄μ¬
- λ°μ΄ν°λ² μ΄μ€μ μ μν ν μ’ λ£νκΈ°κΉμ§μ κ³Όμ μ΄ νλμ μΈμ μ΄λ©° μ΄ μΈμ μ΄ μ μ§λλ λμ μ¬λ¬ COMMIT, ROLLBACK μμ μ΄ μ§νλκΈ° λλ¬Έ
- μΈμ μ΄ νΈλμμ λ³΄λ€ ν° λ¨μ
5. μ½κΈ° μΌκ΄μ± read consistency
- μ΄λ€ νΉμ μΈμ μμ ν μ΄λΈμ λ°μ΄ν°λ₯Ό λ³κ²½ μ€μΌ λ κ·Έ μΈ λ€λ₯Έ μΈμ μμλ λ°μ΄ν°μ λ³κ²½μ΄ νμ λκΈ° μ κΉμ§ λ³κ²½ μ¬νμ μ νμκ° μμΌλ―λ‘, λ°μ΄ν°λ₯Ό λ³κ²½ μ€μΈ μΈμ μ μ μΈν λλ¨Έμ§ μΈμ μμλ νμ¬ μ§ν μ€μΈ λ³κ²½κ³Ό 무κ΄ν λ³Έλμ λ°μ΄ν°λ₯Ό λ³΄μ¬ μ£Όλ νΉμ±
- μ΄λ€ λ°μ΄ν° μ‘°μμ΄ ν¬ν¨λ νΈλμμ μ΄ μλ£(COMMIT, ROLLBACK)μ΄ λκΈ° μ κΉμ§ λ°μ΄ν°λ₯Ό μ§μ μ‘°μνλ μΈμ μΈ λ€λ₯Έ μΈμ μμλ λ°μ΄ν° μ‘°μ μ μνμ λ΄μ©μ΄ μΌκ΄μ μΌλ‘ μ‘°ν, μΆλ ₯, κ²μλλ νΉμ±
6. LOCK
- μ‘°μ μ€μΈ λ°μ΄ν°λ₯Ό λ€λ₯Έ μΈμ μ μ‘°μν μ μλλ‘ μ κ·Όμ 보λ₯μν€λ κ²
- νΉμ μΈμ
μμ μ‘°μμ€μΈ λ°μ΄ν°λ νΈλμμ
μ΄ μλ£(COMMIT, ROLLBACK)μ΄ λκΈ° μ κΉμ§ λ€λ₯Έ μΈμ
μμ μ‘°μν μ μλ μν,(LOCK)κ° λ¨
- ν λ 벨 λ‘ low level lock : μ‘°μνλ λμ λ°μ΄ν°κ° ν
μ΄λΈμ νΉμ ν λ°μ΄ν°μΌ κ²½μ° ν΄λΉ νλ§ LOCKμ΄ λ°μνλ€λ μλ―Έ
- ν μ΄λΈ λ 벨 λ‘ table level lock : ν μ΄λΈ λ¨μλ‘ LOCKμ΄ λ°μ. INSERTλ¬Έμ μνμ κ°λ₯
7. HANG
- νΉμ μΈμ μμ λ°μ΄ν° μ‘°μμ΄ μλ£λ λ κΉμ§ λ€λ₯Έ μΈμ μμ ν΄λΉ λ°μ΄ν° μ‘°μμ κΈ°λ€λ¦¬λ νμ
- λ€λ₯Έ μΈμ Aμμ μ‘°μμ€μΈ λ°μ΄ν°λ₯Ό μ‘°μνλ €κ³ μΈμ Bμμ DMLμ μ€ννλ©΄ νλ©΄μ΄ λ©μΆ λ― μλ¬΄λ° λμμ΄ μΌμ΄λμ§ μλλ€
- μΈμ Aκ° μ‘°μμ μλ£ν λ κΉμ§ μμ μ λκΈ°νλ€.
- νΈλμμ μ΄ μλ£(COMMIT, ROLLBACK)μ΄ λλ μκ° λκΈ°νκ³ μλ λͺ λ Ήμ΄κ° μ€νλλ€
- μΈμ Aκ° νΈλμμ μ μλ£νλ©΄ μΈμ Bκ° λκΈ°νκ³ μλ λͺ λ Ήμ΄λ₯Ό μννκ³ , μΈμ Aκ° λ€μ μΈμ Bκ° νΈλμμ μ μλ£ν λ κΉμ§ λκΈ°(HANG)νλ€