Sinonim vs Alias (u ORACLE bazama podataka) | Privatni sinonimi i javni sinonimi
Na engleskom sinonim i alias imaju skoro ista značenja. Ali u bazama podataka to su dvije različite stvari. Naročito u ORACLE bazama podataka, njihova upotreba je različita. Sinonimi se koriste za upućivanje objekata sheme ili baze podataka iz druge sheme. Dakle, sinonim je tip objekta baze podataka. Ali alijasi dolaze na drugačiji način. To znači; oni nisu objekti baze podataka. Aliasi se koriste za upućivanje na tabele, poglede i kolone unutar upita.
Sinonimi
Ovo su tipovi objekata baze podataka. Oni se odnose na druge objekte u bazi podataka. Najčešća upotreba sinonima je upućivanje na objekt posebne sheme korištenjem drugog imena. Ali sinonimi se mogu kreirati i za upućivanje na objekte druge baze podataka (u distribuiranim bazama podataka, koristeći veze baze podataka). Tabele, pogledi, funkcije, procedure, paketi, sekvence, materijalizirani pogledi, objekti java klase i okidači mogu se koristiti kao reference za sinonime. Postoje dvije vrste sinonima.
- Privatni sinonimi (može ih koristiti samo korisnik koji ih je kreirao.)
- Javni sinonimi (mogu koristiti svi korisnici koji imaju odgovarajuće privilegije)
Ovdje je jednostavna sintaksa za kreiranje sinonima u zasebnoj bazi podataka, kreirajte sinonim myschema.mytable1 za [email protected]_link1
Pošto imamo sinonim po imenu mytable1 u myschema za [email protected]_link1 (tabela distribuirane baze podataka), možemo lako uputiti tabelu distribuirane baze podataka koristeći mytable1. Ne moramo svugdje koristiti dugo ime objekta sa vezom baze podataka.
Alias
Ovo su samo još jedno ime za pogled, tabelu ili kolonu unutar upita. Oni nisu objekti baze podataka. Stoga, aliasi nisu važeći svuda u šemi/bazi podataka. Važe samo unutar upita. Pogledajmo ovaj primjer, odaberi tab1.col1 kao c1, tab2.col2 kao c2
from user1.tab1 tab1, user1.tab2 tab2
gdje tab1.col1=tab2.col2
Ovdje, c1 i c2 su pseudonimi stupaca, koji se koriste za tab1.col1 i tab2.col2, a tab1 i tab2 su pseudonimi tablice, koji se koriste za user1.table1 i user2.table2. Svi ovi aliasi su važeći samo unutar ovog upita.
Koja je razlika između sinonima i aliasa (u ORACLE bazama podataka)?