Post

ACID

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

νŠΈλžœμž­μ…˜(Transaction)μ΄λž€, λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒνƒœλ₯Ό λ³€ν™”μ‹œν‚€κΈ° ν•΄μ„œ μˆ˜ν–‰ν•˜λŠ” μž‘μ—…μ˜ λ‹¨μœ„

λ˜λŠ” ν•œκΊΌλ²ˆμ— λͺ¨λ‘ μˆ˜ν–‰λ˜μ–΄μ•Ό ν•  일련의 연산듀을 의미 ν•©λ‹ˆλ‹€.

μ§ˆμ˜μ–΄(SQL)λ₯Ό μ΄μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ ‘κ·Ό ν•˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€.

λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒνƒœλ₯Ό λ³€κ²½μ‹œν‚¨λ‹€λŠ” μ΄μ•ΌκΈ°λŠ” SELECT, UPDATE, INSERT, DELETE 와 같은 행동을 λœ»ν•©λ‹ˆλ‹€.

ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ€ Commit (μ €μž₯) λ˜κ±°λ‚˜ Rollback (철회)될 수 μžˆμŠ΅λ‹ˆλ‹€.

νŠΈλžœμž­μ…˜μ€ ACID 원칙을 λ”°λ¦…λ‹ˆλ‹€

🧐 ACIDλž€?

image

1. μ›μžμ„±(Atomicity):

νŠΈλžœμž­μ…˜μ˜ λͺ¨λ“  연산은 전체가 μ„±κ³΅ν•˜κ±°λ‚˜ μ „ν˜€ μ‹€ν–‰λ˜μ§€ μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€.

쀑간 λ‹¨κ³„μ˜ μ‹€νŒ¨κ°€ λ°œμƒν•˜λ©΄ 이전 μƒνƒœλ‘œ λ‘€λ°±λ©λ‹ˆλ‹€.

2. 일관성(Consistency):

νŠΈλžœμž­μ…˜μ€ λ°μ΄ν„°λ² μ΄μŠ€μ˜ 무결성 κ·œμΉ™μ„ μ€€μˆ˜ν•˜μ—¬ μΌκ΄€λœ μƒνƒœλ₯Ό μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰ μ „κ³Ό μ‹€ν–‰ 후에도 일관성이 μœ μ§€λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

3. 독립성(Isolation):

μ—¬λŸ¬ 개의 νŠΈλžœμž­μ…˜μ΄ λ™μ‹œμ— 싀행될 λ•Œ,

각 νŠΈλžœμž­μ…˜μ€ λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ—κ²Œ 영ν–₯을 μ£Όμ§€ μ•Šκ³  λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ˜ μ—°μ‚° κ²°κ³Όλ₯Ό λ³Ό 수 μ—†μœΌλ©°, 쀑간 μƒνƒœλ₯Ό μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

4. 지속성(Durability):

νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μ™„λ£Œλ˜λ©΄, ν•΄λ‹Ή λ³€κ²½ λ‚΄μš©μ€ 영ꡬ적으둜 μ €μž₯λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

μ‹œμŠ€ν…œ μž₯μ• λ‚˜ 쀑단이 λ°œμƒν•˜λ”λΌλ„ λ°μ΄ν„°μ˜ 지속성을 보μž₯ν•΄μ•Ό ν•©λ‹ˆλ‹€.

🧐Commit, Rollback?

1. Commit

ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ λλ‚˜μ„œ λ°μ΄ν„°λ² μ΄μŠ€κ°€ μΌκ΄€μ„±μžˆλŠ” μƒνƒœμ— μžˆμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€.

2.Rollback νŠΈλžœμž­μ…˜μ˜ μ›μžμ„±μ΄ 깨질 λ•Œ, 즉 ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜ μ²˜λ¦¬κ°€ λΉ„μ •μƒμ μœΌλ‘œ μ’…λ£Œ λ˜μ—ˆμ„ λ•Œμ˜ μƒνƒœλ₯Ό λœ»ν•©λ‹ˆλ‹€.

Rollback 이 이뀄진닀면 νŠΈλžœμž­μ…˜μ„ λ‹€μ‹œ μ‹€ν–‰ν•˜κ±°λ‚˜ λΆ€λΆ„μ μœΌλ‘œ λ³€κ²½λœ κ²°κ³Όλ₯Ό μ·¨μ†Œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

This post is licensed under CC BY 4.0 by the author.