Synonymum vs Alias (v databázach ORACLE) | Súkromné synonymá a Verejné synonymá
V angličtine majú synonymá a prezývky takmer rovnaký význam. Ale v databázach sú to dve rozdielne veci. Najmä v databázach ORACLE sú obe ich využitie odlišné. Synonymá sa používajú na odkazovanie objektov schémy alebo databázy z inej schémy. Synonymum je teda typ objektu databázy. Ale aliasy prichádzajú iným spôsobom. To znamená; nie sú databázovými objektmi. Aliasy sa používajú na odkazovanie tabuliek, zobrazení a stĺpcov v rámci dotazov.
Synonymá
Ide o typ databázových objektov. Odkazujú na iné objekty v databáze. Najbežnejšie použitie synonyma je odkazovať na objekt samostatnej schémy pomocou iného názvu. Je však možné vytvoriť synonymá, ktoré odkazujú 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, materializované pohľady, objekty triedy Java a spúšťače môžu byť použité ako referencie pre synonymá. Existujú dva typy synoným.
- Súkromné synonymá (môže ich použiť iba používateľ, ktorý ich vytvoril.)
- Verejné synonymá (môžu ich používať všetci používatelia, ktorí majú príslušné oprávnenia)
Tu je jednoduchá syntax na vytvorenie synonyma v samostatnej databáze, vytvoriť synonymum myschema.mytable1 pre [email protected]_link1
Keďže v myschema máme synonymum s názvom mytable1 pre [email protected]_link1 (distribuovaná databázová tabuľka), môžeme jednoducho odkazovať na distribuovanú databázovú tabuľku pomocou mytable1. Nemusíme všade používať dlhý názov objektu s odkazom na databázu.
Alias
Toto je len iný názov pre zobrazenie, tabuľku alebo stĺpec v dotaze. Nie sú to databázové objekty. Preto aliasy nie sú platné všade v schéme/databáze. Sú platné iba v rámci dopytu. Pozrime sa na tento príklad, vyberte tab1.col1 ako c1, tab2.col2 ako c2
from user1.tab1 tab1, user1.tab2 tab2
kde tab1.col1=tab2.col2
Tu, c1 a c2 sú aliasy stĺpcov, ktoré sa používajú pre tab1.col1 a tab2.col2, a tab1 a tab2 sú aliasy tabuliek, ktoré sa používajú pre user1.table1 a user2.table2. Všetky tieto aliasy sú platné iba v rámci tohto dopytu.
Aký je rozdiel medzi Synonymom a Aliasom (v databázach ORACLE)?