Commit, Rollback, Auto Commit
Commit
- Commit ์ฐ์ฐ์ ํธ๋์ญ์
์ฒ๋ฆฌ๊ฐ ์ ์์ ์ผ๋ก ์ข
๋ฃ๋์ด ํธ๋์ญ์
์ด ์ํํ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ํ๋ ์ฐ์ฐ์ด๋ค. ์ด๊ฒ์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ผ๊ด์ฑ์๋ ์ํ๊ฐ ๋๋ค.
- ๋ด์ฉ์ ๋ณ๊ฒฝํ ํธ๋์ญ์
์ด ์๋ฃ๋๋ฉด ๊ทธ ํธ๋์ญ์
์ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์๋กญ๊ฒ ์ผ๊ด๋ ์ํ๋ก ๋ณ๊ฒฝ๋๋ฉฐ, ์ด ์ํ๋ ์์คํ
์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ทจ์๋์ง ์๋๋ค.
Rollback
- Rollback ์ฐ์ฐ์ ํ๋์ ํธ๋์ญ์
์ฒ๋ฆฌ๊ฐ ๋น์ ์์ ์ผ๋ก ์ข
๋ฃ๋์ด ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ด ๊นจ์ก์ ๋, ํธ๋์ญ์
์ด ํํ ๋ชจ๋ ๋ณ๊ฒฝ์์
์ ์ทจ์ํ๊ณ ์ด์ ์ํ๋ก ๋๋๋ฆฌ๋ ์ฐ์ฐ์ด๋ค.
- Rollback ์ฐ์ฐ ์ ํด๋น ํธ๋์ญ์
์ ๋ฐ์๋ ์์๊ณผ ์ ๊ธ์ ๋ชจ๋ ๋ฐํํ๊ณ ์ฌ์์๋๊ฑฐ๋ ํ๊ธฐ๋๋ค.
Auto Commit
- AutoCommit์ด๋ ์ฌ์ฉ์๊ฐ Commit ๋ช
๋ น์ ๋ฐ๋ก ํ์ง ์์๋ ์๋์ผ๋ก ๋ชจ๋ ๋ช
๋ น์ Commit๋์ด ์ฆ์ ๋ฐ์๋๋ ๋ช
๋ น์ด์ด๋ค.
- ์ฃผ์ํด์ผ ํ๋ ์ด์ ๋ AutoCommit์ ํ์ฑํ ํด ๋์ ํ์ DB๋ฅผ ์ฌ์ฉํ์ ๊ฒฝ์ฐ, ์ค์๋ฅผ ํ๋๋ผ๋ ๊ณง๋ฐ๋ก ์ฆ์ ๋ฐ์์ด ๋๋ค.
- Commit์ด ๋ ํธ๋์ญ์
์ RollBack์ด ๋ถ๊ฐ๋ฅํ๋ค.
ํธ๋์ญ์
(Transaction)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋
ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์
์ ๋จ์์ด๋ค.
- ์ํ๋ฅผ ๋ณํํ๋ค๋ ๊ฒ์ SQL ์ง์์ด๋ฅผ ํตํด DB์ ์ ๊ทผํ๋ ๊ฒ์ด๋ค.
- ์์
๋จ์๋ ์ฌ๋์ด ์ ํ๋ ๊ธฐ์ค์ ๋ฐ๋ผ ํ๊บผ๋ฒ์ ๋ชจ๋ ์ํ๋์ด์ผ ํ๋ ์ฐ์ฐ์ ๋ปํ๋ค.
์์์ฑ(Atomicity)
- ํธ๋์ญ์
๋ด์ ๋ชจ๋ ๋ช
๋ น์ ๋ฐ๋์ ์๋ฒฝํ๊ฒ ์ํ๋์ด์ผ ํ๋ฉฐ ์ด๋ ํ๋๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ํธ๋์ญ์
์ ๋ถ๊ฐ ์ทจ์๋์ด์ผ ํ๋ค.
- ํธ๋์ญ์
์ ์ฐ์ฐ์ ๋ชจ๋ ๋ฐ์๋๊ธฐ ์ํด Commit์ ์ฌ์ฉํ๊ณ ์ ๋ถ ๋ฐ์ํ์ง ์๊ธฐ ์ํด์ Rollback์ ์ฌ์ฉํด์ผ ํ๋ค.
์ผ๊ด์ฑ(Consistency)
- ํธ๋์ญ์
์ ์์
์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ ํญ์ ์ผ๊ด์ฑ์ด ์์ด์ผ ํ๋ค.
๋
๋ฆฝ์ฑ(Isolation)
- ์ํ ์ค์ธ ํธ๋์ญ์
์ ์์ ํ ์๋ฃ๋ ๋ ๊น์ง ๋ค๋ฅธ ํธ๋์ญ์
์์์ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ์กฐํ ์ ์๋ค.
์์์ฑ(Durability)
- ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ํธ๋์ญ์
์ ๊ฒฐ๊ณผ๋ ์์คํ
์ด ๊ณ ์ฅ๋๋๋ผ๋ ์๊ตฌ์ ์ผ๋ก ๋ฐ์๋์ด์ผ ํ๋ค.
ํธ๋์ญ์
๊ณ ๋ฆฝ ์์ค
ํธ๋์ญ์
๊ณ ๋ฆฝ ์์ค์ ํธ๋์ญ์
๋ค๋ผ๋ฆฌ ์ผ๊ด์ฑ์๋ ๋ฐ์ดํฐ๋ฅผ ์ผ๋ง๋ ํ์ฉํ ๊ฒ์ธ์ง ์ ํด๋์ ์์ค์ด๋ค.
๊ณ ๋ฆฝ ์์ค์ด ๋์์๋ก ์ผ๊ด์ฑ์ ๋ณด์ฅ๋์ง๋ง ๊ทธ ๋งํผ ๋์์ฑ์ด ๋จ์ด์ ธ ์ฑ๋ฅ์ด ํ๋ฝํ๋ค.
์ด์ ํ์ ์ข
๋ฅ
- Dirty Read : ์ด๋ค ํธ๋์ญ์
์์ ์์ง ์คํ์ด ๋๋์ง ์์ ํธ๋์ญ์
์ ์ํ ๋ณ๊ฒฝ์ฌํญ์ ๋ณด๊ฒ๋๋ ๊ฒฝ์ฐ
- Non Repeatable Read : ์ด๋ค ํธ๋์ญ์
์ด ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ 2๋ฒ ์คํํ๋๋ฐ ๊ทธ ์ฌ์ด์ ๋ค๋ฅธ ํธ๋์ญ์
์ด ์์ , ์ญ์ ํ๋ ๊ฒฝ์ฐ
- Phantom Read : ์ด๋ค ํธ๋์ญ์
์ด ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ 2๋ฒ ์คํํ๋๋ฐ ๊ทธ ์ฌ์ด์ ์๋ ๋ ์ฝ๋๊ฐ ์ถ๊ฐ๋ ๊ฒฝ์ฐ
READ UNCOMMITTIED
- ํธ๋์ญ์
์ํ ์ค์ด๊ฑฐ๋ ์์ง commit ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ํธ๋์ญ์
์์ Read ํ๋ ๊ฒ์ ํ์ฉํ๋ค.
- ์ ํฉ์ฑ์ ๋ฌธ์ ๊ฐ ๋ง์ ๊ฒฉ๋ฆฌ ์์ค์ผ๋ก ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
- ์ด์ ํ์ ์ค Dirty Read, Non Repeatable Read, Phantom Read ๋ฐ์์ด ๊ฐ๋ฅํ๋ค.
READ COMMITTED
- ํธ๋์ญ์
์ํ์ด ์๋ฃ๋๊ณ commit ๋ ๋ฐ์ดํฐ๋ง ๋ค๋ฅธ ํธ๋์ญ์
์์ Read ํ๋๋ก ํ์ฉํ๋ค.
- ํ ํธ๋์ญ์
๋ด์์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฝ์ด๋ ํธ๋์ญ์
์ด ์ข
๋ฃ๋๋ ๋์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ์ ์๋ค.
- ์ผ๋ฐ์ ์ผ๋ก DBMS์์ Default๋ก ์ค์ ํ๋ ๋ ๋ฒจ์ด๋ค.
- ์ด์ ํ์ ์ค Non Repeatable Read, Phantom Read์ด ๋ฐ์ ๊ฐ๋ฅํ๋ค.
REPEATABLE READ
- ๊ฐ์ ํธ๋์ญ์
๋ด์์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณตํด์ ์ฝ๋๋ผ๋ ๋ฐ์ดํฐ๋ ๋ณํ์ง ์๋๋ค.
- ํน์ ํธ๋์ญ์
์์ ์ฝ๊ณ ์๋ ๋ฐ์ดํฐ๋ ๋ค๋ฅธ ํธ๋์ญ์
์์ ์์ , ์ญ์ ๊ฐ ๋ถ๊ฐ๋ฅํ์ง๋ง ์ฝ์
์ ๊ฐ๋ฅํ๋ค.
- ์ด์ ํ์ ์ค Phantom Read ๋ฐ์์ด ๊ฐ๋ฅํ๋ค.
SERIALIZABLE
- ๋์์ ์คํ๋๋ ์ฌ๋ฌ ํธ๋์ญ์
๋ค ๊ฐ์ ์ํธ์์ฉ์ด ์ผ์ด๋์ง ์๋๋ค.
- ํน์ ํธ๋์ญ์
์์ ์ฝ๊ณ ์๋ ๋ฐ์ดํฐ๋ ๋ค๋ฅธ ํธ๋์ญ์
์์ ์์ , ์ญ์ , ์ฝ์
๋ชจ๋ ๋ถ๊ฐ๋ฅํ๋ค.
- ๋ชจ๋ ์ด์ ํ์์ ๋ฐฉ์ง ๊ฐ๋ฅํ์ง๋ง ๊ทธ๋งํผ ๋์์ฑ์ด ๋จ์ด์ ธ ์ฑ๋ฅ์ด ํ๋ฝํ๋ค.
DB ๊ฐฑ์ ์์ค ๋ฌธ์
- ๊ฐฑ์ ์์ค(lost update)๋ ๋์์ฑ ๋ฌธ์ ์ ์์ธ ์ค ํ๋์ด๋ค. ๋ ๊ฐ์ ํธ๋์ญ์
์ด ํ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ๊ฐฑ์ (update)ํ ๋ ๋ฐ์ํ๋ค. ๋์์ฑ์ ์ ์ดํ๊ธฐ ์ํด Lock์ ํ์ฉํ๋ค. ์ฌ๊ธฐ์ ๋์์ฑ ์ ์ด๋ ํธ๋์ญ์
์ด ๋์์ ์คํ๋ ๋, ์ผ๊ด์ฑ์ ํด์น์ง ์๋๋ก ํธ๋์ญ์
์ ๋ฐ์ดํฐ ์ ๊ทผ์ ์ ์ดํ๋ DBMS์ ๊ธฐ๋ฅ์ด๋ค.
DB Lock
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ๋ฌ ์ฌ์ฉ์๋ค์ด ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ์ ๊ทผํด์ผ ํ๋ ์ํฉ์์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์งํค๊ณ ๋์์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด Lock์ ์ฌ์ฉํ๋ค.
๋๊ด์ ์ ๊ธ(Optimisstic Lock)
- ๋ฐ์ดํฐ ๊ฐฑ์ ์ ๊ฒฝํฉ์ด ๋ฐ์ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋๊ด์ ์ผ๋ก ๋ฐ๋ผ๋ณด๋ ๊ฒ์ด๋ค. ์์์ ๋ฝ์ ๊ฑธ์ด ์ ์ ํ์ง ์๊ณ ์ปค๋ฐํ ๋ ๋์์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๊ทธ๋ ์ฒ๋ฆฌํ์๋ ๋ฐฉ๋ฒ๋ก ์ด๋ค.
- ์ผ๋ฐ์ ์ผ๋ก version์ ์ํ๋ฅผ ๋ณด๊ณ ์ถฉ๋์ ํ์ธํ๋ฉฐ, ์ถฉ๋์ด ํ์ธ๋ ๊ฒฝ์ฐ ๋กค๋ฐฑ์ ์งํํ๋ค.
- DB๋จ์์ ๋์์ฑ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์๋ ์ ํ๋ฆฌ์ผ์ด์
๋จ์์ ์ฒ๋ฆฌํ๋ค.
- ๋๊ด์ ์ ๊ธ์ ๋์ ์
๋ฐ์ดํธ๊ฐ ๊ฑฐ์ ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ฉด ์ข๋ค.
๋น๊ด์ ์ ๊ธ(Pessimistic Lock)
- ๋น๊ด์ ๋ฝ์ ์์ ๊ฒฝ์์ ๋น๊ด์ ์ผ๋ก ๋ฐ๋ผ๋ณด๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ ํธ๋์ญ์
์ด ๋์์ ์์ ํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๋ ๊ธฐ๋ฒ์ด๋ค.
- ๊ทธ๋์ ํ๋์ ํธ๋์ญ์
์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ์์ ์์ Lock์ ๊ฑธ๊ณ ์กฐํ ๋๋ ์
๋ฐ์ดํธ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋ ๋๊น์ง ์ ์งํ๋ค.
Inno DB ์คํ ๋ฆฌ์ง ์์ง Lock ์ข
๋ฅ
๊ณต์ ๋ฝ(Shared Lock)
- ๊ณต์ ๋ฝ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๋ ์ฝ๊ธฐ ๋ช
๋ น์ ๋ํด ์ฃผ์ด์ง๋ ๋ฝ์ผ๋ก Read Lock์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ, S๋ก ํ๊ธฐํ๋ค.
- ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์๋ ์๋ฌด๋ฐ ์ํฅ์ ์ฃผ์ง ์๊ธฐ ๋๋ฌธ์, ๊ณต์ ๋ฝ๋ผ๋ฆฌ๋ ๋์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
- ๊ณต์ ๋ฝ์ด ๊ฑธ๋ ค์๋ row์ ๋ค๋ฅธ ํธ๋์ญ์
์ด S Lock(๊ณต์ ๋ฝ)์ ๊ฑธ ์ ์์ง๋ง X Lock(๋ฒ ํ ๋ฝ)์ ๊ฑธ ์ ์๋ค.
๋ฒ ํ ๋ฝ(Exclusive Lock)
- ๋ฒ ํ ๋ฝ์ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ ๊ฐํ๋ ๋ช
๋ น๋ค์ ๋ํด ์ฃผ์ด์ง๋ ๋ฝ์ผ๋ก Write Lock์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ, X๋ก ํ๊ธฐํ๋ค.
- ๋ฒ ํ ๋ฝ์ ๋ค๋ฅธ ์ธ์
์ด ํด๋น ์์์ ์ ๊ทผํ๋ ๊ฒ์ ๋ง๋๋ค. ๋ฒ ํ ๋ฝ์ ํธ๋์ญ์
๋์ ์ ์ง๋๋ค. ๋ฉํฐ ์ค๋ ๋ฉ ํ๊ฒฝ์์ ์๊ณ ์์ญ์ ์์ ํ๊ฒ ๊ด๋ฆฌํ๊ธฐ ์ํด ํ์ฉํ ๋ฎคํ
์ค์ ์ ์ฌํ๋ค.
- X Lock(๋ฒ ํ ๋ฝ)์ด ๊ฑธ๋ ค์์ผ๋ฉด ๋ค๋ฅธ ํธ๋์ญ์
์ S Lock(๊ณต์ ๋ฝ), X Lock ๋ ๋ค ๊ฑธ ์ ์๋ค.
๋ ์ฝ๋ ๋ฝ(Record Lock)
- InnoDB์์ Record Lock์ ์ค์ ํ
์ด๋ธ์ Record๊ฐ ์๋ DB Index Record์ ๊ฑธ๋ฆฌ๋ Lock์ด๋ค.
- ํ
์ด๋ธ์ Index๊ฐ ์๋ค๋ฉด ์จ๊ฒจ์ ธ ์๋ Clusterd Index๋ฅผ ์ฌ์ฉํ์ฌ record๋ฅผ ์ ๊ทผ๋ค.
๊ฐญ ๋ฝ(Gap Lock)
- Index Record๊ฐ ์๋ ๋ถ๋ถ์ ๊ฑธ๋ฆฌ๋ Lock์ด๋ค. Index Record์ ์ธ์ ํ ์, ๋ค ์ฌ์ด ๊ณต๊ฐ์ Lock์ ๊ฑฐ๋ ๊ฒ์ธ๋ฐ, ๋จ๋
์ผ๋ก ์ฌ์ฉ๋์ง ์๊ณ ๋ฅ์คํธ ํค ๋ฝ์์ ์ฌ์ฉ๋๋ค.
- ์กฐ๊ฑด์ ํด๋นํ๋ ์๋ก์ด Row๊ฐ ์ถ๊ฐ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํ ๊ฒ์ด๋ค.
๋ฅ์คํธ ํค ๋ฝ(Next key lock)
- ๋ ์ฝ๋ ๋ฝ๊ณผ ๊ฐญ ๋ฝ์ ํฉ์ณ๋์ ๊ฒ์ด๋ค. Index Record๋ ์ ๊ทธ๊ณ ๊ทธ Index Record ์, ๋ค ๊ฐญ๋ ์ ๊ทผ๋ค.
DB ๋ฐ๋๋ฝ
- ๋ฐ๋๋ฝ์ ๋ ๊ฐ ์ด์์ ํธ๋์ญ์
์ด ๊ฐ๊ฐ ์์ ์ ๋ฐ์ดํฐ์ ๋ํด์ ๋ฝ์ ํ๋ํ๊ณ ์๋๋ฐฉ ๋ฐ์ดํฐ์ ๋ํด์ ๋ฝ์ ์์ฒญํ๋ฉด ๋ฌดํ ๋๊ธฐ ์ํ์ ๋น ์ง ์ ์๋ ํ์์ด๋ค. ์ด์์ฒด์ ์ ๋ฐ๋๋ฝ๊ณผ ์ ์ฌํ๋ค.
- ํด๊ฒฐ ๋ฐฉ์์ผ๋ก๋ ํธ๋์ญ์
์งํ๋ฐฉํฅ์ ๊ฐ์ ๋ฐฉํฅ์ผ๋ก ์ฒ๋ฆฌํ๊ฑฐ๋ ํธ๋์ญ์
์ฒ๋ฆฌ ์๋๋ฅผ ์ต์ํ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ LOCK TIMEOUT์ ์ด์ฉํ์ฌ ์ ๊ธํด์ ์๊ฐ์ ์กฐ์ ํ๋ค.
DB ํ๋ณต
- ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ฅ์ ๊ฐ ๋ฐ์ํ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ผ๊ด์ฑ์๋ ์ํ๋ก ๋๋๋ฆฌ๋ DBMS์ ๊ธฐ๋ฅ์ด๋ค. ์ฅ์ ์ ์ ํ์ผ๋ก๋ ํธ๋์ญ์
์ฅ์ , ์์คํ
์ฅ์ , ๋ฏธ๋์ด ์ฅ์ ๋ฑ์ด ์๋ค.
- ํ๋ณต ๊ธฐ๋ฒ์ ๋ก๊ทธ ํ์ผ์ ์ด์ฉํ ํ๋ณต, ์ฒดํฌํฌ์ธํธ๋ฅผ ์ด์ฉํ ํ๋ณต์ด ์๋ค.
๋ก๊ทธ ํ์ผ
- ๋ก๊ทธ ํ์ผ์ ํธ๋์ญ์
์ด ๋ฐ์ํ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋กํ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ๊ธฐ๋กํด๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ค. ์์ ํ ํ๋๋์คํฌ์ ์ ์ฅ๋๋ฉฐ ์ ์๊ณผ ๊ด๊ณ์์ด ๊ธฐ๋ก์ด ์กด์ฌํ๋ค.
๋ก๊ทธ ํ์ผ์ ์ด์ฉํ ํ๋ณต
- ๋ก๊ทธ ํ์ผ์ ์ด์ฉํ ํ๋ณต์ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ๊ธฐ๋ก์ ์ ์ฅํด ๋ ๋ก๊ทธ ํ์ผ์ ์ด์ฉํด ์์คํ
์ฅ์ ๋ฅผ ๋ณต๊ตฌํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
- ๋ก๊ทธ ํ์ผ์ ํ๋ณต ๋ฐฉ๋ฒ์ผ๋ก ์ฆ์ ๊ฐฑ์ (Immediate Update)๊ณผ ์ง์ฐ ๊ฐฑ์ (Deferred Update)์ด ์๋ค.
- ์ฆ์ ๊ฐฑ์ ์ ๊ฐฑ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํ๋ ์์
๊ณผ ๋ฒํผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฎ๊ธฐ๋ ์์
์ด ๋์์ ์งํ๋ ์ ์๋ค.
- ์ง์ฐ ๊ฐฑ์ ์ ๊ฐฑ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ก๊ทธ์ ๊ธฐ๋กํ๋ ์์
์ด ๋๋ ํ์ ๋ฒํผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฎ๊ธฐ๋ ๊ณผ์ ์ ์งํํ ์ ์๋ค.
REDO, UNDO
- DBMS๋ ํธ๋์ญ์
์ด ์ข
๋ฃ๋์๋์ง ์ค๋จ๋์๋์ง ์ฌ๋ถ๋ฅผ ํ๋จํ์ฌ ์ข
๋ฃ๋ ๊ฒฝ์ฐ์๋ ์ข
๋ฃ๋ฅผ ํ์ ํ๊ธฐ ์ํด REDO(์ฌ์คํ)์ ํ๊ณ ์ค๋จ๋ ๊ฒฝ์ฐ์๋ ์๋ ์ผ๋ก ๋๋๋ฆฌ๊ธฐ ์ํด UNDO(์ทจ์)๋ฅผ ์งํํ๋ค.
- REDO๋ ์ฅ์ ๊ฐ ๋ฐ์ํ ํ ์์คํ
์ ๋ค์ ๊ฐ๋ํ์ ๋, ๋ก๊ทธ ํ์ผ์ ํธ๋์ญ์
์ ์์(START)์ด ์๊ณ ์ข
๋ฃ(COMMIT)์ด ์๋ ๊ฒฝ์ฐ, ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ปค๋ฐ๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ฌ์คํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต๊ตฌํ ์ ์๋ค.
- UNDO๋ ์ฅ์ ๊ฐ ๋ฐ์ํ ํ ์์คํ
์ ๋ค์ ๊ฐ๋ํ์ ๋, ๋ก๊ทธ ํ์ผ์ ํธ๋์ญ์
์ ์์(START)๋ง ์๊ณ ์ข
๋ฃ(COMMIT)์ด ์๋ ๊ฒฝ์ฐ, ์๋ฃํ์ง ๋ชปํ์ง๋ง ๋ฒํผ์ ๋ณ๊ฒฝ ๋ด์ฉ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ก๋์ด์์ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ๋ก๊ทธ๋ฅผ ๋ณด๋ฉด์ ํธ๋์ญ์
์ด ๋ณ๊ฒฝํ ๋ด์ฉ์ ์ด์ ์ํ๋ก ์์๋ณต๊ตฌ์ํค๋ ๊ณผ์ ์ด๋ค.
์ฒดํฌํฌ์ธํธ ํ๋ณต ๊ธฐ๋ฒ
-
DBMS์์ ํ๋ณต์ ํ ๋ ์ฒ์๋ถํฐ ๋ง์ง๋ง ๋ก๊ทธ ๊ธฐ๋ก๊น์ง ํ ๋ฒ์ ์ฒ๋ฆฌํ๋ ค๋ฉด ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋๋ฐ, ํน์ ์๊ฐ ๋ง๋ค ๊ฒ์ฌ๋ฅผ ํ์ฌ ๋ฌธ์ ๊ฐ ์์์ ํ์ธํ๋ฉด ๋ค์๋ฒ ์๋ฌ ๋ฐ์ ์ ํ๋ณต์ ์์ํ๋ ์์ ์ ์๋น๊ธธ ์ ์๋ค.
-
์ฃผ ๊ธฐ์ต์ฅ์น(RAM)์ ๋ก๊ทธ ๋ ์ฝ๋๋ฅผ ๋ชจ๋ ํ๋๋์คํฌ์ ๋ก๊ทธ ํ์ผ์ ์ ์ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ํธ๋์ญ์
์ํ ์ค์ ๋ณ๊ฒฝ๋ ๋ฒํผ ๋ด์ ๋ด์ฉ์ ํ๋๋์คํฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ค.
-
์ฒดํฌํฌ์ธํธ ์ด์ ์ COMMIT ๊ธฐ๋ก์ด ์๋ ๊ฒฝ์ฐ ์๋ฌด ์์
์ด ํ์ ์๋ค. ๋ก๊ทธ์ ์ฒดํฌํฌ์ธํธ๊ฐ ๋ํ๋๋ ์์ ์ ์ด๋ฏธ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ๊ธฐ๋ก๋ ํ ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
-
์ฒดํฌํฌ์ธํธ ์ดํ์ COMMIT ๊ธฐ๋ก์ด ์๋ ๊ฒฝ์ฐ REDO๋ฅผ ์งํํ๋ค. ์ฒดํฌํฌ์ธํธ ์ดํ์ ๋ณ๊ฒฝ ๋ด์ฉ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์๋์ง ์์์ REDO๋ฅผ ์งํํด์ผ ํ๋ค.
-
์ฒดํฌํฌ์ธํธ ์ดํ์ COMMIT ๊ธฐ๋ก์ด ์๋ ๊ฒฝ์ฐ ์ฆ์ ๊ฐฑ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค๋ฉด UNDO๋ฅผ ์งํํ๋ค. ์๋ํ๋ฉด ๋ฒํผ์ ๋ด์ฉ์ด ๋ฐ์๋์ ์๋ ์๊ธฐ ๋๋ฌธ์ ์์๋ณต๊ตฌ ์์ผ์ผ ํ๋ค. ๋ฐ๋ฉด ์ง์ฐ ๊ฐฑ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค๋ฉด ์๋ฌด๊ฒ๋ ํ ํ์๊ฐ ์๋ค. ์๋ํ๋ฉด ์ง์ฐ ๊ฐฑ์ ๋ฐฉ๋ฒ์ COMMIT ์ด์ ์๋ ๋ฒํผ์ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.