Rozdiel medzi synonymom a aliasom

Synonymum vs Alias (v databázach ORACLE) Súkromné ​​synonymá a verejné synonymá
 

V angličtine majú synonymum a alias takmer rovnaké významy. Ale v databázach sú to dve rôzne veci. Obzvlášť v databázach ORACLE je ich použitie odlišné. Synonymá sa používajú na odkazovanie objektov schémy alebo databázy z inej schémy. Synonymum je teda typ databázového objektu. Ale prezývky prichádzajú iným spôsobom. To znamená; nie sú to databázové objekty. Aliasy sa používajú na odkazovanie tabuliek, zobrazení a stĺpcov v rámci dopytov.

synonymá

Toto je typ databázových objektov. Vzťahujú sa na iné objekty v databáze. Najbežnejším použitím synonyma je odkázať objekt samostatnej schémy pomocou iného mena. Synonymá sa však dajú vytvoriť aj na sprostredkovanie odkazov na objekty inej databázy (v distribuovaných databázach pomocou databázových odkazov). Tabuľky, pohľady, funkcie, procedúry, balíčky, sekvencie, zhmotnené pohľady, objekty triedy java a spúšťače sa môžu použiť ako odkazy na synonymá. Existujú dva typy synoným.

  1.  Súkromné ​​synonymá (môže ho použiť iba používateľ, ktorý ich vytvoril.)
  2.  Verejné synonymá (môžu ho využívať všetci používatelia s príslušnými oprávneniami)

Tu je jednoduchá syntax na vytvorenie synonyma v samostatnej databáze,

vytvoriť synonymum myschema.mytable1 pre [email chránený] _link1

Pretože máme synonymum pomenované mytable1 v myschema pre [chránený e-mailom] _link1 (tabuľka distribuovanej databázy), môžeme ľahko odkázať na tabuľku distribuovanej databázy pomocou mytable1. Nepotrebujeme všade používať dlhý názov objektu s databázovým odkazom.

prezývka

Toto je iba ďalšie meno pre zobrazenie, tabuľku alebo stĺpec vo vnútri dotazu. Nejedná sa o databázové objekty. Preto aliasy nie sú platné všade v schéme / databáze. Platia iba vo vnútri dotazu. Pozrime sa na tento príklad,

                                    vyberte tab1.col1 ako c1, tab2.col2 ako c2

                                       z user1.tab1 tab1, user1.tab2 tab2

                                       kde tab1.col1 = tab2.col2

Tu, cl a c2 sú stĺpcové aliasy, ktoré sa používajú pre tab1.col1 a tab2.col2 a tab1 a tab2 sú tabuľkové aliasy, ktoré sa používajú pre user1.table1 a user2.table2. Všetky tieto aliasy sú platné iba v tomto dotaze. 

Aký je rozdiel medzi synonymami a aliasmi? (v databázach ORACLE)?

  • Synonymá sú typom databázového objektu. Ale prezývky sú iba meno, ktoré odkazuje na tabuľku, pohľad alebo stĺpec vo vnútri dotazu. Nie je to databázový objekt.
  • Synonymá sa dajú vytvoriť pre tabuľky, zobrazenia, funkcie, procedúry, balíčky, sekvencie, zhmotnené pohľady, typy objektov triedy Java a spúšťače. Ale aliasy sa používajú iba pre pohľady, tabuľky a ich stĺpce.
  • Keďže synonymá sú databázovým objektom, sú platné vo vnútri schémy (súkromná synonymum) alebo vo vnútri databázy (verejné synonymum). Ale aliasy platné vo vnútri dotazu, kde sa používajú.
  • Každá schéma potrebuje „Vytvoriť synonymum“ oprávnenie vytvárať synonymá. Neexistuje však žiadne oprávnenie na použitie aliasu.