DevLog

Database - ACID ๋ณธ๋ฌธ

๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๊ฐœ๋ฐœ๊ฐœ๋ฐœ/Database

Database - ACID

Seungjae Lee 2021. 11. 11. 11:00

ACID

ํŠธ๋žœ์žญ์…˜

ํŠธ๋žœ์žญ์…˜์ด๋ž€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์—…์„ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ์‹คํ–‰ ์œ ๋‹›์ž…๋‹ˆ๋‹ค. ๊ฐ ํŠธ๋žœ์žญ์…˜์€ ํ•˜๋‚˜์˜ ํŠน์ • ์ž‘์—…์œผ๋กœ ์‹œ์ž‘์„ ํ•ด ๋ฌถ์—ฌ ์žˆ๋Š” ๋ชจ๋“  ์ž‘์—…์„ ๋‹ค ์™„๋ฃŒํ•ด์•ผ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์— ์†ํ•ด์žˆ๋Š” ์—ฌ๋Ÿฌ ์ž‘์—… ์ค‘์—์„œ ๋‹จ ํ•˜๋‚˜์˜ ์ž‘์—…์ด๋ผ๋„ ์‹คํŒจํ•˜๋ฉด, ์ด ํŠธ๋žœ์žญ์…˜์— ์†ํ•œ ๋ชจ๋“  ์ž‘์—…์„ ์‹คํŒจํ•œ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด ์ž‘์—…์ด ํ•˜๋‚˜๋ผ๋„ ์‹คํŒจ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ํŠธ๋žœ์žญ์…˜๋„ ์‹คํŒจ์ด๊ณ , ๋ชจ๋“  ์ž‘์—…์ด ์„ฑ๊ณต์ ์ด๋ฉด ํŠธ๋žœ์žญ์…˜ ๋˜ํ•œ ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค. ์„ฑ๊ณต ๋˜๋Š” ์‹คํŒจ ๋ผ๋Š” ๋‘ ๊ฐœ์˜ ๊ฒฐ๊ณผ๋งŒ ์กด์žฌํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์€, ๋ฏธ์™„๋ฃŒ๋œ ์ž‘์—… ์—†์ด ๋ชจ๋“  ์ž‘์—…์„ ์„ฑ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜์€ ACID๋ผ๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ACID

ACID๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์—์„œ ์ผ์–ด๋‚˜๋Š” ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜(transaction)์˜ ์•ˆ์ „์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์„ฑ์งˆ์ž…๋‹ˆ๋‹ค.

  • Atomicity
  • Consistency
  • Isolation
  • Durability

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

์›์ž์„ฑ์€ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์— ์†ํ•ด์žˆ๋Š” ๋ชจ๋“  ์ž‘์—…์ด ์ „๋ถ€ ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ์ „๋ถ€ ์‹คํŒจํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ฌถ์—ฌ์žˆ๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…์ด ๋ถ€๋ถ„์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค๋ฉด, ์—…๋ฐ์ดํŠธ๊ฐ€ ์ผ์–ด๋‚ฌ์ง€๋งŒ ๋ˆ„๊ฐ€ ์—…๋ฐ์ดํŠธํ–ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฑฐ๋‚˜, ์—…๋ฐ์ดํŠธ ๋‚ ์งœ๊ฐ€ ๋ˆ„๋ฝ๋˜๋Š” ๋“ฑ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค์—ผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณ„์ขŒ์ด์ฒด๋ฅผ ํ•  ๋•Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๋‹จ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 1. A ๊ณ„์ขŒ์—์„œ ์ถœ๊ธˆํ•ฉ๋‹ˆ๋‹ค. 2. B ๊ณ„์ขŒ์— ์ž…๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๊ณ„์ขŒ์ด์ฒด๋ฅผ ํ•˜๋ ค๋Š”๋ฐ A ๊ณ„์ขŒ์—์„œ๋Š” ์ถœ๊ธˆ์ด ์ด๋ค„์ง€๊ณ , B ๊ณ„์ขŒ์— ์ž…๊ธˆ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์–ด๋””์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด, A ๊ณ„์ขŒ์—์„œ ์ถœ๊ธˆ๋œ ๋ˆ์€ ์„ธ์ƒ์—์„œ ์‚ฌ๋ผ์ง€๋Š” ๋ˆ์ด ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์€ํ–‰์—์„œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•œ๋‹ค๋ฉด, ์€ํ–‰์€ ๋”๋Š” ์ œ ๊ธฐ๋Šฅ์„ ํ•  ์ˆ˜ ์—†์„ ๊ฒ๋‹ˆ๋‹ค. A ๊ณ„์ขŒ์—์„œ ์ถœ๊ธˆํ•˜๋Š” ์ผ์— ์„ฑ๊ณตํ–ˆ์ง€๋งŒ, B ๊ณ„์ขŒ์— ์ž…๊ธˆํ•˜๋Š” ์ž‘์—…์— ์‹คํŒจํ•œ๋‹ค๋ฉด ๊ณ„์ขŒ A์—์„œ ์ถœ๊ธˆํ•˜๋Š” ์ž‘์—…์„ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ์ž‘์—…์ด ์‹คํŒจ๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด Atomicity(์›์ž์„ฑ)์ž…๋‹ˆ๋‹ค.

