µ¿ÀǾî(SYNONYM)
ÀÛ¼ºÀÚ °ü¸®ÀÚ ÀÛ¼º½Ã°£ 2006-03-28 00:11:41
 

9.4 µ¿ÀǾî(SYNONYM)



- SYNONYMÀº ¿À¶óŬ °´Ã¼(Å×À̺í, ºä, ½ÃÄö½º, ÇÁ·Î½ÃÀú)¿¡ ´ëÇÑ ´ëüÀ̸§(Alias)¸¦ ¸»ÇÕ´Ï´Ù.



- SynonymÀº ½ÇÁúÀûÀ¸·Î ±× ÀÚü°¡ Object°¡ ¾Æ´Ï¶ó Object¿¡ ´ëÇÑ Á÷Á¢ÀûÀÎ ÂüÁ¶ ÀÔ´Ï´Ù.



- SynonymÀ» »ç¿ëÇÏ´Â ÀÌÀ¯´Â...

1) µ¥ÀÌÅͺ£À̽ºÀÇ Åõ¸í¼ºÀ» Á¦°øÇϱâ À§Çؼ­ »ç¿ë ÇÑ´Ù°í »ý°¢ÇÏ¸é µË´Ï´Ù.

    SynonymÀº ´Ù¸¥ À¯ÀúÀÇ °´Ã¼¸¦ ÂüÁ¶ÇÒ ¶§ ¸¹ÀÌ »ç¿ëÀ» ÇÕ´Ï´Ù.



2) ¸¸¾à¿¡ ½Ç¹«¿¡¼­ ´Ù¸¥ À¯ÀúÀÇ °´Ã¼¸¦ ÂüÁ¶ÇÒ °æ¿ì°¡ ÀÖÀ»¶§ SynonymÀ» »ý¼ºÇؼ­ »ç¿ëÀ» ÇϸéÀº ÃßÈÄ¿¡ ÂüÁ¶ÇÏ°í ÀÖ´Â ¿ÀºêÁ§Æ®°¡ À̸§À» ¹Ù²Ù°Å³ª À̵¿ÇÒ °æ¿ì °´Ã¼¸¦ »ç¿ëÇÏ´Â SQL¹®À» ¸ðµÎ ´Ù½Ã °íÄ¡´Â °ÍÀÌ ¾Æ´Ï¶ó Synonym¸¸ ´Ù½Ã Á¤ÀÇÇÏ¸é µÇ±â ¶§¹®¿¡ ¸Å¿ì Æí¸® ÇÕ´Ï´Ù.



3) °´Ã¼ÀÇ ±ä À̸§À» »ç¿ëÇϱâ ÆíÇÑ ÂªÀº À̸§À¸·Î Çؼ­ SQLÄÚµùÀ» ´Ü¼øÈ­ ½Ãų ¼ö ÀÖ½À´Ï´Ù.



4) ¶ÇÇÑ °´Ã¼¸¦ ÂüÁ¶ÇÏ´Â »ç¿ëÀÚÀÇ ¿ÀºêÁ§Æ®¸¦ °¨Ãâ ¼ö Àֱ⠶§¹®¿¡ ÀÌ¿¡ ´ëÇÑ º¸¾ÈÀ» À¯ÁöÇÒ ¼ö ÀÖ½À´Ï´Ù. SynonymÀ» »ç¿ëÇÏ´Â À¯Àú´Â ÂüÁ¶ÇÏ°í ÀÖ´Â °´Ã¼¿¡ ´ëÇÑ »ç¿ëÀÚÀÇ ¿ÀºêÁ§Æ®ÀÇ ¼ÒÀ¯ÀÚ, À̸§, ¼­¹öÀ̸§À» ¸ð¸£°í Synonym À̸§¸¸ ¾Ë¾Æµµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.



                                                                                                                                     

** Synonyms¸¦ »ç¿ëÇÏ´Â °æ¿ì **



- ¿ÀºêÁ§Æ®ÀÇ ½ÇÁ¦ À̸§°ú ¼ÒÀ¯ÀÚ ±×¸®°í À§Ä¡¸¦ °¨ÃãÀ¸·Î½á database º¸¾ÈÀ» °³¼±Çϴµ¥ »ç¿ë µË´Ï´Ù.

- object¿¡ÀÇ Public Access¸¦ Á¦°ø ÇÕ´Ï´Ù.

- Remote DatabaseÀÇ Table, View, Program Init¸¦ À§ÇØ Åõ¸í¼ºÀ» Á¦°ø ÇÕ´Ï´Ù.

