Differenza tra sinonimo e pseudonimo

Sinonimo vs Alias (nei database ORACLE) | Sinonimi privati ​​e sinonimi pubblici
 

In inglese, sinonimo e alias hanno quasi lo stesso significato. Ma nei database questi sono due cose diverse. Soprattutto nei database ORACLE, entrambi i loro usi sono diversi. I sinonimi sono usati per riferirsi agli oggetti di uno schema o di un database da un altro schema. Quindi sinonimo è un tipo di oggetto di database. Ma gli alias stanno arrivando in un modo diverso. Questo significa; non sono oggetti di database. Gli alias vengono utilizzati per riferirsi a tabelle, viste e colonne all'interno di query.

Sinonimi

Questi sono un tipo di oggetti di database. Si riferiscono ad altri oggetti nel database. L'uso più comune del sinonimo è quello di riferire un oggetto di uno schema separato usando un altro nome. Ma i sinonimi possono essere creati per riferirsi anche agli oggetti di un altro database (in database distribuiti, usando collegamenti a database). Tabelle, viste, funzioni, procedure, pacchetti, sequenze, viste materializzate, oggetti di classi java e trigger possono essere usati come riferimenti per i sinonimi. Esistono due tipi di sinonimi.

  1.  Sinonimi privati ​​(possono essere utilizzati solo dall'utente che li ha creati).
  2.  Sinonimi pubblici (possono essere utilizzati da tutti gli utenti che dispongono dei privilegi appropriati)

Ecco una semplice sintassi per creare un sinonimo in un database separato,

crea sinonimo myschema.mytable1 per [email protetta]_link1

Dal momento che abbiamo un sinonimo chiamato myTable1 nel myschema per [email protetta]_link1 (tabella del database distribuito), possiamo facilmente consultare la tabella del database distribuito usando myTable1. Non è necessario utilizzare il nome dell'oggetto lungo con il collegamento del database ovunque.

Alias

Questi sono solo un altro nome per una vista, una tabella o una colonna all'interno di una query. Non sono oggetti di database. Pertanto, gli alias non sono validi ovunque nello schema / database. Sono validi solo all'interno della query. Vediamo questo esempio,

                                    selezionare tab1.col1 come c1, tab2.col2 come c2

                                       da utente1.tab1 tab1, utente1.tab2 tab2

                                       dove tab1.col1 = tab2.col2

Qui, c1 e c2 sono alias di colonne, che sono usati per tab1.col1 e tab2.col2, e tab1 e ​​tab2 sono alias di tabella, che sono usati per user1.table1 e user2.table2. Tutti questi alias sono validi solo all'interno di questa query. 

Qual è la differenza tra Synonym e Alias (nei database ORACLE)?

  • I sinonimi sono un tipo di oggetto di database. Ma gli alias sono solo un nome per riferirsi a una tabella, una vista o una colonna all'interno di una query. Non un oggetto di database.
  • I sinonimi possono essere creati per tabelle, viste, funzioni, procedure, pacchetti, sequenze, viste materializzate, tipi di oggetti e trigger di classe java. Ma gli alias sono usati solo per le viste, le tabelle e le loro colonne.
  • Poiché i sinonimi sono oggetti di database, sono validi all'interno dello schema (sinonimo privato) o all'interno del database (sinonimo pubblico). Ma gli alias sono validi all'interno della query in cui vengono utilizzati.
  • Ogni schema ha bisogno "Creare un sinonimo" privilegio di creare sinonimi. Ma non c'è alcun privilegio di usare gli alias.