Spouštěče vs. uložené procedury
V databázi je spouštěčem procedura (segment kódu), která se automaticky spustí, když v tabulce/pohledu nastanou určité události. Spouštěče se mimo jiné používají hlavně pro udržování integrity v databázi. Uložená procedura je metoda, kterou mohou používat aplikace přistupující k relační databázi. Uložené procedury se obvykle používají jako metoda pro ověřování dat a řízení přístupu k databázi.
Co jsou spouštěče?
Spouštěč je procedura (segment kódu), která se provede automaticky, když v tabulce/pohledu databáze nastanou určité události. Spouštěče se mimo jiné používají hlavně pro udržování integrity v databázi. Spouštěče se také používají k vynucení obchodních pravidel, auditování změn v databázi a replikaci dat. Nejběžnější spouštěče jsou spouštěče jazyka DML (Data Manipulation Language), které se spouštějí při manipulaci s daty. Některé databázové systémy podporují jiné než datové spouštěče, které se spouštějí, když nastanou události jazyka DDL (Data Definition Language). Některé příklady jsou spouštěče, které se spouštějí při vytváření tabulek, během operací potvrzení nebo vrácení atd. Tyto spouštěče lze použít zejména pro auditování. Databázový systém Oracle podporuje spouštěče na úrovni schématu (tj. spouštěče spouštěné při úpravě databázových schémat), jako jsou po vytvoření, před změnou, po změně, před vypuštěním, po vypuštění atd. Čtyři hlavní typy spouštěčů podporované Oracle jsou spouštěče na úrovni řádků, Spouštěče na úrovni sloupce, Spouštěče pro každý typ řádku a Spouštěče pro každý typ příkazu.
Co jsou to uložené procedury?
Uložená procedura je metoda, kterou může použít aplikace přistupující k relační databázi. Uložené procedury se obvykle používají jako metoda pro ověřování dat a řízení přístupu k databázi. Pokud některá operace zpracování dat vyžaduje provedení několika příkazů SQL, jsou takové operace implementovány jako uložené procedury. Při vyvolání uložené procedury je třeba použít příkaz CALL nebo EXECUTE. Uložené procedury mohou vracet výsledky (například výsledky z příkazů SELECT). Tyto výsledky mohou být použity jinými uloženými procedurami nebo aplikacemi. Jazyky, které se používají k zápisu uložených procedur, obvykle podporují řídicí struktury jako if, while, for atd. V závislosti na použitém databázovém systému lze k implementaci uložených procedur použít několik jazyků (např. PL/SQL a java v Oracle, T- SQL (Transact-SQL) a. NET Framework v Microsoft SQL Server). Navíc MySQL používá své vlastní uložené procedury.
Jaký je rozdíl mezi spouštěči a uloženými procedurami?
Spouštěč je procedura (segment kódu), která se provádí automaticky, když v tabulce/pohledu databáze nastanou nějaké specifické události, zatímco uložená procedura je metoda, kterou může použít aplikace přistupující k relační databázi.. Spouštěče se spouštějí automaticky, když nastane událost, na kterou má spouštěč reagovat. K provedení uložené procedury je však nutné použít konkrétní příkaz CALL nebo EXECUTE. Ladění spouštěčů může být těžší a složitější než ladění uložených procedur. Spouštěče jsou velmi užitečné, když se chcete ujistit, že se něco stane, když nastane určitá událost.