Sinonim proti vzdevku (v zbirkah podatkov ORACLE) | Zasebni in javni sinonimi
V angleščini imata sinonim in vzdevek skoraj enak pomen. Toda v bazah podatkov sta to dve različni stvari. Zlasti v bazah podatkov ORACLE je uporaba obeh različna. Sinonimi se uporabljajo za sklicevanje na objekte sheme ali baze podatkov iz druge sheme. Sinonim je torej vrsta objekta baze podatkov. Toda vzdevki prihajajo na drugačen način. To pomeni; niso predmeti baze podatkov. Vzdevki se uporabljajo za sklicevanje na tabele, poglede in stolpce znotraj poizvedb.
Sinonimi
To so vrsta objektov zbirke podatkov. Sklicujejo se na druge objekte v bazi podatkov. Najpogostejša uporaba sinonima je sklicevanje na objekt ločene sheme z uporabo drugega imena. Toda sinonime je mogoče ustvariti tudi za sklicevanje na objekte druge baze podatkov (v porazdeljenih bazah podatkov z uporabo povezav baze podatkov). Tabele, pogledi, funkcije, procedure, paketi, zaporedja, materializirani pogledi, objekti razreda Java in sprožilci se lahko uporabljajo kot reference za sinonime. Obstajata dve vrsti sinonimov.
- Zasebni sinonimi (lahko jih uporablja samo uporabnik, ki jih je ustvaril.)
- Javni sinonimi (uporabljajo jih lahko vsi uporabniki, ki imajo ustrezne privilegije)
Tukaj je preprosta sintaksa za ustvarjanje sinonima v ločeni bazi podatkov, ustvari sinonim myschema.mytable1 za [email protected]_link1
Ker imamo sinonim z imenom mytable1 v moji shemi za [email protected]_link1 (tabela porazdeljene baze podatkov), se lahko zlahka sklicujemo na tabelo porazdeljene baze podatkov z uporabo mytable1. Ni nam treba povsod uporabljati dolgega imena predmeta s povezavo do baze podatkov.
vzdevek
To je samo drugo ime za pogled, tabelo ali stolpec znotraj poizvedbe. Niso objekti baze podatkov. Zato vzdevki niso veljavni povsod v shemi/zbirki podatkov. Veljavni so samo znotraj poizvedbe. Poglejmo ta primer, izberite tab1.col1 kot c1, tab2.col2 kot c2
from user1.tab1 tab1, user1.tab2 tab2
kjer je tab1.col1=tab2.col2
Tukaj sta c1 in c2 vzdevka stolpca, ki se uporabljata za tab1.col1 in tab2.col2, tab1 in tab2 pa sta vzdevka tabele, ki se uporabljata za user1.table1 in user2.table2. Vsi ti vzdevki so veljavni samo znotraj te poizvedbe.
Kakšna je razlika med sinonimom in vzdevkom (v zbirkah podatkov ORACLE)?