利用诱导触发规则提高医疗数据库的一致性
1. 引言
数据库是对象(如患者记录)的集合,同时包含对这些对象的一组完整性约束。完整性约束是数据库设计者定义的谓词,要求数据库在任何状态下都满足这些条件。数据库的状态由对象的值决定,当对象值发生修改时,数据库状态也会改变。若对象值满足指定的完整性约束,则数据库状态是一致的。数据库的一致性对于保证其在任何应用中的可靠性至关重要。
为防止数据库不一致,数据对象只能通过事务进行访问和修改。事务是一组操作(如 INSERT、DELETE、UPDATE),能使数据库从一个一致状态转变到另一个一致状态。在事务处理时,会评估与该事务相关的完整性约束。若约束评估为假(即约束违规),则会撤销导致此事件的事务。
然而,完整性约束只能确保一些简单的事件,如域完整性、引用完整性。为实施更复杂的规则,如业务规则或跨应用的复杂更新约束,触发规则被用作强大且有效的工具来执行完整性检查,从而过滤违反数据库一致性的状态更改。
触发器,也称为事件 - 条件 - 动作(ECA)规则,是主动数据库的主要概念之一。主动数据库通过自动响应特定事件的机制扩展了传统数据库系统。这些事件可以发生在数据库系统内部或外部。当指定事件发生时,会评估规则条件,若条件满足,则执行相应动作。
尽管触发器被视为数据库一致性监控的重要特性,但由于创建复杂触发规则并非易事,其应用仍然有限。因此,我们旨在通过数据挖掘技术,提供一种从当前数据库内容自动生成触发规则的方法。诱导的触发规则可作为补充约束,有助于提高数据库的一致性。
2. 触发器及相关问题
在 SQL 标准中,触发器通过事件 - 条件 - 动作规则来表达。每个触发器