[Database] Transaction의 ACID

GoghΒ·2023λ…„ 1μ›” 2일
0

Database

λͺ©λ‘ 보기
1/3
post-thumbnail

🎯 λͺ©ν‘œ :Β  Transaction의 ACID νŠΉμ„±μ„ 이해

πŸ“’ νŠΈλžœμž­μ…˜(Transaction)

  • ν•œ λ‹¨μœ„λ‘œ μ·¨κΈ‰ λ˜λŠ” λͺ¨λ“  μž‘μ—….
  • νŠΈλžœμž­μ…˜μ˜ μž‘μ—… κ²°κ³ΌλŠ” 성곡 λ˜λŠ” μ‹€νŒ¨λ§Œ μžˆλ‹€.
  • μ—¬λŸ¬ μž‘μ—…μ΄ μžˆλŠ” ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ—μ„œ ν•˜λ‚˜μ˜ μž‘μ—…λ§Œ μ‹€νŒ¨ ν•˜λ”λΌλ„ ν•΄λ‹Ή νŠΈλžœμž­μ…˜μ€ μ‹€νŒ¨λ‹€.
  • 예λ₯Ό λ“€μ–΄ κ³„μ’Œ Aμ—μ„œ κ³„μ’Œ B둜 이체λ₯Ό ν•˜λŠ” 과정이 μžˆλ‹€κ³  κ°€μ •ν•˜λ©΄,
    Aμ—μ„œ μΈμΆœλ˜μ–΄ B둜 μž…κΈˆλ˜λŠ” μž‘μ—…λ“€μ΄ ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μœΌλ‘œ 볼수 있고 인좜만 되고 B둜 μž…κΈˆ λ˜μ§€ μ•Šμ•˜λ‹€λ©΄,Β  이 νŠΈλžœμž­μ…˜μ€ μ‹€νŒ¨ν•œ κ²ƒμœΌλ‘œ 보면 λœλ‹€.
  • μ˜ˆμ‹œμ—μ„œ λ§Œμ•½, μ‹€μ œλ‘œ Aμ—μ„œ 인좜만 되고 B둜 μž…κΈˆμ΄ λ˜μ§€ μ•Šμ€ μ±„λ‘œ νŠΈλžœμž­μ…˜μ΄ μ’…λ£Œλ˜μ–΄ 버렸닀면, Aμ—μ„œμ˜ 인좜 μž‘μ—…μ€ 의미 μ—†λŠ” μž‘μ—…μ΄ 되며, νŠΈλžœμž­μ…˜ κ΄€μ μ—μ„œ μ•„μ£Ό μœ„ν—˜ν•˜κ³  μ•ˆμ •μ„±μ΄ 보μž₯λ˜μ§€ λͺ»ν•œ μž‘μ—…μ΄ λœλ‹€.
  • μ΄λŸ¬ν•œ μ•ˆμ •μ„±μ„ 보μž₯ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ νŠΉμ„±μ„ ACID라고 ν•œλ‹€.

πŸ“’ ACID

ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ˜ μ•ˆμ •μ„±μ„ 보μž₯ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ νŠΉμ„±μ„ ACID라고 ν–ˆλ‹€.

ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ΄ μ•ˆμ •μ„±μ„ 보μž₯ν•˜κΈ° μœ„ν•΄μ„œλŠ”,Β νŠΈλžœμž­μ…˜μ—μ„œ λͺ¨λ“  μž‘μ—…μ΄ μ„±κ³΅ν•˜λ©΄ νŠΈλžœμž­μ…˜μ€ μ •μƒμ μœΌλ‘œ μ„±κ³΅ν•œ 것이며, ν•˜λ‚˜μ˜ μž‘μ—…μ΄λΌλ„ μ‹€νŒ¨ν•˜λ©΄ λͺ¨λ“  μž‘μ—…μ€ μ‹€νŒ¨λœ 것과 κ°™μ•„μ•Όν•˜κ³ , λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ— 영ν–₯이 μ „ν˜€ μ—†μ–΄μ•Ό 되며, μ‹€νŒ¨μ™€ μ„±κ³΅ν•œ νŠΈλžœμž­μ…˜μ˜ 기둝은 영ꡬ적으둜 λ‚¨μ•„μ•Όν•œλ‹€.

