Computer Science/πŸ’Ύ Database

[DB] νŠΈλžœμž­μ…˜(Transaction) κ°œλ…, νŠΉμ§•, μ—°μ‚°, μƒνƒœ

J1Yun 2023. 3. 22. 14:47
728x90

νŠΈλžœμž­μ…˜(Transaction)

  • λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒνƒœλ₯Ό λ³€ν™”μ‹œν‚€λŠ” ν•˜λ‚˜μ˜ 논리적 κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ μž‘μ—…μ˜ λ‹¨μœ„
  • ν•œκΊΌλ²ˆμ— μˆ˜ν–‰λ˜μ–΄μ•Όν•  일련의 μ—°μ‚°
  • λ°μ΄ν„°λ² μ΄μŠ€ 일관성과 무경성 보μž₯
    • λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν•˜λ‚˜μ˜ μž‘μ—…μ΄ μˆ˜ν–‰λ˜λŠ” λ™μ•ˆ λ‹€λ₯Έ μž‘μ—…μ΄ κ°„μ„­ν•˜μ§€ λͺ»ν•˜λ„둝 함
    • 논리적인 μž‘μ—… 셋을 λͺ¨λ‘ μ™„λ²½ν•˜κ²Œ μ²˜λ¦¬ν•˜κ±°λ‚˜ λ˜λŠ” μ²˜λ¦¬ν•˜μ§€ λͺ»ν•  κ²½μš°μ—λŠ” 원 μƒνƒœλ‘œ λ³΅κ΅¬ν•΄μ„œ μž‘μ—…μ˜ μΌλΆ€λ§Œ μ μš©λ˜λŠ” ν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•Šκ²Œ λ§Œλ“€μ–΄μ£ΌλŠ” κΈ°λŠ₯

 

νŠΈλžœμž­μ…˜ μ—°μ‚°

  • Commit
    • ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ λλ‚˜μ„œ λ°μ΄ν„°λ² μ΄μŠ€κ°€ μΌκ΄€μ„± μžˆλŠ” μƒνƒœμ— μžˆμŒμ„ μ•Œλ €μ£ΌκΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” μ—°μ‚°
  • Rollback
    • ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜ μ²˜λ¦¬κ°€ λΉ„μ •μƒμ μœΌλ‘œ μ’…λ£Œλ˜μ–΄ λ°μ΄ν„°λ² μ΄μŠ€μ˜ 일관성을 κΉ¨λœ¨λ Έμ„ λ•Œ, 이 νŠΈλžœμž­μ…˜μ˜ 일뢀가 μ •μƒμ μœΌλ‘œ μ²˜λ¦¬λ˜μ—ˆλ”λΌλ„ νŠΈλžœμž­μ…˜μ˜ μ›μžμ„±μ„ 보μž₯ν•˜κΈ° μœ„ν•΄ 이 νŠΈλžœμž­μ…˜μ΄ ν–‰ν•œ λͺ¨λ“  연산을 μ·¨μ†Œ(Undo)ν•˜λŠ” μ—°μ‚°

 

νŠΈλžœμž­μ…˜ νŠΉμ§•(ACID)

  • Atomicity(μ›μžμ„±)
    • νŠΈλžœμž­μ…˜μ΄ λ°μ΄ν„°λ² μ΄μŠ€μ— λͺ¨λ‘ λ°˜μ˜λ˜κ±°λ‚˜, μ „ν˜€ 반영 λ˜μ§€ μ•Šμ•„μ•Ό 함
    • νŠΈλžœμž­μ…˜ λ‚΄μ˜ λͺ¨λ“  λͺ…령은 λ°˜λ“œμ‹œ μ™„λ²½νžˆ μˆ˜ν–‰λ˜μ–΄μ•Ό ν•˜λ©°(Commit), λͺ¨λ‘κ°€ μ™„λ²½νžˆ μˆ˜ν–‰λ˜μ§€ μ•Šκ³  μ–΄λŠ ν•˜λ‚˜λΌλ„ 였λ₯˜κ°€ λ°œμƒν•˜λ©΄ νŠΈλžœμž­μ…˜ μ „λΆ€κ°€ μ·¨μ†Œλ˜μ–΄μ•Ό 함(Rollback)
  • Consistency(일관성)
    • νŠΈλžœμž­μ…˜μ˜ μž‘μ—… 처리 κ²°κ³ΌλŠ” 항상 일관성이 μžˆμ–΄μ•Ό 함
    • λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒνƒœ 즉, μ‹œμŠ€ν…œμ΄ 가지고 μžˆλŠ” κ³ μ •μš”μ†Œ(데이터 νƒ€μž… λ“±)λŠ” νŠΈλžœμž­μ…˜ μˆ˜ν–‰ μ „κ³Ό μˆ˜ν–‰ μ™„λ£Œ ν›„μ˜ μƒνƒœκ°€ κ°™μ•„μ•Ό 함
  • Isolation(독립성, 격리성)
    • νŠΈλžœμž­μ…˜ μˆ˜ν–‰ μ‹œ λ‹€λ₯Έ νŠΈλžœμž­μ…˜ 연산이 끼어듀지 λͺ»ν•˜λ„둝 보μž₯
    • μˆ˜ν–‰ 쀑인 νŠΈλžœμž­μ…˜μ€ μ™„μ „νžˆ μ™„λ£Œλ  λ•ŒκΉŒμ§€ λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ—μ„œ μˆ˜ν–‰ κ²°κ³Όλ₯Ό μ°Έμ‘° ν•  수 μ—†μŒ
  • Durability(지속성, μ˜μ†μ„±)
    • νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œλ˜μ—ˆμ„ 경우, κ²°κ³ΌλŠ” 영ꡬ적으둜 λ°˜μ˜λ˜μ–΄μ•Ό 함

 

νŠΈλžœμž­μ…˜ μƒνƒœ

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

 

πŸ’‘ νŠΈλžœμž­μ…˜ μ‚¬μš© μ‹œ μ£Όμ˜ν•  점
νŠΈλžœμž­μ…˜μ΄ λ°μ΄ν„°λ² μ΄μŠ€μ˜ 컀λ„₯μ…˜μ„ 였래 μ μœ ν•˜λ„λ‘ ν•˜μ§€ μ•ŠκΈ° μœ„ν•΄ νŠΈλžœμž­μ…˜μ˜ λ²”μœ„λ₯Ό μ΅œμ†Œν™”ν•˜μ—¬ κΌ­ ν•„μš”ν•œ μ½”λ“œμ—λ§Œ μ μš©ν•˜λŠ” 것이 μ’‹λ‹€.

 

 

⭐️ 참고

728x90