Diferencia entre el sinónimo y el alias

Diferencia entre el sinónimo y el alias

Sinónimo vs alias (en bases de datos Oracle) | Sinónimos privados y sinónimos públicos
 

En inglés, sinónimo y alias tienen casi los mismos significados. Pero en bases de datos esas son dos cosas diferentes. Especialmente en las bases de datos de Oracle, ambos de su uso son diferentes. Los sinónimos se utilizan para referir objetos de un esquema o una base de datos de otro esquema. Entonces, el sinónimo es un tipo de objeto de base de datos. Pero los alias vienen de una manera diferente. Eso significa; No son objetos de base de datos. Los alias se utilizan para referir tablas, vistas y columnas dentro de consultas.

Sinónimos

Estos son un tipo de objetos de base de datos. Se refieren a otros objetos en la base de datos. El uso más común de sinónimo es referir un objeto de un esquema separado usando otro nombre. Pero también se pueden crear sinónimos para referir los objetos de otra base de datos (en bases de datos distribuidas, utilizando enlaces de base de datos). Tablas, vistas, funciones, procedimientos, paquetes, secuencias, vistas materializadas, objetos de clase Java y desencadenantes pueden usarse como referencias para los sinónimos. Hay dos tipos de sinónimos.

  1.  Sinónimos privados (solo puede ser utilizado por el usuario que los creó.)
  2.  Sinónimos públicos (pueden ser utilizados por todos los usuarios que tienen los privilegios apropiados)

Aquí, es una sintaxis simple para crear un sinónimo en una base de datos separada,

Crear sinónimo myschema.myTable1 para [correo electrónico protegido] _link1

Ya que tenemos un sinónimo nombrado mytable1 en myschema para [correo electrónico protegido] _link1 (tabla de base de datos distribuida), Podemos referir fácilmente la tabla de base de datos distribuida utilizando mytable1. No necesitamos usar el nombre del objeto largo con el enlace de la base de datos en todas partes.

Alias

Estos son solo otro nombre para una vista, una tabla o una columna dentro de una consulta. No son objetos de base de datos. Por lo tanto, los alias no son válidos en todas partes de la base de datos/esquema. Son válidos solo dentro de la consulta. Veamos este ejemplo,

                                    Seleccione Tab1.COL1 como C1, TAB2.Col2 como C2

                                       del usuario1.Tab1 Tab1, usuario1.TAB2 TAB2

                                       donde tab1.Col1 = TAB2.Col2

Aquí, C1 y C2 son alias de columna, que se utilizan para TAB1.Col1 y Tab2.COL2, y TAB1 y TAB2 son alias de tabla, que se utilizan para el usuario1.Tabla 1 y usuario2.Tabla 2. Todos estos alias son válidos solo dentro de esta consulta. 

¿Cuál es la diferencia entre sinónimo y alias? (en bases de datos de Oracle)?

  • Los sinónimos son un tipo de objeto de base de datos. Pero los alias son solo un nombre para referir una tabla, vista o una columna dentro de una consulta. No es un objeto de base de datos.
  • Se pueden crear sinónimos para tablas, vistas, funciones, procedimientos, paquetes, secuencias, vistas materializadas, tipos de objetos de clase Java y desencadenantes. Pero los alias se usan solo para vistas, tablas y sus columnas.
  • Dado que los sinónimos son un objeto de base de datos, son válidos dentro del esquema (sinónimo privado) o dentro de la base de datos (sinónimo público). Pero alias válidos dentro de la consulta donde se están utilizando.
  • Cada esquema necesita "Crear sinónimo" privilegio de crear sinónimos. Pero no hay ningún privilegio para usar alias.