欢迎来到天天文库
浏览记录
ID:45033693
大小:1.21 MB
页数:67页
时间:2019-11-08
《Ch06-事务、锁、索引与数据完整性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、网络数据库开发技术事务、锁、索引与数据完整性张蕾zhanglei@ujn.edu.cn事务事务事务的概念事务是并发控制的基本单位。所谓事务,就是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被清除。3事务的特性原子性:对数据的修改,要么都完成,要么都取消。一致性:事务完成时,保持数据的一致性、完整性。隔离性:并行事务之间相互隔离。持久性:事务完成后,对数据所做的所
2、有修改就保存到数据库中。4SQLServer以下列事务模式运行。(1)自动提交事务每条单独的语句都是一个事务。(2)显式事务每个事务均以BEGINTRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束。(3)隐式事务在前一个事务完成时新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK语句显式完成。(4)批处理级事务只能应用于多个活动结果集(MARS),在MARS会话中启动的Transact-SQL显式或隐式事务变为批处理级事务。事务5事务的使用事务控制语句BEGINTRAN
3、TRANSAC
4、TION[tran_name]:标识一个用户定义的事务的开始。tran_name为事务的名字COMMITTRAN[tran_name]:表示提交事务中的一切操作,结束一个用户定义的事务。使得对数据库的改变生效。ROLLBACKTRAN[tran_name
5、save_name]:回退一个事务到事务的开头或一个保存点。表示要撤消该事务已做的操作,回滚到事务开始前或保存点前的状态。SAVETRANsave_name:在事务中设置一个保存点。它可以使一个事务内的部分操作回退。6@@rowcount上一语句影响的行数;@@erro
6、r检测或使用@@error时上一条语句执行时的错误代码。@@error=0表示执行成功;@@trancount当前连接的活动事务数事务中使用的全局变量7事务控制语句的使用方法:begintransaction……/*A组语句序列*/savetransaction保存点1……/*B组语句序列*/if@@error<>0rollbacktransaction保存点1/*回滚到保存点1*/elsecommittransaction/*提交A组语句,同时如果未回滚B组语句则提交B组语句*/事务控制语句8[例]使用事务向表book中插入
7、数据。USEjwglBEGINTRANtran_examINSERTINTObook(book_id,book_name,publish_company)VALUES('dep04_s006_01‘,'VFP程序设计‘,'南京大学出版社‘)SAVETRANint_pointINSERTINTObook(book_id,book_name,publish_company)VALUES('dep04_s006_02‘,'VFP实验指导书‘,'东南大学出版社‘)事务使用示例INSERTINTObook(book_id,book_na
8、me)VALUES('dep04_s006_03‘,'VFP课程设计指导书')IF@@error<>0ROLLBACKTRANint_pointelseCOMMITTRANtran_examGO9事务中不可使用的语句(不能够撤消)创建数据库:createdatabase;修改数据库:alterdatabase;删除数据库:dropdatabase;备份数据库:dumpdatabase、backupdatabase;还原数据库:loaddatabase、restoredatabase;日志备份:dumptransaction、b
9、ackuplog;日志还原:loadtransaction、restorelog;配置:reconfigure;磁盘初始化:diskinit;统计:updatestatistics;显示或设置数据库选项:sp_dboption。10锁锁锁的概念锁定是MicrosoftSQLServerDatabaseEngine用来同步多个用户同时对同一个数据块的访问的一种机制。锁的类型MicrosoftSQLServerDatabaseEngine使用不同的锁模式锁定资源,这些锁模式确定了并发事务访问资源的方式。(1)共享锁(S锁)共享允许
10、并发事务读取(SELECT)一个资源。资源上存在共享锁时,任何其它事务都不能修改数据。一旦已经读取数据便立即释放资源上的共享锁。(2)排它锁(X锁)排它锁可以防止并发事务对资源进行访问。其它事务不能读取或修改排它(X)锁锁定的数据。(3)更新锁(U锁)它可以防止常见的死锁。更
此文档下载收益归作者所有