П. Г. Демидова А. В. Зафиевский А. А. Короткин А. Н. Лататуев Базы данных Учебное пособие


Download 1.32 Mb.
Pdf ko'rish
bet91/94
Sana15.06.2023
Hajmi1.32 Mb.
#1487605
1   ...   86   87   88   89   90   91   92   93   94
Bog'liq
Базы данных

Механизм событий
в базе данных позволяет прикладным 
программам и серверу базы данных уведомлять другие програм-
мы о наступлении в базе данных определенного события и тем 
самым синхронизировать их работу. Операторы языка 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. Пример использования механизма событий в базе данных 


162 

Download 1.32 Mb.

Do'stlaringiz bilan baham:
1   ...   86   87   88   89   90   91   92   93   94




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling