《九章节主动数据库教案》由会员分享,可在线阅读,更多相关《九章节主动数据库教案(18页珍藏版)》请在金锄头文库上搜索。
1、九章节主动数据库Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望主要内容:u 主动数据库的基本概念u ECA规则 29.1 9.1 主动数据库系统概述主动数据库系统概述 被动数据库被动数据库 应用程序应用程序 主动数据库主动数据库 触发器触发器 主动规则主动规则 系统统一管理系统统一管理39.1 9.1 主动数据库系统概述主动数据库系统概述 触发器触发器CREATE TRIGGER CREATE TRIGGER BEFORE|AFTER BEFORE|AFTER ON ON WHEN
2、 WHEN ( ) 当触发事件发生时,若条件满足,则执行动作。当触发事件发生时,若条件满足,则执行动作。49.2 9.2 ECAECA规则规则 事件事件条件条件动作(动作(Event-Condition-Action)规则。规则。 二类:基本事件和复合事件二类:基本事件和复合事件ECA规则的形式化表示为规则的形式化表示为: RULE WHEN IF THEN 5 基本事件基本事件 : 数据库操作事件数据库操作事件 执行检索、插入、修改、删除时引发的事件。执行检索、插入、修改、删除时引发的事件。 行为实施事件行为实施事件 由由用用户户定定义义操操作作的的执执行行引引发发的的事事件件。如如发发送送
3、消消息息给给某某个个对对象。象。 事务事件事务事件 事事件件由由事事务务命命令令引引起起,如如事事务务的的开开始始、事事务务的的中中止止或或提提交交都可以引发一个事件。都可以引发一个事件。 用户定义的事件用户定义的事件 由由数数据据库库编编程程语语言言明明确确引引发发一一个个事事件件,如如响响应应用用户户输输入入的的某些信息生成的事件。某些信息生成的事件。6异常事件异常事件 由某些异常操作引发的事件。如对于一些未经授权数据由某些异常操作引发的事件。如对于一些未经授权数据的访问、违反完整性约束的操作等。的访问、违反完整性约束的操作等。时钟事件(暂时事件)时钟事件(暂时事件) 由时间引发的事件。时
4、间分为绝对时间、相对时间和时间由时间引发的事件。时间分为绝对时间、相对时间和时间区间。区间。外部事件外部事件 在数据库系统之外发生的事件。如键盘、外接设备等引起在数据库系统之外发生的事件。如键盘、外接设备等引起的中断或发出的信号。的中断或发出的信号。7 ECAECA规则条件规则条件 与数据有关的条件与数据有关的条件 数据库谓词(数据库谓词(WHERE WHERE 条件表达式)条件表达式) 应用程序应用程序 (SELECTSELECT语句执行返回的逻辑值)语句执行返回的逻辑值) ECAECA规则动作规则动作 数据库更新数据库更新 数据库查询数据库查询 事务控制操作(开始、结束事务)事务控制操作(
5、开始、结束事务) 应用程序应用程序8ECAECA规则:规则: WHEN WHEN IF IF THEN THEN 耦合模式:耦合模式: 立即型立即型 延迟型延迟型分离型分离型9例例1 1: WHEN before update emp.salaryWHEN before update emp.salary immediateimmediate IF username!=wangminIF username!=wangmin immediateimmediate THEN rollbackTHEN rollback例例2 2: WHEN after insert emp WHEN after i
6、nsert emp deferreddeferred IF (select * from dept IF (select * from dept where deptno=new emp.deptno) where deptno=new emp.deptno) immediateimmediate THEN commit THEN commit 109 9. .3 3 ECA ECA 规则系统规则系统 规则系统结构规则系统结构 事件检测器事件检测器 监测事件信号监测事件信号 更新事件记录更新事件记录 将事件信号发送给规则管理器将事件信号发送给规则管理器规则管理器规则管理器 接收信号、事件匹配接
7、收信号、事件匹配 触发规则、规则调度触发规则、规则调度 语言解释器语言解释器 规则条件的评估规则条件的评估 规则动作的执行规则动作的执行11 事务模型事务模型 平面事务、嵌套事务、顶级事务平面事务、嵌套事务、顶级事务 、嵌套顶级事务、嵌套顶级事务 T RT R3 3 T T1 1 T T2 2 T T3 3 R R31 31 R R3232 R R1 1 R R2 2 R R11 11 R R12 12 R R21 21 R R222212 例:销售系统,当某种商品售出时则触发三条规则:例:销售系统,当某种商品售出时则触发三条规则:R1R1:WHEN WHEN 修改库存量修改库存量 (立即型)
8、(立即型) IF 上午上午8点至下午点至下午7点点 THEN 登记登记R2R2:WHEN WHEN 修改库存量修改库存量 (立即型)(立即型) IF 提货量提货量100 THEN 打印出库单细目打印出库单细目R3R3:WHEN WHEN 修改库存量修改库存量 (分离型(分离型 ) IF 库存低于库存低于50 THEN 定货定货13 规则的定义规则的定义 规则的修改规则的修改 删除规则删除规则 规则的激活规则的激活 规则的抑制规则的抑制9 9. .4 4 规则语言规则语言 14 内部应用内部应用 完整性约束检查、权限检查、事务执行完整性约束检查、权限检查、事务执行 外部应用外部应用实时监控实时监
9、控对突发事件的响应对突发事件的响应工作流的控制工作流的控制规则应用规则应用15 例子例子: 股票(股票(sid,price,cprice)客户(客户(cid,balance,monitor-sck )交易(交易(cid,sck,cnt) 事件事件e1 外部通知事件(外部通知事件(sid,price,time)e2 更新股价(更新股价(sid,oldprice,newprice)e3 更新客户股金更新客户股金(cid,oldbalance,newbalance)16 规则规则 R1:WHEN e1 (s, price, time) IF s IN stocks AND c IN customer
10、 THEN update_stockR2:WHEN e2 (s, oldprice, newprice) IF s IN stocks AND c IN customer AND AND newprice20 THEN trade(c, s, +1000)R3:WHEN e3 (s, oldbalance, newbalance) IF c IN customer AND c.balance0 THEN abort_top17存在的问题存在的问题: : 存在的问题存在的问题规则的系统化设计规则的系统化设计规则的执行效率、有效的条件评估方法规则的执行效率、有效的条件评估方法规则终止和一致性分析规则终止和一致性分析规则调试工具规则调试工具18