一种xml数据库触发器的实现方法、装置及xml数据库的制作方法

文档序号:6511320阅读:161来源:国知局
一种xml数据库触发器的实现方法、装置及xml数据库的制作方法
【专利摘要】本发明提供了一种XML数据库触发器的实现方法、装置及XML数据库,所述方法包括:当一XML文档中的XML节点存在修改操作时,检测所述XML节点是否具有与所述修改操作对应的触发器;当所述XML节点具有与所述修改操作对应的触发器时,触发所述触发器。采用本发明提供的技术方案,为XML数据库系统设定一组指定的动作后,并指定触发条件后,在XML数据库系统检测到满足触发条件后,使得XML数据库系统自动的执行预先设定的一组指定动作完成相应操作,用户无需再进行额外操作,特别是减少了用户在进行数据一致性的维护方面的工作。
【专利说明】-种XML数据库触发器的实现方法、装置及XML数据库

【技术领域】
[0001] 本发明涉及计算机通信领域,尤其涉及一种XML数据库触发器的实现方法、装置 及XML数据库。

【背景技术】
[0002] XMLDBMS (XML数据库管理系统)是近年快速发展的一种新型的数据库管理系 统,它用于存储和检索XML文档。XML数据的检索和更新语言是由W3C (World Wide Web Consortium,万维网联盟)制定的标准的XQuery和XQuery Update。XQuery系列语言基于 XDM (序列数据模型),即XQuery中任意数据都是一个序列,序列由若干个有序的item (项 目)的组成;一个item是一个原子值或者一个XDM节点,一个XDM节点是XML文档的7种 节点之一。基于这样的数据模型,最自然和高效的XML数据存储方案就是把XML文档存储 为节点。
[0003] 在XMLDBMS中存储XML文档的实体称为容器,一个容器中存储任意多个XML文档, 而这个容器由若干个数据表构成,而这些数据表分别存储XML文档各个方面的数据和结构 信息:包括节点数据,节点间关系,节点路径数据,索引,统计信息等。数据表存储的单位是 数据行,一个数据表中含有若干个数据行,并且可以通过索引快速查找到特定的数据行。
[0004] 当XML文档被添加到一个容器后,用户可以通过XMLDBMS所提供的相关系统命令 来对该文件进行操作:列出该文档属性,查询文档中的节点信息,更新文档中节点信息等。 但当我们对某个文档操作时候,我们同时希望能够完成对其它相关节点的更新操作,从而 保证数据的一致性,若此应用需求在关系数据库中,我们可以创建一个触发器来实现此项 功能。但是对于非结构化数据库特别是XML数据库来说由于其不同于关系数据库,对XML 数据库来说由于其存储的数据为非结构化的数据,无法做到像关系数据库使用行级粒度的 触发器,况且非结构化数据库对于触发器的支持方式和实现方式上也与关系数据库有很大 的不同。故而本发明给出了一种XML数据库触发器的实现方法用来完成上述的功能。


【发明内容】

