๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กacid (2)

๋‚˜์˜ ๋ชจ์–‘

052 | Transaction

๐ŸŽˆํŠธ๋žœ์žญ์…˜์ด๋ž€? ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž‘์—…๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฒ˜๋ฆฌ ๋‹จ์œ„์ด๋‹ค. ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•œ๋‹ค. ๐Ÿงฉ ACID ์›์น™ ์›์ž์„ฑ(Atomicity) ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๊ธฐ๋ณธ ๋‹จ์œ„์ด๋‹ค. ์ƒํƒœ ๋ณ€ํ™”๋Š” All or Nothing ๋‘˜ ์ค‘ ํ•˜๋‚˜๋กœ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ผ๊ด€์„ฑ(Consistency) ํŠธ๋žœ์žญ์…˜ ์„ฑ๊ณต ํ›„ ์ผ๊ด€๋œ DB ์ƒํƒœ๋ฅผ ๋ณด์กดํ•ด์•ผ ํ•œ๋‹ค. ๊ณ ๋ฆฝ์„ฑ(Isolation) ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋  ๊ฒฝ์šฐ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰์ด ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ง€์†์„ฑ(Durability) ํŠธ๋žœ์žญ์…˜ ์„ฑ๊ณต ํ›„ ๊ฒฐ๊ณผ๋Š” ์ง€์†์ ์œผ๋กœ DB์— ์ €์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค. ๐Ÿงฉ ์ปค๋ฐ‹(commit) ๋ชจ๋“  ์ž‘์—…์„ DB์— ์ตœ์ข… ๋ฐ˜์˜ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. commit์„ ํ•˜๋ฉด ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋œ ํ›„ ..

SEB/TIL 2022. 9. 5. 22:27
031 | RDBMS, SQL, ACID

๐Ÿ’™ SQL ๐Ÿค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•„์š”์„ฑ In-Memory ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๋ถˆ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์—†์Œ File I/O ํŒŒ์ผ์„ ์ฝ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ํ˜•ํƒœ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ์ „์ฒด ํŒŒ์ผ์„ ์ฝ์–ด์•ผํ•จ. ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋น„ํšจ์œจ์ ์ธ ๋‹จ์ ์ด ์žˆ์Œ ๐Ÿค SQL(Structed Query Language) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด, ๊ตฌ์กฐํ™”๋œ ์ฟผ๋ฆฌ ์–ธ์–ด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ ์ข…๋ฅ˜: MySQL, Oracle, SQLite, PostgreSQL ๐Ÿค NoSQL ๋ฐ์ดํ„ฐ๊ฐ€ ๊ตฌ์กฐํ™”๋˜์–ด์žˆ์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ํ˜•ํƒœ๋กœ ์ €์žฅ ์ข…๋ฅ˜: MongoDB ๐Ÿค ์ฟผ๋ฆฌ(Query) ์งˆ์˜๋ฌธ(์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต) ๊ธฐ์กด ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰์–ด๋กœ ํ•„ํ„ฐ๋งํ•ด์ฃผ๋Š” ๊ฒƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ..

SEB/TIL 2022. 8. 4. 20:33