Razlika između sinonima i aliasa

Sinonim vs alias (u bazama podataka ORACLE) | Privatni sinonimi i Javni sinonimi
 

U engleskom jeziku sinonim i pseudonim imaju gotovo ista značenja. Ali u bazama podataka to su dvije različite stvari. Osobito u ORACLE bazama podataka, obje njihove uporabe su različite. Sinonimi se koriste za upućivanje objekata sheme ili baze podataka iz druge sheme. Dakle, sinonim je vrsta objekta baze podataka. Ali aliasi dolaze na drugačiji način. To znaci; oni nisu objekti baze podataka. Nazivi se upotrebljavaju za upućivanje tablica, prikaza i stupaca unutar upita.

sinonimi

Ovo su vrsta objekata baze podataka. One se odnose na druge objekte u bazi podataka. Najčešća upotreba sinonima jest pozivanje na objekt zasebne sheme pomoću drugog imena. No sinonimi se mogu stvoriti i za upućivanje na objekte druge baze podataka (u distribuiranim bazama podataka, korištenjem veza na bazu podataka). Tablice, prikazi, funkcije, postupci, paketi, nizovi, materijalizirani pogledi, objekti klase java i okidači mogu se koristiti kao reference za sinonime. Postoje dvije vrste sinonima.

  1.  Privatni sinonimi (može ih koristiti samo korisnik koji ih je stvorio.)
  2.  Javni sinonimi (mogu ih koristiti svi korisnici koji imaju odgovarajuće privilegije)

Ovdje je jednostavna sintaksa za stvaranje sinonima u zasebnoj bazi podataka,

stvorite sinonim myschema.mytable1 za [email protected] _link1

Budući da imamo sinonim po imenu mytable1 u myschema za [zaštićena e-pošta] _link1 (tablica distribuirane baze podataka), možemo jednostavno uputiti tablicu distribuirane baze podataka koristeći mytable1. Ne moramo svugdje koristiti dugačak naziv objekta s vezom na bazu podataka.

pseudonim

Ovo su samo još jedan naziv za prikaz, tablicu ili stupac unutar upita. Oni nisu objekti baze podataka. Stoga pseudonimeri ne vrijede svugdje u shemi / bazi podataka. One su važeće samo unutar upita. Pogledajmo ovaj primjer,

                                    odaberite tab1.col1 kao c1, tab2.col2 kao c2

                                       from user1.tab1 tab1, user1.tab2 tab2

                                       gdje je tab1.col1 = tab2.col2

Ovdje su c1 i c2 pseudonimi stupaca, koji se koriste za tab1.col1 i tab2.col2, a tab1 i tab2 su pseudonimi tablica, koji se koriste za user1.table1 i user2.table2. Svi ovi pseudonimi vrijede samo unutar ovog upita. 

Koja je razlika između sinonima i aliasa (u bazama podataka ORACLE)?

  • Sinonimi su tip objekta baze podataka. Ali aliasi su samo naziv za upućivanje na tablicu, prikaz ili stupac unutar upita. Nije objekt baze podataka.
  • Sinonimi se mogu stvoriti za tablice, prikaze, funkcije, postupke, pakete, sekvence, materijalizirane poglede, tipove objekata i okidače klase java. Ali pseudonimi se koriste samo za prikaze, tablice i njihove stupce.
  • Budući da su sinonimi objekt baze podataka, vrijede unutar sheme (privatni sinonim) ili unutar baze podataka (javni sinonim). Ali aliasi vrijede unutar upita gdje se koriste.
  • Svaka shema treba "Stvoriti sinonim" privilegija stvaranja sinonima. Ali nema nikakve privilegije za korištenje pseudonima.