Transaction

ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ํŠธ๋žœ์žญ์…˜(Transaction)์ด๋ž€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๋‹จ์œ„ ๋˜๋Š” ํ•œ๊บผ๋ฒˆ์— ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•  ์ผ๋ จ์˜ ์—ฐ์‚ฐ๋“ค์„ ์˜๋ฏธํ•œ๋‹ค.

  • ์‰ฝ๊ฒŒ ๋งํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๋‹จ์œ„๋ฅผ ๋งํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ฟผ๋ฆฌ์ด๋ฏ€๋กœ, ์ฆ‰ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฟผ๋ฆฌ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๋‹จ์œ„๋ฅผ ๋งํ•œ๋‹ค.

ํŠธ๋žœ์žญ์…˜ ํŠน์ง•

  • ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—์„œ ๋ณ‘ํ–‰ ์ œ์–ด ๋ฐ ํšŒ๋ณต ์ž‘์—… ์‹œ ์ฒ˜๋ฆฌ๋˜๋Š” ์ž‘์—…์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„์ด๋‹ค.

  • ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์„œ๋น„์Šค ์š”๊ตฌ ์‹œ ์‹œ์Šคํ…œ์ด ์‘๋‹ตํ•˜๊ธฐ ์œ„ํ•œ ์ƒํƒœ ๋ณ€ํ™˜ ๊ณผ์ •์˜ ์ž‘์—… ๋‹จ์œ„์ด๋‹ค.

  • ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์€ commit ๋˜๊ฑฐ๋‚˜ rollback ๋œ๋‹ค.

ํŠธ๋žœ์žญ์…˜์˜ 4๊ฐ€์ง€ ์›์น™(ACID)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

์›์ž์„ฑ(Atomicity)

  • ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ชจ๋‘ ๋ฐ˜์˜๋˜๋“ ์ง€ ์•„๋‹ˆ๋ฉด ์ „ํ˜€ ๋ฐ˜์˜๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.(All or Nothing)

  • ํŠธ๋žœ์žญ์…˜ ๋‚ด์˜ ๋ชจ๋“  ๋ช…๋ น์€ ๋ฐ˜๋“œ์‹œ ์™„๋ฒฝํžˆ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜๋ฉฐ, ๋ชจ๋‘๊ฐ€ ์™„๋ฒฝํžˆ ์ˆ˜ํ–‰๋˜์ง€ ์•Š๊ณ  ์–ด๋А ํ•˜๋‚˜๋ผ๋„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜ ์ „๋ถ€๊ฐ€ ์ทจ์‡ ๋˜์–ด์•ผ ํ•œ๋‹ค.

  • ์˜ˆ๋ฅผ ๋“ค์–ด ํŠธ๋žœ์žญ์…˜์„ ์ปค๋ฐ‹ํ–ˆ๋Š”๋ฐ, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋กค๋ฐฑํ•˜๋Š” ๊ฒฝ์šฐ ๊ทธ ์ดํ›„์— ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Œ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

์ผ๊ด€์„ฑ(Consistency)

  • ํŠธ๋žœ์žญ์…˜์ด ๊ทธ ์‹คํ–‰์„ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ•˜๋ฉด ์–ธ์ œ๋‚˜ ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

  • ์‹œ์Šคํ…œ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ณ ์ •์š”์†Œ๋Š” ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์ „๊ณผ ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์™„๋ฃŒ ํ›„์˜ ์ƒํƒœ๊ฐ€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.

