Synoniem versus Alias (in ORACLE-databases) | Privé-synoniemen en openbare synoniemen
In het Engels hebben synoniem en alias bijna dezelfde betekenis. Maar in databases zijn dat twee verschillende dingen. Vooral in ORACLE-databases is hun gebruik verschillend. Synoniemen worden gebruikt om objecten van een schema of een database uit een ander schema te verwijzen. Synoniem is dus een databaseobjecttype. Maar aliassen komen op een andere manier. Dat betekent; het zijn geen database-objecten. Aliassen worden gebruikt om tabellen, views en kolommen in query's te verwijzen.
Synoniemen
Dit zijn een soort databaseobjecten. Ze verwijzen naar andere objecten in de database. Het meest gebruikelijke gebruik van synoniem is om een object van een afzonderlijk schema te verwijzen door een andere naam te gebruiken. Maar er kunnen ook synoniemen worden gemaakt om de objecten van een andere database te verwijzen (in gedistribueerde databases, met databasekoppelingen). Tabellen, views, functies, procedures, pakketten, sequenties, gematerialiseerde views, java class-objecten en triggers kunnen worden gebruikt als verwijzingen voor de synoniemen. Er zijn twee soorten synoniemen.
- Privésynoniemen (kunnen alleen worden gebruikt door de gebruiker die ze heeft gemaakt.)
- Openbare synoniemen (kunnen worden gebruikt door alle gebruikers met de juiste rechten)
Hier is een eenvoudige syntaxis om een synoniem in een aparte database te maken, maak een synoniem myschema.mytable1 voor [email protected] _link1
Omdat we een synoniem hebben met de naam mytable1 in myschema voor [email protected] _link1 (gedistribueerde databasetabel), kunnen we gemakkelijk de gedistribueerde databasetabel raadplegen met mytable1. We hoeven niet overal de lange objectnaam met databasekoppeling te gebruiken.
Alias
Dit zijn gewoon een andere naam voor een weergave, een tabel of een kolom in een query. Het zijn geen database-objecten. Daarom zijn aliassen niet overal geldig in het schema / de database. Ze zijn alleen geldig binnen de zoekopdracht. Laten we dit voorbeeld eens bekijken,
selecteer tab1.col1 als c1, tab2.col2 als c2
van user1.tab1 tab1, user1.tab2 tab2
waarbij tab1.col1 = tab2.col2
Hier zijn c1 en c2 kolomaliassen, die worden gebruikt voor tab1.col1 en tab2.col2, en tab1 en tab2 zijn tabelaliassen, die worden gebruikt voor user1.table1 en user2.table2. Al deze aliassen zijn alleen geldig binnen deze query.
Wat is het verschil tussen synoniem en alias (in ORACLE-databases)? Synoniemen zijn een database-objecttype. Maar aliassen zijn slechts een naam om naar een tabel, weergave of kolom in een query te verwijzen. Geen database-objectEr kunnen synoniemen worden gemaakt voor tabellen, views, functies, procedures, pakketten, reeksen, gematerialiseerde views, java class-objecttypes en triggers. Maar aliassen worden alleen gebruikt voor weergaven, tabellen en hun kolommenAangezien synoniemen een databaseobject zijn, zijn ze geldig binnen het schema (privé synoniem) of binnen de database (openbaar synoniem). Maar aliassen die geldig zijn binnen de query waarin ze worden gebruiktElk schema heeft het recht "synoniem maken" nodig om synoniemen te maken. Maar er is geen enkel voorrecht om aliassen te gebruiken |