[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ๋ทฐ

๋ทฐ์˜ ๊ฐœ์š” 


๋ทฐ๋ž€? 

๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ์˜ ๋ทฐ๋Š” ํ•˜๋‚˜์˜ ๊ฐ€์ƒ ๋ฆด๋ ˆ์ด์…˜(ํˆฌํ”Œ์„ ๊ฐ–์ง€ ์•Š์€ ๋ฆด๋ ˆ์ด์…˜)์„ ์˜๋ฏธํ•จ
๋ทฐ๋Š” ๊ธฐ์กด์˜ ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜์ด๋‚˜ ๋˜ ๋‹ค๋ฅธ ๋ทฐ์— ๋Œ€ํ•œ SELECT๋ฌธ์˜ ํ˜•ํƒœ๋กœ ์ •์˜๋จ 
๋ทฐ๋Š” ์ž์ฒด์ ์œผ๋กœ ๋””์Šคํฌ์— ์ €์žฅ๋œ ํˆฌํ”Œ๋“ค์„ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ์งˆ์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆด๋ ˆ์ด์…˜ 
๋งŒ์•ฝ ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜์˜ ํˆฌํ”Œ๋“ค์— ๋Œ€ํ•œ ๊ฐฑ์‹ ์ด ์ด๋ฃจ์–ด์ง€๋ฉด ํŒŒ์ƒ๋œ ๋ทฐ์—๋„ ๋ฐ”๋กœ ์ˆ˜ํ–‰๋จ 

 

์ฐธ๊ณ ) ์Šค๋ƒ…์ˆ? 

  • ์–ด๋Š ์‹œ์ ์—์„œ SELECT๋ฌธ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜ ํ˜•ํƒœ๋กœ ์ €์žฅํ•ด๋†“์€ ๊ฒƒ
  • ๋ทฐ์™€ ๋‹ค๋ฅด๊ฒŒ ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜์ด ๊ฐฑ์‹ ์ด ๋˜๋”๋ผ๋„ ๋ณ€ํ™”๊ฐ€ ์—†์Œ  

 

๋ทฐ์˜ ์žฅ์  

1. ๋ทฐ๋Š” ๋ณต์žกํ•œ ์งˆ์˜๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ

Ex) ๋ทฐ์˜ ์ •์˜ ์˜ˆ์‹œ์—์„œ ์–ธ๊ธ‰ํ•œ EMP_PLANNING ๋ทฐ๋ฅผ ๋ฏธ๋ฆฌ ์„ ์–ธ ํ•ด๋†“์œผ๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•จ 

 

2. ๋ทฐ๋Š” ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š”๋ฐ ํ™œ์šฉ๋จ

  • WITH CHECK OPTION์„ ์‚ฌ์šฉํ•œ ๋ทฐ๋Š” ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ 
  • WITH CHECK OPTION์€ ๋ทฐ๊ฐ€ ์„ ํƒํ•  ์ˆ˜ ์—†๋Š” ํˆฌํ”Œ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋„๋ก ๋ณด์žฅํ•จ 
  • ๋”ฐ๋ผ์„œ ์‚ฝ์ž…๋˜๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ์ˆ˜์ •๋˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด๊ณผ ๋ฐ์ดํ„ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ์‹œํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•จ 

 

3. ๋ทฐ๋Š” ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ์„ ์ œ๊ณตํ•จ 

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ๊ธฐ์กด ์งˆ์˜๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•  ํ•„์š”์„ฑ์„ ์ค„์ด๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ์ฆ‰, ๋ทฐ๋ฅผ ์ •์˜ํ•˜๋Š” ์งˆ์˜๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋จ 

Ex) EMPLOYEE ๋ฆด๋ ˆ์ด์…˜์ด ๋‘ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜ EMP1๊ณผ EMP2๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๊ณ  ํ•˜๋ฉด? 

=> EMP1๊ณผ EMP2์— ๋Œ€ํ•œ SELECT๋ฌธ์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•จ. ํ•˜์ง€๋งŒ ๋ทฐ์˜ ์ •์˜๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค๋ฉด? ๊ทธ๋Ÿด ํ•„์š”๊ฐ€ ์—†์Œ!

 