๋…๋ฆฝ์„ฑ / ๊ฒฉ๋ฆฌ์„ฑ(Isolation)

  • ๋‘˜ ์ด์ƒ์˜ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ๋ณ‘ํ–‰ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ ์–ด๋А ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ์ค‘์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ์ด ๋ผ์–ด๋“ค ์ˆ˜ ์—†๋‹ค.

  • ์ˆ˜ํ–‰์ค‘์ธ ํŠธ๋žœ์žญ์…˜์€ ์™„์ „ํžˆ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋‹ค.

  • ๋ณต์ˆ˜์˜ ๋ณ‘๋ ฌ ํŠธ๋žœ์žญ์…˜์€ ์„œ๋กœ ๊ฒฉ๋ฆฌ๋˜์–ด ๋งˆ์น˜ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ž‘๋™๋˜์–ด์•ผ ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์ง€์†์„ฑ(Durability)

  • ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฐ๊ณผ๋Š” ์‹œ์Šคํ…œ์ด ๊ณ ์žฅ๋‚˜๋”๋ผ๋„ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋˜์–ด์•ผ ํ•œ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‹œ์Šคํ…œ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์›๋ž˜ ์ƒํƒœ๋กœ ๋ณต๊ตฌํ•˜๋Š” ํšŒ๋ณต ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผ ํ•จ์„ ๋œปํ•œ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ด๋ฅผ ์œ„ํ•ด ์ฒดํฌ์„ฌ, ์ €๋„๋ง, ๋กค๋ฐฑ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • ์ฒดํฌ์„ฌ

    • ์ค‘๋ณต ๊ฒ€์‚ฌ์˜ ํ•œ ํ˜•ํƒœ๋กœ, ์˜ค๋ฅ˜ ์ •์ •์„ ํ†ตํ•ด ์†ก์‹ ๋œ ์ž๋ฃŒ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณดํ˜ธํ•˜๋Š” ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•

  • ์ €๋„๋ง

    • ํŒŒ์ผ ์‹œ์Šคํ…œ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜(commit)ํ•˜๊ธฐ ์ „์— ๋กœ๊น…ํ•˜๋Š” ๊ฒƒ

    • ํŠธ๋žœ์žญ์…˜ ๋“ฑ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๋Š” ๊ฒƒ

ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€๊ณผ ๊ฐ ์ˆ˜์ค€์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ํฌ๊ฒŒ ๋„ค ๊ฐœ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE

  • ๋‚˜์—ดํ•œ ์ˆœ์„œ๋Œ€๋กœ ๋’ค๋กœ ๊ฐˆ์ˆ˜๋ก ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋†’์•„์ง€๋ฉฐ, ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์€ ๋‚ฎ์•„์ง„๋‹ค.

๊ฐ๊ฐ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ

  • READ UNCOMMITTED

    • Dirty Read

    • Non-Repeatable Read

    • Phantom Read

  • READ COMMITTED

    • Non-Repeatable Read

    • Phantom Read

  • REPEATABLE READ

    • Phantom Read

  • SERIALIZABLE

    • ๊ฐ€์žฅ ์—„๊ฒฉํ•œ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด์ง€๋งŒ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ๋„ˆ๋ฌด ๋‚ฎ์•„์„œ ์ž˜ ์“ฐ์ด์ง€ ์•Š๋Š”๋‹ค.

  • ๋”ํ‹ฐ ๋ฆฌ๋“œ(Dirty Read)

    • ํŠน์ • ํŠธ๋žœ์žญ์…˜์— ์˜ํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์ง€๋งŒ, ์•„์ง ์ปค๋ฐ‹ ๋˜์ง€ ์•Š์€ ์ƒํ™ฉ์—์„œ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ํ•ด๋‹น ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ

    • ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ์‹œ์ ์— ํŠธ๋žœ์žญ์…˜ B๊ฐ€ ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜จ ์ƒํ™ฉ์—์„œ, ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋กค๋ฐฑ ํ•ด๋ฒ„๋ฆฐ๋‹ค๋ฉด ์น˜๋ช…์ ์ด๋‹ค.

  • ํŒฌํ…€ ๋ฆฌ๋“œ(Phantom Read)

    • ํ•œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๋™์ผํ•œ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ƒˆ์„ ๋•Œ ํ•ด๋‹น ์กฐํšŒ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

  • ๋ฐ˜๋ณต ๋ถˆ๊ฐ€๋Šฅํ•œ ์กฐํšŒ(Non-Repeatable Read)

    • ํ•œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์˜ ๊ฐ™์€ ํ–‰์— ๋‘ ๋ฒˆ ์ด์ƒ ์กฐํšŒ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ, ๊ทธ ๊ฐ’์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

    • ํŒฌํ…€ ๋ฆฌ๋“œ์™€ ๋‹ค๋ฅธ ์ ์€, ๋ฐ˜๋ณต ๋ถˆ๊ฐ€๋Šฅํ•œ ์กฐํšŒ๋Š” ํ–‰ ๊ฐ’์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ํŒฌํ…€ ๋ฆฌ๋“œ๋Š” ๋‹ค๋ฅธ ํ–‰์ด ์„ ํƒ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

Last updated