Триггер или правило – позволяют обрабатывать ситуации, возникающие при любых изменениях в данных.
Триггер – это особый вид процедуры. Триггер присоединяется к таблице и начинает работать тогда, когда данные в таблице изменяются, в таблицу вносится или удаляется строка.
В триггере ограничивается набор операторов которые могут быть в нём использованы:
1) в триггере нельзя использовать операторы создания новой б.д. и её новых объектов
2) нельзя использовать операторы удаления объектов б.д.
3) нельзя использовать команды изменения базовых объектов
4) нельзя изменять права доступа к объектам б.д.
5) нельзя написать триггер для представлений.
Триггеры могут быть 2-х видов:
1) которые работают до, после наступления события - триггеры модификации.
2) после наступления события пост – фильтры.
Механизм событий позволяет прикладным программам и серверу уведомлять другие программы, а наступлении в б.д. определенного события приложения реагируют на эти события тем самым получается синхронная работа разных приложений. EVENTS – события описывает программист.
Механизм взаимодействия событий:
1) Для каждого события в б.д. создается флажок. Состояние этого флажка говорит о том наступило это событие или нет.
2) В каждую программу вставляются метки, которые регистрируют наступления события. Если события зарегистрировано, то посылается сообщение к серверу.
3) Если прикладная программа нуждается в событии, то оно вызывается с сервера. Событие обрабатывается, и сервер оповещается о конце этого события.
Операторы:
1) CREATE –создание
2) REGISTER – регистрация
3) RAISE – вызов
4) GET – получить событие
5) INQUIRE – отправить событие.
Стандартные типы данных на современном этапе не удовлетворяют запросам приложений, пользователь должен определять собственные типы данных, делать операции над ними, и использовать эти типы в операторах SQL. Тип данных для стандартной С.У.Б.Д. создается следующим образом компилируется программа на языке с++, создается динамическая библиотека. Которая затем подключается к ядру С.У.Б.Д. SQL поддерживает следующие создание своего типа данных, пользователь создаёт имя нового типа и структуру типа, описывает функции, которые можно совершить с этим типом данных, эта структура включается в метаданные.