事务处理2.ppt_第1页
事务处理2.ppt_第2页
事务处理2.ppt_第3页
事务处理2.ppt_第4页
事务处理2.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、事务处理,5,2,事务的基本概念,5,3,事务操作,5,1,架构,架构,概述 架构是对象的容器,用于在数据库内定义对象的命名空间,用于简化管理和创建可以共同管理的对象子集。架构与用户分离,用户拥有架构。当服务器在查询中解析非限定对象时,总有一个默认的架构供服务器使用,这意味着访问默认架构中的对象时不需要指定架构名称。,要访问其他架构中的对象时,需要两部分或者三部分的标识符。 (1)两部分的标识符指定架构名称和对象名称,格式为: schema_name.object_name (2)三部分标识符指定数据库名称、架构名称和对象名称,格式为: Database_name.schema_name.ob

2、ject_name,说明: 架构的名称可以长达128个字符,必须以英文字母开头,在名称中间可以包含“_”,“”、“#”和数字。架构名称在每个数据库中必须是唯一的,可以在不同数据库中同名。,创建架构 创建架构的方法有两种:使用图形化界面创建和使用T-SQL命令创建。 1、使用图形化界面创建 在SQL Server Management Studio工具中,可以通过下面的步骤创建一个新的架构。 (1)SQL Server Management Studio中,连接到包含默认数据库的服务器实例。,(2)在【对象资源管理器】中,展开【服务器】|【数据库】|【shopping】|【安全性】节点,右击【架

3、构】节点,在弹出的快捷菜单中选择【新建架构】命令,显示【架构-新建】对话框,如图1所示。,图1,(3)在【常规】页面,可以指定架构的名称已经设置架构的所有者。单击【搜索】按钮打开【搜索角色和用户】对话框,如图2所示。,图2,(4)在【搜索角色和用户】对话框中,单击【浏览】按钮,打开【查找对象】对话框。在【查找对象】对话框中选择架构的所有者,可以选择当前系统的所有用户或者角色,如图三所示。,(5)选择完成后,单击【确定】按钮就可以完成架构的创建。,图3,2、使用T-SQL命令创建架构 使用T-SQL命令来创建架构,具体的语法格式如下: CREATE SCHEMA schema_name_clau

4、se n := schema_name | AUTHORIZATION owner_name | schema_name AUTHORIZATION owner_name ,:= Table_definition | view_definition | grant_statement revoke_statement |deny_statement 各参数说明: schema_name 在数据库内标识架构的名称。 AUTHORIZATION owner_name 指定将拥有架构的数据库主体的名称。此主体还可以拥有其他架构,并可以不使用当前架构作为其默认架构。,Table_definition

5、指定在架构内创建表的CREATE TABLE 语句。执行此语句的主体必须对当前数据库具有CREATE TABLE权限。 View_definition指定在架构内创建视图的CREATE VIEW语句。执行此语句的主体必须对当前数据库具有CREATE VIEW权限。 Grant_statement 指定可对除新架构外的任何安全对象授予权限的GRANT语句。 Revoke_statement指定可对除新架构外的任何安全对象撤销权限的REVOKE语句。,Deny_statement指定可对除新架构外的任何安全对象拒绝授予权限的DENY语句。 例:创建一个名称为admins的架构。 Use shopp

6、ing Create schema admins AUTHORIZATION dbo,修改架构 删除架构 删除架构有两种方式:通过对象资源管理器和T-SQL命令。 使用T-SQL命令删除架构的基本语法格式如下: Drop schema_name,例:删除名称为admins的架构 drop schema admins,事务的基本概念,事务是一个逻辑工作单元,SQL Server 2005 提供了几种自动的可以通过编程来完成的机制,包括事务日志、SQL事务控制语句,以及事务处理运行过程中通过锁定保证数据完整性的机制。当用户对数据库并发访问时,为了确保事务完整性和数据库一致性,需要使用锁定。事务和锁

