์ํ ์ก๊ธ์ฒ๋ฆฌ
A๊ณ์ข์์ B๊ณ์ข๋ก $5,000๋ฅผ ์ ์์ ์ผ๋ก ์ก๊ธํ๋๋ฐ ์ฒ๋ฆฌ๋๋ ๊ณผ์ ์ ๋๋ค. A๊ณ์ข์์ B๊ณ์ข๋ก ์ก๊ธ ์์ฒญ์ ํ๋ฉด
1. A๊ณ์ข์์ $5,000๋ฅผ ์ถ๊ธํฉ๋๋ค.
2. B๊ณ์ข์ $5,000๋ฅผ ์ ๊ธํฉ๋๋ค.
๊ทธ๋ผ ๊ฒฐ๊ณผ๋ก A๊ณ์ข์๋ $5,000 B๊ณ์ข์๋ $10,000๊ฐ ๋์ด์ผํฉ๋๋ค.
์ ์ด๋ฏธ์ง๋ ์ก๊ธ ์ฒ๋ฆฌ ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ ๋๋ค.
1. A๊ณ์ข์์ $5,000๋ฅผ ์ถ๊ธํฉ๋๋ค.
2. ์๋ฌ ๋ฐ์
์ก๊ธ์ฒ๋ฆฌ ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ A๊ณ์ข์์ $5,000๋ฅผ ์ถ๊ธํ๊ณ B๊ณ์ข๋ก๋ ๋์ด ์ ๊ธ๋์ง ์์ $5,000๊ฐ ์ฌ๋ผ์ง๋๋ค.
์ค์ ์ํ์์ ์์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๋ฉด ์ฌ๋ฌ ๋ฐฉ๋ฉด์ผ๋ก ์์ฒญ๋ ํผํด๊ฐ ๋ฐ์ํ ๊ฒ ์ ๋๋ค. ์์ํ์ง ๋ชปํ ์ํฉ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ํ์ฌ ๋ฐ์ดํฐ์ ๋ถ์ ํฉ์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ, ๋ค์ ์์๋ณต๊ท ํด์ผํฉ๋๋ค. ์ด๋ฌํ ์ํฉ์ ๋๋นํ๊ธฐ ์ํด Transacation์ ์ฌ์ฉํฉ๋๋ค.
Transaction ์ด๋?
Transaction์ ์ ๋ฌด์ ๋ ผ๋ฆฌ์ ์ธ ๋จ์์ ๋๋ค. ์ฌ๋ฌ๊ฐ์ ์์ ์ ํ๋์ ๋ ผ๋ฆฌ์ ๋จ์๋ก ๋ฌถ์ด ๋ฐ์๊ณผ ์์๋ณต๊ท๋ฅผ ์กฐ์ ํ ์ ์๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ ์ํ ์ก๊ธ์์์์๋ A๊ณ์ข์์ $5,000๋ฅผ ์ถ๊ธํ๊ณ B๊ณ์ข๋ก $5,000๋ฅผ ์ ๊ธํ๋ ๊ฒ์ ํ๋์ ๋ ผ๋ฆฌ์ ๋จ์! ์ก๊ธ์ ๋ํ ํ๋์ ๋จ์๋ก ๋ฌถ์ด ์์ ์ ์ฒ๋ฆฌํ๋ ๊ฒ ์ ๋๋ค.
๋น์ ์ ์ฒ๋ฆฌ๋์ด ๋ฐ์ดํฐ์ ๋ถ์ ํฉ์ด ๋ฐ์ํ์ ๋๋ ์์ ๋ณต๊ทํ๊ณ , ์ ์์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ด ์งํ๋์๋ค๋ฉด ๋ฐ์ดํฐ์ ์ต์ข ์ ์ผ๋ก ์ ์ฉํฉ๋๋ค. Transaction์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ์ ๋ถ์ ํฉ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
Commit & Rollback
ํ๋์ Transaction์ ์ฒ๋ฆฌ๊ณผ์ ์ ๋๋ค.
Transaction์ ์ฒ๋ฆฌ๊ฐ ์ด์์์ด ์๋ฃ๋๋ฉด ์๊ตฌ์ ์ธ ๋ฐ์์ ์ํด COMMIT์์ ์ ์งํํฉ๋๋ค.
Transaction์ ์ฒ๋ฆฌ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด Aborted ์ํ๋ก Transaction์ ์์ ์ ์ํ๋ก ROLLBACK ์์ ์ ํฉ๋๋ค.
Transaction์ ํน์ง ACID
์์์ฑ(ATOMICITY)
ALL OR NOTHING์ ๋ณด์ฅํฉ๋๋ค. ๋ถ๋ถ์ ์ผ๋ก ์คํ๋๋๊ฒ ์์ด, ๋ชจ๋ ์ฑ๊ณต์ ์ผ๋ก ์คํ๋๊ฑฐ๋, ์ ํ ์คํ๋์ง ์์ ์ฑ๋ก ๋จ์ ์๋ ํน์ง์ ๋งํฉ๋๋ค. ์์ ์ํ ์ก๊ธ ์ฒ๋ฆฌ์์์์ Transaction์ ์์์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
์ผ๊ด์ฑ(CONSISTENCY)
์ฑ๊ณต์ ์ผ๋ก Transaction์ด ์๋ฃ๋๋ฉด ์ผ๊ด์ ์ธ DB ์ํ๋ฅผ ์ ์งํฉ๋๋ค.
์ฆ, SELECT ํ๋ ์์ ์์ DB์ ๋ณ๊ฒฝ์ด ํ์ ๋ ๋ฐ์ดํฐ๋ง ์ฝ์ด ํญ์ ์ผ๊ด์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์กฐํํฉ๋๋ค. ์ผ๊ด์ฑ์ ๋ํ ๋ด์ฉ์ ์ฝ๊ธฐ ์ผ๊ด์ฑ๊ณผ ๊ด๋ จ๋์ด ์์ต๋๋ค.
๊ฒฉ๋ฆฌ์ฑ(ISOLATION)
Transaction ์ํ์ ๋ค๋ฅธ Transaction์ ์์ ์ด ๋ผ์ด๋ค์ง ๋ชปํ๋๋ก ๋ณด์ฅํ๋ ํน์ง์ด ์์ต๋๋ค. ํธ๋์ญ์ ์ด ์คํ๋๋ ๋์ค์ ๋ค๋ฅธ ํธ๋์ญ์ ์ ์ํฅ์ ๋ฐ์ ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด์๋ ์๋ฉ๋๋ค.
์ง์์ฑ(DURABILITY)
์ฑ๊ณต์ ์ผ๋ก ์ํ๋ Transaction์ Database์ ์๊ตฌ์ ์ผ๋ก ๋ฐ์๋ฉ๋๋ค.
Transaction์ ์์๊ณผ ๋
์ง๊ธ๊น์ง Transaaction์ ๋ํด์ ์์๋ดค์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด Transaction์ ์์๊ณผ ๋์ ์ธ์ ์ผ๊น์?
Transaction์ ์์
Transaction์ ์์์ ์ด์ Transaction์ด ๋๋๊ณ ์ฒซ๋ฒ์งธ ์คํ ๊ฐ๋ฅํ ๋ฌธ์ฅ(DML SQL ๋ฌธ)์ด ์์์ ๋๋ค.
์ฆ, COMMIT์ด ์๋ฃ๋๊ณ ๋ค์์ผ๋ก ์ค๋ DML ๋ช ๋ น๋ฌธ์ ๋๋ค. DDL๊ณผ DCL ๋ช ๋ น์ ๋ช ๋ น์ด ํ๋์ TRANSACTION์ผ๋ก DML๊ณผ ๋ฌ๋ฆฌ ์คํ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด ๋ฐ๋ก COMMIT ๋ฉ๋๋ค.
Transaction์ ๋
Transaction์ ๋์ ์ํฉ์ ๋ฐ๋ผ 4๊ฐ์ง๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
1. Transaction COMMIT ๋๋ ROLLBACK๋ฌธ์ ์คํํ ๊ฒฝ์ฐ
์ฌ๋ฌ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ค COMMIT ๋๋ ROLLBACK๋ฌธ์ ์คํํ๋ฉด Transaction์ ์ข ๋ฃํฉ๋๋ค.
2. DDL ๋๋ DCL๋ฌธ ์คํ
DML ๋ช ๋ น์ ์ฌ์ฉํ๋ค๊ฐ ์ค๊ฐ์ DDL์ด๋ DCL๋ช ๋ น์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์์์ COMMIT์ ์งํํฉ๋๋ค. DDL๊ณผ DCL ๋ช ๋ น์ ๋ช ๋ น์ด ํ๋์ Transaction์ด๋ผ๊ณ ํ์ต๋๋ค. DDL์ด๋ DCL ๋ช ๋ น์ ์คํํ๊ธฐ ์ํด ์์์ ์ผ๋ก ์ด์ Transaction์ COMMITํ๊ฒ ๋ฉ๋๋ค.
3. SQL DEVELOPER, SQL PLUS ์ข ๋ฃ
์ฌ์ฉํ๋ DBMS๋ฅผ ์ข ๋ฃํ๊ฒ ๋๋ฉด COMMIT ๋๋ ROLLBACK์ด ํ์ํ๋ฉด ์ ์ฉ ์ฌ๋ถ๋ฅผ ๋ฌป์ต๋๋ค.
4. ์์คํ ์ค๋จ
๋น์ ์์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์์คํ ์ด ์ค๋จ๋๋ฉด Transaction์ ROLLBACKํ๊ณ ์ข ๋ฃ๋ฉ๋๋ค.
๋๊ธ