CS/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ํŠธ๋žœ์žญ์…˜๊ณผ ๋ฌด๊ฒฐ์„ฑ

1eehyunji 2023. 9. 20. 00:03

ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๋‹จ์œ„๋ฅผ ๋งํ•œ๋‹ค. 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์€ '์ฟผ๋ฆฌ'์ด๋ฏ€๋กœ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฟผ๋ฆฌ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๋‹จ์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ํŠน์ง•์€ ์›์ž์„ฑ(Atomicity), ์ผ๊ด€์„ฑ(Consistency), ๊ฒฉ๋ฆฌ์„ฑ(Isolation), ์ง€์†์„ฑ(Durability)์ด ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ์•ฝ์ž๋กœ ACID ํŠน์„ฑ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 

 

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

์›์ž์„ฑ์€ ํŠธ๋žœ์žญ์…˜๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ผ์ด ์ˆ˜ํ–‰๋˜์—ˆ๊ฑฐ๋‚˜, ์ˆ˜ํ–‰๋˜์ง€ ์•Š์•˜์Œ์„ ๋ณด์žฅํ•˜๋Š” ํŠน์ง•์ด๋‹ค.

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

 

์˜ˆ๋ฅผ ๋“ค์–ด, 1000๋งŒ์›์„ ๊ฐ€์ง„ ํ™์ฒ ์ด๊ฐ€ 0์›์„ ๊ฐ€์ง„ ๊ทœ์˜์ด์—๊ฒŒ 500๋งŒ์›์„ ์ด์ฒดํ•œ๋‹ค๋ฉด, ํ™์ฒ ์ด๋Š” 500๋งŒ์›, ๊ทœ์˜์ด๋Š” 500๋งŒ์›์„ ๊ฐ€์ง„ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘๋“ค๋กœ ์ด๋ค„์ง„๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.

1. ํ™์ฒ ์ด๊ฐ€ ์ž”๊ณ ๋ฅผ ์กฐํšŒํ•œ๋‹ค.

2. ํ™์ฒ ์—๊ฒŒ์„œ 500๋งŒ์›์„ ๋บ€๋‹ค.

3. ๊ทœ์˜์ด์—๊ฒŒ 500๋งŒ์›์„ ๋„ฃ๋Š”๋‹ค.

 

์—ฌ๊ธฐ์„œ 1~3๋ฒˆ ๋™์ž‘์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž๋Š” ์ด ์„ธ ๊ฐ€์ง€ ๊ณผ์ •์„ ๋ณผ ์ˆ˜๋„ ์ฐธ์—ฌํ•  ์ˆ˜๋„ ์—†๋‹ค. ๋‹ค๋งŒ, ์ด ๊ณผ์ •์ด ๋ชจ๋‘ ๋๋‚œ ํ›„์—” ํ™์ฒ  500๋งŒ์›, ๊ทœ์˜ 500๋งŒ์›์„ ๊ฐ€์ง„ ๊ฒฐ๊ณผ๋งŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 

 

์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ์œ„ ์ž‘์—…์„ ์ทจ์†Œํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ํ™์ฒ ์ด๋Š” ๋‹ค์‹œ 1000๋งŒ์› ๊ฐ€์ง€๊ฒŒ ๋˜๊ณ , ๊ทœ์˜์ด๋Š” 0์›์œผ๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•œ๋‹ค. 

๋งŒ์•ฝ 3๋ฒˆ ๋™์ž‘๋งŒ ์ทจ์†Œ๋˜์–ด ํ™์ฒ ์ด๋Š” 500๋งŒ์›, ๊ทœ์˜์ด๋Š” 0์›์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋Š” ์ƒํ™ฉ์ฒ˜๋Ÿผ ์ผ๋ถ€ ๋™์ž‘๋งŒ ์ทจ์†Œ๋˜์ง€ ์•Š๋Š” ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•œ๋‹ค.

 

๋˜, ํŠธ๋žœ์žญ์…˜ ๋‹จ์œ„๋กœ ์—ฌ๋Ÿฌ ๋กœ์ง์„ ๋ฌถ์„ ๋•Œ ์™ธ๋ถ€ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์กด์žฌํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ๋งŒ์•ฝ ์กด์žฌํ•œ๋‹ค๋ฉด ๋กค๋ฐฑ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•  ๊ฒƒ์ธ์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๊ทœ์ •ํ•ด์•ผ ํ•œ๋‹ค.

 

์ปค๋ฐ‹๊ณผ ๋กค๋ฐฑ(Commit, Rollback)

์ปค๋ฐ‹์€ ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ๋‹ค๊ณ  ํ™•์ •ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. 

