λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ‘©πŸ»‍πŸ’» CS/Database

[DB/1-1. Transaction(νŠΈλžœμž­μ…˜)]

by kekeyo 2024. 3. 18.
728x90

1️⃣ Transaction Concept

Transaction

  • transaction : ν•˜λ‚˜μ˜ 논리적 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ—°μ‚°μ˜ μˆœμ„œ
    • μˆ˜ν–‰ν•˜κ³ μž ν•˜λŠ” μ—°μ‚°μ˜ 논리적 λ‹¨μœ„
    • query의 μˆœμ„œλ₯Ό κ°€μ§€λŠ” μ§‘ν•©

 

Transaction Concept

  • A transaction is a unit of database program that accesses and possibly updates various data items
    • DB에 μ μš©λ˜λŠ” λͺ¨λ“  μ—°μ‚° → Read / Write μ—°μ‚°μœΌλ‘œ λ‹¨μˆœν™”ν•  수 있음
    • νŠΈλžœμž­μ…˜ : μ‘μš© ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œ DB에 λŒ€ν•΄ read/write 연산이 λ‚˜μ˜€λŠ” ν”„λ‘œκ·Έλž¨μ˜ 일뢀
  • Aκ³„μ’Œμ—μ„œ Bκ³„μ’Œλ‘œ $50을 μ†‘κΈˆν•˜λŠ” λ‹¨μˆœν™”λœ νŠΈλžœμž­μ…˜ 예제
read(A)
A = A - 50
write(A)
read(B)
B = B + 50
write(B)

 

Transaction Management

νŠΈλžœμž­μ…˜κ³Ό κ΄€λ ¨λœ 두 κ°€μ§€ μ£Όμš” 이슈?

  1. Hardware/software/transaction failures
    • 이런 λͺ¨λ“  였λ₯˜ 톡칭 → system failure (λ°œμƒν•˜κ²Œ 되면 inconsistent해짐)
  2. Concurrent execution of multiple transactions (→ μœ„ν•΄ concurrency control ν•„μš”)

.. 이것듀을 μ–΄λ–»κ²Œ ν•΄κ²° 및 λ°©μ§€ν•  것인가?λ₯Ό λ°°μš°λŠ” 게 μ£Ό λ‚΄μš©μž„.

 

Transaction’s ACID properties

⇒ λ°μ΄ν„°λ² μ΄μŠ€ 무결성을 μœ μ§€ν•˜κΈ° μœ„ν•΄ ACID μ„±μ§ˆμ„ κ°€μ Έμ•Ό 함.

  • Atomicity (μ›μžμ„±) : all or nothing
  • Consistency (μΌμΉ˜μ„±) : Execution of a transaction in isoltion preserves the consistency of the database
  • Isolation (고립성) : λ‹€μˆ˜μ˜ νŠΈλžœμž­μ…˜μ΄ μˆ˜ν–‰λ˜κ³  μžˆμ–΄λ„ 본인 νŠΈλžœμž­μ…˜λ§Œ ν™€λ‘œ μˆ˜ν–‰λœλ‹€λŠ” λŠλ‚Œ
  • Durability (지속성) : νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μˆ˜ν–‰λœ 후에 μ‹œμŠ€ν…œ μž₯μ• κ°€ λ°œμƒν•˜μ—¬λ„ DB μƒνƒœμ— λ°˜μ˜λ˜μ–΄μ•Ό 함

 

Transaction State

  • Active (μˆ˜ν–‰) : The initial state (while it is executing)
  • Partially committed (λΆ€λΆ„ μ™„λ£Œ) : After the final statement has been executed
    • μ™œ partially committed? : logλ₯Ό μ°λŠ” λ“± ν•΄μ•Όν•  일이 λ‚΄λΆ€μ μœΌλ‘œ λ‚¨μ•„μžˆμŒ
  • Aborted (철회) : failure / transaction 쀑단 / rollback μƒνƒœμ— λ°œμƒ
  • Committed (μ™„λ£Œ) : After successful completion

 

Concurrent Executions

Concurrent Execution (λ™μ‹œ μˆ˜ν–‰) : λ‹€μˆ˜κ°œμ˜ νŠΈλžœμž­μ…˜μ„ λ™μ‹œμ— μˆ˜ν–‰ν•˜λŠ” 것이 ν—ˆμš©λ¨

λ™μ‹œ μˆ˜ν–‰μ˜ μž₯점

  • Increased processor and disk utilization, leading to better transaction throughput
  • Reduced average response time for transactions: short transactions need not wait behind lone ones

Concurrency Control : λ‹€μˆ˜μ˜ νŠΈλžœμž­μ…˜μ„ λ™μ‹œμ μœΌλ‘œ μˆ˜ν–‰ μ‹œ λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ—μ„œ 이λ₯Ό μ œμ–΄ν•˜λŠ” 기술

⇒ isolation을 achieveν•  수 있음

 

728x90