数据库第8章视图与索引.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 视图与索引 主讲人:骆炎民 Email: 2 主要内容 8.1 虚拟视图 8.2 视图更新 8.3 sql中的索引 8.4 索引的选择 8.5 物化视图 3 表和虚拟视图 表(基本关系/基本表) 以物理组织的方式实际存储在数据库中 表是持久的,除非对它们显式地调用SQL更新语句进行更改,否则它将无限期地存在且保持不变 虚拟视图 不以物理的形式存在 通过类似查询的表达方式定义 可以将视图当作物理存在进行查询 在某些情况下,视图也可以更新 4 1.视图定义 CREATE VIEW 视图名 AS 视图定义; 视图定义是一个SQL查询 例8.1 假设视图ParamountMovies是关系Movies的一部分,由Paramount Studios制作的所有电影的片名和年份组成 视图定义如下 Movies (title, year, length, genre, studioName, producerC#) 1) CREATE VIEW ParamountMovies AS 2) SELECT title, year 3) FROM Movies 4) WHERE studioName=‘Paramount’; 5 课本示例8.2 建立一个包含电影名和制片人姓名的视图MovieProd 该查询定义的视图涉及两个关系 视图定义如下 (1) CREATE VIEW MovieProd AS (2) SELECT title, name FROM Movies, MovieExec (3) WHERE producerC#=cert# ; Movies (title, year, length, genre, studioName, producerC#) MovieExec (name, address, cert#, netWorth) 6 2. 视图查询 视图可以像一个被真正存储的表一样来查询。 在对视图的查询中,FROM子句后面接的是视图名,查询的处理过程实际上是由DBMS从定义该虚拟视图的关系(基本表)中选择出所需要的元组。 例8.3 找出Paramount l979年制作的电影 SELECT title FROM ParamountMovies WHERE year=1979 ; 把视图ParamountMovies当成一个存储的表进行查询 7 课本示例8.4 查询中可以同时使用视图和基本表 SELECT DISTINCT starName FROM ParamountMovies, Starsln WHERE title= movieTitle AND year= movieYear; SELECT DISTINCT starName FROM ( SELECT title, year FROM Movies WHERE studioName=‘paramount’ ) Pm, Starsln WHERE Pm.title=movieTitle AND Pm.year=movieYear ; 将FROM子句后面的视图用等价的视图定义子查询替换 8 3.属性重命名 有时人们不想用来自视图定义中的查询的属性名,而更愿意选用自己定义的属性名——属性重命名。 CREATE VIEW MovieProd (movieTitle, prodName) AS SELECT title, name FROM Movies, MovieExec WHERE producerC#=cert# ; 视图的列头由原来的tltle和name变为movieTitle和prodName 9 主要内容 8.1 虚拟视图 8.2 视图更新 8.3 sql中的索引 8.4 索引的选择 8.5 物化视图 10 视图更新 多数视图是不可更新的 对于一些充分简单的视图(可更新视图),可以把对视图的更新转变成一个等价的对基本表的更新,更新操作最终作用在基本表上。 此外,“替换”触发器可以将视图上的更新转变为基本表上的更新。 11 1.视图删除 DROP VIEW ParamountMovies ; 注意,这条语句删除了视图的定义,因此不再能对该视图进行查询或修改操作。但是,删除视图并不会影响基本关系Movies中的任何元组。 DROP TABLE Movies ; 使得表Movies从此消失,也使得视图ParamountMovies不可用,因为使用该视图的查询会间接地引用一个不存在的关系Movies。 12 2. 可更新视图

文档评论(0)

kay5620 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8001056127000014

1亿VIP精品文档

相关文档