一种嵌入式数据库中触发器的实现方法

文档序号:6460806阅读:197来源:国知局
专利名称:一种嵌入式数据库中触发器的实现方法
技术领域
本发明涉及一种在嵌入式数据库中触发器功能实现的方法,具体涉及 一种具有功能强大的通知消息的触发器实现方法。
背景技术
在嵌入式数据库中,由于系统的业务规则的特殊性和多样性,这就导 致业务数据之间关系的复杂性,很难用现有的约束规则(如值域约束、 外键、表互斥等)来完全表示这种复杂的关系。为了实现这种复杂的约束 关系就必须在配置窗口实现这种约束规则,由于配置窗口与数据库数据区 的隔离必然涉及到查表动作,这样必然会相当复杂,而且效率也不高。无线通信系统中对数据库操作是随机、并发的,这样某个上层应用在 操作数据库后,导致数据库中的数据发生变化,另一个可能还在保持在原 来的数据下工作,要保持这种数据的一致性, 一种方法是上层应用的相互 通知,另一种是应用定时查询数据库,维护数据的一致性。这样会增加应 用之间很多的不必要交互过程,增加了应用模块的耦合度。数据库中触发器是一类特殊的存储过程,被定义为在对表或视图发UPDATE、 INSERT或DELET语句时自动执行特殊的业务规则。嵌入式数 据库中实现触发器的功能可以对记录或字段有特殊约束规则要求的数据检 查,使数据库中记录的数据是复合业务规则的"合法"数据。同时一种通 知消息的触发器可以在数据库中的数据有任何变化时可以及时通知相关应 用,保证业务的运行和数据的一致性,提高系统处理效率。发明内容本发明的目的在于提供一种嵌入式数据库中触发器的可靠实现方法, 对其现有数据库中的触发器功能进行延伸,以形成一种具有功能强大的通 知消息的触发器。为了实现上述目的,本发明采用如下技术方案 本发明的方法包括以下处理步骤A、 向数据库注册通知消息的触发器;B、 当检测到数据库有修改操作时,向所述应用模块发送含有数据库变 化状态的通知消息。其中,所述步骤A还包括以下步骤数据库校验应用模块注册的触发 器的正确性,并在校验通过后,将触发器的注册内容插入到内存中。其中,所述方法通过以下步骤进行触发器正确性的校验通过对触发器进行约束规则检查,以及对触发器注册内容中的取值进 行合法性检验。其中,所述内存包括触发器注册表。其中,所述步骤B包括以下步骤Bl、应用模块对数据库进行修改操作;B2、数据库判断是否有来自所述应用模块的修改操作指令;如果是, 则执行B3;B3、遍历触发器注册表,判断是否存在所述应用模块注册的通知消息 的触发器;如果是,则步骤B4;B4、数据库对修改操作的数据进行约束检查;B5、数据库进行数据修改操作;B6、执行触发器,向所述应用模块发送通知消息;B7、所述应用模块根据所述通知消息的内容,进行自我更新操作。其中,所述步骤B4与步骤B3之间还包括以下步骤当判断存在所述应用模块注册的通知消息的触发器时,数据库向所述 应用模块发送关于确认修改操作是否继续执行的通知消息。其中,所述应用模块根据接收到的通知消息,对修改操作是否继续执 行进行确认,若所述应用模块停止修改操作,则发送中断制止数据库进行 修改操作。其中,所述步骤B6中,数据库向所述应用模块发送的是关于数据库 修改状态的通知消息。其中,所述通知消息中包含数据库中数据变化的内容或趋势。 本发明通过向应用模块发送通知消息,来实时保证业务数据和数据库 中数据的一致性,使用本发明的方法可以实现嵌入式数据库中除索引约束、 值约束、外键约束等复杂的业务规则约束关系,保证数据库中数据是符合 业务要求的合法数据;本发明利用通知消息的触发器实时地保证了业务数 据和数据库中数据的一致性,保证了系统的正常运行,提高了系统的运行 效率。


