- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
触发器在数据库设计中的应用
摘要:触发器是一种特殊的存储过程。它的执行不是通过显性的调用,而是通过对相应表格数据实现插入、更新或删除时自动激活执行。在程序开发过程中,可以通过触发器对程序后台数据实施复杂的完整性约束。本文以本校示范校建设专题网站管理后台设计为例,阐述触发器的概念及其在网站功能实现中的定义及应用。
关键词:触发器;SQLSERVER;数据库
中图分类号:G712文献标识码:A文章编号:1005-1422(2016)04-0110-03
作者简介:陈舒心(1978-),广东省轻工职业技术学校讲师,硕士。研究方向:现代教育技术。(广东 广州/510300)
一、引言
随着网络技术的发展,网站浏览成为我们生活中不可或缺的一部分。一个制作精良的网站,除了要有精美的前台页面,必然也离不开后台数据的处理。在复杂的数据处理过程中,保证网站数据的完整性尤为重要。数据完整性是指存储在数据库中的数据正确无误并且相关数据具有一致性。通常在数据库设计阶段,可以通过创建表格的约束来实现数据完整性。譬如:通过主键约束或唯一键约束可以规范表格中某一字段的值不可重复;通过检查约束可以规范表格中某一字段的取值范围。但这些约束对不符合条件的数据只能做出单一拒绝执行的动作。如果需要实现较为复杂反馈或操作时,这些约束还是存在一定的局限性的。如果要求处理数据过程中,系统能自动根据用户对表格的操作做出不同的响应执行某些操作,那么,就可以使用触发器去实现。
二、触发器
触发器是一种特殊的存储过程,但它不像存储过程能直接通过函数名被调用。当受触发器保护的数据受到某些操作影响时,触发器会被数据库系统激活执行。因此,从激活操作的角度,触发器可分以下三种类型:插入触发器、更新触发器和删除触发器。无论是哪种操作,由于触发执行的时机不同,SQLServer提供了两种前缀类型不同的触发器定义:After触发器和Instead of触发器。
After触发器要求只执行插入、更新、删除中任一操作之后激活触发器执行。而Instead of触发器的激活时机刚好相反,它是在执行插入、更新、删除中任一操作之前就被激活。因此,在执行Instead of触发器时,系统所做的相关操作都是未被执行的。在SQLServer中,After触发器是默认触发器。
在每一个触发器被激活时,数据库系统都会自动创建两张数据表:Inserted表和Delete表。它们只保存在内存中,并不真实存在于数据库表对象中。两张表的结构与触发器作用的表格的结构相同。Instead表中存放的是系统执行INSERT 和UPDATE 语句时被影响的数据行的副本。在一个插入或更新事务处理中, 新添加的行会同时被添加到Inserted 表和触发器作用的数据表中。Deleted 表用于存储系统执行DELETE 和UPDATE 语句时被影响的数据行的副本。在执行DELETE或UPDATE 语句时,相关数据行从数据表中删除,同时被传送到Deleted 表中。Deleted 表和触发器作用的数据表一般不会出现内容完全相同的数据行。当触发器执行成功,数据操作语句执行完成后,整个事务过程才算完成。否则,这个事务要回滚。因此,触发器定义的条件不能与表格中已经定义的完整性约束相矛盾。当触发器完成后,Inserted表和Delete表会自动删除。
三、应用实例――基于T-SQL语言的触发器的设计
本校在示范校建设过程中,需要搭建示范校建设专题网站用以发布示范校项目建设过程的动态信息、通知公告及工作简报。同时展示项目建设的方案、资源、成果等。网站后台的主体功能是进行新闻信息与用户信息的管理。数据后台分别设计了数据表Admin(用户信息表)、News_operation(新闻操作日志)、News(新闻发布信息表)、News_Class(新闻类别表)、News_Picture(新闻图片信息表)等表格,用以存储网站上相关数据。
由于文章篇幅问题,不能将整个网站数据后台所做设计一一阐述,因此,在下文中以其中的三张有关联的数据表Admin、News、News_operation为例,阐述选择触发器实现完整性约束的原因及设计过程。具体表格结构如表1、表2、表3所示。
三张数据表间的关联如下:
1.Admin表与News表
在网站上的新闻公告,必须是通过注册账号登录成功后才能发布,发布者的名称要与登录的账号一致。因此,对于Admin表的UserName字段的值和News表的Author字段的值必须一致,这种一致性可以通过定义两张表格UserName字段和Author字段主外键约束实现。其中,UserName字段为主键,Admin表为主键表;Author字段为外
您可能关注的文档
最近下载
- 智慧水利工程基础知识单选题100道及答案.docx VIP
- 牙列拥挤的矫治.ppt VIP
- 《园林景观手绘技法表现》课件(共六章——下).pptx VIP
- 抖音新创作者规则学习考试抖音达人违规免处罚考试答案.docx VIP
- 赛力斯SF5使用说明书2(共2部分).pdf VIP
- Unit 2 Face Lesson 1(课件) 一年级英语上学期(人教新起点版).pptx VIP
- 《园林景观手绘技法表现》课件(共六章——上).pptx VIP
- 2025年国家执业药师考试《中药一》常用中药材彩图(第七版 高清图片) .pdf VIP
- 急性药物中毒的急救与护理.ppt VIP
- 海外项目工作总结8篇.docx VIP
原创力文档


文档评论(0)