Synonym vs. Alias (in ORACLE-Datenbanken) | Private Synonyme und öffentliche Synonyme
Im Englischen haben Synonym und Alias fast die gleiche Bedeutung. Aber in Datenbanken sind das zwei verschiedene Dinge. Insbesondere in ORACLE-Datenbanken ist die Verwendung beider unterschiedlich. Synonyme werden verwendet, um Objekte eines Schemas oder einer Datenbank aus einem anderen Schema zu referenzieren. Synonym ist also ein Datenbankobjekttyp. Aber Aliase kommen auf eine andere Art und Weise. Das bedeutet; Sie sind keine Datenbankobjekte. Aliase werden verwendet, um auf Tabellen, Ansichten und Sp alten in Abfragen zu verweisen.
Synonyme
Dies ist eine Art von Datenbankobjekten. Sie verweisen auf andere Objekte in der Datenbank. Die häufigste Verwendung von Synonymen besteht darin, auf ein Objekt eines separaten Schemas zu verweisen, indem ein anderer Name verwendet wird. Es können aber auch Synonyme erstellt werden, um auf die Objekte einer anderen Datenbank zu verweisen (in verteilten Datenbanken über Datenbankverknüpfungen). Als Referenzen für die Synonyme können Tabellen, Ansichten, Funktionen, Prozeduren, Pakete, Sequenzen, materialisierte Ansichten, Java-Klassenobjekte und Trigger verwendet werden. Es gibt zwei Arten von Synonymen.
- Private Synonyme (können nur von dem Benutzer verwendet werden, der sie erstellt hat.)
- Öffentliche Synonyme (können von allen Benutzern mit entsprechenden Rechten verwendet werden)
Hier ist eine einfache Syntax, um ein Synonym in einer separaten Datenbank zu erstellen, Synonym myschema.mytable1 für [E-Mail-geschützt]_link1 erstellen
Da wir in myschema ein Synonym namens mytable1 für [email protected]_link1 (distributed database table) haben, können wir mit mytable1 einfach auf die verteilte Datenbanktabelle verweisen. Wir müssen nicht überall den langen Objektnamen mit Datenbankverknüpfung verwenden.
Alias
Dies ist nur ein anderer Name für eine Ansicht, eine Tabelle oder eine Sp alte innerhalb einer Abfrage. Sie sind keine Datenbankobjekte. Daher sind Aliase nicht überall im Schema/in der Datenbank gültig. Sie sind nur innerhalb der Abfrage gültig. Sehen wir uns dieses Beispiel an, wähle tab1.col1 als c1, tab2.col2 als c2
von user1.tab1 tab1, user1.tab2 tab2
wo tab1.col1=tab2.col2
Hier sind c1 und c2 Sp altenaliase, die für tab1.col1 und tab2.col2 verwendet werden, und tab1 und tab2 sind Tabellenaliase, die für user1.table1 und user2.table2 verwendet werden. Alle diese Aliase sind nur innerhalb dieser Abfrage gültig.
Was ist der Unterschied zwischen Synonym und Alias (in ORACLE-Datenbanken)?