4์ . TCL (TRANSACTION CONTROL LANGUAGE)
ํธ๋์ญ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ ผ๋ฆฌ์ ์ฐ์ฐ๋จ์
- ๋ถํ ํ ์ ์๋ ์ต์์ ๋จ์
- ํ๋์ ํธ๋์ญ์ ์๋ ํ๋ ์ด์์ SQL๋ฌธ์ฅ์ด ํฌํจ๋๋ค.
- ALL OR NOTHING์ ๊ฐ๋
ํธ๋์ญ์ ์ ํน์ฑ
1. ์์์ฑ - ๋ชจ๋ ์ฑ๊ณต์ ์ผ๋ก ์คํ๋๋์ง ์ ํ ์คํ๋์ง ์์ ์ํ
2. ์ผ๊ด์ฑ - ํธ๋์ญ์ ์คํ ์ ๊ณผ ํ์ ์ผ๊ด์ฑ์ด ์์ด์ผ ํจ
3. ๊ณ ๋ฆฝ์ฑ(๊ฒฉ๋ฆฌ์ฑ) - ํธ๋์ญ์ ์ด ์คํ๋๋ ๋์ค ๋ค๋ฅธ ํธ๋์ญ์ ์ ์ํฅ์ ๋ฐ์ ์๋ชป๋ ๊ฒฐ๊ณผ ๋ง๋ค๋ฉด ์๋จ
4. ์ง์์ฑ - ํธ๋์ญ์ ์ํ์ ๊ฐฑ์ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์๊ตฌ ์ ์ฅ
1. ์ปค๋ฐ(COMMIT) - ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๊ตฌ์ ์ผ๋ก ๋ฐ์
COMMIT;
2. ๋กค๋ฐฑ(ROLLBACK) - ๋ณ๊ฒฝ ์ ๋ฐ์ดํฐ๋ก ๋ณต๊ท
ROLLBACK;
ROLLBACK TO SVPT1;
3. ์ ์ฅ์ (SAVEPOINT) - ์ง์ ํ ์ ์ฅ์ ๊น์ง ๋กค๋ฐฑ
SAVEPOINT SVPT1;
ํจ๊ณผ
- ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ
- ์๊ตฌ๋ณ๊ฒฝ ์ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์ฌํญ ํ์ธ ๊ฐ๋ฅ
- ๋ ผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ด๋ ์์ ์ ๊ทธ๋ฃนํํ์ฌ ์ฒ๋ฆฌ ๊ฐ๋ฅ
โป DDL ๋ฌธ์ฅ์ ์คํ์์๋ ์๋์ผ๋ก ์ปค๋ฐ๋๋ค.
ORACLE์ ๊ฒฝ์ฐ DML ๋ฌธ์ฅ ์ดํ์ ์ปค๋ฐ์ด ์์ด๋ DDL๋ฌธ์ฅ์ด ์คํ๋๋ฉด DDL ์ํ ์ ์ ์๋์ผ๋ก ์ปค๋ฐ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ ์ข ๋ฃ์ ์๋ ์ปค๋ฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์ ์ข ๋ฃ์ ์๋ ๋กค๋ฐฑ
SQL SERVER์ ๊ฒฝ์ฐ์๋ ์๋ ์ปค๋ฐ๋ชจ๋์ด๋ฏ๋ก ๋ฐ๋ก ์ฒ๋ฆฌ ํ์ X
SQL SERVER - AUTO COMMIT
ORACLE - ์์์ ํธ๋์ญ์ (์์์ DBMS๊ฐ ์ฒ๋ฆฌ)
+ ๋ช ์์ ํธ๋์ญ์ (์์(BEGIN)๊ณผ ๋(COMMIT) ๋ช ์์ ์ผ๋ก ์ง์ )
๊ฒฉ๋ฆฌ์ฑ์์์ ๋ฌธ์ ์
1. ๊ฐฑ์ ๋ถ์ค (lost update)
- ํ๋์ ํธ๋์ญ์ ์ด ์ํํ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฐ์ฐ์ด ์ ์ฅ๋๊ธฐ ์ ์ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๊ณ ๋ค์ ์ ์ฅํ๋ ๊ฒฝ์ฐ ์ฒซ๋ฒ์งธ ํธ๋์ญ์ ์ด ์ํํ ์ฐ์ฐ์ ๋ฌดํจ๊ฐ ๋๋ค
2. ์ค์ํ๋ (dirty bit)
- commit ๋์ง ์์ ๊ฐ์ ์ฝ์ด์์ ๋, ๋์ค์ commit ์์ด ์ข ๋ฃํ๋ค๋ฉด ์ค์๋ ๊ฐ์ ๊ฐ์ง๊ณ ์๊ฒ ๋์ด ๊ผฌ์ธ๋ค.
3. ๋ฐ๋ณต ๋ถ๊ฐ๋ฅ(uprepeatable read)
- ํ ํธ๋์ญ์ ์ด ๊ฐ์ ์ฝ์ด์จ ํ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ๊ทธ ๊ฐ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์์ ๋ฒ๋ฆฌ๋ฉด ๊ทธ data๋ฅผ ๋ค์ ์ฝ์ ์ ์์.
4. ํฌํ ๋ฌธ์
- ํ ํธ๋์ญ์ (T1)์ด ์ด๋ ํ ์กฐ๊ฑด์ผ๋ก ๊ฐ์ ์กฐํํ ํ ๋ค๋ฅธ ํธ๋์ญ์ (T2)์ด ํด๋น ์กฐ๊ฑด์์ data๋ฅผ ์ฝ์ ,์ญ์ ํ๋ฉด T1์ด ๋ค์ ๊ฐ์ ์กฐํํ์ ๋ ๋ณ๊ฒฝ๋ data๊ฐ ์กฐํ๋๋ค. ์ด ์ํ์์ T2๊ฐ rollbackํ๋ค๋ฉด?
ํธ๋์ญ์ ์ 4๊ฐ์ง ๊ฒฉ๋ฆฌ ๋ ๋ฒจ(isolation level)
๋ฏธ์๋ฃ๋ ํธ๋์ญ์ ์ฝ๊ธฐ(read uncommitted)
- ์ปค๋ฐํ์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์์ ์๋ค.
- ์ค์ํ๋ , ๋ฐ๋ณต๋ถ๊ฐ๋ฅ ์ฝ๊ธฐ , ํฌํ ๋ฌธ์ ๋ฐ์
์๋ฃ๋ ํธ๋์ญ์ ์ฝ๊ธฐ(read committed)
- ์ปค๋ฐ ์๋ฃ๋ ๋ฐ์ดํฐ๋ง ์ฝ์ ์ ์๋ค.
- ๋ฐ๋ณต ๋ถ๊ฐ๋ฅ ์ฝ๊ธฐ, ํฌํ ๋ฌธ์ ๊ฐ ๋ฐ์
๋ฐ๋ณต๊ฐ๋ฅ ์ฝ๊ธฐ(repeatable read)
- ํธ๋์ญ์
๋ด์์ ํ๋ฒ ์กฐํํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณตํด์ ์กฐํํด๋ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์กฐํ ๋๋ค.
- ํฌํ ๋ฌธ์ ๊ฐ ๋ฐ์
์ง๋ ฌ ๊ฐ๋ฅ(serializable)
- ์ 3๊ฐ์ง ๋ฌธ์ ์ ์ ๋ชจ๋ ์๋ฐฉ ๊ฐ๋ฅ
- ์ค์ํ๋ , ๋ฐ๋ณต ๋ถ๊ฐ๋ฅ ์ฝ๊ธฐ, ํฌํ ๋ฌธ์ ๋ชจ๋ ์๋ฐฉ
'SQLD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ณผ๋ชฉII SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 1์ฅ - 7์ GROUP BY, HAVING ์ (0) | 2021.05.21 |
---|---|
๊ณผ๋ชฉII SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 1์ฅ - 5์ /6์ WHERE์ , FUNCTION (0) | 2021.05.21 |
๊ณผ๋ชฉII SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 1์ฅ - 3์ DML (0) | 2021.05.21 |
๊ณผ๋ชฉII SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 1์ฅ - 2์ DDL (0) | 2021.05.19 |
๊ณผ๋ชฉII SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 1์ฅ - 1์ (0) | 2021.05.19 |