Synoniem versus alias (in ORACLE-databases) | Private synoniemen en openbare synoniemen
In het Engels hebben synoniemen en aliassen bijna dezelfde betekenissen. Maar in databases zijn dat twee verschillende dingen. Vooral in ORACLE-databases is hun gebruik anders. Synoniemen worden gebruikt om objecten van een schema of database door te verwijzen vanuit een ander schema. Dus synoniem is een databaseobjecttype. Maar aliassen komen op een andere manier. Dat betekent; het zijn geen database-objecten. Aliassen worden gebruikt om tabellen, weergaven en kolommen binnen query's door te verwijzen.
Synoniemen
Dit zijn een soort database-objecten. Ze verwijzen naar andere objecten in de database. Het meest gebruikelijke gebruik van synoniemen is om een object van een afzonderlijk schema te verwijzen door een andere naam te gebruiken. Maar synoniemen kunnen ook worden gemaakt om de objecten van een andere database door te verwijzen (in gedistribueerde databases, met behulp van databasekoppelingen). Tabellen, weergaven, functies, procedures, pakketten, sequenties, gematerialiseerde weergaven, java-klassenobjecten en triggers kunnen worden gebruikt als verwijzingen voor de synoniemen. Er zijn twee soorten synoniemen.
Hier is een eenvoudige syntaxis om een synoniem te maken in een afzonderlijke database,
maak synoniem myschema.mytable1 voor [e-mail beveiligd]_link1
Omdat we een synoniem hebben genoemd mytable1 in myschema voor [e-mail beveiligd]_link1 (gedistribueerde databasetabel), we kunnen eenvoudig de gedistribueerde databasetabel doorverwijzen mytable1. We hoeven de lange objectnaam niet overal met databaselink te gebruiken.
Alias
Dit zijn slechts 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 query. Laten we dit voorbeeld bekijken,
selecteer tab1.col1 als c1, tab2.col2 als c2
van user1.tab1 tab1, user1.tab2 tab2
waar 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)?
|