ํŠธ๋žœ์žญ์…˜ ๋‹จ์œ„๋กœ ์ˆ˜ํ–‰๋˜๋ฉฐ, ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ด ๋ชจ๋‘ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋œ๋‹ค. 

์ฆ‰, "์ปค๋ฐ‹์ด ์ˆ˜ํ–‰๋˜์—ˆ๋‹ค"==="ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์—ˆ๋‹ค"๋ผ๊ณ ๋„ ๋งํ•œ๋‹ค.

์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ update, delete, insert ์ฟผ๋ฆฌ๊ฐ€ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ๋‹จ์œ„๋กœ ์ˆ˜ํ–‰๋˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜๊ตฌ ์ €์žฅ๋œ๋‹ค. 

 

ํ•˜์ง€๋งŒ, ์—๋Ÿฌ๋‚˜ ์—ฌ๋Ÿฌ ์ด์Šˆ ๋•Œ๋ฌธ์— ํŠธ๋žœ์žญ์…˜ ์ „์œผ๋กœ ๋Œ๋ ค์•ผ ํ•œ๋‹ค๋ฉด '๋กค๋ฐฑ'์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 

๋กค๋ฐฑ์ด๋ž€ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ฒ˜๋ฆฌํ•œ ํ•˜๋‚˜์˜ ๋ฌถ์Œ ๊ณผ์ •์„ ์ผ์–ด๋‚˜๊ธฐ ์ „์œผ๋กœ ๋Œ๋ฆฌ๋Š” ์ผ์„ ์˜๋ฏธํ•œ๋‹ค. 

์œ„ ์ƒํ™ฉ์—์„œ ๋กค๋ฐฑ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘์  ์ดํ›„์˜ ๋ชจ๋“  ์ž‘์—…์ด ์ทจ์†Œ๋œ๋‹ค. 

 

์ด๋Ÿฌํ•œ ์ปค๋ฐ‹๊ณผ ๋กค๋ฐฑ ๋•๋ถ„์— ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์ด ๋ณด์žฅ๋œ๋‹ค. ๋˜, ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ „์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ  ํ•ด๋‹น ์ž‘์—…์„ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

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

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

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

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

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

๋˜ ๋‹ค๋ฅธ ์˜ˆ๋ฅผ ๋“ค๋ฉด, ํ†ต์žฅ์— 1000๋งŒ์›์ด ์žˆ๋Š” ํ˜ธ์ฒ ์ด์™€ 0์›์ด ์žˆ๋Š” ๋ฒ”์„์ด๊ฐ€ ์žˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ๋ฒ”์„์ด๊ฐ€ ํ™์ฒ ์ด์—๊ฒŒ 500๋งŒ์›์„ ์ฃผ๋Š” ํŠธ๋žœ์žญ์…˜์€ ๋ฐœ์ƒํ•˜๋ฉด ์•ˆ๋œ๋‹ค. (๋งˆ์ด๋„ˆ์Šค ํ†ต์žฅ ์ œ์™ธใ…Žใ…Ž..)

 

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

ํŠธ๋žœ์žญ์…˜๊ฐ„์— ์„œ๋กœ ๋…๋ฆฝ์ ์ด์–ด์•ผ ํ•œ๋‹ค ์ฆ‰, ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์‹œ ์„œ๋กœ ๋ผ์–ด๋“ค์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

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

๊ฒฉ๋ฆฌ์„ฑ์„ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ์›๋ž˜๋„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ์‰ฝ๊ฒ ์ง€๋งŒ ๊ทธ๋Ÿฌ๋ฉด ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์— ๋น„ํ•ด ์„ฑ๋Šฅ์ด ๋‚˜๋น ์งˆ ๊ฒƒ์ด๋‹ค. 

 

๊ฒฉ๋ฆฌ์„ฑ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(isolation level)์œผ๋กœ ๋‚˜๋‰˜์–ด ๊ฒฉ๋ฆฌ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค.

์ถœ์ฒ˜ : https://velog.io/@chb1828/

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

SERIALIZABLE

๋ง ๊ทธ๋Œ€๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ํŠธ๋žœ์žญ์…˜์„ ์ง„ํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ๊ฐ™์€ ํ–‰์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

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

 

REPEATABLE_READ

ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜์ •ํ•œ ํ–‰์„ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋„๋ก ๋ง‰์•„์ฃผ์ง€๋งŒ, ์ƒˆ๋กœ์šด ํ–‰์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์ง€๋Š” ์•Š๋Š”๋‹ค. 

๋”ฐ๋ผ์„œ ์ดํ›„์— ์ถ”๊ฐ€๋œ ํ–‰์ด ๋ฐœ๊ฒฌ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

 

