Triggerek vs tárolt eljárások
Egy adatbázisban a trigger egy eljárás (kódszegmens), amely automatikusan végrehajtódik, amikor bizonyos események előfordulnak egy táblában/nézetben. Egyéb felhasználási területei mellett a triggereket főként az adatbázis integritásának megőrzésére használják. A tárolt eljárás egy olyan módszer, amelyet a relációs adatbázishoz hozzáférő alkalmazások használhatnak. A tárolt eljárásokat általában az adatok ellenőrzésére és az adatbázisokhoz való hozzáférés szabályozására használják.
Mik azok a triggerek?
A trigger egy eljárás (kódszegmens), amely automatikusan végrehajtásra kerül, amikor bizonyos események előfordulnak egy adatbázis táblájában/nézetében. Egyéb felhasználási területei mellett a triggereket főként az adatbázis integritásának megőrzésére használják. A triggereket az üzleti szabályok betartatására, az adatbázis változásainak auditálására és az adatok replikálására is használják. A leggyakoribb triggerek a Data Manipulation Language (DML) triggerek, amelyek az adatok manipulálásakor aktiválódnak. Egyes adatbázisrendszerek támogatják a nem adatalapú triggereket, amelyek az adatdefiníciós nyelv (DDL) eseményei esetén aktiválódnak. Néhány példa a triggerekre, amelyek táblák létrehozásakor, véglegesítési vagy visszaállítási műveletek során stb. indulnak el. Ezek a triggerek különösen auditálásra használhatók. Az Oracle adatbázisrendszer támogatja a sémaszintű triggereket (azaz az adatbázissémák módosításakor aktiválódó triggereket), mint például a létrehozás után, a módosítás előtt, a módosítás után, a ledobás előtt, az eldobás után stb. Az Oracle által támogatott négy fő triggertípus a sorszintű triggerek, Oszlopszintű triggerek, minden sortípus aktiválási szabály és az egyes nyilatkozattípushoz tartozó triggerek.
Mik azok a tárolt eljárások?
A tárolt eljárás egy olyan módszer, amelyet egy relációs adatbázishoz hozzáférő alkalmazás használhat. A tárolt eljárásokat általában az adatok érvényesítésére és az adatbázisokhoz való hozzáférés szabályozására használják. Ha egy adatfeldolgozási művelethez több SQL utasítás végrehajtása szükséges, akkor ezek a műveletek tárolt eljárásokként valósulnak meg. Tárolt eljárás meghívásakor CALL vagy EXECUTE utasítást kell használni. A tárolt eljárások eredményeket adhatnak vissza (például a SELECT utasításokból származó eredményeket). Ezeket az eredményeket más tárolt eljárások vagy alkalmazások is felhasználhatják. A tárolt eljárások írásához használt nyelvek általában támogatják az olyan vezérlőstruktúrákat, mint például if, while, for stb. A használt adatbázisrendszertől függően több nyelv is használható a tárolt eljárások megvalósítására (pl. PL/SQL és java az Oracle-ben, T- SQL (Transact-SQL) és. NET-keretrendszer a Microsoft SQL Serverben). Ezenkívül a MySQL saját tárolt eljárásait használja.
Mi a különbség a triggerek és a tárolt eljárások között?
A trigger egy eljárás (kódszegmens), amely automatikusan végrehajtódik, amikor bizonyos események fordulnak elő egy adatbázis táblájában/nézetében, míg a tárolt eljárás egy olyan módszer, amelyet egy relációs adatbázishoz hozzáférő alkalmazás használhat.. A triggerek automatikusan végrehajtásra kerülnek, amikor bekövetkezik az az esemény, amelyre a triggernek reagálnia kell. De egy tárolt eljárás végrehajtásához egy adott CALL vagy EXECUTE utasítást kell használni. A triggerek hibakeresése nehezebb és trükkösebb lehet, mint a tárolt eljárások hibakeresése. A triggerek nagyon hasznosak, ha meg akarunk bizonyosodni arról, hogy valami történjen, amikor egy bizonyos esemény bekövetkezik.