7、是两个紧密联系的概念。 通过事务和锁的使用,还可以监测系统,以及优化物理数据库。,事务作为一个逻辑工作单元有4个属性,称为ACID(原子性、一致性、隔离性和持久性)属性。 (1)原子性 事务必须是原子工作单元,对于其数据修改,要么全都执行,要么全都不执行。 (2)一致性 事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,一保持所以数据的完整性。事务结束时,所以的内部数据结构都必须是正确的。,(3)隔离性 由并发事务所作的修改必须与任何其他并发事务所作的修改隔离,保证事务查看数据时数据所处的状态,只能是另一并发事务修改它之前的状态或者是另一事务修改它之

8、后的状态,而不能中间状态的数据。 (4)持久性 事务完成之后对系统的影响是永久性的。,事务操作,事务组织结构的一般形式如下: (1)定义一个事务的开始:begin transaction。 (2)提交一个事务所:commit transaction。 (3)回滚事务:rollback transaction。 begin transaction代表一个事务的开始点,每个事务继续执行直到用commit transaction提交,从而正确地完成对数据库作永久的改动。,在事务中除以下语句外,其他T-SQL语言均可使用: ALTER DATABASE BACKUP LOG CREATE DATABA

9、SE DROP DATABASE DUMP TRANSACTION LOAD DATABASE LOAD TRANSACTION RESTORE DATABASE RESTORE LOG,下面对以上几条语句进一步进行说明: 1.Begin transaction 功能:标记一个显示本地事务的起始点,语法如下: Begin transaction transaction_name 其中, transaction_name给事务分配的名称。,2.Commit transaction 功能:标志一个成功的隐式事务或用户定义事务的结束,语法如下: Commit transaction transact

10、ion_name 其中,transaction_name指定由前面的begin transaction 指派的事务名称。 通过向程序员指明commit transaction与哪些嵌套的begin transaction相关联。实际上SQL Server 2005忽略该参数。但transaction_name可作为帮助阅读的一种方法。,因为数据已经永久修改,所以在commit transaction 语句后不能回滚事务。当在嵌套事务中使用commit transaction时,内部事务的提交并不释放资源,也没有执行永久修改,只有在提交了外部事务时,数据修改才具有永久性而且资源才会被释放。,3.

11、Rollback transaction 功能:将显示事务或隐性事务回滚到事务的起点或事务内的某个保存点,语法如下: Rollback transaction transaction_name 其中,transaction_name 给begin transaction上的事务指派的名称。不带transaction_name的rollback transaction回滚到事务的起点。在嵌套事务时,该语句将所有内层事务回滚到最远的begin transaction语句,transaction_name也只能是来自最远的begin transaction语句的名称。,注意: (1) 在执行comm

12、it transaction语句后不能回滚事务。 在下列情况下将回滚事务: (2)如果在触发器中发出rollback transaction命令,将回滚对当前事务中所做的所有数据修改,包括触发器所做的修改。 (3)如果在事务执行过程中出现任何错误,SQL SERVER实例将回滚事务。 (4)某些错误(如死锁)会自动回滚事务。,(5)如果在事务活动时由于任何原因(如客户端应用程序终止,客户端计算机关闭或重新启动客户端网络连接中断等)中断了客户端和SQL Server 2005实例之间的通信,SQL Server 2005实例将在收到网络或操作系统发出的中断通知时自动回滚事务。所以在这些错误情况下

13、,将回滚任何未完成的事务以保护数据库的完整性。,例:commit transaction提交事务简单示例。定义一事务向t_supplier表中插入2条记录,并提交完成。 Use shopping Go Begin transaction Insert into t_good(gid,gname,gtid,gprice) Values(G03002,碎花半截裙,T00003,175);,Insert into t_good(gid,gname,gtid,gprice) Values(G03003,连衣裙,T00003,275); Commit transaction,例:定义一事务向t_good表中插入多条记录,并检验若T00002的商品超过4条记录,则回滚事务,即插入无效,否则成功提交。 Use shopping Go Begin transaction Insert into t_good(gid,gname,gtid,gprice) Values(G02003,学步车,T00002,165);,Insert into t_good(gid,gname,gtid,gprice) Values(G02004,指甲钳,T00002,5); Insert into t_good(gid,gname,gtid,gprice) Values(G02005,奶瓶,T00002,3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论