Différence entre synonyme et alias

Différence entre synonyme et alias

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

En anglais, le synonyme et les 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 référer les objets d'un schéma ou d'une base de données d'un autre schéma. Donc, synonyme est un type d'objet de base de données. Mais les alias 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 référer les tables, les vues et les colonnes à l'intérieur des requêtes.

Synonymes

Ce sont un type d'objets de base de données. Ils se réfèrent à d'autres objets de la base de données. L'utilisation la plus courante du synonyme est de référer un objet d'un schéma séparé en utilisant un autre nom. Mais les synonymes peuvent également être créés pour référer les objets d'une autre base de données (dans les bases de données distribuées, à l'aide de liens de base de données). Tables, vues, fonctions, procédures, packages, séquences, vues matérialisées, objets et déclencheurs de classe Java peuvent être utilisés comme références pour les synonymes. Il existe deux types de synonymes.

  1.  Synonymes privés (ne peut être utilisé que par l'utilisateur qui les a créés.)
  2.  Synonymes publics (peut être utilisé par tous les utilisateurs qui ont les privilèges appropriés)

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

Créer un synonyme Myschema.myTable1 pour [e-mail protégé] _link1

Puisque nous avons un synonyme nommé myTable1 dans myschema pour [Protégé par e-mail] _link1 (Tableau de base de données distribué), Nous pouvons facilement référer le tableau de base de données distribué en utilisant myTable1. Nous n'avons pas besoin d'utiliser le nom de l'objet long avec un lien de base de données partout partout.

Alias

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

                                    Sélectionnez Tab1.COL1 AS C1, TAB2.COL2 comme C2

                                       de l'utilisateur1.TAB1 TAB1, User1.TAB2 TAB2

                                       Où Tab1.col1 = tab2.Col2

Ici, C1 et C2 sont des alias de colonne, qui sont utilisés pour TAB1.COL1 et TAB2.COL2, et TAB1 et TAB2 sont des alias de table, qui sont utilisés pour l'utilisateur1.Tableau 1 et User2.Tableau 2. Tous ces alias sont valables à l'intérieur de cette requête uniquement. 

Quelle est la différence entre synonyme 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 référer une table, une vue ou une colonne à l'intérieur d'une requête. Pas un objet de base de données.
  • Les synonymes peuvent être créés pour les tables, les vues, les fonctions, les procédures, les packages, les séquences, les vues matérialisées, les types d'objets de classe Java et les déclencheurs. Mais les alias sont utilisés uniquement pour les vues, les tables et leurs colonnes.
  • Étant donné que les synonymes sont un objet de base de données, ils sont valables dans le schéma (synonyme privé) ou dans la base de données (synonyme public). Mais des alias valides à l'intérieur de 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.