П. Г. Демидова А. В. Зафиевский А. А. Короткин А. Н. Лататуев Базы данных Учебное пособие
Download 1.32 Mb. Pdf ko'rish
|
Базы данных
Механизм событий
в базе данных позволяет прикладным программам и серверу базы данных уведомлять другие програм- мы о наступлении в базе данных определенного события и тем самым синхронизировать их работу. Операторы языка SQL, обес- печивающие уведомление, часто называют сигнализаторами со- бытий в базе данных. Функции управления событиями целиком ложатся на сервер базы данных. Различные прикладные програм- мы и процедуры вызывают события в базе данных, а сервер оповещает монитор прикладных программ об их наступлении. Реакция монитора на события заключается в выполнении действий, которые предусмотрел его разработчик. Механизм событий используется следующим образом. Вна- чале в базе данных для каждого события создается флажок, состояние которого будет оповещать прикладные программы о том, что некоторое событие имело место (оператор CREATE DBEVENT). Далее во все прикладные программы, на ход выпол- нения которых может повлиять это событие, включается опера- тор REGISTER DBEVENT, который оповещает сервер базы дан- ных, что данная программа заинтересована в получении сообще- ния о наступлении события. Теперь любая прикладная программа или процедура базы данных может вызвать событие оператором RAISE DBEVENT. Как только событие произошло, каждая заре- гистрированная программа может получить его, для чего должна запросить очередное сообщение из очереди событий (оператор 160 GET DBEVENT) и запросить информацию о событии, в частности его имя (оператор SQL INQUIRE_SQL). В заключение рассмотрим пример из производственной системы, иллюстрирующий использование механизма событий в базе данных совместно с правилами и процедурами. Разумеется, пример приведен лишь для иллюстрации схемы срабатывания механизма «правило – процедура – событие» и ни в коей мере не отражает реальные схемы управления технологическими процес- сами на производстве. События в данном примере используются для определения ситуации, когда рабочий инструмент нагрева- ется до температуры выше допустимой и должен быть отключен. 1. Создается правило, которое применяется всякий раз, когда новое значение температуры инструмента заносится в таблицу Инструмент. Как только она превосходит 500 градусов, правило вызывает процедуру Отключить_инструмент. CREATE RULE Перегрев_инструмента AFTER UPDATE OF Инструмент (Температура) WHERE Новое.Температура >= 500 EXECUTE PROCEDURE Отключить_инструмент (Номер_инструмента = Инструмент.Номер); 2. Создается процедура базы данных Отключить_инструмент, которая вызывает событие Перегрев; она будет выполнена в результате применения правила, определенного на шаге 1. Эта процедура регистрирует время, в течение которого инструмент был отключен, и вызывает событие Перегрев: CREATE PROCEDURE Отключить_инструмент (Номер_инструмента) AS BEGIN UPDATE Инструмент SET Статус = “ВЫКЛ” WHERE Номер = Номер_инструмента; RAISE DBEVENT Перегрев; END; 3. Создается событие Перегрев, которое будет вызвано, когда инструмент перегреется: CREATE DBEVENT Перегрев; 4. Наконец, создается прикладная программа Монитор Инструментов, которая следит за состоянием инструментов. Она 161 регистрируется сервером в качестве получателя события Пере- грев с помощью оператора REGISTER DBEVENT. Если событие произошло, программа посылает сообщение пользователю и сигнал, необходимый для отключения инструмента. Рис. 7. 12. Пример использования механизма событий в базе данных |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling