[Data Base] Transaction

2021. 10. 5. 19:09γ†κ°œλ… 정리 μž‘μ—…μ‹€/Data Base

728x90
λ°˜μ‘ν˜•

πŸ“Œ Transaction μ΄λž€?

 

Data Base의 μƒνƒœλ₯Ό λ³€ν™˜ μ‹œν‚€λŠ” ν•˜λ‚˜μ˜ 논리적 κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ μž‘μ—…μ˜ λ‹¨μœ„ λ˜λŠ” ν•œκΊΌλ²ˆμ— λͺ¨λ‘ μˆ˜ν–‰ λ˜μ–΄μ•Ό ν•  일련의 연산인 κ²ƒμ΄μ—μš”.

    πŸ“ νŠΉμ§• 

  1. νŠΈλžœμž­μ…˜μ€ Data Base μ‹œμŠ€ν…œμ—μ„œ 병행 μ œμ–΄ 및 회볡 μž‘μ—… μ‹œ μ²˜λ¦¬λ˜λŠ” μž‘μ—…μ˜ 논리적 λ‹¨μœ„
  2. μ‚¬μš©μžκ°€ μ‹œμŠ€ν…œμ— λŒ€ν•œ μ„œλΉ„μŠ€ μš”κ΅¬ μ‹œ μ‹œμŠ€ν…œμ΄ μ‘λ‹΅ν•˜κΈ° μœ„ν•œ μƒνƒœ λ³€ν™˜ κ³Όμ •μ˜ μž‘μ—… λ‹¨μœ„
  3. ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ€ commit λ˜κ±°λ‚˜, Rollback λ˜μ–΄μ•Ό ν•œλ‹€.


    πŸ“ μ„±μ§ˆ

         πŸ‘‰ Atomicity(μ›μžμ„±)

  1. νŠΈλžœμž­μ…˜μ˜ 연산은 Data Base에 λͺ¨λ‘ λ°˜μ˜λ˜λ“ μ§€ μ•„λ‹ˆλ©΄ μ „ν˜• λ°˜μ˜λ˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
  2. νŠΈλžœμž­μ…˜ λ‚΄μ˜ λͺ¨λ“  λͺ…령은 λ°˜λ“œμ‹œ μ™„λ²½νžˆ μˆ˜ν–‰λ˜μ–΄μ•Ό ν•˜λ©°, λͺ¨λ‘κ°€ μ™„λ²½νžˆ μˆ˜ν–‰λ˜μ§€ μ•Šκ³ , μ–΄λŠ ν•˜λ‚˜λΌλ„ 였λ₯˜κ°€ λ°œμƒν•˜λ©΄ νŠΈλžœμž­μ…˜ μ „λΆ€ μ·¨μ†Œ λ˜μ–΄μ•Ό ν•œλ‹€.

 

         πŸ‘‰ Consistency(일관성)

  1. νŠΈλžœμž­μ…˜μ΄ κ·Έ 싀행을 μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œν•˜λ©΄ μ–Έμ œλ‚˜ 일관성 μžˆλŠ” Data Base μƒνƒœλ‘œ λ³€ν™˜
  2. μ‹œμŠ€ν…œμ΄ 가지고 μž‡λŠ” κ³ μ • μš”μ†ŒλŠ” νŠΈλžœμž­μ…˜ μˆ˜ν–‰ μ „κ³Ό νŠΈλžœμž­μ…˜ ꡬ행 μ™„λ£Œ ν›„μ˜ μƒνƒœκ°€ κ°™μ•„μ•Ό ν•œλ‹€.

 

