一种实现数据库触发器功能的方法及装置制造方法及图纸

技术编号:6973058 阅读:220 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种实现数据库触发器功能的方法及装置,所述方法包括以下步骤:注册表级触发器;当有文件需要加入数据库时,获取该文件需要加载的表记录,并将获取的表记录与数据库中的表记录进行对比;当获取的表记录发生变化时,数据库进行数据更新,根据注册的表级触发器,分发关于数据库中表发生变化的消息。本发明专利技术实现了以表为单位触发,通知应用模块数据库数据发生变化的功能。采用本发明专利技术的方法,丰富了数据库触发器功能,满足了表记触发的应用要求,节省了数据库处理触发器的时间,提高了前台的数据实时同步的效率。

【技术实现步骤摘要】

本专利技术涉及通讯
,特别是涉及一种实现数据库触发器功能的方法及装置
技术介绍
数据库中的触发器,是一种提高嵌入式系统执行效率的存储过程。在嵌入式数据库中,当数据发生变化的时候,不论是对数据进行增加、删除,还是修改,都需要通知应用, 通知其关心的数据发生了改变,以及具体改变的内容。触发器的作用就是提高系统的实时性,增强系统对外部数据的同步功能。嵌入式数据库触发器的具体实现,以及模块之间的协作关系,数据的处理流程,如图1所示。其中,触发器注册模块,是用来注册触发器,提供有触发器注册结构,注册方式等;触发器检测模块,根据注册的表的触发器,按照一定的解析方式获取表记录,取出需要进行触发的表的记录内容;解析模块,取出需要进行检查的表内容之后,负责辨别表是否发生变化,将新数据与老数据按照某种算法进行对比检查;消息通知模块,如果发生变化就要使用消息分发模块,根据注册触发器寻找调用应用注册的存储过程,实现应用的消息分发。目前,触发器可以检测到的最小的处理单元是字段,实现有记录和字段级的触发, 当有注册的数据发生变化的时候,数据库就会触发通知应用。当注册的级别是记录级的时候,有一条记录发生变化,就会通知应用一次,这就是记录级触发。当注册的是字段级的时候,如果注册的字段中的一个字段发生变化,就会通知相应的应用,但是还是以一条记录为检查单元。如果表的记录条数很多,修改的对象又是针对表的,表的很多条记录都发生了变化,那么就会产生很多次的触发。如果应用需要知道表的变化,首先需要注册一个记录或者字段级的触发器,那么它将会在每条记录发生变化的时候都触发,它只能确定表的一条记录发生了变化,不能确定在一次流程当中,一张表的所有记录变化完成的时间点,不能分清一张表的上一次与下一次操作。这样的触发器无法实现表级触发需求,所谓的表级触发,就是在一次操作中,当流程结束的时候,应用只需要知道它所关心的表是否变化,而且只需要在流程结束的时候通知它表变化了或者表操作完成了,应用接收到一次触发消息就可以了。另外,数据库作为一个嵌入式系统的底层模块,在设计上要考虑效率问题,然而目前触发器的这种做法,在很大程度上就降低了数据库的效率。当一张表存在的记录比较多的时候,由于需要重复触发,会大量占用数据库进程的时间,降低数据库的实时操作性能。
技术实现思路
本专利技术要解决的技术问题是提供一种实现数据库触发器功能的方法及装置,用以解决现有技术中不能以表为单位通知应用模块数据库数据变化的问题。为解决上述技术问题,一方面,本专利技术提供一种实现数据库触发器功能的方法,所述方法包括以下步骤4注册表级触发器;当有文件需要加入数据库时,获取该文件需要加载的表记录,并将获取的表记录与数据库中的表记录进行对比;当获取的表记录发生变化时,数据库进行数据更新,根据注册的表级触发器,分发关于数据库中表发生变化的消息。进一步,在注册表级触发器时,如果注册的触发时间点为在整个流程操作结束后, 统一处理触发,则在整个流程操作结束之后,统一分发关于数据库中所涉及的表发生变化的消息。进一步,在注册表级触发器时,如果注册的触发时间点为在文件结束操作结束后, 统一处理触发,则在该文件操作结束之后,统一分发数据库中关于该文件涉及的表发生变化的消息。进一步,在注册表级触发器时,如果注册的触发时间点为在表操作结束后,统一处理触发,则在该表操作结束之后,统一分发数据库中关于该表发生变化的消息。进一步,当获取的表记录发生变化时,在数据库进行数据更新时,还包括以下步骤判断是否注册了字段级触发器,如果是,则触发字段级触发器;如果否,则进一步判断是否注册了记录级触发器,如果是,则触发记录级触发器,如果否,则根据注册的表级触发器,分发关于数据库中表发生变化的消息。另一方面,本专利技术还提供一种实现数据库触发器功能的装置,所述装置包括注册单元,用于注册表级触发器;对比单元,用于当有文件需要加入数据库时,获取该文件需要加载的表记录,并将获取的表记录与数据库中的表记录进行对比;消息分发单元,用于当获取的表记录发生变化时,数据库进行数据更新,根据注册的表级触发器,分发关于数据库中表发生变化的消息。进一步,在所述注册单元注册表级触发器时,如果注册的触发时间点为在整个流程操作结束后,统一处理触发,则所述消息分发单元在整个流程操作结束之后,统一分发关于数据库中所涉及的表发生变化的消息。进一步,在所述注册单元注册表级触发器时,如果注册的触发时间点为在文件结束操作结束后,统一处理触发,则所述消息分发单元在该文件操作结束之后,统一分发数据库中关于该文件所涉及的表发生变化的消息。进一步,在所述注册单元注册表级触发器时,如果注册的触发时间点为在表操作结束后,统一处理触发,则所述消息分发单元在该表操作结束之后,统一分发数据库中关于该表发生变化的消息。进一步,所述装置还包括判断处理单元,用于当获取的表记录发生变化时,在数据库数据更新时,判断是否注册了字段级触发器,如果是,则触发字段级触发器;如果否,则进一步判断是否注册了记录级触发器,如果是,则触发记录级触发器,如果否,则根据注册的表级触发器,由所述消息分发单元分发关于数据库中表发生变化的消息。本专利技术有益效果如下本专利技术实现了以表为单位触发,通知应用模块数据库数据发生变化的功能。采用本专利技术的方法,丰富了数据库触发器功能,满足了表记触发的应用要求,节省了数据库处理触发器的时间,提高了前台的数据实时同步的效率。附图说明图1是现有技术中触发器单元结构示意图;图2是本专利技术实施例中一种实现数据库触发器功能的方法的流程图;图3是本专利技术实施例中再一种实现数据库触发器功能的方法的流程图;图4是本专利技术实施例中一种实现数据库触发器功能的方法中文件解析步骤的流程图;图5是本专利技术实施例中一种实现数据库触发器功能的方法中多类型触发的处理流程图;图6是本专利技术实施例中一种实现数据库触发器功能的方法中表级触发与其它类型触发器共存时的处理流程图;图7是本专利技术实施例中一种实现数据库触发器功能的装置的结构示意图。 具体实施例方式为了解决现有技术中不能以表为单位通知应用模块数据库数据变化的问题,本专利技术提供了一种实现数据库触发器功能的方法及装置,以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。如图2所示,本专利技术实施例涉及一种实现数据库触发器功能的方法,包括以下步骤步骤S101,注册表级触发器。应用注册一个表级触发器,注册触发器包含后续消息触发需要通知的具体应用标识,以及需要触发的表标识等。注册触发器必须包括的结构成员如下1)触发类型表级触发;2)触发对象3)表标识,用来表示需要触发通知的具体的表,可以唯一的表示一张表;4)触发时间点由于数据库中的一些表需要用外部数据整体替换,或者表中的一些记录需要部分替换完成更新。外部文件可以是一个文件,也可以是多个文件,文件中可以包含多张表或者一张表。因此,在触发时间点上,就存在三种情况即每张表更新完触发, 每个文件更新完触发,以及所有文件更新完触发(即整个流程操作结束后触发)。因此, 在注册表级触发器时,需要注册具体的触发时间点,即注册为以下三种情况中的一种A),Process_Unit 在整个流程(可能是多个文件集本文档来自技高网
...

【技术保护点】
1.一种实现数据库触发器功能的方法,其特征在于,所述方法包括以下步骤:注册表级触发器;当有文件需要加入数据库时,获取该文件需要加载的表记录,并将获取的表记录与数据库中的表记录进行对比;当获取的表记录发生变化时,数据库进行数据更新,根据注册的表级触发器,分发关于数据库中表发生变化的消息。

【技术特征摘要】

【专利技术属性】
技术研发人员:谭瑾博
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1