APP下载

SQLite数据库触发器教学探究

2021-05-18

探索科学(学术版) 2021年3期
关键词:触发器门铃示例

涂 铁

安徽商贸职业技术学院 安徽 芜湖241000

引言

触发器是SQLite数据库教学中的重难点内容之一,初学者往往很难真正理解掌握其原理,本文从案例图解的角度去对教学方式进行探究,以帮助学生更好地使用触发器完成相关操作。

触发器作为一种特殊的回调函数,其与表紧密相连,可以理解成表的一个部分,当数据表中的数据进行了任何修改之后立即激活。其主要用来保证引用完整性或相应的业务规则,

SQLite 只支持FOR EACH ROW 触发器(行级触发器),不支持FOR EACH STATEMENT触发器(语句触发器),下文以实际案例来讲解如何剖析触发器的实际教学过程。

案例:学生成绩数据库中学生表与成绩表之间的触发关系研究(引用完整性)

图1 源表中的数据

1 触发器建立的位置

根据笔者多年的教学经验,很多学生无法正确的理解触发器是建立在学生表还是成绩表上。对于这种情况,一定要让学生理解正确的逻辑关系,也就是要强调主从关系。对于这两个表来说,引用完整性体现在Studentno列上,而Studentno列对于Student表来说首先它是唯一主键,其次在实际的业务关系中学号的修改通常只能学生表中完成.而Score表中的Studentno列中的值有重复值,如果在这个地方修改Studentno的值的话,只能修改特定的记录行中Studentno。其他记录行中Studentno不会发生变化。从上述角度出发,触发器只能建立在Student上,如果建立在Score表上则会导致逻辑上的错乱,也就是Student表是主表,而Score表是从表。

2 触发概念的理解

部分学生对于触发器中触发的概念一直难以理解。在教学过程中,一方面可以从触发这个词的中文定义来讲解。触发指因触动而激发起某种反应,对于表来说,在它上面建立触发器意味着当在表上进行相应的操作会引起某种连锁反应,这种连锁反应既可以体现在表自身也可以体现在其它表上。对于抽象概念的讲解,以现实生活中的可见实例更容易让学生理解。在讲解触发这个概念时,如果用按门铃---门铃响这个生活中的常见事件,学生能够很直观的感受到这种过程。按门铃这个动作就相当于我们的触发动作,而门铃响实际上就是连锁反应的结果。如果墙上或者门上没有装门铃,无论怎么按都不会有任何结果,这就相当于表上没有建立触发器,那么你对表的相关操作就不会有对应的连锁反应,即使装了门铃,你没按到按扭它也不会响,说明不是对表的所有操作都是触发行为。通过这种生活事件的代入能够更好的让学生理解特定知识点,这也是在各种教学中重点需要使用的手段。

3 NEW表OLD表

对于触发器来说,其作用机制实际上依赖于NEW表和OLD表这两个虚拟表,在实际教学过程中,学生对这两个表的作用以及其与原表之间的数据变换往往难以准确掌握,这时候如果用图解的方式更容易让学生理解他们的作用机制。示例触发器各表数据变化示例图:

图2 触发示意图

图3 触发数据传递示意图

从上图可见,NEW表、OLD表和Student表在表结构是完全一致的,从某种意义上来说这两个表就是按照Student表的结构作了两个临时复制品,用来存放变更的数据。OLD 表用于存储DELETE和UPDATE语句所影响的行的副本。NEW表用于存储INSERT和UPDATE语句所影响的行的副本。

同时,要给学生强调在数据库表中的UPDATE操作实际上是由的DELETE操作和INSERT操作组成的,也就是说一个更新操作实际上是先将某一行中的数据先删除掉再插入新的数据。对于大多数初学者来说,由于对这个过程不是很清楚,也就无法正确的理解NEW表和OLD表的作用。为了让学生能够准确的掌握各种触发器和NEW表以及OLD表的对应关系,还可以通过以下图示的形式来加深他们的记忆:

图4 各触发器与NEW表与OLD表对应关系示意图

4 实例演示

例:创建一个触发器,当更改某位同学的学号时,成绩表中的记录行能同步更新。

示例程序:

在讲解上述题目时首先要明确这是一个什么样的触发器,在这个地方要让学生仔细的阅读题目。如上所示,在题干中出现了更改和更新等字样,这意味着这是一个更新触发器。其次要让学生明确触发器是建立在Student表上,这样它们在创建触发器的时候就会明晰对应的SQL语句,同时要让学生注意创建触发器时只有BEGIN与END之间的SQL语句结尾处有分号,这也是它们在书写SQL语句经常容易犯的错误。

更改过后的表中的数据如下:

结论

本文从原理、结构、应用等方面对SQLite数据库中触发器的使用进行了探讨,并着重强调了在课堂教学中需要注意的问题。上述思路实际运用到安徽商贸职业技术学院移动数据库技术课程的教学过程中。实践表明,该方法可以帮助学生掌握更为轻松的掌握触发器的实现过程,提高了学生的学习效率。

图5 触发过后表中数据

猜你喜欢

触发器门铃示例
语文作文点评及升格示例
配置触发器有条件启动Windows服务
“口”字大挪移
触发器在酒店管理系统中的应用
飞吧,云宝
威尼斯门铃
几种常见触发器工作方式的讨论
锤子门铃
门铃“丁冬”
高考作文“踮起脚尖”升格示例