Pogled nasuprot pohranjenoj proceduri
Pogledi i pohranjene procedure dvije su vrste objekata baze podataka. Pogledi su vrsta pohranjenih upita koji prikupljaju podatke iz jedne ili više tablica. Ovdje je sintaksa za stvaranje prikaza
stvori ili zamijeni ime pogleda
kao
select_statement;
Pohranjena procedura je unaprijed kompilirani skup SQL naredbi, koji je pohranjen na poslužitelju baze podataka. Svaka pohranjena procedura ima pozivno ime koje se koristi za pozivanje unutar drugih paketa, procedura i funkcija. Ovo je sintaksa (u ORACLE-u) za stvaranje pohranjene procedure, kreiraj ili zamijeni ime procedure procedure (parametri)
je
početak
izjave;
iznimka
rukovanje_iznimkama
kraj;
Pogled
Pogled djeluje kao virtualni stol. U svom tijelu skriva naredbu odabira. Ova izjava odabira može biti vrlo složena, koja uzima podatke iz nekoliko tablica i prikaza. Stoga, drugim riječima, pogled je imenovana izjava odabira, koja je pohranjena u bazi podataka. Pogled se može koristiti za skrivanje logike iza odnosa tablice od krajnjih korisnika. Budući da je pogled rezultat pohranjenog upita, on ne čuva nikakve podatke. Prikuplja podatke iz osnovnih tablica i prikazuje. Pogledi također igraju važnu ulogu u sigurnosti podataka. Kada vlasnik tablice treba pokazati samo skup podataka krajnjim korisnicima, stvaranje prikaza je dobro rješenje. Prikazi se mogu podijeliti u dvije kategorije
- Prikazi koji se mogu ažurirati (Prikazi koji se mogu koristiti za INSERT, UPDATE i DELETE)
- Prikazi koji se ne mogu ažurirati (Prikazi koji se ne mogu koristiti za INSERT, UPDATE i DELETE)
Prikazi koji se mogu ažurirati ne mogu uključivati sljedeće, Operatori skupa (INTERSECT, MINUS, UNION, UNION ALL)
DISTINCT
Grupne agregatne funkcije (AVG, COUNT, MAX, MIN, SUM, itd.)
GROUP BY klauzula
Klauzula ORDER BY
Klauzula CONNECT BY
START WITH klauzula
Izraz zbirke na popisu odabira
Podupit na popisu odabira
Upit za pridruživanje
Pohranjeni postupak
Pohranjene procedure nazivaju se programskim blokovima. Moraju imati ime za poziv. Pohranjene procedure prihvaćaju parametre kao korisnički unos i obrađuju ih prema logici koja stoji iza procedure i daju rezultat (ili izvode određenu radnju). Deklaracije varijabli, dodjele varijabli, kontrolne izjave, petlje, SQL upiti i drugi pozivi funkcija/procedura/paketa mogu biti unutar tijela procedura.
Koja je razlika između pogleda i pohranjene procedure?
Da vidimo razlike između ova dva.
• Pogledi djeluju kao virtualne tablice. Mogu se koristiti izravno od zatvaranja SQL upita (odaberi), ali se procedure ne mogu koristiti od zatvaranja upita.
• Pogledi imaju samo naredbu odabira kao tijelo, ali procedure mogu imati deklaracije varijabli, dodjele varijabli, kontrolne izjave, petlje, SQL upite i druge pozive funkcija/procedura/paketa kao tijelo.
• Procedura prihvaća parametre za izvršenje, ali pogledi ne žele da se parametri izvrše.
• Vrste zapisa mogu se kreirati iz pogleda koristeći % ROWTYPE, ali korištenjem procedura, vrste zapisa se ne mogu kreirati.
• SQL savjeti se mogu koristiti unutar iskaza odabira prikaza, za optimizaciju plana izvršenja, ali SQL savjeti se ne mogu koristiti u pohranjenim procedurama.
• DELETE, INSERT, UPDATE, SELECT, FLASHBACK i DEBUG mogu se odobriti na pogledima, ali samo EXECUTE i DEBUG mogu se odobriti na procedurama.