数据库原理与运用之视图管理.doc_第1页
数据库原理与运用之视图管理.doc_第2页
数据库原理与运用之视图管理.doc_第3页
数据库原理与运用之视图管理.doc_第4页
全文预览已结束

下载本文档

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

文档简介

第九章 视图管理视图是一种数据库对象,对于查询来说,视图和数据表有相同的引用方法。但视图本事并不保存数据,它在本质上是相关查询命令的集合。9.1 视图的概念视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据集形式存在,.行和列数据来源于引用的表,并且在引用视图时动态生成。所以,视图也可以看成是一张或多张数据表组成的一个数据窗口。v 虚表,是从一个或几个基本表(或视图)导出的表v 只存放视图的定义,不存放视图对应的数据v 基表中的数据发生变化,从视图中查询出的数据也随之改变9.1.1 视图的优缺点1.视点集中数据表的创建是出于对系统的设计与实现考虑的,并不是面向用户。用户只关心他感兴趣的某些特定数据和他所负责的特定任务。视图为用户提供了一张或多张表中的他们感兴趣的数据。2. 简化数据的操作视图大大简化了用户对数据的操作。因为在定义视图时,若视图本身就是一个复杂查询的结果集,这样在每次执行相同的查询时,不必重新写这些复杂的查询语句,只要一条简单的查询视图语句即可。3.自定义数据视图能够实现让不同的用户以不同的方式看到不同的数据集。4.合并分割数据在有些情况下,由于表中数据量太大,故在表的设计时常将表进行水平分割或垂直分割,但表的结构的变化却对应用程序产生不良的影响。如果使用视图就可以重新保持原有的结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。5.安全性通过视图用户只能查看和修改他们所能看到的数据。其它数据库或表即不可见也不可以访问。如果某一用户想要访问视图的结果集,必须授予其访问权限。视图所引用表的访问权限与视图权限的设置互不影响。视图缺点:1. 相对低效视图在本质上是一些命令的集合。在对视图进行操作的时候,除了执行键入的sql语句中的查询更新外,还需要执行视图本身所包含的命令。因此,这在一定程度上降低了查询效率。2. 有限的更新操作可以更新的视图要求其是单表,并且用于定义视图的SELECT语句不能包含GROUP BU或HAVING子句。另外,如果SELECT语句中包含了聚集函数、计算列或DISTINCT子句,相应的视图也不能更新。9.1.2 视图的分类1.标准视图标准视图组合了一个或多个表中的数据。2.索引视图索引视图是被具体化了的视图,即它已经过计算并存储。3.分区视图分区视图是在一台或多台服务器间水平连接一组成员表中的分区数据。9.2 创建视图 Create Viewv 语句格式 CREATE VIEW ( ,) AS WITH CHECK OPTION;v 组成视图的属性列名:全部省略或全部指定v 子查询不允许含有ORDER BY子句和DISTINCT短语v RDBMS执行CREATE VIEW语句时只是把视图定义存入数据字典,并不执行其中的SELECT语句。v 在对视图查询时,按视图的定义从基本表中将数据查出。9.2.1 创建简单视图CREATE VIEW MYVIEW1ASSELECT * FROM STUDENT;部分数据视图CREATE VIEW MYVIEW1ASSELECT S_NO, S_NAME, S_DEPTFROM STUDENTWHERE S_AVGRADE = 60;创建与基本表不同字段名的视图CREATE VIEW MYVIEW2(学号,姓名,专业, 平均成绩,系)ASSELECT S_NO, S_NAME, S_MAJOR, S_AVGRADE, S_DEPTFROM STUDENTWHERE S_AVGRADE = 60;9.2.2 创建加密视图加密是对定义视图的代码文本加密。1. 使用WITH ENCRYPTION选项对视图定义代码加密CREATE VIEW MYVIEW2WITH ENCRYPTIONASSELECT A.S_NO, S_NAMEFROM STUDENT AS AINNER JOIN SC AS BON A.S_NO = B.S_NO;9.2.3创建绑定架构的视图CREATE VIEW MYVIEW2WITH SCHEMABINGDINGASSELECT A.S_NO, S_NAMEFROM dbo.student AS AINNER JOIN dbo.SC AS BON (A.S_NO = B.S_NO);9.2.4 创建带条件的视图针对视图执行的所有更新语句只有符合SELECT_STATEMENT中设置的条件,才能成功。CREATE VIEW MYVIEW2AS SELECT S_NO, S_NAMEFROM STUDENTWHERE S_AVGRADE = 60WITH CHECK OPTION;9.2.4 创建带函数的视图CREATE VIEW MYVIEW2AS SELECT S_NO, AVG(S_GRADE) AS 平均成绩FROM STUDENTGROUP BY S_NO;9.3 视图数据的更新1)任何修改只能影响到一个基表,而不能影响到多个基表;2)视图中被修改的字段必须是直接引用基表中的字段,而不能引用通过任何其他方式派生字段。3)被更新的字段不能受GROUP BY、HAVING或DISTINCT子句的影响。4)DELETE命令不能删除有多个基表的视图中的数据。5)对视图的更新操作必须满足其基表的完整性约束。9.3.1 INSERT 语句和视图INSERT INTO MYVIEW2(S_NO, S_NAME) VALUES(0054074, 卢欢);如何涉及到两个基表表的更新,则插入数据失败。9.3.2 update 语句和视图UPDATE MYVIEW2 SET S_NAME = GAVIN WHERE S_NO=0054074;如果UPDATE语句中引用了分别来自两个不同基表中的字段,更新数据失败。如果被更新字段受子句的影响,对视图的更新操作也将失败。9.3.2 DELETE 语句和视图DELETE FROM MYVIEW2 WHERE S_AVGRADE 60;9.4 索引视图的创建及其运用索引视图主要适用于聚合许多行查询,可以显著的提高此类型查询的性能。但它们不太适用于经常更新的基本数据集。它们需要额外的存储开销。9.5 分区视图的创建及其运用把有相同结构的多个不同的数据表(可能分布在不同的服务器上),放在一张视图中进行统一的管理。CREATE VIEW CHINA_STUDENT_VIEWASSELECT * FROM DATABASE.DBO.CHINA_S

温馨提示

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

评论

0/150

提交评论