μœ„ λ¬Έλ‹¨μ—μ„œ ACID의 λͺ¨λ“  νŠΉμ„±μ„ μ„€λͺ…ν•˜κ³  μžˆλ‹€.

πŸ“Œ Atomicty(μ›μžμ„±)

  • μœ„ μ˜ˆμ‹œλ₯Ό λ“€μ–΄ λΉ„μœ ν•˜λ©΄, κ³„μ’Œ Aμ—μ„œ 인좜된 κΈˆμ•‘μ΄ κ³„μ’Œ B에 반영 λ˜μ–΄μ•Όλ§Œ ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ΄ μ™„λ£Œλœ κ²ƒμœΌλ‘œ λ³Όμˆ˜μžˆλ‹€.
  • Aμ—μ„œ 인좜 μž‘μ—…λ§Œ μˆ˜ν–‰λ˜κ³  Bμ—μ„œ μž…κΈˆμ΄ λ˜λŠ” μž‘μ—…μ΄ 이루어 지지 μ•Šμ•˜λ‹€λ©΄, 이 인좜과 μž…κΈˆλ˜λŠ” ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ€ μ‹€νŒ¨ ν•œκ²ƒμœΌλ‘œ κ°„μ£Όλ˜μ–΄ νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰ 되기 μ „ κ³„μ’Œ A,B의 데이터λ₯Ό 보호 ν•΄μ•Ό ν•œλ‹€.
  • ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ—μ„œ μ—¬λŸ¬κ°œμ˜ μž‘μ—…μ€‘ ν•˜λ‚˜λ§Œ μ‹€νŒ¨ν•΄λ„ ν•΄λ‹Ή νŠΈλžœμž­μ…˜μ—μ„œ 전체 μž‘μ—…μ„ μ‹€νŒ¨ν•œκ²ƒκ³Ό 같이 κ°„μ£Ό ν•΄μ•Ό ν•˜λŠ”κ²ƒμ„ μ›μžμ„±μ΄λΌ ν•œλ‹€.

πŸ“Œ Consistency(일관성)

  • ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰λœ 이전과 이후 λ°μ΄ν„°μ˜ μƒνƒœλŠ” μœ νš¨ν•΄μ•Όν•œλ‹€.
  • 즉, νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰λ˜κΈ° μ΄μ „μ˜ 데이터가 μ–΄λ– ν•œ μ œμ•½μ΄λ‚˜ κ·œμΉ™μ„ λ§Œμ‘±ν•˜κ³  μžˆλŠ” μƒνƒœμ˜€λ‹€λ©΄, νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰ 된 이후에도 ν•΄λ‹Ή 데이터가 μ œμ•½μ΄λ‚˜ κ·œμΉ™μ„ λ§Œμ‘±ν•˜κ³  μžˆλŠ” μƒνƒœκ°€ λ˜μ–΄μ•Ό ν•œλ‹€λŠ” 것이닀.
  • κ°€μž…μ„ ν•œ νšŒμ›μ€ 아이디와 이메일을 ν•„μˆ˜λ‘œ μž…λ ₯λ˜μ–΄ μžˆμ–΄μ•Ό ν•œλ‹€λŠ” κ·œμΉ™μ΄ μžˆλ‹€κ³  κ°€μ •ν–ˆμ„λ•Œ,
  • νšŒμ›μ˜ 아이디λ₯Ό μ‚­μ œν•˜λŠ” μž‘μ—…, 이메일이 μ—†κ³  μ•„μ΄λ””λ§Œ 가진 νšŒμ›μ„ κ°€μž… μ‹œμΌœμ£ΌλŠ” μž‘μ—…μ€ 일관성이 μ—†λŠ” μž‘μ—…μ΄λΌ ν• μˆ˜ μžˆλ‹€.

