DB

[DB] Transaction(νŠΈλžœμž­μ…˜)μ΄λž€?

DAHLIA CHOI 2023. 10. 30. 09:49

πŸ” νŠΈλžœμž­μ…˜μ΄λž€?

νŠΈλžœμž­μ…˜μ€ ACID(μ›μžμ„±, 일관성, 격리 및 지속성) 속성이 μžˆλŠ” μž‘μ—… 그룹이닀.

즉, ν•΄λ‹Ή 속성을 κ°€μ§€λ©° λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒνƒœλ₯Ό λ³€ν™”μ‹œν‚€κΈ° μœ„ν•΄μ„œ μˆ˜ν–‰ν•˜λŠ” μž‘μ—…μ˜ λ‹¨μœ„λ₯Ό λ§ν•œλ‹€.

 

보톡 μ•„λž˜μ˜ μ§ˆμ˜μ–΄λ₯Ό ν†΅ν•΄μ„œ μž‘μ—…μ΄ 이루어지며 ACID κ·œμΉ™μ„ μ§€ν‚€κ²Œ λœλ‹€.

  • SELECT
  • INSERT
  • DELETE
  • UPDATE

 

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

μ›μžμ„± (Atomicity)

μ›μžμ„±μ€ νŠΈλžœμž­μ…˜μ΄ λ°μ΄ν„°λ² μ΄μŠ€μ— λͺ¨λ‘ λ°˜μ˜λ˜λ˜κ°€, μ•„λ‹ˆλ©΄ μ „ν˜€ λ°˜μ˜λ˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€λŠ” 것이닀. 

 

은행 μ†‘κΈˆμ„ 예둜 λ“€μ–΄λ³΄μž.

은행 μ†‘κΈˆμ€ ν•œ κ³„μ’Œμ™€ λ‹€λ₯Έ κ³„μ’Œμ— λŒ€ν•œ 행동이 μ›μžμ„±μ˜ 집합이닀. 

Aκ³„μ’Œμ—μ„œ Bκ³„μ’Œλ‘œ λˆμ„ μ΄μ²΄ν–ˆλŠ”λ° 쀑간에 였λ₯˜κ°€ λ‚˜μ„œ Aκ³„μ’Œμ—λŠ” 돈이 λΉ μ Έλ‚˜κ°”μ§€λ§Œ Bκ³„μ’Œμ—λŠ” 돈이 λ“€μ–΄μ˜€μ§€ μ•Šμ„ μˆ˜κ°€ μžˆλ‹€. 이런 문제λ₯Ό λ°©μ§€ν•˜μ§€ μœ„ν•΄μ„œ μ›μžμ„±μ΄λΌλŠ” κ°œλ…μ΄ μ‚¬μš©λ˜λ©° 쀑간에 였λ₯˜λ‚˜ λ‚¬μœΌλ©΄ Aκ³„μ’Œμ˜ μΆœκΈˆμ„ λ‹€μ‹œ 볡ꡬ μ‹œν‚€λŠ” λ‘€λ°±(Rollback)μž‘μ—…μ΄ μ‹€ν–‰λœλ‹€.

 

 

일관성 (Consistency)

일관성은 νŠΈλžœμž­μ…˜μ˜ μž‘μ—… 처리 κ²°κ³Όκ°€ 항상 일관성이 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 것이닀.

 

νŠΈλžœμž­μ…˜μ΄ μ§„ν–‰λ˜λŠ” λ™μ•ˆ λ°μ΄ν„°λ² μ΄μŠ€κ°€ λ³€κ²½λ˜λ”λΌλ„ λ³€κ²½λœ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ°Έμ‘°ν•˜λŠ” 것이 μ•„λ‹ˆλΌ μ²˜μŒμ— νŠΈλžœμž­μ…˜μ„ μ§„ν–‰ν•  λ•Œ μ°Έμ‘°ν•œ λ°μ΄ν„°λ² μ΄μŠ€λ‘œ μ§„ν–‰λœλ‹€. 

즉, 각 μ‚¬μš©μžλŠ” 항상 일관성 μžˆλŠ” 데이터λ₯Ό λ³Ό 수 μžˆλ‹€.

 

 

독립성 (Isolation)

독립성은 λ‘˜ μ΄μƒμ˜ νŠΈλžœμž­μ…˜μ΄ λ™μ‹œμ— μ‹€ν–‰λ˜κ³  μžˆλŠ” 경우 μ–΄λ–€ ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ΄λΌλ„ λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ˜ 연산에 끼어듀 수 μ—†λ‹€λŠ” 것이닀. 

즉, μ—¬λŸ¬ μ‚¬μš©μžκ°€ 같은 μ‹œκ°„μ— 같은 데이터λ₯Ό μ ‘κ·Ό ν–ˆμ„ λ•Œ μˆ˜ν–‰μ€‘μΈ νŠΈλžœμž­μ…˜μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ˜ μš”μ²­μ„ λ§‰μŒμœΌλ‘œμ¨ 데이터가 κΌ¬μ΄λŠ” ν˜„μƒμ„ 막아쀄 수 μžˆλ‹€. 

 

 

지속성 (Durability)

지속성은 μ»€λ°‹λœ 연산이 영ꡬ적으둜 지속됨을 보μž₯ν•˜λŠ” 것이닀. 

즉, μ‹œμŠ€ν…œ λ¬Έμ œλ“±μœΌλ‘œ 였λ₯˜κ°€ λ°œμƒν•˜λ”λΌλ„ νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μˆ˜ν–‰λœ 이후라면 데이터λ₯Ό 영ꡬ적으둜 보쑴할 수 μžˆλ‹€λŠ” 것을 λ§ν•œλ‹€.