λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ”­Computer ScienceπŸ”­/λ°μ΄ν„°λ² μ΄μŠ€

[DB] νŠΈλž™μž­μ…˜μ΄λž€?

νŠΈλžœμž­μ…˜μ΄λž€?

λ°μ΄ν„°λ² μ΄μŠ€ μƒνƒœλ₯Ό λ³€ν™˜μ‹œν‚€λŠ” ν•˜λ‚˜μ˜ 논리적인 μž‘μ—… λ‹¨μœ„μ΄λ©° λ°˜λ“œμ‹œ 닀같이 μˆ˜ν–‰λ˜μ–΄μ•Όλ§Œ ν•˜λŠ” μ—°μ‚° 집합

 

κ°€μž₯ λŒ€ν‘œμ μΈ μ˜ˆμ‹œλ‘œ κ³„μ’Œ 이체가 μžˆλ‹€.

 

  1. A κ³„μ’Œ μž”μ•‘ 확인
  2. A -> B둜 κ³„μ’Œ 이체 (A μž”μ•‘μ—μ„œ μ΄μ²΄ν•œ κΈˆμ•‘λ§ŒνΌ λΉΌκΈ°)
  3. B κ³„μ’Œ μž”μ•‘ 확인
  4. B <- A둜 μž…κΈˆ (B κ³„μ’Œμ— μ΄μ²΄ν•œ κΈˆμ•‘ λ”ν•˜κΈ°)

이 4가지 μž‘μ—…μ€ ν•˜λ‚˜λΌλ„ μ‹€νŒ¨μ—†μ΄ μ΄λ€„μ Έμ•Όλ§Œ νŠΈλžœμž­μ…˜μ΄ μ™„λ£Œλ  수 μžˆλ‹€.

 

**Commit**

  • νŠΈλžœμž­μ…˜ μž‘μ—…μ„ μ„±κ³΅μ μœΌλ‘œ 마치고 λ°μ΄ν„°λ² μ΄μŠ€κ°€ μΌκ΄€λœ μƒνƒœμ— μžˆλ‹€λ©΄ 이λ₯Ό νŠΈλžœμž­μ…˜ κ΄€λ¦¬μžμ—κ²Œ μ•Œλ¦¬λŠ” μž‘μ—…

 

 

**Rollback**

  • νŠΈλžœμž­μ…˜ μˆ˜ν–‰ 도쀑 μž‘μ—… 였λ₯˜ λ°œμƒν•˜κ±°λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€ 일관성이 파괴되면 μ„±κ³΅ν•œ μž‘μ—…μ„ 포함해 λͺ¨λ“  μž‘μ—…μ„ μ·¨μ†Œν•œλ‹€.

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

https://itwiki.kr/w/%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98

 

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

νŠΈλžœμž­μ…˜μ˜ μ„±μ§ˆ

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

  • νŠΈλžœμž­μ…˜ 연산은 λ°μ΄ν„°λ² μ΄μŠ€μ— λͺ¨λ‘ λ°˜μ˜λ˜κ±°λ‚˜ μ „ν˜€ λ°˜μ˜λ˜μ§€ μ•Šκ±°λ‚˜ λ‘˜ 쀑 ν•˜λ‚˜μ΄λ‹€. (All or Nothing)
  • νŠΈλžœμž­μ…˜ μ—°μ‚°μ˜ 일뢀가 였λ₯˜κ°€ λ°œμƒν•˜λ©΄ μ„±κ³΅ν•œ 연산을 포함해 νŠΈλžœμž­μ…˜ μ „λΆ€λ₯Ό μ·¨μ†Œν•œλ‹€.

Consistency(일관성)

  • νŠΈλžœμž­μ…˜ μˆ˜ν–‰ν•˜κ³  λ‚˜λ©΄ ν•˜λ‚˜μ˜ `μΌκ΄€λœ μƒνƒœ`μ—μ„œ λ‹€λ₯Έ `μΌκ΄€λœ μƒνƒœ`둜 λ°”λ€Œμ–΄μ•Ό ν•œλ‹€.
    • μΌκ΄€λœ μƒνƒœ(Correct State) : λ„λ©”μΈμ˜ μœ νš¨λ²”μœ„, 무결성 μ œμ•½μ‘°κ±΄λ“±μ˜ μ œμ•½μ‘°κ±΄μ„ μœ„λ°°ν•˜μ§€ μ•ŠλŠ” 정상적인 ν˜•νƒœ
  • νŠΈλžœμž­μ…˜μ„ μˆ˜ν–‰ν•˜λ”λΌλ„ μ„€μ •λœ μ œμ•½μ‘°κ±΄μ„ μœ„λ°°ν•˜μ§€ μ•ŠλŠ” ν˜•νƒœκ°€ λ˜μ–΄μ•Ό ν•œλ‹€!
    • ex) μž”μ•‘μœΌλ‘œ μ–‘μˆ˜λ§Œ κ°€λŠ₯ν•œ 쑰건이 μžˆλ‹€λ©΄ νŠΈλžœμž­μ…˜ μ—°μ‚° ν›„ μŒμˆ˜κ°€ λ‚˜μ˜€κ²Œ λœλ‹€λ©΄ 일관성에 μœ„λ°°λœλ‹€.
    • νŠΈλžœμž­μ…˜μ˜ 일관성은 νŠΈλžœμž­μ…˜ μ‹œμž‘ μ „κ³Ό ν›„μ˜ μƒνƒœλ§Œ 체크할 뿐 μ€‘κ°„μ˜ 일관성은 μ²΄ν¬ν•˜μ§€ μ•ŠλŠ”λ‹€.

Isolation(독립성, 격리성)

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

Durabilitiy(μ˜μ†μ„±, 지속성)

  • Commit(νŠΈλžœμž­μ…˜ μ™„λ£Œ)된 νŠΈλžœμž­μ…˜μ€ 영ꡬ적으둜 λ³΄μ‘΄λ˜μ–΄μ•Όλ§Œ ν•œλ‹€.
    • ex) Commit 된 μž‘μ—… κ²°κ³ΌλŠ” 정전이 μΌμ–΄λ‚˜λ„ λ³΄μ‘΄λœλ‹€.

 


Reference