READ_COMMITTED

๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด๋ฉฐ, ๋‹ค์–‘ํ•œ DBMS์—์„œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค.

READ_UNCOMMITTED์™€๋Š” ๋‹ฌ๋ฆฌ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹ํ•˜์ง€ ์•Š๋Š” ์ •๋ณด๋Š” ์ฝ์„ ์ˆ˜ ์—†๋‹ค. ์ฆ‰, ์ปค๋ฐ‹ ์™„๋ฃŒ๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ ์กฐํšŒ๋ฅผ ํ—ˆ์šฉํ•œ๋‹ค.

ํ•˜์ง€๋งŒ, ์–ด๋–ค ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผํ•œ ํ–‰์„ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ์ˆ˜์ •ํ•œ ํ–‰์„ ํŠธ๋žœ์žญ์…˜ B๊ฐ€ ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๊ฐ™์€ ํ–‰์„ ๋‹ค์‹œ ์ฝ์„ ๋•Œ ๋‹ค๋ฅธ ๋‚ด์šฉ์ด ์กฐํšŒ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

READ_UNCOMMITTED

๊ฐ€์žฅ ๋‚ฎ์€ ๊ฒฉ๋ฆฌ์„ฑ์„ ๊ฐ€์ง€๋ฉฐ, ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹๋˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์— ๋…ธ์ถœ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ, ์„ฑ๋Šฅ์ด ๊ฐ€์žฅ ์ข‹๋‹ค.

์ด๋Š” ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ„ํ•ด ๋˜๋„๋ก์ด๋ฉด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ, ๋ช‡๋ช‡ ํ–‰์ด ์ œ๋Œ€๋กœ ์กฐํšŒ๋˜์ง€ ์•Š๋”๋ผ๋„ ๊ดœ์ฐฎ์€ ๊ฑฐ๋Œ€ํ•œ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋ฆผ์žก์•„ ์ง‘๊ณ„ํ•˜๋Š” ๋ฐ๋Š” ์‚ฌ์šฉํ•ด๋„ ์ข‹๋‹ค.

 

๋˜, ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค ๋‚˜ํƒ€๋‚˜๋Š” ํ˜„์ƒ์ด ์žˆ๋‹ค.

๊ฐ๊ฐ์˜ ํ˜„์ƒ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž!

 

๊ฒฉ๋ฆฌ ์ˆ˜์ค€์— ๋”ฐ๋ผ ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ

๊ฒฉ๋ฆฌ ์ˆ˜์ค€์— ๋”ฐ๋ผ ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ์€ ํŒฌํ…€ ๋ฆฌ๋“œ(Phantom Read), ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ ์กฐํšŒ(Non-Repeatable Read), ๋”ํ‹ฐ ๋ฆฌ๋“œ(Dirty Read)๊ฐ€ ์žˆ๋‹ค.

  • Phantom Read
    • ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹(Commit)ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋”๋ผ๋„ ์ž์‹ ์˜ ํŠธ๋žœ์žญ์…˜์—์„œ ์ฝ์—ˆ๋˜ ๋‚ด์šฉ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
    • ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ํ•œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๋™์ผํ•œ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ƒˆ์„ ๋•Œ, ํ•ด๋‹น ์กฐํšŒ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž A๊ฐ€ ํšŒ์› ํ…Œ์ด๋ธ”์—์„œ age๊ฐ€ 12 ์ด์ƒ์ธ ํšŒ์›๋“ค์„ ์กฐํšŒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ƒˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.
    • ์ด ๊ฒฐ๊ณผ๋กœ ์„ธ ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์กฐํšŒ๋œ๋‹ค.
    • ์ดํ›„์— ๊ทธ ๋‹ค์Œ ์‚ฌ์šฉ์ž B๊ฐ€ age๊ฐ€ 15์ธ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.
    • ๊ทธ๋Ÿฌ๋ฉด ๊ทธ ๋‹ค์Œ ๋™์ผํ•œ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ƒˆ์„ ๋•Œ ๋„ค ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์กฐํšŒ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
    • ๋ณดํ‹ ์œ„์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ ์‚ฝ์ž…์ด ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•œ๋‹ค.
  • Non-Repeatable Read
    • ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹(Commit)ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
    • ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ํ•œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์˜ ๊ฐ™์€ ํ–‰์— ๋‘ ๋ฒˆ ์ด์ƒ ์กฐํšŒ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ, ๊ทธ ๊ฐ’์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž A๊ฐ€ ๋ณด์„์˜ ๊ฐœ์ˆ˜๊ฐ€ 100๊ฐœ๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์ดํ›„ ์‚ฌ์šฉ์ž B๊ฐ€ ๊ทธ ๊ฐ’์„ 1๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์ปค๋ฐ‹ํ–ˆ๋‹ค๊ณ  ํ•˜๋ฉด ์‚ฌ์šฉ์ž A๋Š” 100์ด ์•„๋‹Œ 1์„ ์ฝ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. 
    • ๋ณดํ†ต ๋ฐ์ดํ„ฐ์˜ ์ˆ˜์ •/์‚ญ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•œ๋‹ค.
  • Dirty Read
    • ํ•œ ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰ ์ค‘์ผ ๋•Œ, ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์— ์˜ํ•ด ์ˆ˜์ •๋˜์—ˆ์ง€๋งŒ ์•„์ง '์ปค๋ฐ‹๋˜์ง€ ์•Š์€' ํ–‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž A๊ฐ€ ๋ณด์„์˜ ๊ฐœ์ˆ˜ 100์„ 1๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋ผ๋„ ๊ทธ ์ดํ›„ ์‚ฌ์šฉ์ž B๊ฐ€ ์กฐํšŒํ•œ ๊ฒฐ๊ณผ๊ฐ€ 1๋กœ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

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

