Unterschied zwischen Synonym und Alias ​​

Anonim

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. Besonders in ORACLE-Datenbanken ist ihre Verwendung unterschiedlich. Synonyme werden verwendet, um Objekte eines Schemas oder einer Datenbank von einem anderen Schema zu verweisen. Das Synonym ist also ein Datenbankobjekttyp. Aber Aliase kommen anders. Das bedeutet; Sie sind keine Datenbankobjekte. Aliases werden verwendet, um Tabellen, Ansichten und Spalten innerhalb von Abfragen zu verweisen.

Synonyme

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

  1. Öffentliche Synonyme (können von allen Benutzern verwendet werden, die über die entsprechenden Berechtigungen verfügen)
  2. Hier ist eine einfache Syntax, um ein Synonym in einer separaten Datenbank zu erstellen,

create myschema. mytable1 für userA. table1 @ database_link1

Da wir in

myschema für userA ein Synonym namens mytable1 haben. table1 @ database_link1 (verteilte Datenbanktabelle) können wir die verteilte Datenbanktabelle einfach mit mytable1 verweisen. Wir brauchen den langen Objektnamen nicht überall mit Datenbankverknüpfungen zu verwenden.

Alias ​​

Dies sind nur ein anderer Name für eine Ansicht, eine Tabelle oder eine Spalte innerhalb einer Abfrage. Sie sind keine Datenbankobjekte. Daher sind Aliasnamen nicht überall im Schema / der Datenbank gültig. Sie sind nur innerhalb der Abfrage gültig. Sehen wir uns dieses Beispiel an,

select tab1. col1 als c1, tab2. col2 als c2

von user1. Tab1 Tab1, Benutzer1. Tab2 Tab2

wo Tab1. col1 = tab2. col2

Hier sind c1 und c2 Spaltenaliase, die für tab1 verwendet werden. col1 und tab2. col2 und tab1 und tab2 sind Tabellenaliase, die für user1 verwendet werden. table1 und user2. Tabelle 2. Alle diese Aliase sind nur innerhalb dieser Abfrage gültig.

Was ist der Unterschied zwischen Synonym und Alias ​​

(in ORACLE-Datenbanken) ? Synonyme sind ein Datenbankobjekttyp. Aliasnamen sind jedoch nur ein Name, um eine Tabelle, eine Sicht oder eine Spalte innerhalb einer Abfrage zu verweisen. Kein Datenbankobjekt.