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 bruken forskjellig. Synonymer brukes til å henvise objekter til et skjema eller en database fra et annet skjema. Så synonym er en databaseobjektype. Men aliasene kommer på en annen måte. Det betyr; de er ikke databaseobjekter. Aliaser brukes til å henvise til tabeller, visninger og kolonner i spørsmål.
Synonymer
Dette er en type databaseobjekter. De viser til andre objekter i databasen. Den vanligste bruken av synonym er å henvise et objekt til et eget skjema ved å bruke et annet navn. Men synonymer kan også opprettes for å henvise til objektene til en annen database (i distribuerte databaser, ved hjelp av databasekoblinger). Tabeller, visninger, funksjoner, prosedyrer, pakker, sekvenser, materialiserte visninger, java-klasseobjekter og utløsere kan brukes som referanser for synonymer. Det er to typer synonymer.
- Private synonymer (kan bare brukes av brukeren som opprettet dem.)
- Offentlige synonymer (kan brukes av alle brukere som har de rette rettighetene)
Her er en enkel syntaks for å lage et synonym i en egen database, opprett synonym myschema.mytable1 for [email protected] _link1
Siden vi har et synonym med navnet mytable1 i myschema for [email protected] _link1 (distribuert databasetabell), kan vi enkelt henvise til 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, en tabell eller en kolonne i et spørsmål. De er ikke databaseobjekter. Derfor er aliaser ikke gyldige overalt i skjemaet / databasen. De er bare gyldige i spørringen. La oss se dette eksemplet, velg tab1.col1 som c1, tab2.col2 som c2
fra bruker1.tab1 tab1, user1.tab2 tab2
der tab1.col1 = tab2.col2
Her er c1 og c2 kolonnealiaser, 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 kun gyldige i dette spørsmålet.
Hva er forskjellen mellom Synonym og Alias (i ORACLE-databaser)? Synonymer er en databaseobjektype. Men aliaser er bare et navn for å henvise til en tabell, visning eller en kolonne i et spørsmål. Ikke et databaseobjektSynonymer kan opprettes for tabeller, visninger, funksjoner, prosedyrer, pakker, sekvenser, materialiserte visninger, java-klasse objekttyper og utløsere. Men aliaser brukes bare for visninger, tabeller og deres kolonnerSiden synonymer er et databaseobjekt, er de gyldige i skjemaet (privat synonym) eller inne i databasen (offentlig synonym). Men aliaser som er gyldige i spørringen der de blir bruktHvert skjema trenger "opprett synonym" -rettighet for å opprette synonymer. Men det er ikke noe privilegium å bruke aliaser |