ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DB] ์˜ค๋ผํด ์‹œ๋…ธ๋‹˜(Oracle Synonym)
    ๐Ÿ’ป IT Study/Knowledge 2022. 6. 1. 17:45

    ์ง€๊ธˆ ์‹ค๋ฌด์—์„œ ์šด์˜ 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 ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. 

     


    โ€ป ์ฐธ์กฐ๋ธ”๋กœ๊ทธ

    ๋Œ“๊ธ€

Designed by Tistory.