Mssq触发器 sql server数据库教学中的难点解析
发布时间:2022-10-06 15:45:18 所属栏目:MsSql教程 来源:
导读: SQLSERVER数据库教学中的难点解析要:sqlserver数据库的安全性通过创建登录帐号、创建用户、对象授权带实现,要想能对sqlserver数据库中数据入)、删(删除)、改(更新)、查(查询),必须经过这三关。sqlserv
|
SQLSERVER数据库教学中的难点解析要:sqlserver数据库的安全性通过创建登录帐号、创建用户、对象授权带实现,要想能对sqlserver数据库中数据入)、删(删除)、改(更新)、查(查询),必须经过这三关。sqlserver数据库中的update、insert、deltete触发器实质就是在特定条件下自动执行的存储过程。触发器的级联可导致骨牌效应。关键词:sqlserver;登录帐号;用户;触发器sqlserver数据库在今天已经广泛使用,高校数据库教学中也从当的vfox,acsses等改为讲授sqlserver。sqlserver数据库是一门操作性、实用性很强的课程,一些概念性的问题会困扰学生,直接影响到学生的学习兴趣和老师的教学效果。在教学过程中我们可以采用一些形象的比喻,结合应当的操作来帮助学生克服这些困难,理解难点。我在sqlserver数据库的多年讲授过程中,感觉到学生对sqlserver数据库的安全性及触发器是难点,我在教学中采用一些形象化的比喻使这些晦涩的概念深入浅出,收到了较好的教学效果。一、sqlserver数据库的安全性数据库的安全性是指保护数据库以防止不合法的使用而造成的数据泄露、更改或破坏。 sqlserver数据库是一个非常安全数据库,由于客户端如果想对数据库里的数据进行操作(select、insert、delete等),就必须经历登录验证、数据库验证、对象权限三道门检查。在登录验证中就会涉及登录帐号和用户关系。这是学生们难理解的概念之一。我们用系统安装时自带的sa(拥有数据库所有操作权限的超级用户)登录到某sqlserver服务器后,在该数据库安全节点上就可创建登录帐号,然后用该登录帐号又可创建用户。同一个登录帐号可在不同的数据库下拥有多个不同的用户。登录帐号名在整个sqlserver数据系统中是不可同名的,每个登录帐号都有自己的密码,以确保数据的安全性。实际上,在整个sqlserver数据系统中,你拥有了一个有效的登录帐号和密码,并不代表你就能访问到某数据库了,更谈不能访问数据库中的数据表。用有效的登录帐号和密码只能联接到某个sqlserver服务器,还只是通过了三道门的第一关。2.第二关,有效的用户任何一个数据库中可以建立多个不同名用户,但在不同数据库中,可以出现同名的用户,但他们不是同一个用户,因为他们分属于a、等不同数据库。这就好比清华大学的李四和北京大学的李四不是同一个人一样。 每个用户必须指定一个有效的登录帐号,才能进一步访问数据库。这就好比一场里应外合的破城之战,要攻破某个数据库堡垒,“登录帐号”到达城门口后,需要“用户”(内应)打开城门。实际上,sqlserver系统中,每个登录帐号是委托一个用户去管理一个特定数据库有了登录帐号和用户,还不能对数据库为所欲为,要想接触到数据,还要过第三关,那就是对象授权。这又好比上面里应外合后,想要得到宝藏,还要找到宝库的钥匙。数据表是数据的最终存放地,对象授权是通过对某个用户针对不同的数据表授予不同权限,以此保障数据的安全性。触发器也是sqlserver教学中的一个难点。触发器地灵活运用将使程序变得更加简洁。触发器是表进行插入、更新或删除操作时自动执行的存储过程。它是一种高级约束Mssq触发器,可以执行复杂的sql语句,但它与一般存储过程有所不同,它主要是通过特定的事件进行触发而被执行的,普通的存储过程是通过直接调用存储过程名而被执行的。当对某一数据库表进行update、insert、deltete操作时,sqlserver会自动执行触发器定义的sql语句。insert触发器是插入数据时触发,update触发器是在更新数据时触发,deltet触发器是删除数据时触发,触发后会自动执行触发器定的sql语句。 这三类触发器上定义的sql语句与触发器型无关,在insert触发器上可以对数据查询、插入、更新或删除操作,这些操作既可以是对触发器所在数据表的操作,也可以是对触发器以外的数据表进行操作。触发器级联运行,是学生们编程中不好把握的,它需要清晰路。比如,在a表上定义了deltete触发器,其操作是删除b所有数据,在b表上也定义了一个deltete触发器,其操作是删除c的所有数据,这样就形成了触发器级联。一旦在a表上进行数据删除操作,它会触发b表上删除操作,b表上删除操作又会触发c的删除操作,最终将a、b、c三个表中的数据删除掉了,它就像一个骨牌效应。这好比要炸毁敌人的三座碉堡,分别在三座碉堡附近安置好炸药,第三座碉堡的引爆器设置在第二座碉堡内,第二座碉堡的引爆器又设置在第一座碉堡内,当第一座碉堡炸毁时引爆了第二座碉堡,第二座碉堡炸毁时又引爆了第三座碉堡。只要第一座碉堡被炸毁,就不用去管后面两座碉堡,这会被自动炸毁。虽然数据的安全性难以理解,但将数据的安全性比喻成过三关,只有闯关都成功,才能让用户最终访问到数据表中的数据,对数据表进行查询、插入、更新或删除操作。对触发器而言,insert触发器、update触发器、deltete触发器只能分别对应insert、update、deltete语句起作用,好比不同类型的地雷具有不同类型的引爆引擎一样。 (编辑:航空爱好网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

