[DB] ์ค๋ผํด ์๋ ธ๋(Oracle Synonym)
์ง๊ธ ์ค๋ฌด์์ ์ด์ DB๊ณ์ ์ผ๋ก 2๊ฐ(๊ณ์ A, ๊ณ์ B)๋ฅผ ์ฌ์ฉํ๋ค.
๊ทธ ์ด์ ๋ฅผ ์ฌ์ญค๋ณด๋ ํ์ ์ํฉ์ด ๋ฐ๋น ์ ๊ด๋ฆฌ์ ๋ณด์์ ์ด์ ๋ผ๊ณ ๋ง ๋ค์๋ค. ๊ธฐํ๊ฐ ๋๋ค๋ฉด ๋ค์ ํ๋ฒ ๋ฌผ์ด๋ด์ผ๊ฒ ๋ค..!
์ด์จ๋ , AS-IS์์ ์ฌ์ฉํ๋ VIEW๋ฅผ TO-BE์ ๋ง๋ค์ด์ฃผ์ จ๋๋ฐ ํ ์ด๋ธ ๋๋ ๋ทฐ๊ฐ ์กด์ฌํ์ง ์๋ค๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๊ณ์ A์์ ์กฐํํ ๊ฒฝ์ฐ, ํด๋น ๋ทฐ๊ฐ ์กฐํ ๊ฐ๋ฅํ๋ฐ ๊ณ์ B์์๋ ์กฐํ๋์ง ์์ ๋นํฉ์ค๋ฌ์ ๋ค.
๊ณ์ B์์๋ AS-IS ๊ณ์ ์ ์ ๊ทผ ๋ถ๊ฐํ์ฌ VIEW๋ฅผ ์์ฑํ์ง ๋ชปํ๋ค ..
์๊ณ ๋ณด๋ ๊ณ์ A์์ VIEW๋ฅผ ์์ฑํ๊ณ ๊ณ์ B์๊ฒ VIEW์ ์๋ ธ๋์ ์ค์ผ ํ๋ค๊ณ ํ์ จ๋ค.
์ด์์๋ฒ๋ ๊ณ์ B๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์์ด์ ๊ณ์ A์์๋ง VIEW ์์ฑ์ ํ ๊ฒฝ์ฐ์๋ ์ ๊ทผํ ์ ์์๋ค.
์๋ ธ๋์ ์ผ๋ฅธ ๋ฉ๋ชจํด๋๊ณ ๊ณต๋ถํ ๋ค ๋ด๋ฒ์ ๊ผญ ์จ๋จน์ด์ผ์ง,,!
What is Sysnonym?
์๋ ธ๋(Sysnonym)์ *์ค๋ผํด ๊ฐ์ฒด์ ๋ํ ๋์ฒด์ด๋ฆ(Alias)์ ๋งํ๋ค.
๊ทธ ์์ฒด์ ๊ฐ์ฒด๊ฐ ์๋ ๊ฐ์ฒด์ ๋ํ ์ง์ ์ ์ฐธ์กฐ์ด๋ค.
ํ ์ด๋ธ์ ์ปฌ๋ผ์ ์ฃผ๋ ALIAS๋ 1ํ์ฑ์ธ ๋ฐ๋ฉด ์๋ ธ๋(Sysnonym)์ ์๊ตฌ์ ์ด๋ค.
๋ณดํต์ ๋ค๋ฅธ ์ ์ ์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ ๋ ๋ง์ด ์ฌ์ฉ๋๋ค.
*์ค๋ผํด ๊ฐ์ฒด๋ ํ ์ด๋ธ, ๋ทฐ, ํ๋ก์์ , ํจ์, ํจํค์ง, ์ํ์ค ๋ฑ์ ์๋ฏธํ๋ค.
Why do you use Sysnonym?
1. OCP(Open Closed Principle) ์ ์ง
์ค๋ฌด์์ ๋ค๋ฅธ ์ ์ ์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๋์ค์ ์ฐธ์กฐํ๊ณ ์๋ ๊ฐ์ฒด๊ฐ ๋ฐ๋๊ฑฐ๋ ์ด๋ํ ๊ฒฝ์ฐ, ํด๋น ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ SQL๋ฌธ์ ๋ชจ๋ ์์ ํด์ผ ํ๋ค. ์ด ๋ ์๋ ธ๋์ ์์ฑํด์ ์ฌ์ฉํ๋ฉด ์๋ ธ๋๋ง ๋ค์ ์ ์ํ๋ฉด ๋๋ค.
OCP(Open Closed Principle) : ํ์ฅ์๋ ์ด๋ ค์์ด์ผ ํ๊ณ ๋ณ๊ฒฝ์๋ ๋ซํ์์ด์ผ ํ๋ค.
2. ๋ณด์ ๊ฐ์
๋ค๋ฅธ ์ ์ ์ ๊ฐ์ฒด์ ์ ๊ทผํ ๋, ์ฐธ์กฐํ๊ณ ์๋ ๊ฐ์ฒด์ ๋ํ ์ ์ ์ ์ด๋ฆ๊ณผ ๊ฐ์ฒด์ ์ค์ ์ด๋ฆ์ ์ฌ์ฉํ๋ค. ์๋ ธ๋์ ์ด์ฉํ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ ์ ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ถ๊ณ ์๋ ธ๋ ๋ช ์นญ ๋ง์ผ๋ก๋ ์ฌ์ฉํ ์ ์๋ค.
How do you use Sysnonym?
์๋ ธ๋(Sysnonym) ์์ฑ
CREATE [PUBLIC] SYSNONYM sysnonym_name FOR object_name
PUBLIC์ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ ์๋ ธ๋์ ์์ฑํ๋ค.
PUBLIC์ ๋ถ์ด์ง ์์ ๊ฒฝ์ฐ ํน์ ์ฌ์ฉ์๋ง ์ด์ฉ ๊ฐ๋ฅํ๋ค.
์ ์ฅ๋ ์๋ ธ๋(Sysnonym) ํ์ธ
ํ์ฌ๊ณ์ ์ ์๋ ธ๋์ ํ์ธํ ๋๋ USER_SYSNONYMS์ผ๋ก ์กฐํํ๋ค.
ํ์ฌ๊ณ์ ์์ ์ฌ์ฉํ ์ ์๋ ์๋ ธ๋ ๋ชฉ๋ก์ด ํ์ธ ๊ฐ๋ฅํ๋ค.
SELECT * FROM USER_SYSNONYMS;
์ ์ฒด ์๋ ธ๋์ ํ์ธํ ๋๋ ALL_SYSNONYM์ ์กฐํํ๋ค.
ํ์ฌ ์์ฑ๋์ด ์๋ ์๋ ธ๋ ๋ฆฌ์คํธ๋ฅผ ๋ณผ ์ ์๋ค.
SELECT * FROM ALL_SYSNONYM;
์๋ ธ๋(Sysnonym) ๊ถํ ๋ถ์ฌ
GRANT SELECT ON sysnonym_name FOR object_name
์๋ ธ๋์ ๋ํ ๊ถํ์ด ์๋ ์ ์ ๊ฐ ๋ค๋ฅธ ๊ณ์ ์ ํ ์ด๋ธ์ ์กฐํํ๋ค๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
( "ํ ์ด๋ธ ๋๋ ๋ทฐ๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค." )
์ฌ์ฉ๊ณ์ ์ SELECT ๊ถํ์ ์ฃผ๋ฉด ๋๋ค.
์๋ ธ๋(Sysnonym) ์ญ์
DROP [PUBLIC] SYSNONYM sysnonym_name
์๋ ธ๋ ์ ๊ฑฐ๊ฐ ์๋ ๊ฒฝ์ฐ ๊ถํ์ด ์๋ ๊ฒ์ด๋ค. ๊ถํ์ ๋ถ์ฌ๋ฐ์ ์ฌ์ฉํด์ผ ํ๋ค.
PRIVATE ์๋ ธ๋ ์ ๊ฑฐ ์์๋ DROP SYSNONYM or DROP ANY SYSNONYM ๊ถํ์ด,
PUBLIC ์๋ ธ๋ ์ ๊ฑฐ ์์๋ DROP PUBLIC SYSNONYM ๊ถํ์ด ์์ด์ผ ํ๋ค.
โป ์ฐธ์กฐ๋ธ๋ก๊ทธ