Skirtumas tarp sinonimo ir slapyvardžio

Sinonimas vs Alias (ORACLE duomenų bazėse) | Privatūs ir vieši sinonimai
 

Anglų kalba sinonimas ir slapyvardis turi beveik tas pačias reikšmes. Bet duomenų bazėse tai yra du skirtingi dalykai. Ypač ORACLE duomenų bazėse abiejų jų naudojimas yra skirtingas. Sinonimai naudojami nurodyti schemos objektams arba duomenų bazėms iš kitos schemos. Taigi sinonimas yra duomenų bazės objekto tipas. Tačiau slapyvardžiai ateina kitaip. Tai reiškia; jie nėra duomenų bazės objektai. Slapyvardžiai naudojami lentelėms, rodiniams ir stulpeliams nurodyti užklausų viduje.

Sinonimai

Tai yra duomenų bazės objektų rūšis. Jie nurodo kitus objektus duomenų bazėje. Dažniausiai naudojamas sinonimas - nurodyti atskiros schemos objektą naudojant kitą pavadinimą. Tačiau sinonimus galima sukurti ir norint nukreipti ir kitos duomenų bazės objektus (paskirstomose duomenų bazėse, naudojant duomenų bazių nuorodas). Lentelės, rodiniai, funkcijos, procedūros, paketai, sekos, materializuoti vaizdai, „Java“ klasės objektai ir aktyvikliai gali būti naudojami kaip sinonimų nuorodos. Yra du sinonimų tipai.

  1.  Privatūs sinonimai (gali naudoti tik juos sukūręs vartotojas).
  2.  Vieši sinonimai (gali naudoti visi vartotojai, turintys atitinkamas privilegijas)

Čia yra paprasta sintaksė, norint sukurti sinonimą atskiroje duomenų bazėje,

sukurti sinonimą „myschema.mytable1“, skirtą [apsaugotas el. paštas] _link1

Kadangi mes turime sinonimą pavadinimu mytable1 į mischema dėl [apsaugotas el. paštu] _link1 (paskirstytos duomenų bazės lentelė), mes lengvai galime nukreipti paskirstytos duomenų bazės lentelę naudodami mytable1. Mums nereikia visur naudoti ilgo objekto pavadinimo su duomenų bazės nuoroda.

Pseudonimas

Tai yra tik dar vienas rodinio, lentelės ar stulpelio pavadinimas užklausos viduje. Jie nėra duomenų bazės objektai. Todėl slapyvardžiai negalioja visur schemoje / duomenų bazėje. Jie galioja tik užklausoje. Pažiūrėkime šį pavyzdį,

                                    pasirinkite tab1.col1 kaip c1, tab2.col2 kaip c2

                                       iš vartotojo1.tab1 skirtuko1, vartotojo1.tab2 skirtuko2

                                       kur tab1.col1 = tab2.col2

Čia c1 ir c2 yra stulpelių pseudonimai, naudojami lentelėms1.col1 ir tab2.col2, o „tab1“ ir „tab2“ yra lentelių slapyvardžiai, kurie naudojami vartotojams1.table1 ir user2.table2. Visi šie slapyvardžiai galioja tik šioje užklausoje. 

Kuo skiriasi sinonimas ir slapyvardis (ORACLE duomenų bazėse)?

  • Sinonimai yra duomenų bazės objekto tipas. Bet slapyvardžiai yra tik vardas, nurodantis lentelę, rodinį arba stulpelį užklausos viduje. Ne duomenų bazės objektas.
  • Sinonimus galima sukurti lentelėms, rodiniams, funkcijoms, procedūroms, paketams, sekoms, materializuotiems vaizdams, „Java“ klasės objektų tipams ir aktyvikliams. Bet slapyvardžiai naudojami tik vaizdams, lentelėms ir jų stulpeliams.
  • Kadangi sinonimai yra duomenų bazės objektas, jie galioja schemos viduje (privatus sinonimas) arba duomenų bazės viduje (viešas sinonimas). Bet slapyvardžiai galioja užklausos ten, kur jie naudojami.
  • Kiekvienai schemai reikia „Sukurti sinonimą“ privilegija kurti sinonimus. Bet slapyvardžių naudoti nėra jokios privilegijos.