Sünonüüm vs alias (ORACLE'i andmebaasides) | Privaatsed sünonüümid ja avalikud sünonüümid
Inglise keeles on sünonüümidel ja varjunimedel peaaegu samad tähendused. Kuid andmebaasides on need kaks erinevat asja. Eriti ORACLE'i andmebaasides on nende mõlema kasutus erinev. Sünonüüme kasutatakse skeemi või andmebaasi objektide viitamiseks teisest skeemist. Seega on sünonüümiks andmebaasiobjekti tüüp. Kuid varjunimed tulevad teistmoodi. See tähendab; need ei ole andmebaasiobjektid. Pseudonüüme kasutatakse päringutes tabelitele, vaadetele ja veergudele viitamiseks.
Sünonüümid
Need on teatud tüüpi andmebaasiobjektid. Need viitavad teistele andmebaasi objektidele. Kõige tavalisem sünonüümikasutus on viidata eraldi skeemi objektile teise nimega. Kuid sünonüüme saab luua ka teise andmebaasi objektide viitamiseks (hajutatud andmebaasides andmebaasi linkide abil). Sünonüümide viidetena saab kasutada tabeleid, vaateid, funktsioone, protseduure, pakette, jadasid, materialiseeritud vaateid, Java klassi objekte ja käivitajaid. Sünonüüme on kahte tüüpi.
- Privaatsed sünonüümid (saab kasutada ainult kasutaja, kes need lõi.)
- Avalikud sünonüümid (saavad kasutada kõik kasutajad, kellel on vastavad õigused)
Siin on lihtne süntaks sünonüümi loomiseks eraldi andmebaasis, loo sünonüüm myschema.mytable1 jaoks [email protected]_link1
Kuna meil on müskeemis [email protected]_link1 (hajutatud andmebaasitabel) sünonüüm nimega mytable1, saame hajutatud andmebaasi tabelile hõlpsasti viidata, kasutades mytable1. Me ei pea igal pool kasutama pikka objektinime koos andmebaasi lingiga.
Alias
Need on lihts alt üks teine nimi päringu sees olevale vaatele, tabelile või veerule. Need ei ole andmebaasiobjektid. Seetõttu ei kehti varjunimed kõikjal skeemis/andmebaasis. Need kehtivad ainult päringu sees. Vaatame seda näidet, valige tab1.col1 kui c1, tab2.col2 kui c2
kasutaja1.tab1 tab1, kasutaja1.tab2 tab2
kus tab1.col1=tab2.col2
Siin on c1 ja c2 veergude varjunimed, mida kasutatakse tab1.col1 ja tab2.col2 jaoks ning tab1 ja tab2 on tabeli aliased, mida kasutatakse kasutaja1.tabel1 ja kasutaja2.tabel2 jaoks. Kõik need varjunimed kehtivad ainult selles päringus.
Mis vahe on sünonüümil ja aliasel (ORACLE'i andmebaasides)?