[0005] 有鉴于此,本发明提供了一种XML数据库触发器的实现方法、装置及XML数据库, 以解决现有技术中,在XML数据库中XML文档变化时,需要用户进行额外的操作以维护数据 库中的数据一致性的问题。
[0006] 为实现上述目的,本发明提供了一种XML数据库触发器的实现方法,包括:当一 XML文档中的XML节点存在修改操作时,检测所述XML节点是否具有与所述修改操作对应 的触发器,所述触发器包括触发条件及被触发后执行的动作,所述触发条件为所述XML节 点存在所述修改操作时触发所述触发器,所述被触发后执行的动作包括对所述XML文档和 /或其他XML文档中的相关节点的预设操作;当所述XML节点具有与所述修改操作对应的 触发器时,触发所述触发器。
[0007] 进一步地,所述当一 XML文档中的XML节点存在修改操作时,检测所述XML节点是 否具有与所述修改操作对应的触发器之前,还包括:为所述XML节点创建与所述修改操作 对应的触发器。
[0008] 进一步地,所述为所述XML节点创建与所述修改操作对应的触发器具体为:获取 用户使用XML数据库系统提供的指定命令定义的触发器创建语句;根据所述触发器创建语 句创建所述触发器。
[0009] 进一步地,为所述XML数据库设置触发器信息表;所述为所述XML节点创建与所述 修改操作对应的触发器,具体为:将所述XML节点的所述修改操作对应的触发器存储至所 述触发器信息表中;所述检测所述XML节点是否具有与所述修改操作对应的触发器,具体 为:查询所述触发器信息表中是否存在与所述XML节点的所述修改操作对应的触发器。 [0010] 进一步地,为所述XML数据库设置触发器开关选项,所述触发器开关选项包括:使 用触发器和不使用触发器;所述检测所述XML节点是否具有与所述修改操作对应的触发器 之前还包括:检测所述触发器开关选项是否被设置成为使用触发器;当检测到所述触发器 开关选项被设置成为使用触发器时,进入检测所述XML节点是否具有与所述修改操作对应 的触发器的步骤。
[0011] 进一步地,所述方法还包括:删除所述XML节点的与所述修改操作对应的触发器。
[0012] 进一步地,所述删除所述XML节点的与所述修改操作对应的触发器具体为:获取 用户使用XML数据库系统提供的指定命令定义的触发器删除语句;检测所述XML节点是否 具有所述触发器删除语句指定的触发器;当所述XML节点具有所述触发器时,根据所述触 发器删除语句删除所述触发器。
[0013] 本发明还提供一种XML数据库触发器的实现装置,包括:第一检测模块,用于当一 XML文档中的XML节点存在修改操作时,检测所述XML节点是否具有与所述修改操作对应 的触发器,所述触发器包括触发条件及被触发后执行的动作,所述触发条件为所述XML节 点存在所述修改操作时触发所述触发器,所述被触发后执行的动作包括对所述XML文档和 /或其他XML文档中的相关节点的预设操作;触发模块,用于当所述XML节点具有与所述修 改操作对应的触发器时,触发所述触发器;创建模块,用于为XML节点创建与所述修改操作 对应的触发器。
[0014] 进一步地,所述装置还包括:获取模块,用于获取用户使用XML数据库系统提供的 指定命令定义的触发器创建语句;所述创建模块进一步用于根据所述触发器创建语句创建 所述触发器。
[0015] 进一步地,所述装置还包括:第一设置模块,用于为所述XML数据库设置触发器信 息表;所述创建模块具体用于将所述XML节点的所述修改操作对应的触发器存储至所述触 发器信息表中;所述第一检测模块具体用于查询所述触发器信息表中是否存在与所述XML 节点的所述修改操作对应的触发器。
[0016] 进一步地,所述装置还包括:第二设置模块,用于为所述XML数据库设置触发器开 关选项,所述触发器开关选项包括:使用触发器和不使用触发器;第二检测模块,用于检测 所述触发器开关选项是否被设置成为使用触发器;所述第一检测模块具体用于当XML文档 中的XML节点存在修改操作且所述第二检测模块检测到所述触发器开关选项被设置成为 使用触发器时,检测所述XML节点是否具有与所述修改操作对应的触发器。
[0017] 进一步地,所述装置还包括:删除模块,用于删除所述XML节点的与所述修改操作 对应的触发器。
[0018] 本发明还提供一种XML数据库,包括如上所述的XML数据库触发器的实现装置。 [0019] 本发明的上述技术方案的有益效果如下:
[0020] 本发明提供了一种XML数据库触发器的实现方法、装置及XML数据库,为XML数 据库系统设定一组指定的动作后,并指定触发条件后,在XML数据库系统检测到满足触发 条件后,使得XML数据库系统自动的执行预先设定的一组指定动作完成相应操作,用户无 需再进行额外操作,特别是减少了用户在进行数据一致性的维护方面的工作,同时丰富了 XMLDBMS的系统核心功能。

【专利附图】

【附图说明】
[0021] 图1为本发明实施例1提供的XML数据库触发器的实现方法的流程图。
[0022] 图2为本发明实施例1提供的XML数据库触发器的实现装置的结构示意图。