์›์ž์„ฑ์„ ์ง€์ผฐ๋‹ค๋ฉด 1๋ฒˆ๊ณผ 2๋ฒˆ, ๋‘ ์ž‘์—…์ด ๋ชจ๋‘ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด(๋‘˜ ์ค‘ ํ•˜๋‚˜์˜ ์ž‘์—…์ด๋ผ๋„ ์‹คํŒจํ•œ๋‹ค๋ฉด), ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ฌถ์—ฌ์žˆ๋Š” ๋ชจ๋“  ์ž‘์—…์ด ์‹คํŒจํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.

SQL์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ํŠน์ • ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ๋ถ€๋ถ„์ ์œผ๋กœ ์‹คํŒจํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด, ์ „๋ถ€ ์‹คํŒจํ•˜๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์ถฉ๋Œ ์š”์ธ์— ๋Œ€ํ•ด์„œ ์„ ํƒ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

๋‘ ๋ฒˆ์งธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๊ฐ€ ์ผ๊ด€๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์„ฑ์งˆ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์ด์ „๊ณผ ์ดํ›„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋Š” ์ด์ „๊ณผ ๊ฐ™์ด ์œ ํšจํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ํŠธ๋žœ์žญ์…˜์ด ์ผ์–ด๋‚œ ์ดํ›„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ œ์•ฝ์ด๋‚˜ ๊ทœ์น™์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด '๋ชจ๋“  ๊ณ ๊ฐ์€ ๋ฐ˜๋“œ์‹œ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค'๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ œ์•ฝ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠธ๋žœ์žญ์…˜์€ Consistency(์ผ๊ด€์„ฑ)๋ฅผ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค:

  • ์ด๋ฆ„ ์—†๋Š” ์ƒˆ๋กœ์šด ๊ณ ๊ฐ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ฟผ๋ฆฌ
  • ๊ธฐ์กด ๊ณ ๊ฐ์˜ ์ด๋ฆ„์„ ์‚ญ์ œํ•˜๋Š” ์ฟผ๋ฆฌ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์œ ํšจํ•œ ์ƒํƒœ๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฐ์ดํ„ฐ์˜ ์ƒํƒœ์— ๋Œ€ํ•œ ์ผ๊ด€์„ฑ์€ ๋ณ€ํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ๋Š” '์ด๋ฆ„์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค' ๋ผ๋Š” ์ œ์•ฝ์„ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜ˆ์‹œ ํŠธ๋žœ์žญ์…˜์ด ์ผ์–ด๋‚œ ์ดํ›„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ผ๊ด€๋˜์ง€ ์•Š๋Š” ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Isolation(๊ฒฉ๋ฆฌ์„ฑ, ๊ณ ๋ฆฝ์„ฑ)

