Unterschied zwischen Synonym und Alias ​​

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.

  • Öffentliche Synonyme (können von allen Benutzern verwendet werden, die über die entsprechenden Berechtigungen verfügen)
  • 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.

    • Synonyme können für Tabellen, Ansichten, Funktionen, Prozeduren, Pakete, Sequenzen, materialisierte Ansichten, Objekttypen und Trigger der Java-Klasse erstellt werden. Aliasnamen werden jedoch nur für Ansichten, Tabellen und Spalten verwendet.
    • Da Synonyme ein Datenbankobjekt sind, sind sie innerhalb des Schemas (privates Synonym) oder innerhalb der Datenbank (öffentliches Synonym) gültig. Aliasnamen sind jedoch innerhalb der Abfrage gültig, wo sie verwendet werden.
    • Jedes Schema benötigt
    • "create synonym" Privileg, um Synonyme zu erstellen. Es gibt jedoch kein Privileg, Aliase zu verwenden.