- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL Sever2005中利用触发器实现数据库完整性教学案例设计
SQL Sever2005中利用触发器实现数据库完整性教学案例设计 摘要:本文详细设计了SQL Sever 2005中利用触发器实现数据库完整性的教学案例,通过案例驱动的方式完成了数据库完整性的教学任务。实践表明,此教学方式能够弥补传统教学的不足,激发每位学生的学习兴趣和学习潜能,锻炼学生良好的职业规范道德、团队分工协作等素质,大大缩短教学情景与实际软件开发的差距,增强以实践能力培养为目标的应用型人才培养新模式,从而实现应用型人才的培养目标。 关键词:案例设计;教学改革;数据库完整性 中图分类号:TP311.138 文献标识码:A 文章编号:1007-9599 (2012) 19-0000-02 数据库的完整性是指防止不合语义的即不正确、不相容的数据进入数据库[1]。绝大部分RDBMS都支持使用触发器实现数据库的完整性。触发器(Trigger)是保证数据完整性的一种方法,是用户定义在基本表上的一类由事件驱??的特殊过程。它与表格紧密相连,可以看做是表格定义的一部分,当用户修改指定表中的数据时,触发器将会自动执行[2]。触发器基于一个表创建,但是可以针对多个表进行操作,所以触发器常被用来实现复杂的商业规则。 1 案例描述 在银行的自动取款机系统中,有两个数据表:账户信息表(Bank)和交易信息表(Transinfo)。账户信息表(bank)中记录每个账户的账号cardID、账户的户主姓名customerName、该账户上目前的余额currentMoney。交易信息表(transinfo)中记录每一笔交易的时间transDate、交易的卡号cardID、交易的类型transType、交易的金额transMoney。 提出问题:现在余萧萧使用自动取款机系统取200元钱,如何编写程序使该自动取款机系统自动修改余萧萧的余额。 2 案例分析 当客户进行一项存款或取款操作时,会在交易信息表(Transinfo)上形成一个插入操作。可以利用这个插入操作的数据实现在账户信息表(Bank)中自动修改余萧萧的余额。 3 案例实现 根据案例要求,引导学生进行讨论并完成触发器的设计。具体参考操作步骤如下: Step 1:根据案例要求和以前的知识积累,学生完成数据库、数据表的创建。 Step 2:根据案例描述,在交易信息表(Transinfo)上创建一个Insert类型的触发器trig_transInfo。代码如下: Step 3:可以通过在交易信息表(Transinfo)中插入一条记录模拟用户的一次取款操作来查看触发器是否被激发执行了。现执行SQL语句:Insert Into TRANSINFO (cardID, transType, transMoney) values (,’支取’,200),可以在结果窗格中,看到消息“TRANSINFO中cardID记录被修改了”。 Step 4:刷新账户信息表(bank)并查询该表中的数据,看到余萧萧的账户余额被修改成了800。 4 课堂总结 4.1 对触发器的理解。触发器是在对表进行插入、更新或删除操作时自动执行的存储过程,它是被定义在特定的表上,与某个表相关,不能直接调用,自动触发执行的一个事务[3]。4.2 触发器的分类。按触发器激活的时机不同,分为:后触发器:只有执行了insert、delete、update操作后,才激发的触发器。替代触发器:不执行命令所定义的insert、delete、update操作,而仅执行触发器中定义的代码。按引起触发的事件不同,分为:insert触发器:当被创建触发器的表上有Insert操作时该类型的触发器被触发并自动在内存里创建Inserted表,该表中保存了Insert操作时的数据副本。delete触发器:当被创建触发器的表上有Delete操作时该类型的触发器被触发并自动在内存里创建Deleted表,该表中保存了Delete操作时的数据副本。update触发器:当被创建触发器的表上有Updated操作时该类型的触发器被触发并自动在内存里创建Inserted表和Deleted表,Deleted表中保存了修改之前的数据副本,Inserted表中保存了修改后的数据副本。4.3 Inserted表和Deleted表的作用。触发器代码最强大的功能之一是能够比较纪录的新旧版本,其中最关键的是Inserted和Deleted这两个临时表。触发器被触发时,系统自动在内存中创建Deleted表或Inserted表,这两个表都是只读的,并且不允许修改,触发器执行完成后,这两个表都自动被删除。Inserted表临时保存了插入或更新后的记录行,可以从In
文档评论(0)