ํธ๋์ญ์
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋
ผ๋ฆฌ์ ์์
๋จ์์ด๋ค. ๋จ์ํ ์ฌ๋ฌ ๊ฐ์ SQL ๋ฌธ์ ์คํํ๋ ๊ฒ์ ๋์ด, ๊ฐ๋ฐ์๊ฐ ์๋ํ ํ๋์ ๊ธฐ๋ฅ์ด ์์ ํ๊ฒ ์๋ฃ๋ ์ ์๋๋ก ๋ณด์ฅํ๋ ์ต์ํ์ ์คํ ๋จ์๋ฅผ ์๋ฏธํ๋ค.
ํธ๋์ญ์
์ ๊ฐ์ฅ ์ค์ํ ์์น์ "๋ชจ๋ ์ฑ๊ณตํ๊ฑฐ๋, ์๋๋ฉด ์์ ์คํ๋์ง ์์ ์ํ๋ก ๋จ์์ผ ํ๋ค"๋ ๊ฒ์ด๋ค. ์ฌ๋ฌ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ ์์
์ค ๋จ ํ๋๋ผ๋ ์คํจํ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํด๋น ์์
์ ์์ํ๊ธฐ ์ ์ ๊นจ๋ํ ์ํ๋ก ๋๋์๊ฐ์ผ ํ๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๋ถ์ ํฉ์ ๋ฐฉ์งํ๋ค.
๊ฐ์ฅ ๋ํ์ ์ธ ์๋ก '๊ณ์ข ์ด์ฒด'๊ฐ ์๋ค. ๊ณ์ข ์ด์ฒด๋ ๋ด๋ถ์ ์ผ๋ก ์ต์ ๋ ๊ฐ์ง ์ด์์ ์ฐ์ฐ์ด ๊ฒฐํฉ๋์ด ์๋ค.
์ด ๋ ์ฐ์ฐ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ํ๋์ ๋จ์๋ก ๋ฌถ์ฌ์ผ ํ๋ค. ๋ง์ฝ ์ถ๊ธ์ ์ฑ๊ณตํ์ง๋ง ์ ๊ธ ์ง์ ์ ์์คํ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ค๋ฉด, ๋์ ์ฆ๋ฐํ๊ณ ๋ฐ์ดํฐ๋ ์ผ์นํ์ง ์๊ฒ ๋๋ค.
ํธ๋์ญ์ ์ ์์ ์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ค์ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ข ๋ฃ๋๋ค.
ACID๋ ํธ๋์ญ์ ์ด ์์ ํ๊ฒ ์ํ๋๊ธฐ ์ํด ์ง์ผ์ผ ํ 4๊ฐ์ง ์์ฑ์ ์๋ฏธํ๋ค.
์์์ฑ์ ํธ๋์ญ์
์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ๋ฐ์๋๊ฑฐ๋, ํ๋๋ผ๋ ์คํจํ ๊ฒฝ์ฐ ์ ํ ๋ฐ์๋์ง ์์์ผ ํจ์ ๋ณด์ฅํ๋ ์์ฑ์ด๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์์ฑ์ ๊ตฌํํ๊ธฐ ์ํด Undo Log๋ฅผ ์ฌ์ฉํ๋ค. ํธ๋์ญ์
์ํ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์ฌ์ฉ์๊ฐ Rollback์ ๋ช
๋ นํ๋ฉด, ์์คํ
์ Undo Log์ ๊ธฐ๋ก๋ ๋ณ๊ฒฝ ์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ฎ์ด์ด๋ค. ์ด ๊ณผ์ ์ ํตํด ์์
์ด ์์๋๊ธฐ ์ ์ ์ํ๋ก ์๋ฒฝํ๊ฒ ๋๋๋ฆด ์ ์๋ค.
์ฌ๊ธฐ์ ์ถ๊ฐ๋ก ์์์ฑ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ณด์ฅํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ WAL(๋ก๊ทธ ์ฐ์ ๊ธฐ๋ก) ๋ฐฉ์์ ์ฑํํ๋ค. ์ค์ ๋ฐ์ดํฐ ํ์ผ์ ๋์คํฌ์ ์์ ํ๊ธฐ ์ ์, ๋ฐ์ํ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๋ณต๊ตฌ๋ฅผ ์ํ ๋ก๊ทธ๋ฅผ ๋์คํฌ์ ๋จผ์ ๊ธฐ๋กํ๋ ๋ฐฉ์์ด๋ค.
์ผ๊ด์ฑ์ ํธ๋์ญ์
์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฏธ๋ฆฌ ์ ํด์ง ๋ชจ๋ ๊ท์น์ ๋ง์กฑํด์ผ ํจ์ ์๋ฏธํ๋ค. ์ฆ ํธ๋์ญ์
์ํ ์ ํ๋ก ๋ฐ์ดํฐ์ ๋ชจ์์ด ์์ด์ผ ํ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์คํ
์ ๊ท์น๊ณผ ๋น์ฆ๋์ค์ ๊ท์น์ ๋ชจ๋ ์ถฉ์กฑํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ์ฅ์น๋ค์ ์ฌ์ฉํ๋ค.
๋ค๋ง DB๋ ์คํค๋ง์ ์ ์๋ ๊ท์น๋ง ๊ฒ์ฆํ ๋ฟ, ๋ชจ๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ค์ค๋ก ํ๋จํ ์๋ ์๋ค. ๋ฐ๋ผ์ ๊ฐ๋ฐ์๋ ๋น์ฆ๋์ค ๋ก์ง์ ํธ๋์ญ์ ์ผ๋ก ๋ฌถ์ด ๊ท์น์ด ๊นจ์ง์ง ์๋๋ก ์ค๊ณํด์ผ ํ๋ค.
๊ฒฉ๋ฆฌ์ฑ์ ๋ณต์์ ํธ๋์ญ์
์ด ๋์์ ์คํ๋ ๋, ๊ฐ ํธ๋์ญ์
์ ์์
์ด ์๋ก์๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ๋ณด์ฅํ๋ ์์ฑ์ด๋ค. ์ด๋ก ์ ์ผ๋ก๋ ์ฌ๋ฌ ํธ๋์ญ์
์ด ๋ณ๋ ฌ๋ก ์คํ๋๋๋ผ๋, ๊ทธ ๊ฒฐ๊ณผ๊ฐ ํธ๋์ญ์
์ ํ๋์ฉ ์์ฐจ์ ์ผ๋ก ์คํํ์ ๋์ ๋์ผํด์ผ ํ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฑ๋ฅ๊ณผ ๊ฒฉ๋ฆฌ์ฑ ์ฌ์ด์ ๊ท ํ์ ๋ง์ถ๊ธฐ ์ํด ๋ค์ ๋ ๊ฐ์ง ๋ฐฉ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
์ด๋ก ์ ์ผ๋ก๋ ์๋ฒฝํ ๊ฒฉ๋ฆฌ(Serializability)๊ฐ ๊ฐ์ฅ ์์ ํ์ง๋ง, ์ด๋ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํ๋ค. ๋ฐ๋ผ์ ANSI/ISO SQL ํ์ค์ ๊ฒฉ๋ฆฌ ์ ๋์ ๋ฐ๋ผ 4๊ฐ์ง ๋จ๊ณ๋ก ๊ตฌ๋ถํ์ฌ ์ ํํ ์ ์๊ฒ ํ๋ค.
์ง์์ฑ์ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ(Commit)๋ ํธ๋์ญ์
์ ๊ฒฐ๊ณผ๊ฐ ์์คํ
์ฅ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๊ตฌ์ ์ผ๋ก ๊ธฐ๋ก๋์ด์ผ ํจ์ ์๋ฏธํ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ๋ก ์ฎ๊ธฐ๋ ๊ณผ์ ์์ ๋ฐ์ํ๋ ๋ฌผ๋ฆฌ์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๋ค์ ์ฅ์น๋ค์ ์ฌ์ฉํ๋ค.
