Forskjell mellom synonym og alias

Anonim

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 det enkelt syntaks for å lage et synonym i en egen database, opprett synonym myschema. mytable1 for userA. tabell1 @ database_link1

Siden vi har et synonym som heter mytable1 i myschema for userA. tabell1 @ database_link1 (distribuert database tabell) , kan vi enkelt referere den distribuerte databasetabellen med 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 eksempelet, velg kategorien1. col1 som c1, tab2. col2 som c2

fra bruker1. tab1 tab1, user1. tab2 tab2

der 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 bruker1. tabell1 og bruker2. 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 klasseobjekttyper 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.