图1为本发明方法的流程图。
具体实施方式
以下结合附图详细描述本发明的技术方案。如图l所示,本发明嵌入式教:据库中触发器的可靠实现方法的核心思 想是如果应用模块(即嵌入式操作系统中完成某一业务的功能模块)需 要监控数据库的变化,则可以向数据库注册具有通知消息的触发器, 一旦 数据库有修改时,该触发器可以向应用模块发送记录有修改信息的通知消 息,那么应用模块可以随时保持和数据库的一致性。其方法主要包括以下 步骤步骤l、应用模块向数据库注册触发器。数据库中的数据一般都有多个应用模块进行读写或修改操作,各个应 用模块的约束规则也不尽相同, 一般的约束规则函数由数据库设计人员先 搜集业务规则,然后在函数中根据不同的业务实现约束。通知消息的触发器的注册内容包括如下信息 应用标识号表示是哪个应用注册的触发器。 表表句柄或表名或表序号等。触发时间before (数据更改前)、after (数据更改后)。 触发级别记录级还是字段级。触发事件insert (插入)、update (更新)、delete (删除)等,记录 级时三种方法都有,字段级时一般仅限update。 字段描述 一般用字段名。 步骤2、数据库检测触发器的正确性。应用模块注册的触发器首先必须满足的条件是符合索引约束、值约 束、外键约束等一般的约束规则。对于应用模块定制的特殊规则,以函数 的方式实现, 一般的通过代码走查或在实际应用中去校验。而对于通知消 息的触发器,可以对其中的时间、方法、类型这些取特定的值进行合法性 校验,并对表、索引、字段等和数据库中的数据比较判断其是否存在,同 时还要防止完全一样的注册内容。在注册内容通过校验后,将注册内容保 存到内存中。为了便于查找,可以将应用模块注册内容保存到相应的数据 结构中,比如保存到触发器注册表中。步骤3、应用模块对数据库进行修改操作,其修改操作包括记录级的 插入、删除、更新:捧作,以及字段值的更新修改。步骤4、判断是否有来自所述应用模块的修改操作指令;如果是,则执 行步骤5;如果否,则返回步骤3。步骤5、遍历触发器注册表,判断是否存在该应用模块注册的通知消息的触发器;如果是,则步骤6;如果否,则返回步骤3继续在触发器注册表 寻找匹配的触发器,如果始终没有找到匹配的触发器,则按常规流程进行 数据库的修改操作。步骤6、数据库向应用模块发送关于确认修改操作是否继续执行的通知 消息。在对某个修改操作执行该步骤时,可以先向应用模块发送关于确认修 改操作是否继续执行的通知消息。上述应用模块根据接收到的通知消息, 对修改操作是否继续执行进行确认,若应用模块预停止修改操作,则发送 中断制止数据库进行修改操作,停止执行下述步骤8。这样可以避免数据库 的误操作。步骤7、数据库依据流程顺序对修改操作的数据进行约束检查。 步骤8、数据库进行数据进行实际的修改操作,比如修改记录或字段。 步骤9、执行触发器,向所述应用模块发送关于数据库修改状态的通知 消息。在数据库收到应用模块的操作指令,并要进行实际的操作前,首先要 检验数据的特殊的约束规则,只有所有的约束规则都满足时,数据库才能 进行实际的操作,特别是关于数据的增删操作,这里所说的约束规则包括 索引约束、值约束、外键约束等。对于数据库存在记录或字段的变化时, 进行完约束检查的同时,以及检验到注册了通知消息的触发器时,在操作 完数据库便有效后,还要向应用模块发送通知消息。由于业务应用的特殊性,业务要求通知消息中包含变化的内容或趋势,通知消息中就必须保存 "新旧的数据",如增加时只保存新记录,删除时只保存旧记录,更新操 作时将新旧记录都保存。步骤10、应用模块收到通知消息并进行相应地处理。 应用收到通知消息后,进行自身数据的更新,同时可以维护和自身模 块相关的其它模块的数据,保证系统的正常运行。步骤U、应用模块根据需要注销触发器注册器。应用模块若没有注销触发器,则重复步骤3至10步。若注销触发器就清除掉通知消息触发器注册表中的相关数据。本发明对数据库中的触发器功能进行了延伸,实现了 一种功能强大通 知消息的触发器,其应用于一种无线系统中的嵌入式数据库,在有特殊业 务规则限制,进行约束检查,保证数据的"合法性",在数据有变化时通 知相关业务应用,及时正确地处理,保证应用和数据库内部数据的一致性。上述各具体步骤的举例说明较为具体,并不能因此而认为是对本发明 的专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。
权利要求
1. 一种嵌入式数据库中触发器的实现方法,其特征在于,所述方法包括以下步骤进行A、向数据库注册通知消息的触发器;B、当检测到数据库有修改操作时,向所述应用模块发送含有数据库变化状态的通知消息。
2、 根据权利要求1所述的方法,其特征在于,所述步骤A还包括以 下步骤数据库校验应用模块注册的触发器的正确性,并在校验通过后,将触 发器的注册内容插入到内存中。
3、 根据权利要求2所述的方法,其特征在于,所述方法通过以下步骤 进行触发器正确性的校验通过对触发器进行约束规则检查,以及对触发器注册内容中的取值进 行合法性检验。
4、 根据权利要求2所述的方法,其特征在于,所述内存包括触发器注册表。
5、 根据权利要求4所述的方法,其特征在于,所述步骤B包括以下步骤..Bl、应用模块对数据库进行修改操作;B2、数据库判断是否有来自所述应用模块的修改操作指令;如果是, 则执行B3;B3、遍历触发器注册表,判断是否存在所述应用模块注册的通知消息 的触发器;如果是,则步骤B4;B4、数据库对修改操作的数据进行约束检查;B5、数据库进行数据修改操作;B6、执行触发器,向所述应用模块发送通知消息;B7、所述应用模块根据所述通知消息的内容,进行自我更新操作。
6、根据权利要5所述的方法,其特征在于,所述步骤B4与步骤B3 之间还包括以下步骤当判断存在所述应用模块注册的通知消息的触发器时,数据库向所述 应用模块发送关于确认修改操作是否继续执行的通知消息。
7、 根据权利要求6所述的方法,其特征在于,所述应用模块根据接收 到的通知消息,对修改操作是否继续执行进行确认,若所述应用模块停止 修改操作,则发送中断制止数据库进行修改操作。
8、 根据权利要求5所述的方法,其特征在于,所述步骤B6中,数据 库向所述应用模块发送的是关于数据库修改状态的通知消息。
9、 根据权利要求9所述的方法,其特征在于,所述通知消息中包含 数据库中数据变化的内容或趋势。
全文摘要
本发明公开了一种嵌入式数据库中触发器的实现方法,其包括以下步骤A.向数据库注册通知消息的触发器;B.当检测到数据库有修改操作时,向所述应用模块发送含有数据库变化状态的通知消息。本发明通过向应用模块发送通知消息,来实时保证业务数据和数据库中数据的一致性。使用本发明的方法可以实现嵌入式数据库中除索引约束、值约束、外键约束等复杂的业务规则约束关系,保证数据库中数据是符合业务要求的合法数据。本发明利用通知消息的触发器实时地保证了业务数据和数据库中数据的一致性,保证系统的正常运行,提高系统的运行效率。
文档编号G06F17/30GK101256577SQ20081006630
公开日2008年9月3日 申请日期2008年3月18日 优先权日2008年3月18日
发明者陈幼柏 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1