数据库原理及应用项目7事务、索引和视图的创建与应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任务7.2 “网络论坛”数据库数据 管理
7.2.2 创建事务
SQL Server 2008中的事务可以分为两类:系统提供的事务和用户 定义的事务。系统提供的事务是在执行某些T-SQL语句时,一条语句就 构成了一个事务,这些语句包括ALTER TABLE、CREATE、DELETE、DROP 、FETCH、GRANT、INSERT、OPEN、REVOKE、SELECT、UPDATE、 TRUNCATE TABLE等。
CONTENTS
任务7.1 知识准备 任务7.2 “网络论坛”数据库数据管理
任务7.3 知识和技能扩展
任务7.1 知识准备
7.1.1 事务的概念和特性
事务(Transaction)是单个的工作单元。 事务应该具有4种属性:原子性、一致性、隔离性和持久性。 (13)原隔子离性::隔事离务性的意原味子着性一保个证事事务务的包执含行的不一能组被更其新他操事作务是干原扰子 不。可分的,对数据库而言全做或者全不做,不能部分地完成。 (24)一持致久性::系一统致提性供要的求持事久务性执保行证完要成求后一,旦将事数务据提库交从,一那个么一对致 状数态据转库变所到作另的一修个改一将致是状持态 久。 的,无论发生何种机器和系统故障都不应 该对其有任何影响。
用户自定义事务的定义方法主要有以下几个步骤。 2.结束事务 COMMIT TRANSCATION语句是提交语句,它将事务开始以来所执行 的所有数据都修改成为数据库的永久部分,也标志一个事务的结束。 语法格式:
标志一个事务的结束也可以使用COMMIT WORK语句。 语法格式:
任务7.2 “网络论坛”数据库数据 管理
来自百度文库 项目目标
知识目标
>了解事务的概念和特性。 >掌握事务创建。 >了解索引的类型和特点。 >掌握索引的创建。 >了解视图的概念和作用。 >掌握视图的创建。
能力目标
01 02
>能够熟练创建和提交事务的简单方法。 >能够完成索引的创建、管理、维护和删 除等操作。 >能够实现视图的创建、修改、使用和删 除等操作。
7.2.2 创建事务
用户自定义事务的定义方法主要有以下几个步骤。 3.撤销事务 若要撤销一个事务,可以使用ROLLBACK TRANSACTION语句,它使 得事务回滚到起点,撤销自最近一条BEGIN TRANSACTION语句以后对数 据库的所有更改,同时也标志了一个事务的结束。 语法格式:
另外,一条ROLLBACK WORK语句也能撤销一个事务, 语法格式:
例如,执行如下创建表的语句:
任务7.2 “网络论坛”数据库数据 管理
7.2.2 创建事务
用户自定义事务的定义方法主要有以下几个步骤。 1.开始事务 在SQL Server中,显式地开始一个事务可以使用BEGIN TRANSACTION语句。 语法格式:
任务7.2 “网络论坛”数据库数据 管理
7.2.2 创建事务
任务7.2 “网络论坛”数据库数据 管理
7.2.2 创建事务
用户自定义事务的定义方法主要有以下几个步骤。 4.回滚事务 ROLLBACK TRANSACTION语句除了能够撤销整个事务,还可以使事 务回滚到某个点。不过在这之前需要使用SAVE TRANSACTION语句来设 置一个保存点。 SAVE TRANSACTION的语法格式:
任务7.2 “网络论坛”数据库数据 管理
7.2.1 任务描述及分析
1.在进行用户注册时,需要保证用户名的唯一性。一般做法是第 一步先检查用户名是否重复,如果不重复再进行第二步,添加用户。 但是这样的做法在极端情况下还是会出现问题,因此需要把这两步合 并在一起成为一个整体,如果成功了则完成,否则放弃添加。
索引和视图主要是起到辅助查询和组织数据的功能,通过使用它们 ,可以大大地提高查询数据的效率。但是,二者是有区别的:视图将查 询语句压缩,使大部分查询语句放在服务端,客户端只输入你要查询的 信息,而不用写出大量的查询代码这其中也是一个封装的过程。索引类 似目录,使得查询更快捷、更高效,适用于访问大型数据库。在本项目 中,将针对事务、索引和视图的内容进行详细的讲解。
任务7.1 知识准备
7.1.3 视图的概念和作用
视图是由一个或多个基本表或其他视图导出的表。 使用视图有以下几个优点。 (1)简化查询语句 (2)增加可读性 (3)保证数据逻辑独立性 (4)增加数据的安全性和保密性 视图也有不少缺点,如操作视图会比直接操作基础表慢,所以 尽量要避免在大型表上创建视图,也尽量不要创建嵌套视图。
SAVE TRANSACTION语句会向已命名的保存点回滚一个事务。如果 在保存点被设置后,当前事务对数据进行了更改,则这些更改会在回 滚中被撤销。
2.下面考虑此任务,在网上论坛中需要提供主题搜索功能,在 未添加索引的情况下,当主帖数据表Topic记录数超过10万条以上时 ,查询的时间会大幅增加,为加快查询速度,我们需要在Topic表的 Title字段增加索引。
3.在网上论坛中还有需要根据用户查询到该用户的发言内容, 因此我们需要把用户名和他的发言标题同时显示。
任务7.1 知识准备
7.1.2 索引
索引是根据表中一列或若干列(例如users表的ID列)按照一定顺 序建立的列值与记录行之间的对应关系表。在数据库系统中建立索引 主要有以下作用。
(1)快速存取数据。 (2)保证数据记录的唯一性。 (3)实现表与表之间的参照完整性。 在Microsoft SQL Server 2008系统中,有两种基本的索引类型 :聚集索引和非聚集索引。 (12)聚非集聚索集引索引 聚 非集聚索集引索将引数完据全行独的立键于值 数在 据表 行内 的排 结序 构并 。存储对应的数据记录, 使得数据表物理顺序与索引顺序一致。
数据库原理与应用
讲授人
项目导读 项目目标 任务7.1-7.3 项目实训
知识巩固
项目导读
在SQL Server 2008这样大型的数据库运行时,多个用户同时对同一 个数据进行操作时可能导致数据混乱。解决这个问题的最有效方法就是 保证用户的操作在执行时没有其他的干扰,事务就是用来保证多个用户 情况下数据一致性的机制。