Okidači u odnosu na pohranjene procedure
U bazi podataka, okidač je procedura (segment koda) koja se automatski izvršava kada se neki određeni događaj dogodi u tablici/prikazu. Između ostalih upotreba, okidači se uglavnom koriste za održavanje integriteta u bazi podataka. Pohranjena procedura je metoda koju mogu koristiti aplikacije koje pristupaju relacijskoj bazi podataka. Obično se pohranjene procedure koriste kao metoda za provjeru podataka i kontrolu pristupa bazi podataka.
Što su okidači?
Okidač je procedura (segment koda) koja se automatski izvršava kada se dogode neki specifični događaji u tablici/prikazu baze podataka. Između ostalih upotreba, okidači se uglavnom koriste za održavanje integriteta u bazi podataka. Okidači se također koriste za provođenje poslovnih pravila, reviziju promjena u bazi podataka i repliciranje podataka. Najčešći okidači su okidači Data Manipulation Language (DML) koji se pokreću kada se manipulira podacima. Neki sustavi baza podataka podržavaju nepodatkovne okidače, koji se pokreću kada se dogode događaji Data Definition Language (DDL). Neki primjeri su okidači koji se pokreću kada se kreiraju tablice, tijekom operacija izvršavanja ili vraćanja, itd. Ovi se okidači mogu posebno koristiti za reviziju. Sustav baze podataka Oracle podržava okidače na razini sheme (tj. okidače koji se pokreću kada se sheme baze podataka mijenjaju) kao što su After Creation, Prije izmjene, Nakon izmjene, Prije ispuštanja, Nakon ispuštanja, itd. Četiri glavne vrste okidača koje podržava Oracle su okidači na razini retka, Okidači na razini stupca, okidači za svaku vrstu retka i okidači za svaku vrstu izjave.
Što su pohranjene procedure?
Pohranjena procedura je metoda koju može koristiti aplikacija koja pristupa relacijskoj bazi podataka. Obično se pohranjene procedure koriste kao metoda za provjeru valjanosti podataka i kontrolu pristupa bazi podataka. Ako neka operacija obrade podataka zahtijeva izvršenje nekoliko SQL naredbi, takve se operacije implementiraju kao pohranjene procedure. Prilikom pozivanja pohranjene procedure, mora se koristiti naredba CALL ili EXECUTE. Pohranjene procedure mogu vratiti rezultate (na primjer rezultate iz naredbi SELECT). Ove rezultate mogu koristiti druge pohranjene procedure ili aplikacije. Jezici koji se koriste za pisanje pohranjenih procedura obično podržavaju kontrolne strukture kao što su if, while, for, itd. Ovisno o korištenom sustavu baze podataka, nekoliko jezika se može koristiti za implementaciju pohranjenih procedura (npr. PL/SQL i java u Oracleu, T- SQL (Transact-SQL) i. NET Framework u Microsoft SQL Serveru). Nadalje, MySQL koristi vlastite pohranjene procedure.
Koja je razlika između okidača i pohranjenih procedura?
Okidač je procedura (segment koda) koja se automatski izvršava kada se dogode neki specifični događaji u tablici/prikazu baze podataka, dok je pohranjena procedura metoda koju može koristiti aplikacija koja pristupa relacijskoj bazi podataka. Okidači se automatski izvršavaju kada se dogodi događaj na koji bi okidač trebao odgovoriti. Ali za izvođenje pohranjene procedure mora se koristiti određena naredba CALL ili EXECUTE. Otklanjanje pogrešaka okidača može biti teže i zahtjevnije od otklanjanja pogrešaka pohranjenih procedura. Okidači su vrlo korisni kada želite biti sigurni da će se nešto dogoditi kada se dogodi određeni događaj.