Isolation(๊ฒฉ๋ฆฌ์„ฑ) ์€ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์œผ๋กœ๋ถ€ํ„ฐ ๋…๋ฆฝ๋˜์–ด์•ผ ํ•œ๋‹ค ๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜๋“ค์ด ์ˆ˜ํ–‰๋  ๋•Œ, ๊ฐ ํŠธ๋žœ์žญ์…˜์€ ๊ณ ๋ฆฝ(๊ฒฉ๋ฆฌ) ๋˜์–ด ์žˆ์–ด ์—ฐ์†์œผ๋กœ ์‹คํ–‰๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ณ„์ขŒ์— ๋งŒ ์›์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์ด ๊ณ„์ขŒ๋กœ๋ถ€ํ„ฐ ๊ณ„์ขŒ B๋กœ 6์ฒœ ์›์„, ๊ณ„์ขŒ C๋กœ 6์ฒœ ์›์„ ๋™์‹œ์— ๊ณ„์ขŒ ์ด์ฒดํ•˜๋Š” ๊ฒฝ์šฐ, ๊ณ„์ขŒ B์— ๋จผ์ € ์†ก๊ธˆํ•œ ๋’ค ๊ณ„์ขŒ C์— ๋ณด๋‚ด๋Š” ๊ฒฐ๊ณผ์™€ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋™์‹œ์— ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•œ๋‹ค๊ณ  ํ•ด์„œ ๊ณ„์ขŒ B์™€ C์— ๊ฐ๊ฐ 6์ฒœ ์›์”ฉ ์†ก๊ธˆํ•˜์—ฌ ๋งˆ์ด๋„ˆ์Šค ํ†ต์žฅ์ด ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์†ก๊ธˆ ์ž‘์—…์„ ์—ฐ์†์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฉ๋ฆฌ์„ฑ์„ ์ง€ํ‚ค๋Š” ๊ฐ ํŠธ๋žœ์žญ์…˜์€ ์ฒ ์ €ํžˆ ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์ž‘์—… ๋‚ด์šฉ์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์‹คํ–‰๋  ๋•Œ์™€ ์—ฐ์†์œผ๋กœ ์‹คํ–‰๋  ๋•Œ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๊ฐ€ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

Durability(์ง€์†์„ฑ)๋Š” ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์—ˆ๋‹ค๋ฉด, ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ๋กœ๊ทธ๊ฐ€ ๋‚จ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋‚˜ ์‹œ์Šคํ…œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„, ํ•ด๋‹น ๊ธฐ๋ก์€ ์˜๊ตฌ์ ์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์€ํ–‰์—์„œ ๊ณ„์ขŒ์ด์ฒด๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•œ ๋’ค์—, ํ•ด๋‹น ์€ํ–‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด ์ข…๋ฃŒ๋˜๋”๋ผ๋„ ๊ณ„์ขŒ์ด์ฒด ๋‚ด์—ญ์€ ๊ธฐ๋ก์œผ๋กœ ๋‚จ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ณ„์ขŒ์ด์ฒด๋ฅผ ๋กœ๊ทธ๋กœ ๊ธฐ๋กํ•˜๊ธฐ ์ „์— ์‹œ์Šคํ…œ ์˜ค๋ฅ˜ ๋“ฑ์— ์˜ํ•ด ์ข…๋ฃŒ๊ฐ€ ๋œ๋‹ค๋ฉด, ํ•ด๋‹น ์ด์ฒด ๋‚ด์—ญ์€ ์‹คํŒจ๋กœ ๋Œ์•„๊ฐ€๊ณ  ๊ฐ ๊ณ„์ขŒ๋“ค์€ ๊ณ„์ขŒ์ด์ฒด ์ด์ „ ์ƒํƒœ๋“ค๋กœ ๋Œ์•„๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

Comments