Sinoniem vs Alias (in ORACLE-databasisse) | Privaat sinonieme en publieke sinonieme
In Engels het sinoniem en alias byna dieselfde betekenisse. Maar in databasisse is dit twee verskillende dinge. Veral in ORACLE-databasisse is albei se gebruik anders. Sinonieme word gebruik om voorwerpe van 'n skema of 'n databasis vanaf 'n ander skema te verwys. So sinoniem is 'n databasis objek tipe. Maar aliasse kom op 'n ander manier. Dit beteken; hulle is nie databasisobjekte nie. Aliases word gebruik om tabelle, aansigte en kolomme binne navrae te verwys.
Sinonieme
Hierdie is 'n tipe databasisobjekte. Hulle verwys na ander voorwerpe in die databasis. Die mees algemene gebruik van sinoniem is om 'n voorwerp van 'n aparte skema te verwys deur 'n ander naam te gebruik. Maar sinonieme kan geskep word om ook die voorwerpe van 'n ander databasis te verwys (in verspreide databasisse, met behulp van databasisskakels). Tabelle, aansigte, funksies, prosedures, pakkette, reekse, gematerialiseerde aansigte, Java-klasobjekte en snellers kan as verwysings vir die sinonieme gebruik word. Daar is twee tipes sinonieme.
- Privaat sinonieme (kan slegs gebruik word deur die gebruiker wat dit geskep het.)
- Openbare sinonieme (kan gebruik word deur alle gebruikers wat die toepaslike voorregte het)
Hier is 'n eenvoudige sintaksis om 'n sinoniem in 'n aparte databasis te skep, skep sinoniem myschema.mytable1 vir [email protected]_link1
Aangesien ons 'n sinoniem genaamd mytable1 in myschema het vir [email protected]_link1 (verspreide databasistabel), kan ons maklik die verspreide databasistabel verwys deur mytable1 te gebruik. Ons hoef nie die lang voorwerpnaam met databasisskakel oral te gebruik nie.
Alias
Hierdie is net nog 'n naam vir 'n aansig, 'n tabel of 'n kolom binne 'n navraag. Hulle is nie databasisobjekte nie. Daarom is aliasse nie oral in die skema/databasis geldig nie. Hulle is slegs geldig binne die navraag. Kom ons kyk na hierdie voorbeeld, kies tab1.col1 as c1, tab2.col2 as c2
van gebruiker1.tab1 oortjie1, gebruiker1.tab2 oortjie2
where tab1.col1=tab2.col2
Hier is c1 en c2 kolomaliasse, wat gebruik word vir tab1.col1 en tab2.col2, en tab1 en tab2 is tabelaliasse, wat vir gebruiker1.tabel1 en gebruiker2.tabel2 gebruik word. Al hierdie aliasse is slegs geldig binne hierdie navraag.
Wat is die verskil tussen Sinoniem en Alias (in ORACLE-databasisse)?