Diferența dintre sinonim și alias

Sinonime vs. Alias (în bazele de date ORACLE) Sinonime private și Sinonime publice
 

În limba engleză, sinonimul și aliasul au aproape aceleași semnificații. Dar în bazele de date acestea sunt două lucruri diferite. Mai ales în bazele de date ORACLE, ambele utilizări sunt diferite. Sinonimele sunt folosite pentru a trimite obiecte dintr-o schemă sau dintr-o bază de date dintr-o altă schemă. Deci, sinonimul este un tip de obiect bază de date. Dar pseudonimele vin într-un mod diferit. Asta inseamna; acestea nu sunt obiecte baze de date. Aliasurile sunt folosite pentru a trimite tabele, vizualizări și coloane în interogări.

Sinonime

Acestea sunt un tip de obiecte baze de date. Ele se referă la alte obiecte din baza de date. Cea mai obișnuită utilizare a sinonimului este de a trimite un obiect al unei scheme separate utilizând un alt nume. Dar sinonimele pot fi create pentru a trimite obiectele unei alte baze de date, de asemenea (în baze de date distribuite, folosind link-uri de baze de date). Tabelele, vederile, funcțiile, procedurile, pachetele, secvențele, vederile materializate, obiectele de clasă java și declanșatoarele pot fi folosite ca referințe pentru sinonime. Există două tipuri de sinonime.

  1.  Sinonime private (pot fi utilizate numai de utilizatorul care le-a creat.)
  2.  Sinonime publice (pot fi utilizate de toți utilizatorii care au privilegiile corespunzătoare)

Aici este o sintaxă simplă pentru a crea un sinonim într-o bază de date separată,

creați sinonimul myschema.mytable1 pentru [protejat prin e-mail]_link1

Deoarece avem un nume sinonim mytable1 în myschema pentru [protejat prin e-mail]_link1 (tabel distribuit de baze de date), putem folosi tabela de baze de date distribuite cu ușurință mytable1. Nu este nevoie să folosim numele de obiect lung cu link-ul bazei de date peste tot.

Alias

Acestea sunt doar un alt nume pentru o vizualizare, o tabelă sau o coloană în interiorul unei interogări. Ele nu sunt obiecte baze de date. Prin urmare, aliasurile nu sunt valabile peste tot în schemă / bază de date. Ele sunt valabile doar în interogare. Să vedem acest exemplu,

                                    selectați tab1.col1 ca c1, tab2.col2 ca c2

                                       din fișierul user1.tab1 tab1, user1.tab2 tab2

                                       unde tab1.col1 = tab2.col2

Aici, c1 și c2 sunt aliasuri de coloane, care sunt utilizate pentru tab1.col1 și tab2.col2, iar tab1 și tab2 sunt aliasuri de tabelă, care sunt utilizate pentru user1.table1 și user2.table2. Toate aceste pseudonime sunt valide numai în această interogare. 

Care este diferența dintre Sinonim și Alias (în bazele de date ORACLE)?

  • Sinonimele reprezintă un tip de obiect bază de date. Dar pseudonimele sunt doar un nume pentru a trimite o tabelă, o vizualizare sau o coloană în interiorul unei interogări. Nu este un obiect de baze de date.
  • Pot fi create sinonime pentru tabele, vizualizări, funcții, proceduri, pachete, secvențe, vizualizări materializate, tipuri de obiecte de clasă java și declanșatoare. Dar pseudonimele sunt folosite doar pentru vizualizări, mese și coloanele lor.
  • Deoarece sinonimele reprezintă un obiect de bază de date, ele sunt valide în interiorul schemei (sinonimul privat) sau în interiorul bazei de date (sinonim public). Dar pseudonime valabile în interiorul interogării unde sunt folosite.
  • Fiecare schemă are nevoie "A crea sinonim" privilegiul de a crea sinonime. Dar nu există niciun privilegiu de a utiliza aliasuri.