Sinonim vs Alias (în bazele de date ORACLE) | Sinonime private și sinonime publice
În engleză, sinonimul și aliasul au aproape aceleași semnificații. Dar în bazele de date acestea sunt două lucruri diferite. În special în bazele de date ORACLE, ambele utilizări sunt diferite. Sinonimele sunt folosite pentru a face referire la obiecte ale unei scheme sau ale unei baze de date dintr-o altă schemă. Deci sinonimul este un tip de obiect al bazei de date. Dar pseudonimele vin într-un mod diferit. Asta inseamna; nu sunt obiecte de bază de date. Aliasurile sunt folosite pentru a trimite tabele, vizualizări și coloane în interiorul interogărilor.
Sinonime
Aceste un tip de obiecte de bază de date. Se referă la alte obiecte din baza de date. Cea mai obișnuită utilizare a sinonimului este de a face referire la un obiect dintr-o schemă separată folosind un alt nume. Dar sinonime pot fi create pentru a trimite și obiectele unei alte baze de date (în bazele de date distribuite, folosind link-uri de baze de date). Tabelele, vizualizările, funcțiile, procedurile, pachetele, secvențele, vederile materializate, obiectele clasei Java și declanșatoarele pot fi folosite ca referințe pentru sinonime. Există două tipuri de sinonime.
- Sinonime private (pot fi folosite numai de utilizatorul care le-a creat.)
- Sinonime publice (pot fi folosite 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 [email protected]_link1
Deoarece avem un sinonim numit mytable1 în myschema pentru [email protected]_link1 (tabelul bazei de date distribuite), putem face referire cu ușurință la tabelul bazei de date distribuite folosind mytable1. Nu este nevoie să folosim peste tot numele lung al obiectului cu link la baza de date.
Alias
Acestea sunt doar un alt nume pentru o vizualizare, un tabel sau o coloană din interiorul unei interogări. Nu sunt obiecte de bază de date. Prin urmare, aliasurile nu sunt valide peste tot în schemă/bază de date. Sunt valabile numai în interiorul interogării. Să vedem acest exemplu, selectați tab1.col1 ca c1, tab2.col2 ca c2
din user1.tab1 tab1, user1.tab2 tab2
unde tab1.col1=tab2.col2
Aici, c1 și c2 sunt aliasuri de coloană, 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 cadrul acestei interogări.
Care este diferența dintre sinonim și alias (în bazele de date ORACLE)?