Pogled proti shranjenemu postopku
Pogledi in shranjene procedure so dve vrsti objektov baze podatkov. Pogledi so neke vrste shranjene poizvedbe, ki zbirajo podatke iz ene ali več tabel. Tukaj je sintaksa za ustvarjanje pogleda
ustvari ali zamenjaj ime pogleda
as
select_statement;
Shranjena procedura je vnaprej preveden niz ukazov SQL, ki je shranjen v strežniku baze podatkov. Vsaka shranjena procedura ima klicno ime, ki se uporablja za klic znotraj drugih paketov, procedur in funkcij. To je sintaksa (v ORACLE) za ustvarjanje shranjene procedure, ustvari ali zamenjaj ime procedure procedure (parametri)
je
začetek
izjave;
izjema
obravnava_izjem
konec;
Pogled
Pogled deluje kot navidezna tabela. V svojem telesu skriva stavek select. Ta izbirni stavek je lahko zelo zapleten, saj zajema podatke iz več tabel in pogledov. Z drugimi besedami, torej je pogled poimenovani stavek za izbiro, ki je shranjen v bazi podatkov. Pogled je mogoče uporabiti za skrivanje logike za odnosi tabele pred končnimi uporabniki. Ker je pogled rezultat shranjene poizvedbe, ne hrani nobenih podatkov. Zbira podatke iz osnovnih tabel in prikazuje. Pogledi igrajo pomembno vlogo tudi pri varnosti podatkov. Kadar mora lastnik tabele končnim uporabnikom prikazati samo nabor podatkov, je ustvarjanje pogleda dobra rešitev. Poglede lahko razdelimo v dve kategoriji
- Pogledi, ki jih je mogoče posodobiti (Pogledi, ki jih je mogoče uporabiti za VSTAVLJANJE, POSODOBITEV in IZBRIS)
- Pogledi, ki jih ni mogoče posodobiti (pogledi, ki jih ni mogoče uporabiti za INSERT, UPDATE in DELETE)
Pogledi, ki jih je mogoče posodobiti, ne morejo vključevati sledenj, Nastavi operatorje (INTERSECT, MINUS, UNION, UNION ALL)
DISTINCT
Skupinske agregatne funkcije (AVG, COUNT, MAX, MIN, SUM itd.)
Klavzula GROUP BY
Klavzula ORDER BY
Klavzula CONNECT BY
START WITH klavzula
Izraz zbirke na izbranem seznamu
Podpoizvedba na seznamu A Select
Pridruži se poizvedbi
Shranjeni postopek
Shranjene procedure so poimenovani programski bloki. Morajo imeti ime, ki ga kličejo. Shranjene procedure sprejemajo parametre kot uporabniški vnos in jih obdelujejo v skladu z logiko, ki stoji za proceduro, ter dajo rezultat (ali izvedejo določeno dejanje). Deklaracije spremenljivk, dodelitve spremenljivk, kontrolni stavki, zanke, poizvedbe SQL in drugi klici funkcij/procedur/paketov so lahko znotraj telesa procedur.
Kakšna je razlika med pogledom in shranjeno proceduro?
Oglejmo si razlike med tema dvema.
• Pogledi delujejo kot virtualne tabele. Uporabljajo se lahko neposredno od konca poizvedb SQL (izberi), vendar postopkov ni mogoče uporabiti od konca poizvedbe.
• Pogledi imajo samo stavek select kot telo, procedure pa imajo lahko deklaracije spremenljivk, dodelitve spremenljivk, kontrolne stavke, zanke, poizvedbe SQL in druge klice funkcij/postopkov/paketov kot telo.
• Postopek sprejema parametre za izvedbo, vendar pogledi ne želijo izvajanja parametrov.
• Vrste zapisov je mogoče ustvariti iz pogledov z uporabo % ROWTYPE, vendar s postopki ni mogoče ustvariti vrst zapisov.
• Namige SQL lahko uporabite znotraj stavka za izbiro pogleda, da optimizirate načrt izvajanja, vendar namigov SQL ni mogoče uporabiti v shranjenih procedurah.
• DELETE, INSERT, UPDATE, SELECT, FLASHBACK in DEBUG je mogoče odobriti za poglede, vendar samo EXECUTE in DEBUG za procedure.