- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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. 可更新视图
您可能关注的文档
最近下载
- 06D105-电缆防火阻燃设计与施工.pdf VIP
- 院感质控存在问题及整改措施(一) .docx VIP
- 中国输液袋外包装膜袋行业市场发展前景及发展趋势与投资战略研究报告2025-2028版.docx
- HLSG系列湿法混合制粒机的结构改进与技术创新分析 .pdf VIP
- Q_GDW 1564-2014 储能系统接入配电网技术规定.PDF VIP
- 2025详解留置导尿护理指南.docx VIP
- 七年级上数学第一次月考试题(数学试卷新课标人教版七年级上月考试卷).doc VIP
- 2025年文化旅游娱乐业统计口径.docx VIP
- 新集二矿毕业设计论文.docx VIP
- 纸面石膏板技改项目节能报告.docx VIP
文档评论(0)