Différence entre synonyme et alias

Synonyme vs Alias (dans les bases de données ORACLE) | Synonymes privés et synonymes publics
 

En anglais, synonyme et alias ont presque les mêmes significations. Mais dans les bases de données, ce sont deux choses différentes. Surtout dans les bases de données ORACLE, leur utilisation est différente. Les synonymes sont utilisés pour faire référence à des objets d'un schéma ou d'une base de données à partir d'un autre schéma. Donc, synonyme est un type d'objet de base de données. Mais les pseudonymes arrivent d'une manière différente. Cela signifie; ce ne sont pas des objets de base de données. Les alias sont utilisés pour faire référence à des tables, des vues et des colonnes à l'intérieur de requêtes.

Synonymes

Ce sont un type d'objets de base de données. Ils font référence à d'autres objets de la base de données. L'utilisation la plus courante de synonyme est de faire référence à un objet d'un schéma séparé en utilisant un autre nom. Mais des synonymes peuvent être créés pour faire référence aux objets d'une autre base de données (dans les bases de données distribuées, en utilisant des liens de base de données). Les tableaux, vues, fonctions, procédures, packages, séquences, vues matérialisées, objets de classe java et déclencheurs peuvent être utilisés comme références pour les synonymes. Il y a deux types de synonymes.

  1.  Les synonymes privés (ne peuvent être utilisés que par l'utilisateur qui les a créés.)
  2.  Synonyme public (peut être utilisé par tous les utilisateurs disposant des privilèges appropriés)

Voici une syntaxe simple pour créer un synonyme dans une base de données séparée,

créer un synonyme myschema.mytable1 pour [email protégé]_link1

Puisque nous avons un synonyme nommé mytable1 dans myschema pour [email protégé]_link1 (table de base de données distribuée), on peut facilement se référer à la table de base de données distribuée en utilisant mytable1. Nous n'avons pas besoin d'utiliser le nom d'objet long avec le lien de base de données partout.

Alias

Celles-ci ne sont qu'un autre nom pour une vue, une table ou une colonne dans une requête. Ce ne sont pas des objets de base de données. Par conséquent, les alias ne sont pas valides partout dans le schéma / la base de données. Ils ne sont valables que dans la requête. Voyons cet exemple,

                                    sélectionnez tab1.col1 en tant que c1, tab2.col2 en tant que c2

                                       de user1.tab1 tab1, user1.tab2 tab2

                                       où tab1.col1 = tab2.col2

Ici, c1 et c2 sont des alias de colonne utilisés pour tab1.col1 et tab2.col2, et tab1 et tab2 sont des alias de table utilisés pour user1.table1 et user2.table2. Tous ces alias ne sont valides que dans cette requête. 

Quelle est la différence entre Synonym et Alias (dans les bases de données ORACLE)?

  • Les synonymes sont un type d'objet de base de données. Mais les alias ne sont qu'un nom pour désigner une table, une vue ou une colonne dans une requête. Pas un objet de base de données.
  • Des synonymes peuvent être créés pour des tables, vues, fonctions, procédures, packages, séquences, vues matérialisées, types d'objet de classe java et déclencheurs. Mais les alias ne sont utilisés que pour les vues, les tables et leurs colonnes.
  • Comme les synonymes sont des objets de base de données, ils sont valides dans le schéma (synonyme privé) ou dans la base de données (synonyme public). Mais les alias valides dans la requête où ils sont utilisés.
  • Chaque schéma a besoin «Créer un synonyme» privilège de créer des synonymes. Mais il n'y a aucun privilège d'utiliser des alias.