- 1、本文档共274页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
互联网数据库第三章创新
数据独立性 数据独立性是数据库系统的一个最重要的目标之一。它能使数据独立于应用程序。 数据独立性包括数据的物理独立性和逻辑独立性。 物理独立性 物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。即,数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。 逻辑独立性 逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即,当数据的逻辑结构改变时,用户程序也可以不变。 视图只能在一定程度上提供数据的逻辑独立性 由于对视图的更新是有条件的,因此应用程序中修改数据的语句可能仍会因基本表结构的改变而改变。 3. 视图对重构数据库提供了一定程度的逻辑独立性4 4. 视图能够对机密数据提供安全保护 对不同用户定义不同视图,使每个用户只能看到他有权看到的数据 通过WITH CHECK OPTION对关键数据定义操作时间限制 3.5 数据控制 3.5.0 概述 3.5.1 授权 3.5.2 收回权限 3.5.3 小结 3.5.0 概述 数据控制亦称为数据保护,包括数据的: 1.完整性控制 2.并发控制 3.恢复 4. 安全性控制 3.4.2 查询视图 从用户角度而言,查询视图与查询基本表的方法相同 DBMS实现视图查询的方法 视图实体化法(View Materialization) 进行有效性检查,检查所查询的视图是否存在。如果存在,则从数据字典中取出视图的定义 执行视图定义,将视图临时实体化,生成临时表 将查询视图转换为查询临时表 查询完毕删除被实体化的视图(临时表) 3.4.2 查询视图(续) 视图消解法(View Resolution) DBMS执行对视图的查询时,先进行有效性检查,检查查询的表、视图等是否存在。如果存在,则从数据字典中取出视图的定义 把视图定义中的子查询与用户的查询结合起来,转换成等价的对基本表的查询 执行修正后的查询 3.4.2 查询视图(续) [例1] 在信息系学生的视图中找出年龄小于20岁的学生。 SELECT Sno,Sage FROM IS_Student WHERE Sage20; IS_Student视图的定义(视图定义例1): CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS‘; 3.4.2 查询视图(续) 视图实体化法 视图消解法 转换后的查询语句为: SELECT Sno,Sage FROM Student WHERE Sdept= IS AND Sage20; 3.4.2 查询视图(续) [例2] 查询信息系选修了1号课程的学生 SELECT Sno,Sname FROM IS_Student,SC WHERE IS_Student.Sno=SC.Sno AND SC.Cno= 1; SQL 视图2 视图1 基本表4 基本表3 基本表2 基本表1 存储文件2 存储文件1 外模式 模 式 内模式 SQL支持关系数据库的三级模式结构 3.4.2 查询视图(续) 3.4.2 查询视图(续) 视图消解法的局限 有些情况下,视图消解法不能生成正确查询。采用视图消解法的DBMS会限制这类查询。 3.4.2 查询视图(续) [例3] 在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩 SELECT * FROM S_G WHERE Gavg=90; 3.4.2 查询视图(续) S_G视图定义: CREATE VIEW S_G (Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno; 3.4.2 查询视图(续) 转换后的查询: SELECT Sno,AVG(Grade) FROM SC WHERE AVG(Grade)=90 GROUP BY Sno; 3.4.2 查询视图(续) 正确转换: SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno HAVING AVG(Grad
文档评论(0)