【具体实施方式】
[0023] 为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具 体实施例进行详细描述。
[0024] 本发明针对现有技术中,在XML数据库中当XML文档发生改变时,需要用户进行 额外的操作以维护数据库中的数据一致性的问题,提供了一种XML数据库触发器的实现方 法、装置及XML数据库,为XML数据库系统设定一组指定的动作后,并指定触发条件后,在 XML数据库系统检测到满足触发条件后,使得XML数据库系统自动的执行预先设定的一组 指定动作完成相应操作,用户无需再进行额外操作,特别是减少了用户在进行数据一致性 的维护方面的工作。
[0025] 图1为本发明实施例1提供的XML数据库触发器的实现方法的流程图,如图所示, 包括:
[0026] 步骤S101,当一XML文档中的XML节点存在修改操作时,检测所述XML节点是否具 有与所述修改操作对应的触发器,所述触发器包括触发条件及被触发后执行的动作,所述 触发条件为所述XML节点存在所述修改操作时触发所述触发器,所述被触发后执行的动作 包括对所述XML文档和/或其他XML文档中的相关节点的预设操作;
[0027] 步骤S102,当所述XML节点具有与所述修改操作对应的触发器时,触发所述触发 器。
[0028] 在上述技术方案中,当XML数据库中所存储的XML文档的某个节点发生修改操作 时,例如所述节点的数据发生了变化,或者增加或删除了某个节点,XML数据库系统检测在 所述节点上是否具有对应于相应修改操作的触发器,所述触发器记录了触发条件,例如将 如上所述的节点数据发生了变化作为触发条件,或者将增加或删除了某个节点作为触发条 件,所述触发器还记录了被触发后执行的动作,例如修改与所述节点相关的节点的数据,或 者增加或删除与所述节点相关的节点,与所述节点相关的节点可以与所述节点处于同一 XML文档中,或者是处于不同的XML文档中。当检测到所述节点具有与所述修改操作对应的 触发器时,触发所述触发器,即当检测到与所述节点对应的触发器,且满足所述触发器中记 录的触发条件时,执行所述触发器记录的被触发后执行的动作。从而实现了当XML数据库 中的某个XML文档发生改变时,XML数据库系统自动的执行预先设定的一组指定动作完成 对相应的XML文档中的节点进行修改,用户无需在进行额外操作,减少了用户在进行数据 一致性的维护方面的工作。
[0029] 进一步地,所述当一 XML文档中的XML节点存在修改操作时,检测所述XML节点是 否具有与所述修改操作对应的触发器之前,还包括:为所述XML节点创建与所述修改操作 对应的触发器。
[0030] 进一步地,所述为所述XML节点创建与所述修改操作对应的触发器可以具体为: 获取用户使用XML数据库系统提供的指定命令定义的触发器创建语句;根据所述触发器创 建语句创建所述触发器。
[0031] 在上述技术方案中,XML数据库系统创建所述触发器时,可以根据用户使用XML数 据库系统提供的指定命令定义的触发器创建语句来创建触发器。
[0032] 用户可以使用系统提供的指定命令来完成触发器的定义,其作用是告知XML数据 库系统,用户需要定义一个新的触发器,并告知XML数据库系统关于该触发器的触发条件, 所执行的动作,该触发器所对应的XML数据库系统中的文档对象,以及对应的所述XML文档 中节点的路径信息,当所述节点的路径信息为空时,默认为在整个对象上创建。
[0033] 其命令格式可以如下所示:
[0034]