4. ๋ทฐ๋Š” ๋ฐ์ดํ„ฐ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ

  • ๋ทฐ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๋„๋ก ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ ๋งค์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ 
  • ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜ ์ ‘๊ทผ์€ ํ—ˆ๊ฐ€ํ•˜์ง€ ์•Š๊ณ , ๊ทธ ๋Œ€์‹ ์— ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”๋กœํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ทฐ๋กœ ์ •์˜ํ•˜๊ณ , ๋ทฐ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ํ—ˆ๊ฐ€ํ•จ 
  • ์ฆ‰, SELECT ๋ฌธ์œผ๋กœ ์ œํ•œ์„ ๋‘๊ธฐ ๋•Œ๋ฌธ์— ๋ฆด๋ ˆ์ด์…˜์˜ ์ผ๋ถ€๋งŒ ์ ‘๊ทผํ•˜๋„๋ก ์ œํ•œํ•  ์ˆ˜ ์žˆ์Œ 

 

๋ทฐ์˜ ๋‹จ์  

  • ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ์งˆ์˜๋ณด๋‹ค ํ™•์‹คํžˆ ์„ฑ๋Šฅ์ด ์•ˆ์ข‹์•„์งˆ ์ˆ˜ ๋ฐ–์— ์—†์Œ
  • ๋ทฐ์— ๋Œ€ํ•œ ์งˆ์˜๋Š” ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ์งˆ์˜๋กœ ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ

 

๋ทฐ์˜ ์ •์˜ 


CREATE VIEW ๋ทฐ์ด๋ฆ„ [์• ํŠธ๋ฆฌ๋ทฐํŠธ๋“ค] 
AS SELECT๋ฌธ 
[ WITH CHECK OPTION ];
  • ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๋ทฐ๋ฅผ ์ •์˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•œ SELECT์ ˆ์— ์—ด๊ฑฐ๋œ ์• ํŠธ๋ฆฌ๋ทฐํŠธ์˜ ์ด๋ฆ„๊ณผ ๋™์ผํ•˜๊ฒŒ ํฌํ•จ๋จ
  • ํ•˜์ง€๋งŒ ๋ทฐ์˜ ์ •์˜์— ์กฐ์ธ์ด ํฌํ•จ๋˜์–ด ์žˆ๊ณ  ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜จ ์• ํŠธ๋ฆฌ๋ทฐํŠธ์˜ ์ด๋ฆ„์ด ๊ฐ™๋‹ค๋ฉด ๋ชจ๋“  ์• ํŠธ๋ฆฌ๋ทฐํŠธ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•จ
  • ๋ทฐ์˜์ด ์ด๋ฆ„๊ณผ ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜์˜ ์ด๋ฆ„์ด ๊ฐ™์•„์„œ๋Š” ์•ˆ๋จ 
  • ๋ทฐ์˜ ์ •์˜๋ฌธ์—์„œ๋Š” SELECT๋ฌธ์— ORDER BY์ ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
  • OPTION์€ ๋ทฐ๋ฅผ ํˆฌํ”Œ์„ ์‚ฝ์ž…ํ•  ๋•Œ์˜ ์กฐ๊ฑด์„ ๋ช…์‹œ

 

Ex) ๊ธฐํš๋ถ€์— ๊ทผ๋ฌดํ•˜๋Š” ์‚ฌ์›๋“ค์˜ ์ด๋ฆ„, ์ง์ฑ…, ๊ธ‰์—ฌ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ทฐ

=> ๋ทฐ์˜ ์ •์˜์—๋Š” ๋ทฐ์˜ ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋“ค์„ ๋ณ„๋„๋กœ ๋ช…์‹œํ•˜์ง€ ์•Š์•˜๊ธฐ์— ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜์˜ ์• ํŠธ๋ฆฌ๋ทฐํŠธ ์ด๋ฆ„๊ณผ ๊ฐ™์Œ 

 

๋ทฐ์˜ ๊ฐฑ์‹ 


