[发明专利]一种实现数据库触发器功能的方法及装置有效
申请号: | 201010202877.0 | 申请日: | 2010-06-18 |
公开(公告)号: | CN102289433A | 公开(公告)日: | 2011-12-21 |
发明(设计)人: | 谭瑾博 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 工业和信息化部电子专利中心 11010 | 代理人: | 梁军 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 数据库 触发器 功能 方法 装置 | ||
技术领域
本发明涉及通讯技术领域,特别是涉及一种实现数据库触发器功能的方法及装置。
背景技术
数据库中的触发器,是一种提高嵌入式系统执行效率的存储过程。在嵌入式数据库中,当数据发生变化的时候,不论是对数据进行增加、删除,还是修改,都需要通知应用,通知其关心的数据发生了改变,以及具体改变的内容。触发器的作用就是提高系统的实时性,增强系统对外部数据的同步功能。
嵌入式数据库触发器的具体实现,以及模块之间的协作关系,数据的处理流程,如图1所示。其中,触发器注册模块,是用来注册触发器,提供有触发器注册结构,注册方式等;触发器检测模块,根据注册的表的触发器,按照一定的解析方式获取表记录,取出需要进行触发的表的记录内容;解析模块,取出需要进行检查的表内容之后,负责辨别表是否发生变化,将新数据与老数据按照某种算法进行对比检查;消息通知模块,如果发生变化就要使用消息分发模块,根据注册触发器寻找调用应用注册的存储过程,实现应用的消息分发。
目前,触发器可以检测到的最小的处理单元是字段,实现有记录和字段级的触发,当有注册的数据发生变化的时候,数据库就会触发通知应用。当注册的级别是记录级的时候,有一条记录发生变化,就会通知应用一次,这就是记录级触发。当注册的是字段级的时候,如果注册的字段中的一个字段发生变化,就会通知相应的应用,但是还是以一条记录为检查单元。如果表的记录条数很多,修改的对象又是针对表的,表的很多条记录都发生了变化,那么就会产生很多次的触发。
如果应用需要知道表的变化,首先需要注册一个记录或者字段级的触发器,那么它将会在每条记录发生变化的时候都触发,它只能确定表的一条记录发生了变化,不能确定在一次流程当中,一张表的所有记录变化完成的时间点,不能分清一张表的上一次与下一次操作。这样的触发器无法实现表级触发需求,所谓的表级触发,就是在一次操作中,当流程结束的时候,应用只需要知道它所关心的表是否变化,而且只需要在流程结束的时候通知它表变化了或者表操作完成了,应用接收到一次触发消息就可以了。
另外,数据库作为一个嵌入式系统的底层模块,在设计上要考虑效率问题,然而目前触发器的这种做法,在很大程度上就降低了数据库的效率。当一张表存在的记录比较多的时候,由于需要重复触发,会大量占用数据库进程的时间,降低数据库的实时操作性能。
发明内容
本发明要解决的技术问题是提供一种实现数据库触发器功能的方法及装置,用以解决现有技术中不能以表为单位通知应用模块数据库数据变化的问题。
为解决上述技术问题,一方面,本发明提供一种实现数据库触发器功能的方法,所述方法包括以下步骤:
注册表级触发器;
当有文件需要加入数据库时,获取该文件需要加载的表记录,并将获取的表记录与数据库中的表记录进行对比;
当获取的表记录发生变化时,数据库进行数据更新,根据注册的表级触发器,分发关于数据库中表发生变化的消息。
进一步,在注册表级触发器时,如果注册的触发时间点为在整个流程操作结束后,统一处理触发,则在整个流程操作结束之后,统一分发关于数据库中所涉及的表发生变化的消息。
进一步,在注册表级触发器时,如果注册的触发时间点为在文件结束操作结束后,统一处理触发,则在该文件操作结束之后,统一分发数据库中关于该文件涉及的表发生变化的消息。
进一步,在注册表级触发器时,如果注册的触发时间点为在表操作结束后,统一处理触发,则在该表操作结束之后,统一分发数据库中关于该表发生变化的消息。
进一步,当获取的表记录发生变化时,在数据库进行数据更新时,还包括以下步骤:
判断是否注册了字段级触发器,如果是,则触发字段级触发器;如果否,则进一步判断是否注册了记录级触发器,如果是,则触发记录级触发器,如果否,则根据注册的表级触发器,分发关于数据库中表发生变化的消息。
另一方面,本发明还提供一种实现数据库触发器功能的装置,所述装置包括:
注册单元,用于注册表级触发器;
对比单元,用于当有文件需要加入数据库时,获取该文件需要加载的表记录,并将获取的表记录与数据库中的表记录进行对比;
消息分发单元,用于当获取的表记录发生变化时,数据库进行数据更新,根据注册的表级触发器,分发关于数据库中表发生变化的消息。
进一步,在所述注册单元注册表级触发器时,如果注册的触发时间点为在整个流程操作结束后,统一处理触发,则所述消息分发单元在整个流程操作结束之后,统一分发关于数据库中所涉及的表发生变化的消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010202877.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:轨道自动伸缩装置
- 下一篇:用于处理晶片状物件的方法和装置