Forskel mellem synonym og alias

Anonim

Synonym vs Alias ​​ (i ORACLE-databaser) | Private synonymer og offentlige synonymer

På engelsk har synonym og alias næsten de samme betydninger. Men i databaser er det to forskellige ting. Især i ORACLE-databaser er begge deres brug forskellige. Synonymer bruges til at henvise objekter til et skema eller en database fra et andet skema. Så synonymt er en databaseobjekttype. Men aliaser kommer på en anden måde. Det betyder; de er ikke databaseobjekter. Aliaser bruges til at referere til tabeller, synspunkter og kolonner indenfor forespørgsler.

Synonymer

Dette er en type databaseobjekter. De henviser til andre objekter i databasen. Den mest almindelige brug af synonym er at henvise et objekt til et særskilt skema ved at bruge et andet navn. Men synonymer kan oprettes for at henvise objekter fra en anden database (i distribuerede databaser, ved hjælp af database links). Tabeller, visninger, funktioner, procedurer, pakker, sekvenser, materialiserede synspunkter, java klasse objekter og udløsere kan bruges som referencer til synonymerne. Der er to typer synonymer.

  1. Private synonymer (kan kun bruges af den bruger, der oprettede dem.)
  2. Offentlige synonymer (kan bruges af alle brugere, der har de relevante rettigheder)

Her er en enkel syntax for at oprette et synonym i en separat database, oprette synonym myschema. mytable1 for userA. tabel1 @ database_link1

Da vi har et synonym med navnet mytable1 i myschema til userA. tabel1 @ database_link1 (distribueret database tabel) , kan vi nemt henvise den distribuerede database tabel med mytable1. Vi behøver ikke bruge det lange objektnavn med databasekobling overalt.

Alias ​​

Dette er blot et andet navn til en visning, et bord eller en kolonne inde i en forespørgsel. De er ikke databaseobjekter. Derfor er aliaser ikke gyldige overalt i skemaet / databasen. De er kun gyldige inden for forespørgslen. Lad os se dette eksempel, Vælg faneblad1. col1 som c1, tab2. col2 som c2

fra bruger1. tab1 tab1, user1. tab2 tab2

hvor fane 1. col1 = tab2. col2

Her er c1 og c2 kolonnealliaser, som anvendes til tab1. col1 og tab2. col2 og tab1 og tab2 er tabelaliaser, som bruges til bruger1. tabel1 og bruger2. Tabel2. Alle disse aliaser er kun gyldige inden for denne forespørgsel.

Hvad er forskellen mellem Synonym og Alias ​​ (i ORACLE-databaser) ?

  • Synonymer er en databaseobjekttype. Men aliaser er blot et navn for at henvise en tabel, visning eller en kolonne inde i en forespørgsel. Ikke en databaseobjekt.
  • Synonymer kan oprettes til tabeller, visninger, funktioner, procedurer, pakker, sekvenser, materialiserede visninger, java klasse objekttyper og udløsere. Men aliaser bruges kun til visninger, tabeller og deres kolonner.
  • Da synonymer er en databaseobjekt, er de gyldige inden for skemaet (privat synonym) eller inde i databasen (offentligt synonym). Men aliaser, der er gyldige inden for forespørgslen, hvor de bruges.
  • Hvert skema har brug for "create synonym" privilege for at oprette synonymer. Men der er ikke noget privilegium at bruge aliaser.