[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ํŠธ๋žœ์žญ์…˜ ๊ณ ๋ฆฝ ์ˆ˜์ค€(Transaction Isolation Level)

๐Ÿงช Computer Science/Database

์˜ค์†์ฝ๊ธฐ(Dirty Read)

  • ์ฝ๊ธฐ ์ž‘์—…์„ ํ•˜๋Š” ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ์ž‘์—…์„ ํ•˜๋Š” ํŠธ๋žœ์žญ์…• B์˜ ์ค‘๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ
  • ์ž‘์—…์ค‘์ธ ํŠธ๋žœ์žญ์…˜ B๊ฐ€ ์ž‘์—…์„ Rollbackํ•œ ๊ฒฝ์šฐ ํŠธ๋žœ์žญ์…˜ A๋Š” ๋ฌดํšจ๊ฐ€ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฒŒ ๋˜๊ณ  ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•œ๋‹ค.

๋ฐ˜๋ณต๋ถˆ๊ฐ€๋Šฅ ์ฝ๊ธฐ(Non-repeatable Read)

  • ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ํŠธ๋žœ์žญ์…˜ B๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ณ (Update) ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ
  • ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ์ฝ๊ธฐ ์ž‘์—…์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ฐ˜๋ณตํ•  ๊ฒฝ์šฐ ์ด์ „์˜ ๊ฒฐ๊ณผ์™€ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š” ํ˜„์ƒ

์œ ๋ น๋ฐ์ดํ„ฐ ์ฝ๊ธฐ(Phantom Read)

  • ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ํŠธ๋žœ์žญ์…˜ B๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ณ (Insert) ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ
  • ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ์ฝ๊ธฐ ์ž‘์—…์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ฐ˜๋ณตํ•  ๊ฒฝ์šฐ ์ด์ „์— ์—†๋˜ ๋ฐ์ดํ„ฐ(์œ ๋ น๋ฐ์ดํ„ฐ)๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ํ˜„์ƒ

ํŠธ๋žœ์žญ์…˜ ๊ณ ๋ฆฝ ์ˆ˜์ค€ ๋ช…๋ น์–ด(Trasaction Isolation Level Instruction)

DBMS๊ฐ€ ํŠธ๋žœ์žญ์…˜์„ ๋™์‹œ์— ์‹คํ–‰์‹œํ‚ค๋ฉด์„œ ๋ฝ๋ณด๋‹ค ์ข€ ๋” ์™„ํ™”๋œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณตํ•˜๋Š” ๋ช…๋ น์–ด

  1. READ UNCOMMITTED
    • ๊ณ ๋ฆฝ ์ˆ˜์ค€์ด Level 0์ธ ๊ฐ€์žฅ ๋‚ฎ์€ ๋ช…๋ น์–ด๋กœ, ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ์— ์•„๋ฌด๋Ÿฐ ๊ณต์œ ๋ฝ๋„ ๊ฑธ์ง€ ์•Š๋Š”๋‹ค.
    • ์‚ฌ์šฉ์ž๊ฐ€ A๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ B๋ผ๋Š” ๋ฐ์ดํ„ฐ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋Š” ์•„์ง ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ(์˜ค์† ๋ฐ์ดํ„ฐ) B๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.
  2. READ COMMITTED
    • ๊ณ ๋ฆฝ ์ˆ˜์ค€์ด Level 1์ธ ๋ช…๋ น์–ด๋กœ, ์˜ค์† ํŽ˜์ด์ง€์˜ ์ฐธ์กฐ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋™์•ˆ ๊ณต์œ ๋ฝ์„ ๊ฑธ์ง€๋งŒ ํŠธ๋žœ์žญ์…˜์ด ๋๋‚˜๊ธฐ ์ „์—๋ผ๋„ ํ•ด์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ์‚ฌ์šฉ์ž๊ฐ€ A๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ B๋ผ๋Š” ๋ฐ์ดํ„ฐ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.
  3. REPEATABLE READ
    • ๊ณ ๋ฆฝ ์ˆ˜์ค€์ด Level 2์ธ ๋ช…๋ น์–ด๋กœ, ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ์— ์„ค์ •๋œ ๊ณต์œ ๋ฝ๊ณผ ๋ฐฐํƒ€๋ฝ์„ ํŠธ๋žœ์žญ์…˜์ด ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์œ ์ง€ํ•˜์—ฌ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ (Update)ํ•  ์ˆ˜ ์—†๋„๋ก ํ•œ๋‹ค.
    • ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ SELECT๋ฌธ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ๊ณต์œ ๋ฝ์ด ๊ฑธ๋ฆฌ๋ฏ€๋กœ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋Š” ๊ทธ ์˜์—ญ์— ํ•ด๋‹น๋˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ, ํ•ด๋‹น ์˜์—ญ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ฒ”์œ„์— ๋Œ€ํ•œ Insert๋Š” ๊ฐ€๋Šฅํ•˜๋‹ค.
  4. SERIALIZABLE
    • ๊ณ ๋ฆฝ ์ˆ˜์ค€์ด Level3์ธ ๊ฐ€์žฅ ๋†’์€ ๋ช…๋ น์–ด๋กœ, ์‹คํ–‰ ์ค‘์ธ ํŠธ๋žœ์žญ์…˜์€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์œผ๋กœ๋ถ€ํ„ฐ ์™„๋ฒฝํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•œ๋‹ค.