
国家品牌国际标准国家信息化计算机教育认证 www.ceac.org.cn 数据库原理与SQL Server 第9章保证数据完整性 高等职业教育电子信息类专业 “双证课程”培养方案配套演示文稿 中国高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 国家信息化计算机教育认证 高等职业教育电子信息类专业 “双证课程”培养方案配套演示文稿 中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 数据库原理与SQL Server 第9章 保证数据完整性

www.ceac.org.cn 第9章 保证数据完整性 ●9.1构造Transact-SQL执行单元 一批处理 ·9.2保证数据完整性一事务 ·9.3维护数据一致性一锁 ●9.4处理错误一@@ERROR 实训错误的捕获和处理 中国高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 第9章 保证数据完整性 ⚫ 9.1 构造Transact-SQL执行单元 —批处理 ⚫ 9.2 保证数据完整性—事务 ⚫ 9.3 维护数据一致性—锁 ⚫ 9.4 处理错误— @@ERROR 实训 错误的捕获和处理

www.ceac.org.cn 9.1构造Transact-.SQL执行单元 一批处理 批处理是一组SQL语句的集合,一个批处理以批结束符 GO而终结。批处理中的所有语句被一次提交给SQL Server 2000,SQL Server2000将这些语句编译为一个执行单元, 如果出现编译错误,SQL Server2000将取消整个批处理内 所有语句的执行。 例9-1在数据库student中建立一个名为s_viewl的视图. 脚本: 中国高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 9.1 构造Transact-SQL执行单元 —批处理 批处理是一组SQL语句的集合,一个批处理以批结束符 GO而终结。批处理中的所有语句被一次提交给SQL Server 2000,SQL Server 2000将这些语句编译为一个执行单元, 如果出现编译错误,SQL Server 2000将取消整个批处理内 所有语句的执行。 例9-1 在数据库student中建立一个名为s_view的视图。 脚本:

www.ceac.org.cn 9.2保证数据完整性一事务 问题:如果在修改了数据库中的数据之后又立即意识到不 该做这些修改,应该怎样处理的呢? 最简单的办法,就是重新输入这些数据。但是,如果已经 修改了多个表中的一些数据时,想要重新输入,就比较困难 了。 另一种方法是自动地将数据恢复到它们修改之前的原始状 态。为了解决这样的问题,SQL Server2000提供了事务和 锁来保证数据的一致性和完整性。 中国高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 9.2 保证数据完整性—事务 问题:如果在修改了数据库中的数据之后又立即意识到不 该做这些修改,应该怎样处理的呢? 最简单的办法,就是重新输入这些数据。但是,如果已经 修改了多个表中的一些数据时,想要重新输入,就比较困难 了。 另一种方法是自动地将数据恢复到它们修改之前的原始状 态。为了解决这样的问题,SQL Server 2000提供了事务和 锁来保证数据的一致性和完整性

www.ceac.org.cn 9.2.1事务的属性 事务是构成单一逻辑单元的操作的集合。 事务必须满足4个要求,称为ACD属性,即原 子性、一致性、隔离性和持久性。 中国高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 9.2.1 事务的属性 事务是构成单一逻辑单元的操作的集合。 事务必须满足4个要求,称为ACID属性,即原 子性、一致性、隔离性和持久性

www.ceac.org.cn 1.原子性 如果事务成功,SQL Server2000确保在事务 中所有的数据修改作为一个整体。如果事务没有 成功,就不会有任何修改发生。也就是说,SQL Server2000能确保事务的原子性。事务要想取 得成功,事务中的每一个操作(语句)都必须成 功。如果其中的任何一个操作失败了,则整个事 务就会失败,而且自事务开始所做的任何修改都 会被撤销。 中国高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 1. 原子性 如果事务成功,SQL Server 2000确保在事务 中所有的数据修改作为一个整体。如果事务没有 成功,就不会有任何修改发生。也就是说,SQL Server 2000能确保事务的原子性。事务要想取 得成功,事务中的每一个操作(语句)都必须成 功。如果其中的任何一个操作失败了,则整个事 务就会失败,而且自事务开始所做的任何修改都 会被撤销

www.ceac.org.cn 2.一致性 SQL Server2000能保证事务的一致性。一致性 意味着全部数据都保持在一致的状态。在一个事务 开始之前,数据库处于一致的状态,当事务结束后, 不管它是成功还是失败,数据库还应该处于一致的 状态。 中国高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 2. 一致性 SQL Server 2000能保证事务的一致性。一致性 意味着全部数据都保持在一致的状态。在一个事务 开始之前,数据库处于一致的状态,当事务结束后, 不管它是成功还是失败,数据库还应该处于一致的 状态

www.ceac.org.cn 3.隔离性 如果有两个或者多个事务,这些事务必须按照一 定的顺序先后执行,而不能在执行一个事务的同时, 又穿插执行另外的一个事务,也就是说,多事务并 发执行时,应保证执行的结果是正确的,如同单用 户环境一样。这可以通过锁来实现。 中国高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 3. 隔离性 如果有两个或者多个事务,这些事务必须按照一 定的顺序先后执行,而不能在执行一个事务的同时, 又穿插执行另外的一个事务,也就是说,多事务并 发执行时,应保证执行的结果是正确的,如同单用 户环境一样。这可以通过锁来实现

www.ceac.org.cn 4.永久性 事务一旦完成,它对数据库所进行的修改将被 永久保存,即使以后系统发生故障,也应该保留 这个事务执行的痕迹。 SQL Server2000的事务分为显式事务、隐式 事务、自动事务和分布式事务。 中国高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 4. 永久性 事务一旦完成,它对数据库所进行的修改将被 永久保存,即使以后系统发生故障,也应该保留 这个事务执行的痕迹。 SQL Server 2000的事务分为显式事务、隐式 事务、自动事务和分布式事务

www.ceac.org.cn 9.2.2显式事务 显式事务就是用户使用“事务处理语句”定义的事务。 事务处理语句主要包括: (1)BEGIN TRANSACTION 作用是启动一个事务,它标志着一个事务的开始。 (2)COMMIT TRANSACTIONCOMMIT WORK 作用是提交事务。在事务中对数据库所做的修改,将在此时 进行提交,它标志着事务的结束。 (3)ROLLBACK TRANSACTIONROLLBACK WORK 作用是回滚事务。通常如果在事务的执行过程中发生了错误, 需要执行这个语句,放弃事务中对数据库所做的修改,使数 据库恢复到事务开始之前的状态。 中国高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 9.2.2 显式事务 显式事务就是用户使用“事务处理语句”定义的事务。 事务处理语句主要包括: (1)BEGIN TRANSACTION 作用是启动一个事务,它标志着一个事务的开始。 (2)COMMIT TRANSACTION和COMMIT WORK 作用是提交事务。在事务中对数据库所做的修改,将在此时 进行提交,它标志着事务的结束。 (3)ROLLBACK TRANSACTION和ROLLBACK WORK 作用是回滚事务。通常如果在事务的执行过程中发生了错误, 需要执行这个语句,放弃事务中对数据库所做的修改,使数 据库恢复到事务开始之前的状态