DB์ ์์ฒญ์ ํ ์คํ ์์ ๋ชจ๋ ์ฒ๋ฆฌ๋์ด์ผ ํ๋ SQL ์์ฒญ์ ํ๋๋ก ๋ฌถ์ ๋จ์๋ค.
ํ์ง๋ง
1๋ฒ ์์
์ ์งํ ํ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด A์ ๊ณ์ข๋ 0์, B์ ๊ณ์ข๋ 0์์ธ ์ํ์ด๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ ์์
์ Transaction์ ์ ์ฉํ์ฌ ๋ฌถ๋๋ค.
1๋ฒ, 2๋ฒ ์์
์ ๋
ผ๋ฆฌ์ ์ผ๋ก ํ๊ฐ์ง ์์
์ผ๋ก ๋ฌถ์ผ๋ฉด ์ฑ๊ณต์ Commit์ ํตํด DB์ ๋ฐ์
์คํจ์ RollBack์ ํตํด ์ ์ํ ๋ณต๊ท๋ก A์ B ๋ ๊ณ์ข๊ฐ 0์์ธ ์ํฉ์ด ๋ฐ์ํ์ง ์๊ฒ ๋๋ค.
DB์ ์๋ ๋ฐ์ดํฐ์ ๊ณ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด์ TRANSACTION์ด ํ์ํ๋ค๋ ๊ฒ์ ํ์ธํ๋ค.
๊ทธ๋ ๋ค๋ฉด ACID๋ ๋ฌด์์ผ๊น?
ACID๋ DB์์ TRANSACTION์ด ์์ ํ๊ฒ ์ํ๋๊ธฐ ์ํด์ ๋ณด์ฅ๋์ด์ผ ํ๋ ์ฑ์ง
์์์ฑ(Atomicity), ์ผ๊ด์ฑ(Consistency), ๊ฒฉ๋ฆฌ์ฑ(Isolation), ์ง์์ฑ(Durability) ๋ฅผ ์๋ฏธํ๋ ACID ๋ก ์๋ ค์ ธ ์๋ค.
ํธ๋์ญ์
์ DB์ ๋ชจ๋ ๋ฐ์๋๊ฑฐ๋, ์ ํ ๋ฐ์๋์ง ์์์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
(์ฆ ์๋ฃ๋์ง ์์ ํธ๋์ญ์
์ ์ค๊ฐ ์ํ๋ฅผ DB์ ๋ฐ์ํ๋ฉด ์ ๋๋ค)
TrancSaction์ ๋๊ฐ์ง ์ฐ์ฐ Commit, RollBack์ ํตํด ๋ณด์ฅํด์ค ์ ์๋ค.
์์์ฑ์ด ๋ณด์ฅ๋๋ฉด A์ ๊ณ์ข์์ 10๋ง์์ด ์ถ๊ธ๋์๋๋ฐ B์ ๊ณ์ข์์ 10๋ง์์ด ์ ๊ธ๋์ง ์๋ ๊ฒฝ์ฐ๋ ์์ ๊ฒ์ด๋ค.
์ผ๊ด์ฑ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๊ฐ ์ผ๊ด๋์ด์ผ ํ๋ค๋ ์ฑ์ง์ด๋ค. ํ๋์ ํธ๋์ญ์
์ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ ์ด์ ๊ณผ ๊ฐ์ด ์ ํจํด์ผ ํ๋ค.
(์ฆ, ํธ๋์ญ์
์ด ์ผ์ด๋ ์ดํ DB์ ์ฌ๋ฌ์ ์ฝ ์กฐ๊ฑด์ ๋ง๋ ์ํ๋ฅผ ๋ณด์ฅํด์ค๋ค๋ ์๋ฏธ.)
๋ง์ด๋์ค ํต์ฅ์ ํ๋ฝํ์ง ์๋๋ค๋ DB์ ์ ์ฝ์กฐ๊ฑด์ด ์๋ค๋ฉด ์ด ์กฐ๊ฑด์ ๋ง์กฑํ์ง ๋ชป ํ๋ค๋ฉด Transaction์ ๋ฐ๋ก RollBackํ๊ฒ ๋ ๊ฒ์
๋ ์ด์์ ํธ๋์ญ์ ์ด ๋์์ ์คํ๋๊ณ ์์ ๋, ์ด๋ค ํธ๋์ญ์ ๋ ๋ค๋ฅธ ํธ๋์ญ์ ์ฐ์ฐ์ ๋ผ์ด๋ค ์ ์๋ค.
A ํต์ฅ์์ 10๋ง์์ด ์ถ๊ธ๋๊ณ B ํต์ฅ์ 10๋ง์์ด ์ ๊ธ๋์ง ์์ ์ค๊ฐ ์ํฉ์, ๋ค๋ฅธ Transaction์ด ์กฐํํ๋ฉด ์ ๋๋ ๊ฒ์
Isolation Level (๊ฒฉ๋ฆฌ ์์ค) : Transaction ๋ ๋ฆฝ(๊ณ ๋ฆฝ)์ ์ ๋์ ๋ํ ์ ์
Isolation Level๊ณผ ๋จ๊ณ๋ณ ์๋ฌ๋ ๋ค์ ํฌ์คํ ๊ธ์ ์ฐธ๊ณ !
ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์์ผ๋ฉด ๊ฒฐ๊ณผ๋ ์๊ตฌํ DB์ ๋ฐ์๋์ด์ผํ๋ค.
ํธ๋์ ์ ์กฐ์์ ํ๋ ๋์คํฌ์ ๋ก๊ทธ๋ก ๊ธฐ๋กํ๊ณ ์์คํ ์ ์ด์์ด ๋ฐ์ํ๋ฉด ๊ทธ ๋ก๊ทธ๋ฅผ ์ฌ์ฉํด ์ด์ ๋ฐ์ ์ ๊น์ง ๋ณต์ํ๋ ๊ฒ์ผ๋ก ์ง์์ฑ์ ์คํํ๊ณ ์๋ค.
A๊ฐ B์ 10๋ง์ ์ก๊ธ์ ์ฑ๊ณตํ๋ค๋ฉด ์ํ ์์คํ ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋๋ผ๋ 10๋ง์ ์ก๊ธ ์ฑ๊ณต๋ ์ํ๋ก ๋ณต๊ตฌํ ์ ์์ด์ผํ๋ค.
[10๋ถ ํ ์ฝํก]์์ง๋์ด์ค์ ํธ๋์ญ์
[10๋ถ ํ ์ฝํก] ๋ก๊ฑด์ Transaction
[10๋ถ ํ ์ฝํก] ๐ค ์๋ฆฌ์ แแ ณแ แ ขแซแแ ขแจแแ งแซ
[DB] ํธ๋์ญ์ ACID๋? (Atomicity, Consistency, Durability, Isolation)