Forskjellen mellom synonym og alias

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

På engelsk har synonym og alias nesten samme betydning. Men i databaser er det to forskjellige ting. Spesielt i ORACLE-databaser, er begge deres bruk forskjellige. Synonymer brukes til å referere objekter til et skjema eller en database fra et annet skjema. Så synonymt er en databaseobjekttype. Men aliaser kommer på en annen måte. Det betyr; de er ikke databaseobjekter. Aliaser brukes til å referere tabeller, synspunkter og kolonner i spørringer.

synonymer

Dette er en type databaseobjekter. De refererer til andre objekter i databasen. Den vanligste bruken av synonym er å referere til et objekt med et eget skjema ved å bruke et annet navn. Men synonymer kan opprettes for å referere gjenstandene til en annen database, i tillegg (i distribuerte databaser, ved hjelp av databasekoblinger). Tabeller, visninger, funksjoner, prosedyrer, pakker, sekvenser, materialiserte visninger, java klasse objekter og utløsere kan brukes som referanser for synonymer. Det finnes to typer synonymer.

  1.  Private synonymer (kan bare brukes av brukeren som opprettet dem.)
  2.  Offentlige synonymer (kan brukes av alle brukere som har de riktige rettighetene)

Her er en enkel syntaks for å lage et synonym i en egen database,

opprett synonym myschema.mytable1 for [e-postbeskyttet]_link1

Siden vi har et synonym som heter mytable1 i myschema til [e-postbeskyttet]_link1 (distribuert database tabell), Vi kan enkelt se den distribuerte databasetabellen ved hjelp av mytable1. Vi trenger ikke å bruke det lange objektnavnet med databasekobling overalt.

Alias

Dette er bare et annet navn for en visning, et bord eller en kolonne i en forespørsel. De er ikke databaseobjekter. Derfor er aliaser ikke gyldige overalt i skjemaet / databasen. De er gyldige innenfor spørringen bare. La oss se dette eksemplet,

                                    velg tab1.col1 som c1, tab2.col2 som c2

                                       fra user1.tab1 tab1, user1.tab2 tab2

                                       hvor tab1.col1 = tab2.col2

Her er c1 og c2 kolonnaliaser, som brukes til tab1.col1 og tab2.col2, og tab1 og tab2 er tabellaliaser, som brukes til user1.table1 og user2.table2. Alle disse aliasene er gyldige innenfor dette spørsmålet. 

Hva er forskjellen mellom Synonym og Alias (i ORACLE-databaser)?

  • Synonymer er en databaseobjekttype. Men aliaser er bare et navn for å referere til et bord, en visning eller en kolonne i en forespørsel. Ikke et databaseobjekt.
  • Synonymer kan opprettes for tabeller, visninger, funksjoner, prosedyrer, pakker, sekvenser, materialiserte visninger, java klasse objekttyper og utløsere. Men aliaser brukes kun for visninger, tabeller og deres kolonner.
  • Siden synonymer er et databaseobjekt, er de gyldige innenfor skjemaet (privat synonym) eller inne i databasen (offentlig synonym). Men aliaser som er gyldige innenfor spørringen der de blir brukt.
  • Hvert skjema trenger "Opprett synonym" privilegium for å lage synonymer. Men det er ikke noe privilegium å bruke aliaser.