APP下载

探析触发器在大型数据库中的应用

2018-12-05何勰绯

中国信息化 2018年11期
关键词:机主数据表触发器

何勰绯

在对数据库进行设计的过程中,保证数据的完整性是尤为重要的,而触发器是有效解决复杂数据完整性的一种科学、合理方法。通过大量实践,本论文主要研究了四类触发器的典型应用,包括:不同数据库系统之间的转换(即系统集成)、对数据进行有效拆分、对数据进行有效合并、及数据级联更新,并科学设计出对应的模型。

一、前言

随着数据的日益复杂及计算机被广泛应用,相应的大型数据库也受到了更加深入、更加广泛的应用。而对于大型数据库来讲,采取何种措施来保障数据的完整性、安全性等则是数据库设计的一个特别重要的内容。尤其是处理复杂程度很高并且要求较强数据完整性,这便是现阶段数据库设计的一个难点。本论文的作者通过大量工作实践,明确发现触发器能够有效解决上述问题。

二、触发器的定义

在数据库(即SQL)中,触发器是一种特殊类型的存储过程。它能有效利用事件来触发并被准确、合理执行,在存储过程中能凭借相应的存储名字而被直接调用。倘若对某表执行如下操作(即:DELETE、UPDATE等)的时候,SQL Server会自动准确、严格执行触发器定义的相关SQL语句,以便更好的保证对数据的处理是满足SQL语句定义的规则。

三、触发器的典型应用

(一)不同数据库系统之间的转换

随着企业规模的扩展及业务的不断发展,其对信息化的需求也在不断发生着改变,要么是增加新的业务,要么是对企业内部的业务流程进行优化再造,要么是对数据的处理方式在发生着改变等,这些都需求企业增加新的业务模块或者是对现有系统进行优化设计或者是设计新的业务系统。尽管企业原有信息管理系统也考虑到将来的可扩展性,也相应的为系统预留了接口或字段,但其很可能出现不能最大化的满足新的业务需求。在这样的情况下,要把企业原有的信息管理系统全盘推翻也是不太现实的,更不可能快速新建一个统一的信息管理系统。针对此种情况,通常采取数据耦合。

而触发器的出现便为科学、合理解决上述问题提供了有效的方法,具体如下图1所示的系统集成模型示意图。从图中可以明显的看出,转换表不但可以建立在新的系统里面,也可以在原有系统里面进行建立。此外,有关转换表的设计是严格按照新系统的要求、格式等来进行设计的,是完全符合新系统设计格式,与此同时,转换表里面的数据也是来自原有数据库系统之中。

(二)数据的拆分

通常来讲,手机处理过程(如手机信息查询、手机挂失、登入等)都具备如下要求,若用户发送相应的短信,其就会借助移动网关自动准确无误的增加到数据库的表里面,而对编辑的短信内容也规定有格式要求。其中,手机查询格式为(LSGS#手机串号#手机型号#手机品牌#手机机主的姓名#机主联系地址);登入格式为(LSGA#手机串号#手机型号#手机品牌#手机机主姓名#机主联系地址);手机挂失的格式(LSGD#手机串号#手机型号#手机品牌#手机机主姓名#机主联系地址)。一旦出现新的记录,就会严格把手机短信的内容根据“#”的格式来恰当、准确统计,之后,再把相关的内容分别存储到其它数据库里面。倘若是LSGS,就把相应的内容存储到C表里;倘若是LSGA,就把相应的内容存储到A表里;倘若是LSGD,就把相应的内容存储到B表里。

倘若借助存储过程来对相关的程序进行编写,存在的不足之处就是数据不具备实时性。为了更好解决上述问题,可以借助触发器来对数据进行有效拆分,通过触发器来判定新写入的数据是存到A表、还是B表或C表。图2为数据拆分的模型示意图。

(三)数据的合并

在实际业务开发实践过程中,在对数据进行维护的过程中通常会遇到如下一些需求:某单位由若干个部门来有效组成,其期望每一个部门都能够单独维护各自部门的数据信息,同时,其又期望能够得到本单位的所有汇总数据信息(即把单位不同部门的数据进行集中汇总)。比如:某工厂拥有多个生产车间,但工厂上级领导希望看到的是各车间的产量汇总;某单位拥有若干个销售部门,但是,公司上层期望得到的数据是各销售部门的销量汇总数据;某公司拥有多个财务人员,其都具备输入财务数据的权限,但公司领导期望看到的是全部财务数据信息等。此时,若公司为每一个部门都建立相应的表,而某些数据库对instead of触发器是不支持的,这样的情况也很难得到部门间集中起来的汇总数据;另外,若公司全部部门都共享同一张数据表,尽管这样能够得到公司所需求的汇总数据信息,但由于公司每一个部门对表都拥有修改权限,也需要各自部门去维护自己的数据信息等,所以,很难有效控制数据的安全性、可靠性等。

通过合理应用触发器,便能有效解决上述问题。通过对公司的每一个部门设置结构相同的数据表,并且,各自部门仅拥有对自己部门数据表进行修改的权限;此外,再针对公司汇总数据也相应建立一个表,并准确在公司每一个部门的数据表上搭建触发器,这样,只要某部门的数据出现修改或更新,而汇总表里面对应的数据也会做出相应的修改或更新。涉及到的数据合并模型示意图如图3所示。

(四)数据的级联更新

在对数据库进行设计的过程中,一旦设置外键也就相应的搭建了不同表间的主从关系。而在实际业务执行过程中,若主表的外键出现记录删除或被修改的情况,那么,从表也务必对相应的数据进行更改。由于大型数据库存储的数据复杂且被许多人所共享,它是不能够像单机数据库系统采用设置级联来自动完成的。在这样的情况下,若要实现上述功能,就需借助触发器来有效、合理完成。具体实现过程如图4所示的数据级联更新模型示意图。通过触发器来进行科学判定,倘若要删除相关的记录,那么,就直接对从表里面的记录进行删除;倘若是更改记录,需先判定是否对外键进行更改,若是需对外键进行更改,那么,从表里面相應的记录进行更改就行。

四、结束语

通过上述四个触发器的典型应用案例可以明显看出,面对大型数据库及对数据库不同表之间的复杂逻辑关系进行处理的时候,恰当的使用触发器能使数据库的设计变得更加简洁,而对于复杂的表与表之间的处理也将变得更高效。此外,通过触发器的机制能够明显看出,一旦操作建立有触发器的数据表,便会相应对数据库里面对应的程序进行触发。对于用户经常或者高频率使用的表来讲,若使用过长的触发器或者使用过多的触发器,这对提升数据库的效率是显得不利的。因此,要结合实际需求来恰当、科学使用触发器,与此同时,还需进一步更多采用其它存储过程。

猜你喜欢

机主数据表触发器
图说
配置触发器有条件启动Windows服务
基于Multisim14.0的双D触发器应用与仿真
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
触发器在酒店管理系统中的应用
你的智能手机将比你更懂你!
英航母出洋相:被无人机“突袭”
基于电路原理的触发器波形分析