Задействания срещу съхранени процедури
В база данни тригерът е процедура (сегмент на код), която се изпълнява автоматично, когато се появят някои специфични събития в таблица/изглед. Сред другите му приложения тригерите се използват главно за поддържане на целостта на базата данни. Съхранената процедура е метод, който може да се използва от приложения, осъществяващи достъп до релационна база данни. Обикновено съхранените процедури се използват като метод за валидиране на данни и контролиране на достъпа до база данни.
Какво представляват тригерите?
Тригерът е процедура (кодов сегмент), която се изпълнява автоматично, когато възникнат някои специфични събития в таблица/изглед на база данни. Сред другите му приложения тригерите се използват главно за поддържане на целостта на базата данни. Тригерите се използват и за налагане на бизнес правила, одит на промените в базата данни и репликиране на данни. Най-често срещаните задействания са задействания на езика за манипулиране на данни (DML), които се задействат, когато данните се манипулират. Някои системи за бази данни поддържат тригери без данни, които се задействат при възникване на събития на Data Definition Language (DDL). Някои примери са тригери, които се задействат, когато се създават таблици, по време на извършване на операции за извършване или връщане назад и т.н. Тези тригери могат да се използват специално за одит. Системата за бази данни на Oracle поддържа тригери на ниво схема (т.е. тригери, задействани, когато схемите на базата данни са модифицирани), като след създаване, преди промяна, след промяна, преди премахване, след премахване и т.н. Четирите основни типа тригери, поддържани от Oracle, са тригери на ниво ред, Задействания на ниво колона, задействания за всеки тип ред и задействания за всеки тип изявление.
Какво представляват съхранените процедури?
Запазената процедура е метод, който може да се използва от приложение, осъществяващо достъп до релационна база данни. Обикновено съхранените процедури се използват като метод за валидиране на данни и контролиране на достъпа до база данни. Ако някаква операция за обработка на данни изисква изпълнението на няколко SQL оператора, такива операции се изпълняват като запомнени процедури. Когато извиквате запомнена процедура, трябва да се използва оператор CALL или EXECUTE. Съхранените процедури могат да връщат резултати (например резултати от изразите SELECT). Тези резултати могат да се използват от други съхранени процедури или от приложения. Езиците, които се използват за писане на запомнени процедури, обикновено поддържат контролни структури като if, while, for и т.н. В зависимост от използваната система от бази данни, няколко езика могат да се използват за прилагане на запомнени процедури (напр. PL/SQL и java в Oracle, T- SQL (Transact-SQL) и. NET Framework в Microsoft SQL Server). Освен това MySQL използва свои собствени съхранени процедури.
Каква е разликата между тригери и съхранени процедури?
Тригерът е процедура (кодов сегмент), която се изпълнява автоматично, когато възникнат някои специфични събития в таблица/изглед на база данни, докато съхранената процедура е метод, който може да се използва от приложение, осъществяващо достъп до релационна база данни. Тригерите се изпълняват автоматично, когато настъпи събитието, на което тригерът трябва да отговори. Но за да се изпълни съхранена процедура, трябва да се използва специфичен оператор CALL или EXECUTE. Отстраняването на грешки на тригерите може да бъде по-трудно и по-сложно от отстраняването на грешки в съхранени процедури. Тригерите са много полезни, когато искате да сте сигурни, че нещо ще се случи, когато настъпи определено събитие.