๐Ÿ’ป [SQL] 12. DCL, TCL

thisk336ยท2023๋…„ 10์›” 11์ผ
0

SQL

๋ชฉ๋ก ๋ณด๊ธฐ
12/17
post-thumbnail

DCL(Data Control Language)

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์„œ๋‚˜ ํšŒ์ˆ˜ํ•˜๋Š” ์–ธ์–ด๋กœ GRANT, REVOKE๋ฌธ์ด ์žˆ๋‹ค.

GRANT ๋ฌธ

  • GRANT๋ฌธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์„ ์œ„ํ•ด์„œ๋Š” ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋ฉฐ ์—ฐ๊ฒฐ, ์ž…๋ ฅ, ์ˆ˜์ •, ์‚ญ์ œ, ์กฐํšŒ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
GRANT [๊ถŒํ•œ] ON [ํ…Œ์ด๋ธ”๋ช…] TO [์‚ฌ์šฉ์ž๋ช…] WITH [GRANT ์˜ต์…˜] OPTION;
๊ถŒํ•œ์„ค๋ช…
SELECT์ง€์ •๋œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ SELECT ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.
INSERT์ง€์ •๋œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ INSERT ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.
UPDATE์ง€์ •๋œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ UPDATE ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.
DELETE์ง€์ •๋œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ DELETE ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.
REFERENCES์ง€์ •๋œ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜๋Š” ์ œ์•ฝ์กฐ๊ฑด์„ ์ƒ์„ฑํ•˜๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.
ALTER์ง€์ •๋œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.
INDEX์ง€์ •๋œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.
ALL์ง€์ •๋œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.
GRANT ์˜ต์…˜์„ค๋ช…
WITH GRANT OPTION- ํŠน์ • ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.
WITH ADMIN OPTION- ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.

REVOKE ๋ฌธ

  • REVOKE๋ฌธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ€์—ฌ๋œ ๊ถŒํ•œ์„ ํšŒ์ˆ˜ํ•œ๋‹ค.
  • ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
REVOKE [๊ถŒํ•œ] ON [ํ…Œ์ด๋ธ”๋ช…] FROM [์‚ฌ์šฉ์ž๋ช…];

TCL(Transaction Control Language)

  • TCL์€ ํŠธ๋žœ์žญ์…˜์„ ์ œ์–ดํ•˜๋Š” ๋ช…๋ น์–ด๋‹ค.
  • ์—ฌ๊ธฐ์„œ ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹จ์œ„์ด๋ฉฐ, ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ์œผ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    • ์›์ž์„ฑ(Atomicity) : ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ์‚ฐ์˜ ์ „๋ถ€๊ฐ€ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์•„์•ผํ•œ๋‹ค. ์ฆ‰, ํŠธ๋žœ์žญ์…˜์˜ ์ฒ˜๋ฆฌ๊ฐ€ ์™„์ „ํžˆ ๋๋‚˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœ์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.
    • ์ผ๊ด€์„ฑ(Consistency) : ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๊ฐ€ ๋ชจ์ˆœ๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.
    • ๊ณ ๋ฆฝ์„ฑ(Isolation) : ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ์ค‘์— ์ƒ์„ฑํ•˜๋Š” ์—ฐ์‚ฐ์˜ ์ค‘๊ฐ„๊ฒฐ๊ณผ๋Š” ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ์ฆ‰, ๋ถ€๋ถ„์ ์ธ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๋ณผ ์ˆ˜ ์—†๋‹ค.
    • ์˜์†์„ฑ(Durability) : ํŠธ๋žœ์žญ์…˜์ด ๊ทธ ์‹คํ–‰์„ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ•˜๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋Š” ์˜๊ตฌ์  ๋ณด์žฅ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค.
  • TCL์—๋Š” COMMIT, ROLLBACK, SAVEPOINT๋ฌธ์ด ์žˆ๋‹ค.

COMMIT

  • COMMIT์€ INSERT, UPDATE, DELETE๋ฌธ์œผ๋กœ ๋ณ€๊ฒฝํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ˜์˜ํ•˜๋Š” ํ•œ๋‹ค.
  • COMMIT์ด ์™„๋ฃŒ๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œ LOCK์ด ํ•ด์ œ๋˜๋ฉฐ, ๋‹ค๋ฅธ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž๋Š” ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • COMMIT์„ ์‹คํ–‰ํ•˜๋ฉด ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ๊ณผ์ •์„ ์ข…๋ฃŒํ•œ๋‹ค.

ROLLBACK

  • ROLLBACK์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌ์šฉ์„ ๋ชจ๋‘ ์ทจ์†Œํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜์„ ์ข…๋ฃŒํ•œ๋‹ค.
  • INSERT, UPDATE, DELETE๋ฌธ์˜ ์ž‘์—…์„ ๋ชจ๋‘ ์ทจ์†Œํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ „์— COMMITํ•œ ๊ณณ๊นŒ์ง€๋งŒ ๋ณต๊ตฌํ•œ๋‹ค.
  • ROLLBACK์„ ์‹คํ–‰ํ•˜๋ฉด LOCK์ด ํ•ด์ œ๋˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ–‰์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

SAVEPOINT

  • SAVEPOINT๋Š” ํŠธ๋žœ์žญ์…˜์„ ์ž‘๊ฒŒ ๋ถ„ํ• ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ SAVEPOINT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ง€์ •๋œ ์œ„์น˜ ์ดํ›„์˜ ํŠธ๋žœ์žญ์…˜๋งŒ ROLLBACK ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • SAVEPOINT์˜ ์ง€์ •์€ SAVEPOINT [SAVEPOINT๋ช…]์„ ์‹คํ–‰ํ•œ๋‹ค.
  • ์ด ๋•Œ ์ง€์ •๋œ SAVEPOINT๊นŒ์ง€๋งŒ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ์ทจ์†Œํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๋Š” ROLLBACK TO [SAVEPOINT๋ช…] ์„ ์‹คํ–‰ํ•œ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€