πŸ“Œ Isolation(격리성)

  • λͺ¨λ“  νŠΈλžœμž­μ…˜μ€ μ„œλ‘œ λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ— μ „ν˜€ 영ν–₯이 μ—†μ–΄μ•Ό ν•œλ‹€.
  • μ˜ˆμ‹œλ₯Ό λ“€λ©΄, κ³„μ’Œ Aμ—μ„œ λ™μ‹œμ— μΈμΆœλ˜μ–΄ κ³„μ’Œ B, κ³„μ’Œ C둜 μž…κΈˆ ν•˜λŠ” μž‘μ—…λ“€μ΄ μžˆλ‹€κ³  κ°€μ •ν•œλ‹€.
  • μ—¬κΈ°μ„œ Aμ—μ„œ B둜 인좜과 μž…κΈˆμ΄ λ˜λŠ” μž‘μ—…λ“€μ„ ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜,
  • Aμ—μ„œ C둜 인좜과 μž…κΈˆμ΄ λ˜λŠ” μž‘μ—…λ“€μ„ 또 λ‹€λ₯Έ ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μœΌλ‘œ λ΄μ•Όν•œλ‹€.
  • 즉, κ³„μ’Œ Aμ—λŠ” 10,000원이 μžˆμ—ˆκ³  6μ²œμ›μ„ 각각 μ†‘κΈˆ ν•œλ‹€κ³  μƒκ°ν•˜λ©΄, Aμ—μ„œ B둜 λ¨Όμ € 인좜과 μž…κΈˆμ΄ 이루어지고 κ·Έ λ‹€μŒ, Aμ—μ„œ C둜 인좜과 μž…κΈˆμ΄ μ΄λ£¨μ–΄μ§€λŠ” κ³Όμ •μœΌλ‘œ 봐야 되며, 첫번째 μΈμΆœμ„ ν•˜κ²Œ 되면 λ‘λ²ˆμ§Έ μΈμΆœμ€ μ‹€ν–‰ν• μˆ˜ μ—†λŠ” μž‘μ—…μ΄ λ˜λŠ” 것이닀.
  • λ™μ‹œμ— νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰ λ˜μ—ˆλ‹€κ³  ν•˜λ”λΌλ„ 각 νŠΈλžœμž­μ…˜μ„ μ—°μ†μ μœΌλ‘œ μ‹€ν–‰ν•˜λŠ” 것과 같은 κ²°κ³Όκ°€ λ‚˜μ™€μ•Ό ν•˜λ©°, νŠΈλžœμž­μ…˜μ΄ λ§Œλ“  결과만 데이터에 반영될 뿐 λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ˜ μž‘μ—… λ‚΄μš©μ„ μ•Œν•„μš”κ°€ μ—†λŠ” 것이닀.
  • μ΄λŸ¬ν•œ νŠΉμ„±μ„ νŠΈλžœμž­μ…˜μ˜ 격리성이라 ν•œλ‹€.

πŸ“Œ Durability(지속성)

  • ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μ‹€ν–‰ λ˜μ—ˆκ±°λ‚˜, μ‹€νŒ¨ ν•œ 경우 λͺ¨λ“  κ²½μš°μ— λŒ€ν•œ λ‘œκ·Έκ°€ λ‚¨μ•„μ•Όν•˜λ©° 영ꡬ적으둜 κΈ°λ‘λ˜μ–΄μ•Ό ν•œλ‹€.
  • κ³„μ’Œμ΄μ²΄κ°€ μ„±κ³΅μ μœΌλ‘œ μ‹€ν–‰ 이후, 은행 μ‹œμŠ€ν…œμ˜ 였λ₯˜λ‘œ λ‹€μš΄ λ˜λ”λΌλ„ κ³„μ’Œμ΄μ²΄ 내역은 기둝으둜 남아 μ‹œμŠ€ν…œ 볡ꡬ 이후에도 κ³„μ’Œμ΄μ²΄ 내역은 반영 λ˜μ–΄μ•Όν•œλ‹€. λ°˜λŒ€λ‘œ κ³„μ’Œμ΄μ²΄ 쀑 였λ₯˜κ°€ λ°œμƒν•˜μ—¬ 이체에 μ‹€νŒ¨ ν–ˆμ„λ•Œ 기둝으둜 남아 볡ꡬ 이후에 κ³„μ’Œμ΄μ²΄κ°€ μ‹€νŒ¨ν•œ 것과 같은 λ‚΄μ—­μœΌλ‘œ λ°˜μ˜λ˜μ–΄μ•Ό ν•œλ‹€.
  • μ΄λŸ¬ν•œ νŠΉμ„±μ„ νŠΈλžœμž­μ…˜μ˜ 지속성이라 ν•œλ‹€.
profile
컴퓨터가 할일은 컴퓨터가

0개의 λŒ“κΈ€