Rozdíl mezi synonymem a aliasem

Synonymum vs Alias (v databázích ORACLE) Soukromá synonyma a veřejná synonyma
 

V angličtině mají synonymum a alias téměř stejný význam. Ale v databázích jsou to dvě různé věci. Obzvláště v databázích ORACLE je jejich použití odlišné. Synonyma se používají k odkazování objektů schématu nebo databáze z jiného schématu. Synonymum je tedy typ databázového objektu. Ale aliasy přicházejí jiným způsobem. To znamená; nejsou to databázové objekty. Aliasy se používají k odkazování tabulek, pohledů a sloupců uvnitř dotazů.

Synonyma

Jedná se o typ databázových objektů. Odkazují na jiné objekty v databázi. Nejběžnějším použitím synonym je odkazování na objekt samostatného schématu pomocí jiného jména. Synonyma však lze vytvořit i pro odkazování na objekty jiné databáze (v distribuovaných databázích pomocí databázových odkazů). Tabulky, pohledy, funkce, procedury, balíčky, sekvence, materializované pohledy, objekty třídy Java a spouštěče mohou být použity jako reference pro synonyma. Existují dva typy synonym.

  1.  Soukromá synonyma (může použít pouze uživatel, který je vytvořil.)
  2.  Veřejná synonyma (mohou je používat všichni uživatelé, kteří mají příslušná oprávnění)

Zde je jednoduchá syntaxe pro vytvoření synonyma v samostatné databázi,

vytvořit synonymum myschema.mytable1 pro [e-mail chráněný] _link1

Protože máme synonymum pojmenované mytable1 v myschema pro [chráněno e-mailem] _link1 (tabulka distribuované databáze), můžeme snadno rozdělit tabulku distribuované databáze pomocí mytable1. Nepotřebujeme používat dlouhý název objektu s databázovým odkazem všude.

Alias

Jedná se pouze o jiné jméno pohledu, tabulky nebo sloupce uvnitř dotazu. Nejedná se o databázové objekty. Proto aliasy nejsou platné všude ve schématu / databázi. Platí pouze uvnitř dotazu. Podívejme se na tento příklad,

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

                                       z user1.tab1 tab1, user1.tab2 tab2

                                       kde tab1.col1 = tab2.col2

Zde jsou cl a c2 aliasy sloupců, které se používají pro tab1.col1 a tab2.col2 a tab1 a tab2 jsou tabulkové aliasy, které se používají pro user1.table1 a user2.table2. Všechny tyto aliasy jsou platné pouze v tomto dotazu. 

Jaký je rozdíl mezi synonymem a aliasem? (v databázích ORACLE)?

  • Synonyma jsou typ databázového objektu. Ale aliasy jsou pouze jméno, které odkazuje na tabulku, pohled nebo sloupec uvnitř dotazu. Nejedná se o databázový objekt.
  • Synonyma lze vytvořit pro tabulky, pohledy, funkce, procedury, balíčky, sekvence, materializované pohledy, typy objektů a spouštěče třídy java. Ale aliasy se používají pouze pro pohledy, tabulky a jejich sloupce.
  • Protože synonyma jsou databázový objekt, jsou platné uvnitř schématu (soukromé synonymum) nebo uvnitř databáze (veřejné synonymum). Ale aliasy platné uvnitř dotazu, kde jsou použity.
  • Každé schéma potřebuje „Vytvořit synonymum“ oprávnění vytvářet synonyma. Neexistuje však žádné oprávnění k používání aliasu.