- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 外模式和物理模式 针对数据库StudentDB(见2.1节)及其3个表Student、Course和StudentCourse,如果系统要求每一个学生只能查询本系学生的信息,而且数学学院的学生只能查询学号、姓名、课程名和成绩;外语学院的学生只能查询学号、姓名、性别、课程名、先修课和成绩;信息学院的学生只能查询学号、姓名、年龄、课程名、学分和成绩;DBA可以查询和修改学生的任何信息。 不难看出,每一个学院的学生所允许查询的信息均是来自3个表的局部信息,是DB整体信息的局部描述;而DBA则既可以查询学生的局部信息又可以查询学生的全部信息。那么如何有效的实现这些要求哪? 我们知道,逻辑模式是对DB的整体逻辑结构和特征的完整描述,而且逻辑结构只有一个,而在实际应用中,通常针对不同的用户,只需要逻辑模式的局部信息,且不同用户的局部信息也不尽相同。因此,需要使用外模式及其视图机制。 方法:利用外模式和物理模式的理论和实现技术,解答上述问题。 7.1 视图概述 7.1.1 外模式设计 外模式设计是指在系统整体逻辑结构的基础上,根据用户的不同需求,利用外模式 / 模式映像把整体逻辑结构映像成不同的局部逻辑结构,同时结合具体DBMS的特点,设计适合用户不同局部应用的局部逻辑结构的过程。即:外模式是局部逻辑结构的集合。 逻辑结构设计是侧重系统的完整性、时间效率、存储空间效率、访问效率和易维护性等,而外模式设计则是面向用户,侧重系统的实用性、可用性、易用性和安全性等。尽管外模式与模式相对独立,然而可以通过外模式 / 模式映像使二者相互关联,并在模式上,实现外模式的抽象、提取和转换。 外模式设计的主要内容包括: (1)局部逻辑结构设计 针对不同用户群体的局部应用,需要设计相应的局部逻辑结构,这是外模式设计的核心。具体包括:局部逻辑结构的数据项来自哪些DB、DB的哪些表(或视图)以及数据的处理方法等。 例如:在StudentDB中,要求查询学生的姓名、课程名和成绩,则需要设计外模式:QueryGrade(SNo,SName,CName,Grade) 。 思考:QueryGrade的数据项来自于几个DB、几个表,如何对表的数据进行处理。为什么多一个数据项学号,该冗余数据是否必要。 再如:查询每一个学生的学号和姓名及其所有选课的总分、最高分、最低分、平均成绩,则需要设计外模式: QueryMinMaxAvgGrade(SNo, SName, SSum, SMax, SMin, AverageGrade) 思考:QueryMinMaxAvgGrade的数据项来自于几个数据库、几个表,如何对表的数据进行处理。 外模式设计的主要内容包括: (2)数据类型转换 为了满足用户对数据类型的需求,则需要把逻辑结构中对应数据的数据类型转换为适合用户使用的数据类型。 例如:在设计表Student时,为了节省空间,把性别设计为Bit型的0或者1,而在使用时,需要把1(或者0)转换为“男”(或者“女”),即:需要把性别的值由数值型转换为字符型。 (3)数据格式转换 为了满足用户对数据格式的需求,则需要把逻辑结构中对应数据的数据格式转换为适合用户使用的数据格式。 例如:在设计表Student时,把出生日期设计为日期类型数据(即:2009-06-26),而在使用时,需要按照字符串格式(即:“2009年6月26日”)使用,因此需要首先取出2008-06-06的年月日,然后转换为字符串格式2009年6月26日之后使用。 外模式设计的主要内容包括: (4)数据名称转换 为了符合用户的使用习惯,需要把逻辑结构中数据项的名称转换为用户使用习惯的名称。 例如:在设计表Student时,把学生的性别设计为SSex,而在使用时却习惯看到“性别”,因此,需要把SSex显示为“性别”。 (5)局部图形用户界面LGUI设计 无论是局部逻辑结构,还是数据类型、格式和名称的转换,这些都是外模式的内部引擎,用户是看不到的,而用户看到的是与局部逻辑结构相对应的用户视图界面,即:局部图形用户界面(Local Gruphics User Interface,LGUI),LGUI给出了外模式的具体显示方式。用户最终是使用LGUI来管理数据。因此需要布局合理,美观,操作灵活便,使得在舒适环境中,高效的管理数据。 实现外模式的常用机制是视图机制。目前的DBMS基本上均提供了功能丰富完善的视图控制机制,从而为外模式的设计提供了方便。 7.1.2 视图设计 视图是数据库系统提供给用户从不同角度使用数据库中数据的理想而有效的手段。因此,视图机制是外模式设计的重要机制。 1. 视图的概念 视图是利用查询语句定义的,从一个或者多个表(即:基本表)中导出的虚表。只存放带有查询语句的视图的定义,不存放视图对应的数据;只有执
文档评论(0)