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 anvendelser forskellige. Synonymer bruges til at henvise til objekter i et skema eller en database fra et andet skema. Så synonym er en databaseobjekttype. Men aliaser kommer på en anden måde. Det betyder; de er ikke databaseobjekter. Aliaser bruges til at henvise til tabeller, visninger og kolonner i 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 separat skema ved hjælp af et andet navn. Men synonymer kan også oprettes for at henvise til objekterne i en anden database (i distribuerede databaser ved hjælp af databaselinks). Tabeller, visninger, funktioner, procedurer, pakker, sekvenser, materialiserede visninger, java-klasseobjekter og triggere kan bruges som referencer til synonymerne. Der er to typer synonymer.
Her er en simpel syntaks til at oprette et synonym i en separat database,
oprette synonym myschema.mytable1 til [emailbeskyttet] _link1
Da vi har et synonym med navnet mytable1 i myschema til [beskyttet via e-mail] _link1 (distribueret databasetabel), vi kan nemt henvise til den distribuerede databasetabel ved hjælp af mytable1. Vi behøver ikke at bruge det lange objektnavn med databaselink overalt.
Alias
Dette er bare et andet navn til en visning, en tabel 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 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 kolonnealiaser, der bruges til tab1.col1 og tab2.col2, og tab1 og tab2 er tabelaliaser, der bruges til user1.table1 og user2.table2. Alle disse aliaser er kun gyldige i denne forespørgsel.
Hvad er forskellen mellem Synonym og Alias (i ORACLE-databaser)?
|