Тема работы: Триггеры, генераторы, исключения,
Цель работы: Изучить используемые в Firebird триггеры, генераторы и исключения. Получить навыки работы с триггерами, генераторами и исключениями с по-мощью команд SQL и с помощью программы "IB Expert".
Теоретические сведения
Генераторы (Generators)
Генераторы используются для генерации уникальных номеров, используемых в ключевых полях. То есть они реализуют те же функциональные возможности в таблицах InterBase, что поля с автоматическим приращением в других СУБД. Можно указать, чтобы числа генерировались, начиная с заданного начального значения.
Пример создания генератора:
CREATE GENERATOR MyGenerator;
SET GENERATOR MyGenerator TO 1000;
Генераторы непосредственно не привязываются к какому-либо полю. Они просто позволяют генерировать уникальные числа. Для этого используется функция Gen_ID(), встроенная в InterBase, которая генерирует целочисленные значения. Она берет генератор в качестве первого параметра и значение шага в качестве второго. Обычно приращение равно 1.
Обращаться к генератору можно только через функцию Gen_ID().
Бизнес-правила
В реальной жизни вопрос целостности базы данных связан с правилами, установленными у пользователя информационной системы. Например, в компании могут быть установлены такие правила:
• клиентам не разрешается размещать заказы на сумму, превышающую их лимит кредита;
• сведения о выполненных заказах хранятся в течение шести месяцев, а затем удаляются;
• нельзя выдавать читателю новых книг, пока он не вернет взятых ранее;
• каждый раз, когда продается какой-нибудь товар, для служащего, оформившего продажу, и для отдела, в котором этот служащий работает, на стоимость проданного товара увеличивается значение определенного поля, используемого для вычисления премии; в случае возврата всего или части проданного товара, значение этого поля соответствующим образом должно уменьшиться;
• каждый раз, когда приходит новая поставка, количество поставленного товара на складе увеличивается на количество товара в поставке.
Такие правила называются бизнес-правилами. В первом стандарте SQL считалось, что эти правила выходят за рамки ответственности СУБД и за их реализацию отвечает прикладная программа, осуществляющая доступ к базе данных. Впервые в 1986 году в СУБД Sybase было введено понятие триггер, что позволило включить реализацию бизнес-правил в базу данных.