λ°˜μ‘ν˜•

         πŸ‘‰  Isolation(독립성, 격리성)

  1. λ‘˜ μ΄μƒμ˜ νŠΈλžœμž­μ…˜μ΄ λ™μ‹œμ— 병행 μ‹€ν–‰λ˜λŠ” 경우 μ–΄λŠ ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜ μ‹€ν–‰ 쀑에 λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ˜ 연산이 끼어듀 수 μ—†λ‹€.
  2. μˆ˜ν–‰μ€‘μΈ νŠΈλžœμž­μ…˜μ€ μ™„μ „νžˆ μ™„λ£Œλ  λ•ŒκΉŒμ§€ λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ—μ„œ μˆ˜ν–‰ κ²°κ³Όλ₯Ό μ°Έμ‘°ν•  수 μ—†λ‹€.

 

         πŸ‘‰  Durablility(μ˜μ†μ„±, 지속성)

  1. μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œλœ νŠΈλžœμž­μ…˜μ˜ κ²°κ³ΌλŠ” μ‹œμŠ€ν…œμ΄ μž₯μ• κ°€ λ°œμƒν•΄λ„ 영ꡬ적으둜 λ°˜μ˜λ˜μ–΄μ•Ό ν•œλ‹€.

 

 

    πŸ“ νŠΈλžœμž­μ…˜ μ—°μ‚° 및 μƒνƒœ

         πŸ‘‰  Commit μ—°μ‚°

  1. Commit 연산은 ν•œ 개의 논리적 λ‹¨μœ„(νŠΈλžœμž­μ…˜)에 λŒ€ν•œ μž‘μ—…μ΄ μ„±κ³΅μ μœΌλ‘œ 끝났고, 데이터 λ² μ΄μŠ€κ°€ λ‹€μ‹œ μΌκ΄€λœ μƒνƒœμ— μžˆμ„ λ•Œ μ‚¬μš©
  2. νŠΈλžœμž­μ…˜μ΄ ν–‰ν•œ κ°±μ‹  연산이 μ™„λ£Œλœ 것을 νŠΈλžœμž­μ…˜ κ΄€λ¦¬μžμ—κ²Œ μ•Œλ €μ£ΌλŠ” μ—°μ‚°

 

 

         πŸ‘‰  RollBack μ—°μ‚°

  1. Rollback 연산은 ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜ μ²˜λ¦¬κ°€ λΉ„ μ •μƒμ μœΌλ‘œ μ’…λ£Œλ˜μ–΄ 데이터 베이슀의 일관성을 κΉ¨λœ¨λ Έμ„ λ•Œ, 이 νŠΈλžœμž­μ…˜μ˜ 일뢀가 μ •μƒμ μœΌλ‘œ 처리 λ˜μ—ˆλ”λΌλ„ νŠΈλžœμž­μ…˜μ˜ μ›μžμ„± κ΅¬ν˜„μ„ μœ„ν•΄ 이 νŠΈλžœμž­μ…˜μ΄ ν–‰ν•œ λͺ¨λ“  연산을 μ·¨μ†Œ(Undo)ν•˜λŠ” μ—°μ‚°
  2. Rollbackμ‹œμ—λŠ” ν•΄λ‹Ή νŠΈλžœμž­μ…˜μ„ μž¬μ‹œμž‘ν•˜κ±°λ‚˜, 폐기

 

 

         πŸ‘‰  νŠΈλžœμž­μ…˜μ˜ μƒνƒœ

 

 

ν™œλ™ ( Active ) : νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰ 쀑
μ‹€νŒ¨ ( Failed ) : νŠΈλžœμž­μ…˜ 싀행에 였λ₯˜κ°€ λ°œμƒν•˜μ—¬ 쀑단
철회 ( Aborted ) : νŠΈλžœμž­μ…˜μ΄ λΉ„ μ •μƒμ μœΌλ‘œ μ’…λ£Œλ˜μ–΄ Rollback μ—°μ‚° μˆ˜ν–‰
λΆ€λΆ„ μ™„λ£Œ ( Partially Committed ) : νŠΈλžœμž­μ…˜μ˜ λ§ˆμ§€λ§‰ μ—°μ‚°κΉŒμ§€ μ‹€ν–‰ν–ˆμœΌλ‚˜, commit μ—°μ‚° μ‹€ν–‰ 직전 μƒνƒœ
μ™„λ£Œ ( Committed ) : νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μ’…λ£Œλ˜μ–΄ commit 연상 μ‹€ν–‰ν•œ λ’€

728x90
λ°˜μ‘ν˜•