๋ทฐ์— ๋Œ€ํ•œ ๊ฐฑ์‹ ๋„ ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ๊ฐฑ์‹ ์œผ๋กœ ๋ณ€ํ™˜๋จ 

 

๊ฐฑ์‹ ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ทฐ

1. ๊ธฐ๋ณธํ‚ค๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ ๋ทฐ

  • ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๋ทฐ์— ๋Œ€ํ•œ INSERT๋ฌธ์—์„œ ๊ธฐ๋ณธํ‚ค ๊ฐ’์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•จ 
  • ๊ธฐ๋ณธ ํ‚ค์˜ ๊ฐ’์ด ์—†์œผ๋ฏ€๋กœ ์—”ํ‹ฐํ‹ฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์„ ์œ„๋ฐฐํ•จ 

2. ๋ทฐ์— ํฌํ•จ๋˜์ง€ ์•Š์€ ์• ํŠธ๋ฆฌ๋ทฐํŠธ์— ๋Œ€ํ•ด NOT NULL์ด ์ง€์ •๋˜์—ˆ์„ ๋•Œ

  • ๋งŒ์•ฝ ๊ฐฑ์‹ ์ด ์ด๋ฃจ์–ด์กŒ์„ ๋•Œ, ํ•ด๋‹น ์• ํŠธ๋ฆฌ๋ทฐํŠธ์— NULL ๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ๋ฐ–์— ์—†์Œ 
  • ๋”ฐ๋ผ์„œ ๊ทธ ํˆฌํ”Œ์˜ ์‚ฝ์ž…์ด ๊ฑฐ์ ˆ๋จ 

3. ์ง‘๋‹จ ํ•จ์ˆ˜๊ฐ€ ํฌํ•จ๋œ ๋ทฐ

4. ์กฐ์ธ์œผ๋กœ ์ •์˜๋œ ๋ทฐ

 

 

 

VIEW์™€ DBMS


๋ทฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•  ๋•Œ ๊ด€๊ณ„  DBMS๋Š” ์–ด๋–ค ๊ณผ์ •์„ ๊ฑฐ์น ๊นŒ?

  1. ์‹œ์Šคํ…œ ์นดํƒˆ๋กœ๊ทธ๋กœ๋ถ€ํ„ฐ ๋ทฐ์˜ ์ •์˜, ์ฆ‰ SELECT๋ฌธ์„ ๊ฒ€์ƒ‰ํ•จ 
  2. ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ๋ทฐ์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฒ€์‚ฌํ•จ 
  3. ๋ทฐ๋ฅผ ํ†ตํ•œ ๊ฒ€์ƒ‰์ด๋‚˜ ์ˆ˜์ •์€ ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜์„ ํ†ตํ•ด์„œ ์ˆ˜ํ–‰๋จ 
  4. ๋งŒ์•ฝ ๋ทฐ์— ์ •์˜๋œ ์• ํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ์ผ๋ถ€์— ๋ถˆ๊ณผํ•˜๋‹ค๋ฉด SELECT์—์„œ '*'๋ฅผ ๋ช…์‹œํ–ˆ์–ด๋„ ์ผ๋ถ€์—๋งŒ ์งˆ์˜๋ฌธ์ด ์ด๋ฃจ์–ด์ง
  5. ๋ทฐ๊ฐ€ ๋” ์ด์ƒ ํ•„์š” ์—†๊ฑฐ๋‚˜ ๋ทฐ์˜ ์ƒ์„ฑ์ž๊ฐ€ ๋ทฐ์˜ ์ •์˜์—์„œ ์ฐธ์กฐ๋œ ๊ธฐ๋ณธ ๋ฆด๋ ˆ์ด์…˜์— ๋Œ€ํ•œ SELECT ๊ถŒํ•œ์„ ์žƒ์œผ๋ฉด ๋ทฐ๋ฅผ ์‚ญ์ œ
  6. ๋ทฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์งˆ์˜๋ฌธ์€ DROP VIEW ๋ทฐ์ด๋ฆ„; 

 

Reference

ORACLE์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฐ์›€ํ„ฐ, ํ™์˜๊ฒฝ ์ง€์Œ, ์ƒ๋Šฅ์ถœํŒ