数据库的访问权限控制.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库的访问权限控制.ppt

第5章 数据库管理与保护 数据库管理与保护就是数据库管理系统对数据库提供一些监控和管理功能,以保证整个系统的正常工作和实现异常情况下的数据保护,防止数据意外丢失或产生不一致数据,限制数据的非法访问和使用等。 数据库管理系统以事务为基础对数据库提供了管理和保护技术主要包括: 并发控制 数据库恢复 完整性控制 安全性控制 【例5.1】修改School的Student表,将所有女生是否住校LiveInDom设置为1。 从用户的观点来看,对数据库的某些操作应该是一个整体,不能分割。 5.1使用事务保持数据完整性 5.1.1事务概念 这条语句影响表中多行数据,必须保证对表中所有符合条件的数据要么都修改,要么都不修改,否则数据库中的数据将处于不一致状态。 UPDATE Student SET LiveInDom=1 WHERE Sex=‘女’ 【例5.2】完成一个学生选课的操作(学号为“1103”的学生选课号为“106”的 课程),该操作包括两步:将学号(StudentCode)、课程号(CourseCode)添加到Grade表;将Course表中相应课程的剩余名额(LeftSeats)减1。 学生选课操作需要两条SQL语句完成: INSERT INTO Grade(StudentCode,CourseCode) VALUES(1103, 106) UPDATE Course SET LeftSeats=LeftSeats-1 WHERE CourseCode=106‘ 这两条SQL语句如果其中有一条没有正确执行,那么数据库中的信息就会不一致。所以必须保证这两条SQL语句的整体性。 为解决例5.1、例5.2类似的问题,数据库管理系统引入了事务机制。 事务(Transaction)是一个包含了一组数据库操作命令的序列,所有的命令作为一个整体,一起向系统提交或撤销,操作命令要么都执行,要么都不执行。 因此,事务是一个不可分割的逻辑工作单元,是数据库运行的最小逻辑工作单位。 1.事务的定义 在关系数据库中,一个事务可以是一条SQL语句,也可是一组SQL语句或整个程序。 事务和程序是两个不同的概念。一般来讲,事务使用专门的命令来定义,它蕴含在程序当中,一个程序中可包含多个事务。 2.事务的特性(ACID特性) (2)事务的一致性(Consistency) 指事务在完成时,必须使所有的数据都保持一致状态,仍然满足相关约束规则,以保持所有数据的完整性。 (1)事务的原子性(Atomic) 组成一个事务的多个数据库操作是一个不可分隔的单元,只有所有的操作执行成功,整个事务才被提交。如任何一个操作失败,已经执行的操作都必须撤销,让数据库返回到该事务执行前的初始状态。 (3)事务的隔离性(Isolation) 指当有多个事务并发执行时,彼此互不干扰,与它们先后单独执行时的结果一样。 (4)事务的持久性(Durabiliy) 指一个事务完成之后,它对于数据库的所有修改永久性有效,即使出现系统故障造成数据错误或丢失也能恢复。 事务的ACID原则保证了一个事务或者提交后成功执行,或者提交后失败回滚,二者必居其一,事务对数据的修改具有可恢复性,即当事务失败时,它对数据的修改都会恢复到该事务执行前的状态。如果使用批处理,则有可能有的语句被执行,而另外一些语句没有被执行的情况,从而会造成数据的不一致,使用事务可以避免这种情况的发生。 5.1.2事务的应用 数据库管理系统可按照系统默认的规定自动划分事务并强制管理,一般一条语句就是一个事务。 用户可根据数据处理需要自己定义事务。 例5.2的操作可定义为一个事务。 例5.1中的UPDATE语句,系统自动通过事务保证该语句正确完成对所有女生的住校与否字段LiveInDorm的值都设置为1。 在定义事务时要注意所定义的数据修改顺序要与业务规则一致,这样,通过数据库管理系统强制该事务执行后,就可以保持数据的一致性。 在SQL语言中,事务的定义用以下命令完成: ① 开始事务。标识一个事务的开始。 BEGIN TRANSACTION ② 提交事务。如果所有的操作都已完成,向系统提交事务来结束事务。 COMMIT TRANSACTION ③ 取消事务。也称为回滚事务,即结束当前事务,并放弃自事务开始以来的所有操作。 ROLLBACK TRANSACTION 事务提交之后,所有的修改将会生效,在没有提交之前,所有的修改都可以通过回滚事务来撤销。即只有执行到COMMIT TRANSACTION命令时,事务中对数据库的更新才算确认。 【例5.3】利用事务机制完成例5.2的学生选课操作。 BEGIN TRANSACTION /*开始一个事务*/ /*插入选课信息到Grade表中*/ INSERT I

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档