๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํธ๋์ ์
๊ฒฉ๋ฆฌ์์ค์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
ํธ๋์ ์
: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๊ธฐ ์ํด ์ํํ๋ ์์
์ ๋จ์
: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋
ผ๋ฆฌ์ ์ธ ์์
๋จ์๋ฅผ ๊ตฌ์ฑํ๋ ์ฐ์ฐ๋ค์ ์งํฉ
DBMS(Database management system) ์ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ๋ ๋ฐ์ํ๋ ์ํฉ์ ์ ์ํ๋ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๊ทธ ์ค ํ๋๊ฐ Transaction isolation level
์ด๋ค
Transaction isolation level
(ํธ๋ ์ ์
๊ฒฉ๋ฆฌ ์์ค)
: ๋์์ ์ฌ๋ฌ ํธ๋์ญ์
์ด ์ฒ๋ฆฌ๋ ๋, ํน์ ํธ๋์ญ์
์ด ๋ค๋ฅธ ํธ๋์ญ์
์์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์กฐํํ ์ ์๋๋ก ํ์ฉํ๋ ๋ ๋ฒจ
๐ isolation level
์ 4๋จ๊ณ
- Read Uncommitted
- Read Committed
- Repeatable Read
- Serializable
๋๋ถ๋ถ์ read committed
๋ฅผ ์ฌ์ฉํ๋ฉฐ, read uncommitted
์ ๊ฒฝ์ฐ ์ ์ฌ์ฉํ์ง ์๋๋ค๊ณ ํ๋ค.
Serializable๋ก ๊ฐ์๋ก ๊ณ ๋ฆฝ๋๊ฐ ๋์์ง๊ณ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
1. Read Uncommitted
- ์ผ๋ฐ์ ์ผ๋ก ๊ฑฐ์ ์ฌ์ฉํ์ง ์๋๋ค
- commit, rollback ์ฌ๋ถ์ ์๊ด ์์ด ๋ค๋ฅธ ํธ๋์ญ์
์ ๋ณ๊ฒฝ/์กฐํ ํ์ฉ
- ์ด๋ ํ ํธ๋์ ์
์์ ์์
์ด ์๋ฃ ๋์ง ์์๋ ๋ค๋ฅธ ํธ๋์ ์
์์ ๋ณผ ์ ์์
Dirty Read
๋ฐ์
- ์๋ฃ๋์ง ์์ ํธ๋์ ์
์ ๋ค๋ฅธ ํธ๋์ ์
์์ ๋ณผ ์ ์๋ ๊ฒ
2. Read committed
- ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ ํ๋ ๊ฒ(์ค๋ผํด DBMS์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ)
- ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ผ๋ ์ปค๋ฐ์ด ์๋ฃ ๋ ํธ๋์ ์
๋ง ๋ค๋ฅธ ํธ๋์ ์
์์ ์ฝ์ ์ ์์
Non-Repetable Read
๋ฐ์
- Repetable Read
: ๋ฐ์ดํฐ ์กฐํ ์, ํญ์ ๋์ผํ ์๋ต์ ๋ณด์ฅํ๋ ๊ณ ๋ฆฝ ์์ค
- ์ปค๋ฐ ์ , select ๋ฌธ ์กฐํ ์ ๋์จ ๋ฐ์ดํฐ ์ ์ปค๋ฐ ํ, select ๋ฌธ ์กฐํ ์ ๋์จ ๋ฐ์ดํฐ ๊ฐ ๋ค๋ฆ
- ex. ํต์ฅ์ 10๋ง์ ์๊ณ , 10๋ง์ ์ธ์ถํ๋ ค๊ณ ํจ. ์ธ์ถ ์ง์ ์๋์ด์ฒด๋ก 8๋ง์์ด ๋น ์ ธ๋๊ฐ์ 2๋ง์ ๋จ์์๋ ์ํฉ์ธ๋ฐ 10๋ง์์ด ์ธ์ถ ๊ฐ๋ฅํด์ง๋ ๋ฌธ์
3. Repeatable Read
- ํธ๋ ์ ์
๋ง๋ค ํธ๋ ์ ์
ID๋ฅผ ๋ถ์ฌํ๋ค.
- ์์ ์ ํธ๋์ ์
๋ฒํธ๋ณด๋ค ๋ฎ์ ํธ๋์ ์
๋ฒํธ์์ ๋ณ๊ฒฝ๋ (์ปค๋ฐ๋) ๊ฒ๋ง ๋ณด๋ ๊ฒ
4. Serializable
- ๊ฐ์ฅ ๋จ์ํ ๊ฒฉ๋ฆฌ ์์ค์ด์ง๋ง ๊ฐ์ฅ ์๊ฒฉํ ๊ฒฉ๋ฆฌ ์์ค
- ์ฑ๋ฅ ์ธก๋ฉด์์ ๋์ ์ฒ๋ฆฌ์ฑ๋ฅ์ด ๊ฐ์ฅ ๋ฎ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ๊ฑฐ์ ์ฌ์ฉํ์ง ์๋๋ค๊ณ ํ๋ค
์ถ์ฒ