ํธ๋์ญ์
(Transaction)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋
ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์
์ ๋จ์ ๋๋ ํ๊บผ๋ฒ์ ๋ชจ๋ ์ํ๋์ด์ผ ํ ์ผ๋ จ์ ์ฐ์ฐ๋ค์ ์๋ฏธํ๋ค.
โจ ํธ๋์ญ์
์ ํน์ง!
-
ํธ๋์ญ์
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์์ ๋ณํ ์ ์ด ๋ฐ ํ๋ณต ์์
์ ์ฒ๋ฆฌ๋๋ ์์
์ ๋
ผ๋ฆฌ์ ๋จ์์ด๋ค.
-
์ฌ์ฉ์๊ฐ ์์คํ
์ ๋ํ ์๋น์ค ์๊ตฌ ์ ์์คํ
์ด ์๋ตํ๊ธฐ ์ํ ์ํ ๋ณํ ๊ณผ์ ์ ์์
๋จ์์ด๋ค.
-
ํ๋์ ํธ๋์ญ์
์ Commit ๋๊ฑฐ๋ Rollback ๋๋ค.
๐ ํธ๋์ญ์
์ ์ฑ์ง!
Atomicity (์์์ฑ)
- ํธ๋์ญ์
์ ์ฐ์ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ๋ฐ์๋๋ ์ง ์๋๋ฉด ์ ํ ๋ฐ์๋์ง ์์์ผ ํ๋ค.
- ํธ๋์ญ์
๋ด์ ๋ชจ๋ ๋ช
๋ น์ ๋ฐ๋์ ์๋ฒฝํ ์ํ๋์ด์ผ ํ๋ฉฐ, ๋ชจ๋๊ฐ ์๋ฒฝํ ์ํ๋์ง ์๊ณ ์ด๋ ํ๋๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ํธ๋์ญ์
์ ๋ถ๊ฐ ์ทจ์๋์ด์ผ ํ๋ค.
Consistency (์ผ๊ด์ฑ)
- ํธ๋์ญ์
์ด ๊ทธ ์คํ์ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃํ๋ฉด ์ธ์ ๋ ์ผ๊ด์ฑ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๋ก ๋ณํ๋ค.
- ์์คํ
์ด ๊ฐ์ง๊ณ ์๋ ๊ณ ์ ์์๋ ํธ๋์ญ์
์ํ ์ ๊ณผ ํธ๋์ญ์
์ํ ์๋ฃ ํ์ ์ํ๊ฐ ๊ฐ์์ผ ํ๋ค.
Isolation (๋
๋ฆฝ์ฑ, ๊ฒฉ๋ฆฌ์ฑ)
- ๋ ์ด์์ ํธ๋์ญ์
์ด ๋์์ ๋ณํ ์คํ๋๋ ๊ฒฝ์ฐ ์ด๋ ํ๋์ ํธ๋์ญ์
์คํ์ค์ ๋ค๋ฅธ ํธ๋์ญ์
์ ์ฐ์ฐ์ด ๋ผ์ด๋ค ์ ์๋ค.
- ์ํ์ค์ธ ํธ๋์ญ์
์ ์์ ํ ์๋ฃ๋ ๋๊น์ง ๋ค๋ฅธ ํธ๋์ญ์
์์ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ์กฐํ ์ ์๋ค.
Durablility (์์์ฑ, ์ง์์ฑ)
- ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ํธ๋์ญ์
์ ๊ฒฐ๊ณผ๋ ์์คํ
์ด ๊ณ ์ฅ๋๋๋ผ๋ ์๊ตฌ์ ์ผ๋ก ๋ฐ์๋์ด์ผ ํ๋ค.
๐งฎ ํธ๋์ญ์
์ฐ์ฐ ๋ฐ ์ํ!
Commit ์ฐ์ฐ
- Commit ์ฐ์ฐ์ ํ๊ฐ์ ๋
ผ๋ฆฌ์ ๋จ์ (ํธ๋์ญ์
)์ ๋ํ ์์
์ด ์ฑ๊ณต์ ์ผ๋ก ๋๋ฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ค์ ์ผ๊ด๋ ์ํ์ ์์ ๋, ์ด ํธ๋์ญ์
์ด ํํ ๊ฐฑ์ ์ด ์ฐ์ฐ์ด ์๋ฃ๋ ๊ฒ์ ํธ๋์ญ์
๊ด๋ฆฌ์์๊ฒ ์๋ ค์ฃผ๋ ์ฐ์ฐ์ด๋ค.
Rollback ์ฐ์ฐ
- Rollback ์ฐ์ฐ์ ํ๋์ ํธ๋์ญ์
์ฒ๋ฆฌ๊ฐ ๋น์์ ์ผ๋ก ์ข
๋ฃ๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผ๊ด์ฑ์ ๊นจ๋จ๋ ธ์ ๋, ์ด ํธ๋์ญ์
์ ์ผ๋ถ๊ฐ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๋์๋๋ผ๋ ํธ๋์ญ์
์ ์์์ฑ์ ๊ตฌํํ๊ธฐ ์ํด ์ด ํธ๋์ญ์
์ด ํํ ๋ชจ๋ ์ฐ์ฐ์ ์ทจ์(Undo)ํ๋ ์ฐ์ฐ์ด๋ค.
- Rollback ์์๋ ํด๋น ํธ๋์ญ์
์ ์ฌ์์ํ๊ฑฐ๋ ํ๊ธฐํ๋ค.
ํธ๋์ญ์
์ ์ํ
- ํ๋ (Active) : ํธ๋์ญ์
์ด ์คํ์ค์ธ ์ํ
- ์คํจ (Failed) : ํธ๋์ญ์
์ด ์คํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์ค๋จ๋ ์ํ
- ์ฒ ํ (Aborted) : ํธ๋์ญ์
์ด ๋น์ ์์ ์ผ๋ก ์ข
๋ฃ๋์ด Rollback ์ฐ์ฐ์ ์ํํ ์ํ
- ๋ถ๋ถ ์๋ฃ (Partially Commited) : ํธ๋์ญ์
์ ๋ง์ง๋ง ์ฐ์ฐ๊น์ง ์คํํ์ง๋ง, Commit ์ฐ์ฐ์ด ์คํ๋๊ธฐ ์ง์ ์ ์ํ
- ์๋ฃ (Commited) : ํธ๋์ญ์
์ด ์ฑ๊ณต์ ์ผ๋ก ์ข
๋ฃ๋์ด Commit ์ฐ์ฐ์ ์คํํ ํ์ ์ํ.