数据库开发技术(chapter9)

上传人:wt****50 文档编号:37815190 上传时间:2018-04-23 格式:PDF 页数:45 大小:244.65KB
返回 下载 相关 举报
数据库开发技术(chapter9)_第1页
第1页 / 共45页
数据库开发技术(chapter9)_第2页
第2页 / 共45页
数据库开发技术(chapter9)_第3页
第3页 / 共45页
数据库开发技术(chapter9)_第4页
第4页 / 共45页
数据库开发技术(chapter9)_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《数据库开发技术(chapter9)》由会员分享,可在线阅读,更多相关《数据库开发技术(chapter9)(45页珍藏版)》请在金锄头文库上搜索。

1、2010-6-131数据库开发技术主讲教师:王文琴 常州工学院计算机信息工程学院2010-6-132目录一 SQL SERVER 2005基础知识 ? 二 Transact-SQL语言 ? 三 数据库和表 ? 五 数据库查询 ? 六 视图、索引和游标 ? 七 存储过程和触发器 ? 八 数据库的备份还原与导入/导出2010-6-133目录? 九 系统安全管理 ? 十 事务、批、锁和作业 ? 十一 VB.NET/SQL Server 2005开发2010-6-134第九章 视图、索引和游标一、视图 二、索引 三、游标返回2010-6-135一、视图一、视图1、定义:视图把预先定义的查询作为数据库中

2、的对象存储,以便在以 后使用该视图来查看存储的数据。视图与存储数据的基本表不同,它只 是基本表的一个select语句,视图本身不存储数据。2、使用视图优点: ? 掩盖了数据库的复杂性,简化复杂的查询。 ? 为用户集中数据,限制敏感数据的访问。 ? 简化用户的权限访问,增加了安全性。 ? 合并分割数据,有利于数据导出到其它应用程序。 3、使用视图的缺点: ? 降低系统性能 ? 修改限制2010-6-136一、视图4、视图的使用范围:视图通常用来集中、简化和自定义每个用户对数据库 的不同认识。通常在以下情况下使用视图?着重于特定数据,使用户能够着重于他们感兴趣的特定数据和所负责的 特定任务。不必要

3、的数据或敏感数据可以不出现在视图中。?简化数据操作:将常用的查询定义为视图?自定义数据,允许用户以不同方式查看数据?数据的导入和导出:可以使用视图将数据导出到其他应用程序?跨服务器组合分区数据5、视图的分类?标准视图:?索引视图:是被具体化了的视图,经过计算并存储,以提高某些类型查 询的性能。?分区视图:在一台或多台服务器间水平连接一组成员表中的分区数据。2010-6-137一、视图6、使用视图注意事项?使用create view创建视图。创建视图时不能包含order by、 compute或compute by子句、into关键字。?只有系统管理员(sysadmin)角色,数据库管理者(db

4、_owner)角 色,数据定义管理员(db_ddladmin)角色可以创建视图。?视图引用的列不能超过1024个。?不能将规则或DEFAULT定义与视图相关联。不能将AFTER触发器与 视图相关联,只有INSTEAD OF 触发器可以与之关联。?不能创建临时视图,也不能对临时表创建视图。?使用Alter View修改视图?使用Drop View删除视图2010-6-138定义视图?在SQL Server Management Studio中创建视图 ?例如: 1.Create view view_sc(cno,avgrade) as select cno,avg(grade) from sc

5、group by cno having avg(grade)60 2.Drop view view_sc ?下列情况下必须指定视图中每列的名称: ?视图中的任何列都是从算术表达式、内置函数或常量派生而来 ?视图中有两列或多列原来具有相同名称 ?希望为视图中的列指定一个与其源列不同的名称2010-6-1310查看视图文本内容? 查看视图文本定义: ? Exec sp_helptext 视图名 ? 例如:exec sp_helptext view_sc ? 加密视图可以防止别人察看视图定义 ? With encryption选项 ? 例如:create view view_sc(cno,avgra

6、de) with encryption as select cno,avg(grade) from sc group by cno ? 视图创建完毕,就可以如同查询基本表一样查询视图。2010-6-1311更新视图? 只要满足下列条件,就可以通过视图修改基本表的数据。 ?任何修改(包括UPDATE、INSERT和DELETE语句)都只能引用一 个基表的列; ?视图中被修改的列必须直接引用表列中的基础数据。不能通过任何 其他方式对这些列进行派生,如通过聚合函数、计算(如表达式计 算)、集合运算等 ? 通过视图向基础表插入数据,但应注意: ?列数、数据类型必须一致; ?如果视图的定义中只选择了基本

7、表的部分列,但基础表中其余列中 至少有一列不允许为空,且未设置默认值,此时导致插入失败; ?如果视图定义中使用了With check option选项,则在视图上执行 的数据插入语句必须符合定义视图的SELECT语句中所设定了的条件。2010-6-1312更新视图? 可以使用视图删除基础表中的数据行,但应注意:? 如果通过视图删除的数据行不包含在视图的定义中,则该 数据行不能够删除;? 若删除语句的条件中指定的列是视图未包含的列,则无法 通过视图删除基础表中的数据行。? 删除数据时,若视图依赖于多个基本表,就不能通过视图 删除数据。2010-6-1313更新视图? 可以使用视图更改数据,但应注

