Transaction

νŠΈλžœμž­μ…˜μ΄λž€?

논리적 μž‘μ—… λ‹¨μœ„λ‘œμ„œ ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ μ²˜λ¦¬λ˜μ–΄μ•Όν•˜λŠ” 뢄리될 수 μ—†λŠ” μ—°μ‚° 그룹이닀. κ°„λ‹¨ν•˜κ²Œ λ§ν•΄μ„œ μ•„λž˜μ˜ SQL(μ§ˆμ˜μ–΄)λ₯Ό μ΄μš©ν•΄ λ°μ΄ν„°λ² μ΄μŠ€μ— μ ‘κ·Όν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.

  1. SELECT

  2. INSERT

  3. DELETE

  4. UPDATE

μ—¬κΈ°μ„œ μž‘μ—…λ‹¨μœ„λŠ” SQLλ¬Έ ν•œλ¬Έμž₯이 μ•„λ‹ˆλΌ λ§Žμ€ SQL문을 μ‚¬λžŒμ΄ μ •ν•˜λŠ” 기쀀에 따라 μ •ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.

νŠΈλžœμž­μ…˜μ˜ νŠΉμ§•

ACID

  1. μ›μžμ„±(Atomicity) : νŠΈλžœμž­μ…˜μ΄ λ°μ΄ν„°λ² μ΄μŠ€μ— λͺ¨λ‘ λ°˜μ˜λ˜κ±°λ‚˜, μ „ν˜€ λ°˜μ˜μ΄λ˜μ§€ μ•Šμ•„μ•Όν•œλ‹€.

  2. 일관성(Consistency) : νŠΈλžœμž­μ…˜μ˜ μž‘μ—…μ²˜λ¦¬ κ²°κ³Όκ°€ 항상 일관성이 μžˆμ–΄μ•Όν•œλ‹€.

  3. 독립성(Isolation) : λ‘˜μ΄μƒμ˜ νŠΈλžœμž­μ…˜μ΄ λ™μ‹œμ— 병행, μ‹€ν–‰λ˜κ³  μžˆμ„ κ²½μš°μ—λŠ” μ–΄λŠ ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜λ„ λ‹€λ₯Έ νŠΈλžœμž­μ…˜ 연산에 끼어듀 수 μ—†λ‹€.

  4. 지속성(Durability) : νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œλ˜μ—ˆμ„ 경우, κ²°κ³ΌλŠ” 영ꡬ적으둜 λ°˜μ˜λ˜μ–΄μ•Όν•œλ‹€.

Commit & Rollback

  • Commit ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ 끝났고, λ°μ΄ν„°λ² μ΄μŠ€κ°€ 일관적인 μƒνƒœμ— μžˆμ„ λ•Œ 이λ₯Ό μ•Œλ¦¬λŠ” μ—°μ‚°

  • Rollback ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜ μ²˜λ¦¬κ°€ λΉ„μ •μƒμ μœΌλ‘œ μ’…λ£Œλ˜μ–΄, νŠΈλžœμž­μ…˜μ˜ μ›μžμ„±μ΄ κΉ¨μ§„κ²½μš°, νŠΈλžœμž­μ…˜μ„ λ‹€μ‹œ μ‹œμž‘ν•˜κ±°λ‚˜ λΆ€λΆ„μ μœΌλ‘œλ§Œ μ—°μ‚°λœ κ²°κ³Όλ₯Ό λ‹€μ‹œ μ·¨μ†Œν•œλ‹€. 후에 νŠΈλžœμž­μ…˜ 처리 λ‹¨μœ„λ‘œ Rollback을 진행할 수 μžˆλ‹€.

Last updated