时间:2022-12-09 16:30:02 | 来源:信息时代
时间:2022-12-09 16:30:02 来源:信息时代
主动数据库应用 : 主动数据库在许多领域,例如管理信息系统、办公自动化系统、决策支持系统、协同工作、网络管理、过程控制、空中交通管制、野战数字化系统等有着广泛的应用,这些应用都需要主动数据库系统中主动功能的支持。
在主动数据库应用中,应用程序的部分语义可以转换为主动规则,并交给主动数据库集中管理。这给主动数据库的应用和开发提供了如下便利:
(1)事件的主动响应行为。可以避免被动数据库应用中那种昂贵的轮询机制。
(2)数据库能够保持一种独特的一致行为。可以强制所有应用程序都不能违反通过主动规则建立的数据管理策略,使数据库独立于应用程序。
(3)应用程序的模块化程度和灵活性得以提高。实际应用中随需求变化的语义,可以显式地表示为规则。不需要修改应用程序,仅修改这些规则,就可以满足新的要求。
(4)使用主动数据库系统可以改善应用建模过程。因为在实际应用中很多方面可以自然直观地转换为规则,这在某种程度上可以促进主动应用的设计过程。
按照主动规则服务对象的不同,可以将主动数据库的应用归为两类:
(1)面向数据库本身的应用:面向数据库本身的应用有时也分为内部应用和扩展应用。内部应用主要采用主动规则实现一些传统数据库系统所支持的功能; 而扩展应用针对的是一些新颖的或者是非标准的数据库任务。可以用主动规则来实现的数据库功能有: ①维护完整性约束。完整性约束规则可以在数据库操作可能违反约束的时候触发,规则条件检查完整性约束是否有效,规则动作则可以终止相关事务阻止违反约束的操作,或者是修复不一致的数据库状态。②维护导出数据和物化视图。ECA规则可以用来保持导出数据和物化视图与原始数据库之间的一致性。规则可以监视数据库的变化,当数据库发生更新时,规则动作可以重新计算导出的数据或者是物化的视图。③支持数据集成。在分布式系统中,视图可以用来集成分布式的、异构的、多个数据源的数据。分布式系统组件之间的更改通知可以通过规则传递。这方面的例子有数据仓库。④版本管理和复制管理。ECA规则可以用来保持关系模式不同版本之间的一致性,将一个版本中的更改传递给另一个版本。⑤数据访问授权管理。规则事件可以检测受权限控制的数据库操作,规则条件可以检查操作用户是否有执行该操作的权限,而规则动作可以在无权访问的情况下终止事务,并在另一个独立的事务中记录未授权的访问。⑥其他需要被动数据库管理系统内部专门的子系统才能完成的功能,如统计数据信息、查询优化等。
(2)面向特定领域或问题的外部应用:在特定领域,采用主动规则可以获得自动反应行为。在这种情况下,主动规则的实施通常与数据库内部出现的情形,或者是监控设备记录的数据库的外部情况相结合。所涉及的问题和领域有: 金融投资管理、医疗保险管理、自动制造、交通管理、网络管理、信息系统管理、设备监控、故障报警等等。主动规则提供的主动服务主要包括: ①情形监控。对特定事件或条件所标志的情形进行监视,探测事件的发生,评估条件的变化,一旦特殊的情形出现就执行相应的动作或处理。②异常报警。应用程序在预先确定的状态和条件下运行,一旦发生例外就自动通知应用程序或用户。③支持实时处理。实现各种与时间有关的事件和条件的监控,例如自动控制、协作导航、定时限制与实时调度等。④支持协同工作。在工程型和时间关键型等许多应用领域,往往是多个应用彼此通信、协同工作,共同完成任务,其中的通信与协同可以借助主动规则的机制来实现。在这方面比较典型的应用是工作流管理。主动规则可以用来提供灵活的工作流建模机制,为工作流的制定提供清晰的操作语义。通过主动规则执行任务调度及任务间数据的自动传递。
为了支持主动性功能,在SQL3标准中也增加了触发器功能,从而在数据库标准上实现了对主动数据库的支持。SQL3中的触发器是按照主动规则的模式“事件-条件-动作”定义的。触发的事件为对数据的更新操作,条件为任意的SQL谓词,动作为SQL语句序列。触发器中规定了事件发生时触发规则的时间,还规定了触发事件的“粒度”是面向元组还是面向集合。在规则的条件评估和动作执行时允许引用所说明表中的元组值,可以引用更新前或更新后的值。触发器中还允许说明触发器的优先级,即一个事件若引发多个触发器,通过指定优先级使多个被触发的规则按照一定顺序执行。
主动数据库的内部应用和扩展应用还可以用来提供多种数据库服务,为实现实时数据库、合作数据库、动态数据库和演绎数据库等提供方便。其中比较特殊的一种是主动实时数据库系统。实时数据库中存在与事务有关的各种事件,除了对象事件、事务事件外,还有大量的实时事件,以及与事件相关的各种条件。在不同的事件和条件下,需要触发不同的活动。主动数据库的主动能力为实时数据库的建模和实现提供了有力支持。
许多应用要求集成实时数据库和主动数据库的功能特性,如各类协作导航系统、网络服务系统、自动控制系统等。其他类似事件驱动、情形监控,而且有实时调度与定时控制要求的应用,只有将实时数据库与主动数据库相结合才能大显身手。