์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ํŠธ๋žœ์žญ์…˜์€ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

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

์ „ํ˜•์ ์œผ๋กœ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์€ ๋กœ๊ทธ๋กœ ๋‚จ๊ณ , ์‹œ์Šคํ…œ ์žฅ์•  ๋ฐœ์ƒ ์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ํŠธ๋žœ์žญ์…˜์€ ๋กœ๊ทธ์— ๋ชจ๋“  ๊ฒƒ์ด ์ €์žฅ๋œ ํ›„์—๋งŒ commit ์ƒํƒœ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ๋‹ค.

 

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

*์ €๋„๋ง : ํŒŒ์ผ ์‹œ์Šคํ…œ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์ „์— ๋กœ๊น…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ํŠธ๋žœ์žญ์…˜ ๋“ฑ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค. 

 

๋ฌด๊ฒฐ์„ฑ

๋ฌด๊ฒฐ์„ฑ์ด๋ž€, ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ, ์ผ๊ด€์„ฑ, ์œ ํšจ์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•˜๋ฉฐ ๋ฌด๊ฒฐ์„ฑ์ด ์œ ์ง€๋˜์–ด์•ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๊ฐ’๊ณผ ๊ทธ ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ํ˜„์‹ค ์„ธ๊ณ„์˜ ์‹ค์ œ ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์‹ ๋ขฐ๊ฐ€ ์ƒ๊ธด๋‹ค.

  • ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ
    • ๊ธฐ๋ณธํ‚ค๋กœ ์„ ํƒ๋œ ํ•„๋“œ๋Š” ๋นˆ ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ
    • ์„œ๋กœ ์ฐธ์กฐ ๊ด€๊ณ„์— ์žˆ๋Š” ๋‘ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋Š” ํ•ญ์ƒ ์ผ๊ด€๋œ ๊ฐ’์„ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ต์ˆ˜ ํ…Œ์ด๋ธ”์˜ ๊ต์ˆ˜ ID๊ฐ€ ํ•™์ƒ ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ํ‚ค ์ง€๋„๊ต์ˆ˜ ID๋กœ ์ฐธ์กฐ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๊ต์ˆ˜ ํ…Œ์ด๋ธ”๊ณผ ํ•™์ƒ ํ…Œ์ด๋ธ”์—์„œ ๋™์ผํ•œ ๊ต์ˆ˜์— ๋Œ€ํ•œ ID ๊ฐ’์€ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
  • ๊ณ ์œ  ๋ฌด๊ฒฐ์„ฑ
    • ํŠน์ • ์†์„ฑ์— ๋Œ€ํ•ด ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋„๋ก ์กฐ๊ฑด(UNIQUE)์ด ์ฃผ์–ด์ง„ ๊ฒฝ์šฐ ๊ทธ ์†์„ฑ ๊ฐ’์€ ๋ชจ๋‘ ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • NULL ๋ฌด๊ฒฐ์„ฑ
    • ํŠน์ • ์†์„ฑ ๊ฐ’์— NULL์ด ์˜ฌ ์ˆ˜ ์—†๋‹ค๋Š” ์กฐ๊ฑด(NOT NULL)์ด ์ฃผ์–ด์ง„ ๊ฒฝ์šฐ ๊ทธ ์†์„ฑ ๊ฐ’์€ NULL์ด ๋  ์ˆ˜ ์—†๋‹ค๋Š” ์ œ์•ฝ ์กฐ๊ฑด์ด๋‹ค.