[理学]第8章 视图与索引.pptVIP

  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章 视图与索引

* 例子 Q2:查找出现在给定电影里的演员名字: Select starName From StarIn Where movieTitle = t and movieYear = y I:插入新的元组到关系starIn Insert Into starIn values(t, y, s) 计算最佳索引 对数据做如下假定: 关系StarIn存储在10个磁盘页面,若要查询整个关系,则代价为10。 平均每部电影包含3位明星,每位影星出现在3部电影中。 对于给定的影星或电影,其相关元组随机地分布在10个磁盘页中,平均需要3次磁盘访问才能找到某影星或电影的三个元组。 对于一个给定的索引值,为了利用该属性是的索引定位对应元组,需要每次磁盘访问将索引所在页读到主存。 在进行插入操作时,需要一次磁盘访问读取用于容纳新元组的磁盘页,然后再花费一次磁盘访问用于写操作。 * 计算最佳索引 这个例子有三个代价:Q1、Q2、I。 如果不使用索引,则Q1或Q2必须扫描整个关系(代价为10)。对于插入的代价则为2。 * Action No Index Star Index Movie Index Both Index Q1 Q2 I 10 10 2 4 10 4 10 4 4 4 4 6 Average 2+8p1+8p2 2+6p2 2+6p1 6-2p1-2p2 其中p1假定为执行Q1的时间比例,p2假定为执行Q2 的时间比例,则执行I的时间的比例为1- p1 - p2。 索引的自动选择 确定查询工作集。 要求设计者制定一些约束条件。 生成一系列候选索引。 具有最小代价的索引集被提交给设计者或自动创建。 * * 小结 视图的创建。 视图更新需要什么条件? 什么是可更新视图? 如何创建索引? 索引有哪些代价? 如何计算最佳索引? * 第8章 视图与索引 前一页 休息 南京理工大学计算机学院 前一页 休息 南京理工大学计算机学院 第8章 视图与索引 * * 第8章 视图与索引 * * 8.1 虚拟视图 * 什么是视图view 依据一条SELECT语句产生的一个命名的“虚关系”或“虚表”。视图的数据均来自基本表,并不实际存储。一个定义好的视图可看作基本表,用于定义新的视图,或对之进行查询甚至更新。 一个数据库可定义多个视图。视图的名称不能与已有的表名冲突。视图是数据库模式的一部分。 * 为何需要视图 简化计算。 不同用户关心同一表中的不同属性。 提高数据的安全性。 * 视图定义 CREATE VIEW [ owner .]view-name [( column-name , ... )] AS select-without-order-by [with check option] 例如: CREATE View ParamountMovie As Select tiltl,year From Movie Where studioName = Paramount 产生一个虚关系: ParamountMovie(tiltl,year) * 视图查询 对视图的查询与表查询遵循相同的语法。 例: Select * From ParamountMovie Where year=1979; 相当于 Select title,year From Movie Where stidoNmae= Paramount AND year=1979; * 视图查询 例: CREATE View MovieProd As Select tiltl,name From Movie,MovieExec Where ProducerC# = cert# 现在要查询 Star wars 的制片人姓名 Select name From MovieProd Where tiltl = Star wars ; 对视图的查询将由系统转换为对基本表的查询。 * 属性重命名 定义视图时可重新确定新关系的属性名。 CREATE View MovieProd(MovieTitle,ProdName) As Select tiltl,name From Movie,MovieExec Where ProducerC# = cert# 产生虚关系 MovieProd(MovieTitle,ProdName) * 属性改名用途 保持逻辑独立性。简化复杂性。减少应用程序的维护和修改。 便于不同用户

文档评论(0)

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

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

1亿VIP精品文档

相关文档