- Database »ç¿ëÀÚ¸¦ À§ÇØ SQL¹®À» ´Ü¼øÈ­ ÇÒ ¼ö ÀÖ½À´Ï´Ù.



Synonym¿¡´Â µÎ°¡Áö Á¾·ù°¡ ÀÖ½À´Ï´Ù.

1) Private Synonym

- Àü¿ë SynonymÀº ƯÁ¤ »ç¿ëÀÚ¸¸ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.



2) Public Synonym

- °ø¿ë SynonymÀº °í¿ë »ç¿ëÀÚ ±×·ìÀÌ¸ç ¼ÒÀ¯ÇÏ¸ç ±× Database¿¡ ÀÖ´Â ¸ðµç »ç¿ëÀÚ°¡ °øÀ¯



                                                                                                                                     

** Synonym »ý¼º ¹®¹ý **

**[ Syntax ]*************************************************

* CREATE [PUBLIC] SYNONYM synonym_name

* FOR object_name

*************************************************************



- Public : ¸ðµç »ç¿ëÀÚ°¡ Á¢±Ù °¡´ÉÇÑ ½Ã³ë´ÔÀ» »ý¼º ÇÕ´Ï´Ù.

              Public SynonymÀÇ »ý¼º ¹× »èÁ¦´Â DBA¸¸ÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù.



                                                                                                                                     

¡Ø scott USERÀÇ empÅ×À̺íÀ» test USER°¡ »ç¿ëÇÏ´Â ¿¹Á¦



1. ¸ÕÀú scott/tiger USER·Î Á¢¼ÓÇؼ­ test USER¿¡°Ô empÅ×À̺íÀ» Á¶ÀÛÇÒ ±ÇÇÑÀ» ºÎ¿©ÇÕ´Ï´Ù.



SQL> GRANT ALL ON emp TO test;

        ±ÇÇÑÀÌ ºÎ¿©µÇ¾ú½À´Ï´Ù.



test user¿¡ ´ëÇÏ¿© scottÀÇ empÅ×À̺íÀ» Á¶ÀÛÇÒ ¼ö ÀÖ´Â ±ÇÇÑÀ» ºÎ¿© ÇÕ´Ï´Ù.

±ÇÇÑÀÌ ÀÖ¾î¾ß selectÇϰųª update, insertÇÒ ¼ö ÀÖ½À´Ï´Ù.



2. test USER·Î Á¢¼ÓÇØ µ¿ÀǾ »ý¼ºÇÕ´Ï´Ù.



SQL> connect test/test



SQL> CREATE SYNONYM scott_emp FOR scott.emp;

½Ã³ë´ÔÀÌ »ý¼ºµÇ¾ú½À´Ï´Ù.



scott USER°¡ ¼ÒÀ¯ÇÏ°í ÀÖ´Â empÅ×ÀÌºí¿¡ ´ëÇØ scott_emp¶ó´Â ÀϹݽóë´ÔÀ» »ý¼º Çß½À´Ï´Ù.

scott »ç¿ëÀÚÀÇ empÅ×À̺íÀ» test»ç¿ëÀÚ°¡ scott_emp¶ó´Â µ¿ÀǾî·Î »ç¿ë ÇÕ´Ï´Ù.



-- ½Ã³ë´ÔÀ» ÀÌ¿ëÇÑ Äõ¸®

SQL> SELECT empno, ename FROM scott_emp;



-- ÀÏ¹Ý Å×À̺íÀ» Äõ¸®

SQL> SELECT empno, ename FROM scott.emp;

ÀÌ µÎÄõ¸®ÀÇ °á°ú´Â °°½À´Ï´Ù.



  EMPNO ENAME
-------- ---------
    7369 SMITH
    7499 ALLEN
    7521 WARD
    7566 JONES
    7654 MARTIN
    7698 BLAKE
          15 °³ÀÇ ÇàÀÌ ¼±ÅõǾú½À´Ï´Ù.


                                                                                                                                     

** µ¿ÀÇ¾î »èÁ¦ **



SQL> DROP SYNONYM scott_emp;

½Ã³ë´ÔÀÌ »èÁ¦ µÇ¾ú½À´Ï´Ù.



SQL> SELECT empno, ename FROM scott_emp;

¶óÀÎ 1¿¡ ¿À·ù:

ORA - 00942 : Å×ÀÌºí ¶Ç´Â ºä°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.


¸ñ·Ï | ÀÔ·Â | ¼öÁ¤ | ´äº¯ | »èÁ¦