8、意:?如果视图定义中使用了With check option选项,但要更改的数据 不符合定义视图的SELECT语句中所设定的条件,则无法更改;?若视图包含了多个基础表,但要更改的列属于同一个基础表,此时 可以通过视图更改基础表中的列数据;?若视图包含了多个基础表,但要更改的列分别属于多个基础表,此 时不可以通过视图更改基础表中的列数据?若视图包含了多个基础表,但要更改的列为多个基础表的公共列, 此时不可以通过视图更改基础表中的列数据。2010-6-1314更改视图数据?例如: 1. Create view v_sc as select * from sc where cno=vb 2. Cre

9、ate view v_sx as select * from sc where cno=vb with check option 3. Update v_sc set grade=grade+10 4. Update v_sx set grade=grade+10 5. Insert into v_sc values(2222,os,89) -! 6. Insert into v_sx values(2222,os,89) -!XX 7. Delete from v_sc where grade80 8. Delete from v_sx where grade802010-6-1315二、索

10、引? 1.索引简介 ? 2.创建索引 ? 3.索引维护2010-6-13161. 索引简介?什么是索引? 索引包含从表或视图中一个或多个列生成的键,以及映射到指定数 据的存储位置的指针。索引是一种物理结构,它提供以一列或者多列的 值为基础迅速查找表的行的能力。 ?索引用途: 索引可以用来快速访问数据库表中的特定信息。在数据库中,索引 使数据库程序无需对整个表进行扫描,就可以在其中找到所需数据。 ?为什么建立索引: ?加速数据检索 ?加速连接(参照完整性检查)、order by和group by ?查询优化器依赖于索引起作用 ?强制施行的唯一性(唯一索引),可以保证表中的数据不重复2010-6-

11、13171. 索引简介? 索引分类:? 如果一个表没有创建索引,则数据行不按任何特定顺序 存储,这种结构称为堆集。 SQL Server 2005支持在 表中任何列(包括计算列)上定义索引。 ? 索引可以是惟一的,即索引列不会有两行记录相同,这 样的索引称为惟一索引。 ? 实施实体完整性; ? 在创建主键约束和惟一约束时自动创建。 ? 如果索引是根据单列创建的,这样的索引称为单列索引。 根据多列组合创建的索引称为复合索引。2010-6-13181. 索引简介? 索引分类:? 按索引的组织方式的不同,可以将索引分为聚集索引和 非聚集索引。这两种索引结构是不同的,了解它们有助 于我们设计合适的索引

12、结构。? 聚集索引会将设为索引的字段依序排好,并且也依 照排好的顺序将记录存储在表? 非聚集索引也会依索引字段排序记录,但是排列的 结果并不会显示在表中,而是另外存放2010-6-1319聚集索引示意图1A2H3J4SA1H2J3S4表索引2010-6-1320聚集索引? 聚集索引说明: ?聚集索引根据数据行的键值在表或视图中排序和存储这些数据行。 ?反映行的物理顺序。 ?只有当表包含聚集索引时,表中的数据行才按排序顺序存储。如果 表没有聚集索引,则其数据行存储在一个称为堆的无序结构中。 ? 创建聚集索引时应注意: ?每个表只能有一个聚集索引 ?聚集索引保证表中数据行的物理存储次序与聚集索引的

13、行顺序相同 ?聚集索引必须第一个创建 ?主键是聚集索引的良好候选者2010-6-1321聚集索引? 聚集索引的结构: ? 聚集索引的结构是由下而上建构而成,一个数据页 包含数笔记录,再由数个数据页生成一个中间结点 的索引页。接着由数个中间结点的索引页合成更上 层的索引页,最后汇成根结点的索引页。 ? 数据页:包含实际的数据页面,用来存放数据。 ? 索引页:用来存放索引,以及指向下一层的指针2010-6-1322索引页数据页第223页(根)第220页第221页第223页100122010322211070222第100页第102页第103页第105页聚集索引结构图1021019101101010

14、01001第220页105105510410411031032第221页1007,音响,24501003,电脑,80001001,微波炉,3500第100页1025,收音机,2001023,电冰箱,24001019,MP3,1000第102页1034,电风扇,5201033,饮水机,4501032,复读机,300第103页1057,笔记本,10000,1056,MP4,32001055,三星手机,3000第105页2010-6-1323聚集索引? 在索引创建过程中,系统使用磁盘临时空间,创建结束 后自动释放这部分空间。因此创建聚集索引时应保证足 够的磁盘空间。 ? 当SQL SERVER访问数

15、据时,它首先确定列上是否存在 一个索引,如果存在且与访问的数据有关,SQL SERVER则自动使用它来访问表中的数据行。 ? 索引的检索从根页开始,重复比较值的大小,直到比较 结果完成(大于,等于,小于,)2010-6-1324索引页数据页第223页(根)第220页第221页第100页第102页第103页第105页Select ProductName from product where ProductID=1025第223页100122010322211070222聚集索引执行示意图第220页100110010101011019102第221页103210310411041055105第10

16、0页1001,微波炉,35001003,电脑,80001007,音响,2450第102页1010,MP3,10001023,电冰箱,24001025,收音机,200第103页1032,复读机,3001033,饮水机,4501034,电风扇,520第105页1055,三星手机,30001056,MP4,32001057,笔记本,10000,2010-6-1325非聚集索引? 非聚集索引说明: ? 在非聚集索引的结构中,因为记录没有按照非聚集索 引列的顺序排列好,所以搜索结点索引页时,并无法 直接找到要检索的记录,此时就需要靠索引页中的另 一个指针来指向真正的数据页位置(指到某一个数据 页的第几笔记录)。 ? 当用户需要用多种方法搜索数据时,非聚集索引是有 用的。2010-6-1326非聚集索引结构图索引页数据页第354页1001351101-21032352100-11070353105-3第351页1001210101-21010211103-11019212101-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号