Transaction ์ด๋?
Transaction์ ์ฌ์ฉํ๋ ์ด์
ACID
Transaction ๊ฒฉ๋ฆฌ ์์ค & ๊ฒฉ๋ฆฌ ์์ค ์ค์ ์ ๋ฌธ์ ์
Transaction ๊ด๋ฆฌ๋ฅผ ์ํ DBMS์ ์ ๋ต
์ชผ๊ฐ์ง ์ ์๋ ์ ๋ฌด์ฒ๋ฆฌ์ ๋จ์
- ํธ๋์ญ์
์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์
๋ ผ๋ฆฌ์ ์ธ ์์ ์ ๋จ์
๋ผ๊ณ ํ ์ ์๊ณ , ํธ๋์ญ์ ์๋ ์ฌ๋ฌ๊ฐ์ ์ฐ์ฐ์ด ์ํ๋ ์ ์๋ค. - ํ๋์ ํธ๋์ญ์
์
Commit
,Rollback
๋๋ค.
- Commit
- ๋ชจ๋ ๋ถ๋ถ์์ ์ด ์ ์์ ์ผ๋ก ์๋ฃ๋๋ฉด ์ด ๋ณ๊ฒฝ์ฌํญ์ ํ๊บผ๋ฒ์ DB์ ๋ฐ์
- Rollback
- ๋ถ๋ถ ์์
์ด ์คํจํ๋ฉด ํธ๋์ญ์
์คํ ์ ์ผ๋ก ๋๋๋ฆฐ๋ค.
- ํ๋์ ํธ๋์ญ์ ์ฒ๋ฆฌ๊ฐ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ผ๊ด์ฑ์ ๊นจ๋จ๋ ธ์ ๋ ํธ๋์ญ์ ์ ์ผ๋ถ๊ฐ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๋์๋๋ผ๋ ํธ๋์ญ์ ์ ์์์ฑ์ ๊ตฌํํ๊ธฐ ์ํด ์ด ํธ๋์ญ์ ์ด ํํ ๋ชจ๋ ์ฐ์ฐ์ ์ทจ์ํ๋ค.
- SAVEPOINT
- ์ผ๋ฐ์ ์ผ๋ก rollback์ ๋ช ์ํ๋ฉด insert, delete, update ๋ฑ์ ์์ ์ ์ฒด๊ฐ ์ทจ์๋์ง๋ง saveporint๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฒด๊ฐ ์๋ ํน์ ๋ถ๋ถ์์ ํธ๋์ญ์ ์ ์ทจ์์ํฌ ์ ์๋ค.
- ์ทจ์ํ๋ ค๋ ์ง์ ์ savepoint๋ก ๋ช
์ํ ๋ค
rollback to savepoint ์ธ์ด๋ธํฌ์ธํธ๋ช ;
์ ํ๋ฉด savepoint ์ง์ ๊น์ง ์ฒ๋ฆฌํ ์์ ์ผ๋ก rollback๋๋ค.
- ๋ถ๋ถ ์์
์ด ์คํจํ๋ฉด ํธ๋์ญ์
์คํ ์ ์ผ๋ก ๋๋๋ฆฐ๋ค.
ํธ๋์ญ์ ์ ํ๋์ ๋ ผ๋ฆฌ์ ์ธ ์์ ๋จ์๋ก ์ฌ๋ฌ๊ฐ์ ์์ ์ ํ๋์ ๋ ผ๋ฆฌ์ ์ธ ๋จ์๋ก ๋ฌถ์ด์ ๋ฐ์๊ณผ ๋ณต๊ตฌ๋ฅผ ์กฐ์ ํ ์ ์๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ์ ๋ถ์ ํฉ์ด ์ผ์ด๋ฌ์ ๊ฒฝ์ฐ ๋กค๋ฐฑ์ ํ์ฌ ๋ฐ์ดํฐ์ ๋ถ์ ํฉ์ ๋ฐฉ์งํ ์ ์๋ค.
ATM์ผ๋ก ๊ณ์ข ์ด์ฒด๋ฅผ ํ๋ ์ํ์ผ๋ก ์์๋ฅผ ๋ค์ด๋ณด๋ฉด
1. A์ํ์์ ์ถ๊ธํ์ฌ B์ํ์ผ๋ก ์ก๊ธ
2-1/case1 ) ์ก๊ธ ๋์ค์ ์์คํ
๋ฐ ์๋ฒ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ A์ํ ๊ณ์ข์์
๋์ ๋น ์ ธ ๋๊ฐ์ง๋ง B์ํ์ ๊ณ์ข์ ์
๊ธ๋์ง ์์์
2-2/case2 ) ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๊ณ A, B ์ํ ๋ชจ๋ ์ฑ๊ณต์ ์ผ๋ก ๋์ํจ.(Commit)
3-1/case1 ) ์ด์ ๊ฐ์ ์ํฉ์ ๋ง๊ธฐ์ํด ๊ฑฐ๋๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ชจ๋ ๋๋์ผ ์ด๋ฅผ ์์ ํ
๊ฑฐ๋๋ก ์น์ธํ๊ณ , ๊ฑฐ๋ ๋์ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋์๋ ์ด ๊ฑฐ๋๋ฅผ ๋ฌดํจํ(Rollback)(๊ฑฐ๋ ์ด์ ์ํฉ์ผ๋ก)์ํด
๊ฑฐ๋์ ์์ ์ฑ์ ํ๋ณดํ๋ ๋ฐฉ๋ฒ => ํธ๋์ญ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ์จ ํ ๋ค๋ฅธ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๊ฑฐ๋ ๊ฐฑ์ , ์ญ์ ํ๋๋ฐ ์ฒ๋ฆฌ ๋์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์์ํ ๋ก ๋ณต๊ตฌํ๋ค.
ํธ๋์ญ์ ์ ํน์ง
- Atomicity-์์์ฑ
- ํธ๋์ญ์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ๋ฐ์๋๊ฑฐ๋ ์ ํ ๋ฐ์๋์ง ์์์ผ ํ๋ค.
- Consistency-์ผ๊ด์ฑ
- ํธ๋์ญ์ ์ ์์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ ํญ์ ์ผ๊ด์ฑ์ด ์์ด์ผ ํ๋ค.
- Isolation-๋
๋ฆฝ์ฑ
- ๋ ์ด์์ ํธ๋์ญ์ ์ด ๋์์ ๋ณํ ์คํ๋๊ณ ์์ ๋, ์ด๋ค ํธ๋์ญ์ ๋ ๋ค๋ฅธ ํธ๋์ญ์ ์ฐ์ฐ์ ๋ผ์ด๋ค ์ ์๋ค.
- Durability-์์์ฑ
- ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ ๋์๋ค๋ฉด ๊ฒฐ๊ณผ๋ ์๊ตฌ์ ์ผ๋ก ๋ฐ์๋์ด์ผํ๋ค.
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค์ ๋ฐ๋ผ ๋ฐ์ดํฐ ์กฐํ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์ ์๋ค. ๊ฒฉ๋ฆฌ ๋ ๋ฒจ์ ๋ฐ๋ผ์ ์ฝ๊ธฐ ์ผ๊ด์ฑ์ด ๋ฌ๋ผ์ง๋ค. ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค์ ๋ฐ๋ผ ๋ฐ์ดํฐ ์กฐํ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๊ฒ ํ๋ ๊ธฐ์ ์ MVCC(Multi Version Concurrency Consistency) ๋ผ๊ณ ํจ.
- Shared Lock(Read Lock)
๊ณต์ ๋ฝ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋ ์ฌ์ฉํ๋ lock์ด๋ค. read lock ๋ผ๋ฆฌ๋ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ํด์น์ง ์๊ธฐ ๋๋ฌธ์ ๋์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ์ฆ ๋ฆฌ์์ค๋ฅผ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋์์ ์ฝ์ ์ ์๊ฒ ํ์ง๋ง ๋ณ๊ฒฝ์ ๋ถ๊ฐ๋ฅํ๋ค. ๋ง์ฝ ํน์ ๋ฐ์ดํฐ์ exclusive lock์ด ๊ฑธ๋ฆฌ๋ฉด shared lock์ ๊ฑธ ์ ์์ง๋ง ์ฌ๋ฌ shared lock์ ๋์์ ์ ์ฉ๋ ์ ์๋ค.
- Exclusive lock(write lock)
๋ฒ ํ๋ฝ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉํ๋ lock์ด๋ค. ํ๋์ ํธ๋์ญ์ ์ด ์๋ฃ๋ ๋ ๊น์ง ์ ํจํ๋ฉฐ, ๋ฒ ํ๋ฝ์ด ๋๋ ๋ ๊น์ง ์ด๋ ํ ์ ๊ทผ๋ ํ์ฉ๋์ง ์๋๋ค. Exclusive lock์ด ๊ฑธ๋ฆฌ๋ฉด shared lock์ ๊ฑธ ์ ์๋ค. exclusive ์ํ์ ๋ฐ์ดํฐ์ ๋ํด ๋ค๋ฅธ ํธ๋์ญ์ ์ด exclusive lock์ ๊ฑธ ์ ์๋ค.
๊ฒฉ๋ฆฌ ์์ค ๋ ๋ฒจ
- READ UNCOMMITTED(lv.0) (์ปค๋ฐ๋์ง ์์ ์ฝ๊ธฐ)
- READ COMMITTED(lv.1) (์ปค๋ฐ๋ ์ฝ๊ธฐ)
- REAPEATABLE READ(lv.2) (๋ฐ๋ณต ๊ฐ๋ฅํ ์ฝ๊ธฐ)
- SERIALIZABLE(lv.3) (์ง๋ ฌํ ๊ฐ๋ฅ)
- select ๋ฌธ์ฅ์ด ์ํ๋๋ ๋์ ํด๋น ๋ฐ์ดํฐ์ shared lock ์ด ๊ฑธ๋ฆฌ์ง ์๋ ๊ณ์ธต
- ํธ๋์ญ์ ์ ์ฒ๋ฆฌ์ค์ด๊ฑฐ๋, ์์ง commit๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ์ฝ๋ ๊ฒ์ ํ์ฉ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํจ
- dirty read ๋ฐ์
dirty read ๋ฐ์
1. ํธ๋์ญ์
1์ ์์ํ๋ค.
2. ํธ๋์ญ์
2๋ฅผ ์์ํ๋ค.
3. ํธ๋์ญ์
1์ด ID = 1, VAL = 'MIN'์ธ ๋ฐ์ดํฐ์ VAL์ KIM์ผ๋ก ๋ณ๊ฒฝํ๋ค.
4. ํธ๋์ญ์
2๊ฐ ID = 1์ ์กฐํํ๋ค. VAL = 'KIM'์ด ์กฐํ๋์๋ค.
5. ํธ๋์ญ์
1, 2๊ฐ ์ข
๋ฃ๋๋ค.
- select ๋ฌธ์ฅ์ด ์ํ๋๋ ๋์ ํด๋น ๋ฐ์ดํฐ์ shared lock์ด ๊ฑธ๋ฆฌ๋ ๊ณ์ธต
- ํธ๋์ญ์ ์ด ์ํ๋๋ ๋์ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ์ ๊ทผํ ์ ์์ด ๋๊ธฐํ๋ค.
- dirty read ๋ฐฉ์ง
- ํธ๋์ญ์ ์ด ์ปค๋ฐ๋์ด ํ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๊ฒ์ ํ์ฉํ๋ค.
- ๋๋ถ๋ถ์ DBMS๊ฐ ๊ธฐ๋ณธ์ผ๋ก ์ฑํํ๊ณ ์๋ ๊ฒฉ๋ฆฌ์์ค์ด๋ค.
- Commit๋ ์ ๋ณด๋ง ์ฝ๋๋ค.
- Non-Repeatable Read ๋ฐ์
Non-repeatable read ex / ๋์ด๊ฐ ๋ฐ๋์ด์ ์ถ๋ ฅ์ด๋๋ฉด ์๋๋ ์ํฉ์.
1. ํธ๋์ญ์
1 ์์
2. ํธ๋์ญ์
1์ด id=1์ธ ๋ฐ์ดํฐ์ value๋ฅผ kim์ผ๋ก ๋ณ๊ฒฝ
3. ํธ๋์ญ์
2๊ฐ ์์
4. ํธ๋์ญ์
2๊ฐ id=1์ธ ๋ฐ์ดํฐ๋ฅผ ์กฐํ. min์ด ๊ฒ์๋๋ค.
5. ํธ๋์ญ์
1์ด ์ปค๋ฐํ๊ณ ์ข
๋ฃํ๋ค.
6. ํธ๋์ญ์
2๊ฐ id=1์ธ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ค. kim์ด ๊ฒ์๋๋ค.
7. ํธ๋์ญ์
2๊ฐ ์ปค๋ฐ์ ํ๊ณ ์ข
๋ฃํ๋ค.
- ํธ๋์ญ์ ์ด ์๋ฃ๋ ๋๊น์ง select ๋ฌธ์ฅ์ด ์ฌ์ฉ๋๋ ๋ชจ๋ ๋ฐ์ดํฐ์ shared lock์ด ๊ฑธ๋ฆฌ๋ ๊ณ์ธต
- ํธ๋์ญ์ ์ด ๋ฒ์ ๋ด์์ ์กฐํํ ๋ฐ์ดํฐ ๋ด์ฉ์ด ํญ์ ๋์ผํจ์ ๋ณด์ฅ
๋ค๋ฅธ ์ฌ์ฉ์๋ ํธ๋์ญ์ ์์ญ์ ํด๋น๋๋ ๋ฐ์ดํฐ์ ๋ํ ์์ ๋ถ๊ฐ๋ฅ
-> ์ ๋ ฅ์ ๊ฐ๋ฅ- MySQL DBMS์์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ค.
- Non-Repeatable read ๋ถ์ ํฉ ๋ฐ์ํ์ง ์๋๋ค.
Non-Repeatable Read
1. ํธ๋์ญ์
1์ ์์
2. ํธ๋์ญ์
1์ด id=1์ธ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ค.
3. ํธ๋์ญ์
2๊ฐ ์์๋์๋ค.
4. ํธ๋์ญ์
2๊ฐ id=1์ธ ๋ฐ์ดํฐ๋ฅผ kim์ผ๋ก ๋ณ๊ฒฝํ๋ค.
5. ํธ๋์ญ์
1์ด id=1์ธ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ค. ํธ๋์ญ์
2์ ๋ณ๊ฒฝ ๋ด์ญ์ด ๋ณด์ด์ง ์๋๋ค.
6. ํธ๋์ญ์
2๊ฐ id=2์ธ ๋ฐ์ดํฐ๋ฅผ ์ฝ์
ํ commitํ์ฌ ํธ๋์ญ์
์ ์ข
๋ฃํ๋ค.
7. ํธ๋์ญ์
1์ด id=2์ธ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ค. ๋ฐ์ดํฐ๊ฐ ์ ์์ ์ผ๋ก ํ์ธ๋๋ค.
- ํธ๋์ญ์ ์ด ์๋ฃ๋ ๋๊น์ง select ๋ฌธ์ฅ์ด ์ฌ์ฉ๋๋ ๋ชจ๋ ๋ฐ์ดํฐ์ shared lock์ด ๊ฑธ๋ฆฌ๋ ๊ณ์ธต
- ๊ฐ์ฅ ์๊ฒฉํ ๊ฒฉ๋ฆฌ ์์ค์ผ๋ก ์๋ฒฝํ ์ฝ๊ธฐ ์ผ๊ด์ฑ ๋ชจ๋๋ฅผ ์ ๊ณตํจ
๋ค๋ฅธ ์ฌ์ฉ์๋ ํธ๋์ญ์ ์์ญ์ ํด๋น๋๋ ๋ฐ์ดํฐ์ ๋ํ ์์ ๋ฐ ์ ๋ ฅ ๋ถ๊ฐ๋ฅ
MySQL : Repeatable Read Oracle : Read Committed
๊ฒฐ๋ก ์ ๋ ๋ฒจ์ด ๋์์ง์๋ก ํธ๋์ญ์ ๊ฐ ๊ณ ๋ฆฝ์ ๋๊ฐ ๋์์ง๋ฉฐ, ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ฉฐ, ์ผ๋ฐ์ ์ธ ์จ๋ผ์ธ ์๋น์ค์์๋ READ COMIITTED๋ REPEATABLE READ ์ค์ ํ๋๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
Isolation level(๊ฒฉ๋ฆฌ ์์ค ๋ ๋ฒจ)์ ๋ํ ์กฐ์ ์ ๋์์ฑ๊ณผ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ฐ๊ด๋์ด์๋ค.
๋์์ฑ์ ์ฆ๊ฐ์ํค๋ฉด ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ , ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๋ฉด ๋์์ฑ์ด ๋จ์ด์ง๊ฒ ๋๋ค.
๋ ๋ฒจ์ด ๋ฎ์์ง์๋ก ๋์์ฑ์ ๋์์ง๊ณ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ฎ์์ง๋ค. ๋ ๋ฒจ์ด ๋์์ง์๋ก ๋์์ฑ์ ๋ฎ์์ง๊ณ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋์์ง๋ค.
- Dirty Read
- ์ด๋ค ํธ๋์ญ์ ์์ ์์ง ์คํ์ด ๋๋์ง ์์ ๋ค๋ฅธ ํธ๋์ญ์ ์ ์ํ ๋ณ๊ฒฝ์ฌํญ์ ๋ณด๊ฒ๋๋ ๊ฒฝ์ฐ
- ์ปค๋ฐ๋์ง ์์ ์์ ์ค์ธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ํธ๋์ญ์ ์์ ์ฝ์ ์ ์๋๋ก ํ์ฉํ ๋ ๋ฐ์ํ๋ ํ์
- Non_repeatable Read
- ํ ํธ๋์ญ์ ์์ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฒ ์ํํ ๋ ๊ทธ ์ฌ์ด์ ๋ค๋ฅธ ํธ๋์ญ์ ๊ฐ์ ์์ ๋๋ ์ญ์ ํจ๋ ์ ๋ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ ์์ดํ๊ฒ ๋ํ๋๋ ์ผ๊ด์ฑ์ด ๊นจ์ง ํ์
- ํ ํธ๋์ญ์ ์์ ๋๊ฐ์ select๋ฅผ ์ํํ์ ๋ ํญ์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํด์ผ ํ๋ค๋ repeatable read ์ ํฉ์ฑ์ ์ด๊ธ๋จ
- Phantom Read
- ํ ํธ๋์ญ์ ์์์ ์ผ์ ๋ฒ์์ ๋ ์ฝ๋๋ฅผ ๋ ๋ฒ ์ด์ ์ฝ์์ ๋, ์ฒซ ๋ฒ์งธ ์ฟผ๋ฆฌ์์ ์๋ ๋ ์ฝ๋๊ฐ ๋ ๋ฒ์งธ ์ฟผ๋ฆฌ์์ ๋ํ๋๋ ํ์
- ํธ๋์ญ์ ๋์ค ์๋ก์ด ๋ ์ฝ๋๋ฅผ ์ฝ์ ์ ํ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ํ๋จ
์ดํด๊ฐ ํ์ํ ๊ฐ๋
DBMS์ ๊ตฌ์กฐ
Buffer ๊ด๋ฆฌ ์ ์ฑ
DBMS ๊ตฌ์ฑ์์ :Query Processor (์ง์ ์ฒ๋ฆฌ๊ธฐ), Storage System(์ ์ฅ ์์คํ )
์ ์ถ๋ ฅ ๋จ์ :๊ณ ์ ๊ธธ์ด์ page ๋จ์๋ก disk์ ์ฝ๊ฑฐ๋ ์
์ ์ฅ ๊ณต๊ฐ : ๋นํ๋ฐ์ฑ ์ ์ฅ ์ฅ์น์ธ disk์ ์ ์ฅ, ์ผ๋ถ๋ถ์ main memory์ ์ ์ฅ
DBMS์ storage system์ ์ํ๋ ๋ชจ๋ ์ค ํ๋๋ก, main memory์ ์ ์งํ๋ ํ์ด์ง๋ฅผ ๊ด๋ฆฌํ๋ ๋ชจ๋
Buffer ๊ด๋ฆฌ ์ ์ฑ ์ ๋ฐ๋ผ undo ๋ณต๊ตฌ์ redo ๋ณต๊ตฌ๊ฐ ์๊ตฌ๋๊ฑฐ๋ ๊ทธ๋ ์ง ์๊ฒ ๋๋ฏ๋ก transaction ๊ด๋ฆฌ์ ๋งค์ฐ ์ค์ํ ๊ฒฐ์ ์ ๊ฐ์ ธ์จ๋ค.
ํ์ํ ์ด์ : ์์ ๋ page๋ค์ด buffer ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ์ ๋์คํฌ์ ์ถ๋ ฅ๋ ์ ์์. Buffer ๊ต์ฒด๋ transaction๊ณผ๋ ๋ฌด๊ดํ๊ฒ buffer์ ์ํ์ ๋ฐ๋ผ์ ๊ฒฐ์ ๋๋ค. ์ด๋ก ์ธํด์ ์ ์์ ์ผ๋ก ์ข ๋ฃ๋์ง ์์ transaction์ด ๋ณ๊ฒฝํ page๋ค์ ์์ ๋ณต๊ตฌ ๋์ด์ผ ํ๋๋ฐ, ์ด๋ฅผ undo๋ผ๊ณ ํ๋ค.
- steal : ์์ ๋ ํ์ด์ง๋ฅผ ์ธ์ ๋ ์ง ๋์คํฌ์ ์ธ ์ ์๋ ์ ์ฑ
- ๋๋ถ๋ถ์ dbms๊ฐ ์ฑํํ๋ buffer ๊ด๋ฆฌ ์ ์ฑ
- undo logging๊ณผ ๋ณต๊ตฌ๋ฅผ ํ์๋ก ํจ.
- not steal : ์์ ๋ ํ์ด์ง๋ค์ EOT (End Of Transaction)๊น์ง๋ ๋ฒํผ์ ์ ์งํ๋ ์ ์ฑ
- undo ์์ ์ด ํ์ํ์ง ์์ง๋ง, ๋งค์ฐ ํฐ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ๊ฐ ํ์ํจ
์ด๋ฏธ commitํ transaction์ ์์ ์ ์ฌ๋ฐ์ํ๋ ๋ณต๊ตฌ ์์
buffer๊ด๋ฆฌ ์ ์ฑ ์ ์ํฅ์ ๋ฐ๋๋ค. โ transaction์ด ์ข ๋ฃ๋๋ ์์ ์ ํด๋น transaction์ด ์์ ํ page๋ฅผ ๋์คํฌ์ ์ธ ๊ฒ์ธ๊ฐ ์๋๊ฐ๋ก ๊ธฐ์ค
- FORCE : ์์ ํ๋ ๋ชจ๋ ํ์ด์ง๋ฅผ Transaction commit ์์ ์ disk์ ๋ฐ์
- transaction์ด commit ๋์์ ๋ ์์ ๋ ํ์ด์ง๋ค์ด disk ์์ ๋ฐ์๋๋ฏ๋ก redo ํ์ ์์
- not FORCE :commit ์์ ์ ๋ฐ์ํ์ง ์๋ ์ ์ฑ
- transaction์ด disk ์์ db์ ๋ฐ์๋์ง ์์ ์ ์๊ธฐ์ redo ๋ณต๊ตฌ๊ฐ ํ์(๋๋ถ๋ถ์ dbms์ ์ฑ )
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค์ ๋ฌด์์ธ๊ฐ์? ๊ฒฉ๋ฆฌ ์์ค์ ์ข ๋ฅ๋ฅผ ์ค๋ช ํด์ฃผ์ธ์
๊ฒฉ๋ฆฌ ์์ค์ ์ข ๋ฅ์ ๋ฐ๋ฅธ ์ค๋ฅ๋ฅผ ๋งํ๊ณ ์ค๋ฅ๋ฅผ ์ค๋ช ํ์์ค
Transaction์ ๋ฌด์์ธ๊ฐ์?
Transaction์ ํน์ฑ์ด ์๋๋ฐ ๊ฐ๊ฐ์ ์ค๋ช ํด์ฃผ์ธ์.