【权利要求】
1. 一种XML数据库触发器的实现方法,其特征在于,包括: 当一 XML文档中的XML节点存在修改操作时,检测所述XML节点是否具有与所述修 改操作对应的触发器,所述触发器包括触发条件及被触发后执行的动作,所述触发条件为 所述XML节点存在所述修改操作时触发所述触发器,所述被触发后执行的动作包括对所述 XML文档和/或其他XML文档中的相关节点的预设操作; 当所述XML节点具有与所述修改操作对应的触发器时,触发所述触发器。
2. 如权利要求1所述方法,其特征在于,所述当一 XML文档中的XML节点存在修改操作 时,检测所述XML节点是否具有与所述修改操作对应的触发器之前,还包括: 为所述XML节点创建与所述修改操作对应的触发器。
3. 如权利要求2所述方法,其特征在于,所述为所述XML节点创建与所述修改操作对应 的触发器具体为: 获取用户使用XML数据库系统提供的指定命令定义的触发器创建语句; 根据所述触发器创建语句创建所述触发器。
4. 如权利要求2所述方法,其特征在于,还包括: 为所述XML数据库设置触发器信息表; 所述为所述XML节点创建与所述修改操作对应的触发器,具体为: 将所述XML节点的所述修改操作对应的触发器存储至所述触发器信息表中; 所述检测所述XML节点是否具有与所述修改操作对应的触发器,具体为: 查询所述触发器信息表中是否存在与所述XML节点的所述修改操作对应的触发器。
5. 如权利要求1所述方法,其特征在于,还包括: 为所述XML数据库设置触发器开关选项,所述触发器开关选项包括:使用触发器和不 使用触发器; 所述检测所述XML节点是否具有与所述修改操作对应的触发器之前还包括: 检测所述触发器开关选项是否被设置成为使用触发器; 当检测到所述触发器开关选项被设置成为使用触发器时,进入检测所述XML节点是否 具有与所述修改操作对应的触发器的步骤。
6. 如权利要求1-5中任一项所述的方法,其特征在于,还包括: 删除所述XML节点的与所述修改操作对应的触发器。
7. 如权利要求6所述方法,其特征在于,所述删除所述XML节点的与所述修改操作对应 的触发器具体为: 获取用户使用XML数据库系统提供的指定命令定义的触发器删除语句; 检测所述XML节点是否具有所述触发器删除语句指定的触发器; 当所述XML节点具有所述触发器时,根据所述触发器删除语句删除所述触发器。
8. -种XML数据库触发器的实现装置,其特征在于,包括: 第一检测模块,用于当一 XML文档中的XML节点存在修改操作时,检测所述XML节点是 否具有与所述修改操作对应的触发器,所述触发器包括触发条件及被触发后执行的动作, 所述触发条件为所述XML节点存在所述修改操作时触发所述触发器,所述被触发后执行的 动作包括对所述XML文档和/或其他XML文档中的相关节点的预设操作; 触发模块,用于当所述XML节点具有与所述修改操作对应的触发器时,触发所述触发 器; 创建模块,用于为所述XML节点创建与所述修改操作对应的触发器。
9. 如权利要求8所述装置,其特征在于,还包括: 获取模块,用于获取用户使用XML数据库系统提供的指定命令定义的触发器创建语 句; 所述创建模块进一步用于根据所述触发器创建语句创建所述触发器。
10. 如权利要求8所述装置,其特征在于,还包括: 第一设置模块,用于为所述XML数据库设置触发器信息表; 所述创建模块具体用于将所述XML节点的所述修改操作对应的触发器存储至所述触 发器信息表中; 所述第一检测模块具体用于查询所述触发器信息表中是否存在与所述XML节点的所 述修改操作对应的触发器。
11. 如权利要求8所述装置,其特征在于,还包括: 第二设置模块,用于为所述XML数据库设置触发器开关选项,所述触发器开关选项包 括:使用触发器和不使用触发器; 第二检测模块,用于检测所述触发器开关选项是否被设置成为使用触发器; 所述第一检测模块具体用于当XML文档中的XML节点存在修改操作且所述第二检测模 块检测到所述触发器开关选项被设置成为使用触发器时,检测所述XML节点是否具有与所 述修改操作对应的触发器。
12. 如权利要求8-11任一项所述装置,其特征在于,还包括: 删除模块,用于删除所述XML节点的与所述修改操作对应的触发器。
13. -种XML数据库,其特征在于,包括如权利要求8-12中任一项所述的XML数据库触 发器的实现装置。
【文档编号】G06F17/30GK104462078SQ201310415274
【公开日】2015年3月25日 申请日期:2013年9月12日 优先权日:2013年9月12日
【发明者】李 浩, 陈丽娟, 邓光超, 彭川 申请人:方正信息产业控股有限公司, 上海方正数字出版技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1