Diferença entre sinônimo e alias

Alias ​​vs sinônimo (nos bancos de dados ORACLE) | Sinônimos privados e sinônimos públicos
 

Em inglês, sinônimo e alias têm quase os mesmos significados. Mas nos bancos de dados essas são duas coisas diferentes. Especialmente nos bancos de dados ORACLE, o uso de ambos é diferente. Os sinônimos são usados ​​para referenciar objetos de um esquema ou banco de dados de outro esquema. Portanto, sinônimo é um tipo de objeto de banco de dados. Mas os aliases estão vindo de uma maneira diferente. Que significa; eles não são objetos de banco de dados. Aliases são usados ​​para consultar tabelas, visualizações e colunas dentro de consultas.

Sinônimos

Estes são um tipo de objetos de banco de dados. Eles se referem a outros objetos no banco de dados. O uso mais comum de sinônimo é referenciar um objeto de um esquema separado usando outro nome. Mas sinônimos também podem ser criados para referenciar os objetos de outro banco de dados (em bancos de dados distribuídos, usando links de banco de dados). Tabelas, visualizações, funções, procedimentos, pacotes, sequências, visualizações materializadas, objetos de classe java e gatilhos podem ser usados ​​como referências para os sinônimos. Existem dois tipos de sinônimos.

  1.  Sinónimos privados (só podem ser utilizados pelo usuário que os criou.)
  2.  Sinónimos públicos (podem ser usados ​​por todos os usuários que possuem os privilégios apropriados)

Aqui está uma sintaxe simples para criar um sinônimo em um banco de dados separado,

criar sinônimo myschema.mytable1 para [email protected] _link1

Como temos um sinônimo chamado mytable1 dentro myschema para [protegido por email] _link1 (tabela de banco de dados distribuído), podemos facilmente referenciar a tabela de banco de dados distribuído usando mytable1. Não precisamos usar o nome do objeto longo com o link do banco de dados em qualquer lugar.

Alias

Estes são apenas outro nome para uma exibição, uma tabela ou uma coluna dentro de uma consulta. Eles não são objetos de banco de dados. Portanto, aliases não são válidos em todos os lugares no esquema / banco de dados. Eles são válidos apenas dentro da consulta. Vamos ver este exemplo,

                                    selecione tab1.col1 como c1, tab2.col2 como c2

                                       de user1.tab1 tab1, user1.tab2 tab2

                                       onde tab1.col1 = tab2.col2

Aqui, c1 e c2 são aliases de coluna, usados ​​para tab1.col1 e tab2.col2, e tab1 e ​​tab2 são aliases de tabela, usados ​​para user1.table1 e user2.table2. Todos esses aliases são válidos somente nesta consulta. 

Qual é a diferença entre Synonym e Alias (nos bancos de dados ORACLE)?

  • Sinônimos são um tipo de objeto de banco de dados. Mas os aliases são apenas um nome para referenciar uma tabela, exibição ou coluna dentro de uma consulta. Não é um objeto de banco de dados.
  • Os sinônimos podem ser criados para tabelas, visualizações, funções, procedimentos, pacotes, sequências, visualizações materializadas, tipos de objetos da classe java e gatilhos. Mas os aliases são usados ​​apenas para visualizações, tabelas e suas colunas.
  • Como os sinônimos são um objeto de banco de dados, eles são válidos dentro do esquema (sinônimo privado) ou dentro do banco de dados (sinônimo público). Mas alias válidos dentro da consulta em que estão sendo usados.
  • Cada esquema precisa "Criar sinônimo" privilégio de criar sinônimos. Mas não há privilégio de usar aliases.