Unterschied zwischen Synonym und Alias

Synonym gegen Alias (in Oracle-Datenbanken) | Private Synonyme und öffentliche Synonyme
 

Im Englischen haben Synonym und Alias ​​fast die gleiche Bedeutung. In Datenbanken sind dies jedoch zwei verschiedene Dinge. Insbesondere in ORACLE-Datenbanken unterscheiden sich beide. Synonyme werden verwendet, um Objekte eines Schemas oder einer Datenbank aus einem anderen Schema zu referenzieren. Synonym ist also ein Datenbankobjekttyp. Aber Aliase kommen anders. Das bedeutet; Sie sind keine Datenbankobjekte. Aliase werden verwendet, um auf Tabellen, Ansichten und Spalten in Abfragen zu verweisen.

Synonyme

Dies ist ein Typ von Datenbankobjekten. Sie beziehen sich auf andere Objekte in der Datenbank. Die häufigste Verwendung von Synonym ist das Verweisen auf ein Objekt eines separaten Schemas unter Verwendung eines anderen Namens. Es können jedoch Synonyme erstellt werden, um auf die Objekte einer anderen Datenbank zu verweisen (in verteilten Datenbanken über Datenbankverknüpfungen). Tabellen, Ansichten, Funktionen, Prozeduren, Pakete, Sequenzen, materialisierte Ansichten, Java-Klassenobjekte und Auslöser können als Referenzen für die Synonyme verwendet werden. Es gibt zwei Arten von Synonymen.

  1.  Private Synonyme (kann nur von dem Benutzer verwendet werden, der sie erstellt hat.)
  2.  Öffentliche Synonyme (können von allen Benutzern mit den entsprechenden Berechtigungen verwendet werden)

Hier ist eine einfache Syntax, um ein Synonym in einer separaten Datenbank zu erstellen,

Erstellen Sie das Synonym myschema.mytable1 für [E-Mail geschützt]_link1

Da haben wir ein Synonym namens mytable1 im myschema zum [E-Mail geschützt]_link1 (verteilte Datenbanktabelle), Wir können die verteilte Datenbanktabelle leicht mit verweisen mytable1. Wir müssen den langen Objektnamen nicht überall mit Datenbankverknüpfungen verwenden.

Alias

Dies sind nur ein anderer Name für eine Ansicht, eine Tabelle oder eine Spalte in einer Abfrage. Sie sind keine Datenbankobjekte. Daher sind Aliase nicht überall im Schema / in der Datenbank gültig. Sie sind nur in der Abfrage gültig. Lassen Sie uns dieses Beispiel sehen,

                                    Wählen Sie tab1.col1 als c1, tab2.col2 als c2 aus

                                       von user1.tab1 tab1, user1.tab2 tab2

                                       Dabei ist tab1.col1 = tab2.col2

Hierbei sind c1 und c2 Spaltenaliase, 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 in dieser Abfrage gültig. 

Was ist der Unterschied zwischen Synonym und Alias? (in Oracle-Datenbanken)?

  • Synonyme sind ein Datenbankobjekttyp. Aliase sind jedoch nur ein Name, um auf eine Tabelle, eine Ansicht oder eine Spalte in einer Abfrage zu verweisen. Kein Datenbankobjekt.
  • Synonyme können für Tabellen, Ansichten, Funktionen, Prozeduren, Pakete, Sequenzen, materialisierte Ansichten, Java-Klassenobjekttypen und -auslöser erstellt werden. Aliase werden jedoch nur für Ansichten, Tabellen und ihre Spalten verwendet.
  • Da Synonyme ein Datenbankobjekt sind, sind sie innerhalb des Schemas (privates Synonym) oder innerhalb der Datenbank (öffentliches Synonym) gültig. Aliase sind jedoch in der Abfrage gültig, in der sie verwendet werden.
  • Jedes Schema braucht "Synonym erstellen" Privileg, Synonyme zu erstellen. Es besteht jedoch kein Privileg, Aliase zu verwenden.