• 1.09 MB
  • 2022-04-22 11:28:55 发布

数据库系统教程 第2版 (施伯乐 丁保康 著) 高等教育出版社 课后答案

  • 144页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'课后答案网您最真诚的朋友www.hackshp.cn网团队竭诚为学生服务,免费提供各门课后答案,不用积分,甚至不用注册,旨在为广大学生提供自主学习的平台!课后答案网:www.hackshp.cn视频教程网:www.efanjy.comPPT课件网:www.ppthouse.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!目录第1部分课程的教与学第2部分各章习题解答及自测题第1章数据库概论1.1基本内容分析1.2教材中习题1的解答1.3自测题1.4自测题答案第2章关系模型和关系运算理论2.1基本内容分析2.2教材中习题2的解答2.3自测题2.4自测题答案第3章关系数据库语言SQL3.1基本内容分析3.2教材中习题3的解答3.3自测题3.4自测题答案第4章关系数据库的规范化设计4.1基本内容分析4.2教材中习题4的解答课后答案网4.3自测题4.4自测题答案第5章www.hackshp.cn数据库设计与ER模型5.1基本内容分析5.2教材中习题5的解答5.3自测题5.4自测题答案第6章数据库的存储结构6.1基本内容分析6.2教材中习题6的解答第7章系统实现技术7.1基本内容分析7.2教材中习题7的解答7.3自测题7.4自测题答案第8章对象数据库系统8.1基本内容分析8.2教材中习题8的解答8.3自测题8.4自测题答案第9章分布式数据库系统9.1基本内容分析9.2教材中习题9的解答9.3自测题9.4自测题答案 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第10章中间件技术10.1基本内容分析10.2教材中习题10的解答10.3自测题及答案第11章数据库与WWW11.1基本内容分析11.2教材中习题11的解答第12章XML技术12.1基本内容分析12.2教材中习题12的解答学习推荐书目1.国内出版的数据库教材(1)施伯乐,丁宝康,汪卫.数据库系统教程(第2版).北京:高等教育出版社,2003(2)丁宝康,董健全.数据库实用教程(第2版).北京:清华大学出版社,2003(3)施伯乐,丁宝康.数据库技术.北京:科学出版社,2002(4)王能斌.数据库系统教程(上、下册).北京:电子工业出版社,2002(5)闪四清.数据库系统原理与应用教程.北京:清华大学出版社,2001(6)萨师煊,王珊.数据库系统概论(第3版).北京:高等教育出版社,2000(7)庄成三,洪玫,杨秋辉.数据库系统原理及其应用.北京:电子工业出版社,20002.出版的国外数据库教材(中文版或影印版)课后答案网(1)SilberschatzA,KorthHF,SudarshanS.数据库系统概念(第4版).杨冬青,唐世渭等译.北京:机械工业出版社,2003(2)ElmasriRA,NavatheSB.数据库系统基础(第3版).邵佩英,张坤龙等译.北京:www.hackshp.cn人民邮电出版社,2002(3)LewisPM,BernsteinA,KiferM.DatabasesandTransactionProcessing:AnApplication-OrientedApproach,Addison-Wesley,2002(影印版,北京:高等教育出版社;中文版,施伯乐等译,即将由电子工业出版社出版)(4)HofferJA,PrescottMB,McFaddenFR.ModernDatabaseManagement.6thed.PrenticeHall,2002(中文版,施伯乐等译,即将由电子工业出版社出版)3.上机实习教材(1)廖疆星,张艳钗,肖金星.PowerBuilder8.0&SQLServer2000数据库管理系统管理与实现.北京:冶金工业出版社,2002(2)伍俊良.PowerBuilder课程设计与系统开发案例.北京:清华大学出版社,20034.学习指导书(1)丁宝康,董健全,汪卫,曾宇昆.数据库系统教程习题解答及上机指导.北京:高等教育出版社,2003(2)丁宝康,张守志,严勇.数据库技术学习指导书.北京:科学出版社,2003(3)丁宝康,董健全,曾宇昆.数据库实用教程习题解答.北京:清华大学出版社,2003(4)丁宝康.数据库原理题典.长春:吉林大学出版社,2002(5)丁宝康,陈坚,许建军,楼晓鸿.数据库原理辅导与练习.北京:经济科学出版社,2001 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第1部分课程的教与学1.课程性质与设置目的现在,数据库已是信息化社会中信息资源与开发利用的基础,因而数据库是计算机教育的一门重要课程,是高等院校计算机和信息类专业的一门专业基础课。数据库技术是计算机软件学科的一个重要分支,是研究如何存储、使用和管理数据的一门学科。随着计算机应用的发展,数据库应用领域已从数据处理、信息管理、事务处理扩大到计算机辅助设计、人工智能、办公信息系统和网络应用等新的应用领域。本课程的设置目的是为了使学生掌握数据库的基本原理和方法,能应用现有的数据库管理软件和软件开发工具,掌握数据库结构的设计和数据库应用系统的开发方法。2.课程特点经过卅多年的发展,数据库技术已形成完整的理论体系和一大批实用系统,因而本课程具有较强的理论性、实用性和可操作性:·理论性体现在关系运算理论和模式设计理论两个方面;·实用性体现在SQL语言和数据库设计两个方面;·由前两个特点,决定了这门课程的有强的可操作性,也就是这门学科有许多习题、问题和应用等着人们去解答分析和设计。3.课程的基本内容本课程的各章基本要求和较高要求见图1。章次课后答案网基本要求较高要求数据描述,数据模型,第1章数据库概论体系结构,全局结构三类完整性规则,关系代数,关系演算,第2章关系模型和关系运算理论www.hackshp.cn查询优化关系逻辑SQL的体系结构,数据定义,递归查询,第3章关系数据库语言SQL数据查询,数据更新嵌入式SQL模式冗余问题,FD,无损分解,第4章关系数据库的规范化设计多值依赖,联接依赖保持依赖,范式,分解算法设计全过程,ER模型,第5章数据库设计与ER模型ER模型到关系模型的转换规则存储介质层次,文件组织,第6章数据库的存储结构散列技术,多键访问文件结构,索引技术事务的ACID性质,恢复、并发控制、并发事务的可串行化和可第7章系统实现技术完整性和安全性等的实现方法恢复性,触发器对象联系图,OO的类型系统,ORDBODMG的语言,第8章对象数据库系统的语言,ODMG标准UML类图分布计算,C/S结构的演变,DDBS第9章分布式数据库系统DDBS中的问题的体系结构,分布式查询处理中间件,ODBC的体系结构,JDBC结构,第10章中间件技术ODBC接口JDBCAPI网络协议模型,WWW与数据库的结JSP技术,第11章数据库与WWW合,CGIPHP技术XML查询语言,第12章XML技术XML基本概念XML处理 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!图14.课程的基本要求学生在学习中,应沿着以下四条线索来学习:(1)掌握数据库的历史发展(层次网状系统)、当前主流(关系系统)和未来发展(面向对象系统)三部分内容。(2)数据库发展史上的两条主线,即数据模型的演变和数据语言的演变。数据模型的演变经历了从层次、网状模型到关系模型,进而从关系、嵌套关系、复合对象模型到面向对象模型这样一个过程。数据语言的演变经历了从基本SQL、嵌入SQL、动态SQL、递归SQL、到ORDB的SQL发展这样一个过程。(3)数据库技术有两个端点。一个端点是“用户”,即用户如何来使用数据库;另一个端点是“系统”,即数据库技术是如何实现的。(4)数据库设计演变的过程,即从ER图、对象联系图到UML类图的发展过程。实际上,这四条线索就是数据库的内涵和实质。5.课程的教学方法本书可采取如下的教学方法:(1)讲授的重点应是第1~5、7章。对于第2章和第4章中理论性较强的内容,可作适当压缩。第2章的重点是关系代数,第4章的重点是函数依赖和范式。(2)对于第6章的存储结构内容,教师可作适当引导让学生自学,以拓宽知识面。(3)对于第8章的对象数据库内容,教师可作适当引导让学生自学,以提高学生的工作能力和研究水平。(4)对于第9~12章,教师可有针对性地选择某些内容向学生讲授。课后答案网(5)组织学生进行上机实习,系统可采用SQLServer等DBMS和PowerBuilder等软件开发工具。6.课程的学习方法www.hackshp.cn学习本课程时,应注意以下几个问题:(1)勤于思考,善于消化学习是一个艰苦的脑力劳动过程,没有捷径可走。学习是一个循序渐进的过程,对平时每堂课的内容必须结合教材反复思考,吃透每一知识点,深刻理解每一个基本概念、基本原理的要领。教材中内容并不都是靠教材、参考书、授课等方式能掌握的,有些内容需要有个消化过程。也就是说,有些内容并不能一下子掌握,需要十天半个月后才能领悟与掌握。因此,学习者不要因为个别问题搞不懂就望而生畏停滞不前。(2)掌握教材中重要的例题和习题本课程是概念性很强的课程,因此在阅读及理解基本概念、基本原理、基本方法的同时,还要多阅读教材中的例题,以加深对这些内容的理解。特别是教材中第4章模式设计理论内容,理论性很强,这些概念非常不容易理解,只能从其应用中去理解其语义。因此,对于这些例题更要仔细阅读、反复领会,才能掌握这些概念。(3)重视上机实习环境本课程也是应用性很强的课程,已经有许多成熟的DBMS产品和软件开发工具。DBMS产品有ORACLE、DB2、SYBASE和SQLServer等。软件开发工具有PowerBuilder、Delphi和VisualBasic等。PowerBuilder8.0是现在用得比较普遍的一种软件开发工具,SQLServer是现在用得比较普遍的一种DBMS产品。建议从这两个系统来建立实验环境。(4)重视数据库设计数据库设计是一项实用性非常强的工作。特别是ER模型的设计,更是与实际紧密相连。ER模型具有客观性和主观性,也就是ER模型即充分反映了用户的需求,又体现了设计者的分析能力和抽象能力。为了增强学习者的数据库设计能力,在教材中已有4个大的ER模型 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!实例,在本书第5章的练习题中又增加了5个大的ER模型实例。学习者如能熟悉这9个实例,必将给毕业实习和今后的工作带来很大益处。如有可能,教师可以布置一个较大的作业,让学生去设计一个现实问题的ER模型,譬如超市管理、仓库管理等等。7.上机实习要求现在几乎很少有人直接使用DBMS来开发数据库应用系统,都是使用软件开发工具作为前台工具来开发数据库应用系统。在这些工具中,PowerBuilder是皎皎者。最新版本是2001年推出的8.0版。PowerBuilder具有基于C/S结构、Windows界面、采用面向对象的开发技术和可视化技术等特点。我们通过学习这个软件,既能掌握4GL的开发特点,又能掌握DBMS的原理和方法。本书第4部分介绍PowerBuilder8.0上机实习内容,以大学里“学生选课系统”为例,由浅入深、由表及里地介绍这个软件的使用,使初学者很容易地就能够抓住PowerBuilder的学习重点。上机的要点如下:(1)数据库的基本操作建立数据库;建立表、主键、外键;数据插入、查询、删除和修改的交互操作。(2)建立数据库应用程序建立应用、数据窗口、窗口;书写脚本;运行应用程序。课后答案网www.hackshp.cn 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第2部分各章习题解答及自测题第1章数据库概论1.1基本内容分析1.1.1本章的重要概念(1)DB、DBMS和DBS的定义(2)数据管理技术的发展阶段人工管理阶段、文件系统阶段、数据库系统阶段和高级数据库技术阶段等各阶段的特点。(3)数据描述概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述(1:1,1:N,M:N)。(4)数据模型数据模型的定义,两类数据模型,逻辑模型的形式定义,ER模型,层次模型、网状模型、关系模型和面向对象模型的数据结构以及联系的实现方式。(5)DB的体系结构三级结构,两级映像,两级数据独立性,体系结构各个层次中记录的联系。(6)DBMSDBMS的工作模式、主要功能和模块组成。(7)DBSDBS的组成,DBA,DBS的全局结构,DBS结构的分类。1.1.2本章的重点篇幅课后答案网(1)教材P23的图1.24(四种逻辑数据模型的比较)。(2)教材P25的图1.27(DB的体系结构)。(3)教材P28www.hackshp.cn的图1.29(DBMS的工作模式)。(4)教材P33的图1.31(DBS的全局结构)。1.2教材中习题1的解答1.1名词解释·逻辑数据:指程序员或用户用以操作的数据形式。·物理数据:指存储设备上存储的数据。·联系的元数:与一个联系有关的实体集个数,称为联系的元数。·1:1联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么E1和E2的联系称为“1:1联系”。·1:N联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中一个实体有联系,那么E1和E2的联系是“1:N联系”。·M:N联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1和E2的联系称为“M:N联系”。·数据模型:能表示实体类型及实体间联系的模型称为“数据模型”。·概念数据模型:独立于计算机系统、完全不涉及信息在计算机中的表示、反映企业组织所关心的信息结构的数据模型。·结构数据模型(或逻辑数据模型):与DBMS有关的,直接面向DB的逻辑结构、从计算机观点对数据建模的数据模型。·层次模型:用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型。·网状模型:用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。·关系模型:用二维表格表达实体集的数据模型。·外模式:是用户用到的那部分数据的描述。·概念模式:数据库中全部数据的整体逻辑结构的描述。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!·内模式:DB在物理存储方面的描述。·外模式/模式映象:用于定义外模式和概念模式之间数据结构的对应性。·模式/内模式映象:用于定义概念模式和内模式之间数据结构的对应性。·数据独立性:应用程序和DB的数据结构之间相互独立,不受影响。·物理数据独立性:在DB的物理结构改变时,尽量不影响应用程序。·逻辑数据独立性:在DB的逻辑结构改变时,尽量不影响应用程序。·主语言:编写应用程序的语言(如C一类高级程序设计语言),称为主语言。·DDL:定义DB三级结构的语言,称为DDL。·DML:对DB进行查询和更新操作的语言,称为DML。·过程性语言:用户编程时,不仅需要指出“做什么”,还需要指出“怎么做”的语言。·非过程性语言:用户编程时,只需指出“做什么”,不需要指出“怎么做”的语言。·DD(数据字典):存放三级结构定义的DB,称为DD。·DD系统:管理DD的软件系统,称为DD系统。1.2试解释DB、DBMS和DBS三个概念。答:DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。DBMS是位于用户与OS之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法。DBS是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即采用数据库技术的计算机系统。1.3人工管理阶段和文件系统阶段的数据管理各有哪些特点?答:人工管理阶段主要有四个特点:数据不保存在计算机内;没有专用的软件对数据进行课后答案网管理;只有程序的概念,没有文件的概念;数据面向程序。文件系统阶段主要有五个特点:数据以“文件”形式长期保存;数据的逻辑结构与物理结构有了区别;文件组织已多样化;数据面向应用;对数据的操作以记录为单位。www.hackshp.cn1.4文件系统阶段的数据管理有些什么缺陷?试举例说明。答:主要有三个缺陷:数据冗余;数据不一致性;数据联系弱。例如学校里教务处、财务处、保健处建立的文件中都有学生详细资料,譬如联系电话,家庭住址等。这就是“数据”冗余;如果某个学生搬家,就要修改三个部门文件中的数据,否则会引起同一数据在三个部门中不一致;产生上述问题的原因是这三个部门的文件中数据没有联系。1.5数据管理的数据库阶段产生的标志是哪三件事情?答:进入数据库阶段的标志是20世纪60年代末发生的三件事件:·1968年IBM公司研制的IMS系统是一个典型的层次DBS;·1969年美国CODASYL组织DBTG报告,提出网状DBS的概念;·1970年美国IBM公司的E.F.Codd发表论文,提出关系模型的思想。1.6数据库阶段的数据管理有哪些特点?答:主要有五个特点:采用数据模型表示复杂的数据结构;有较高的数据独立性;为用户提供了方便的用户接口;提供了四个方面的数据控制功能;对数据的操作以数据项为单位,增加了系统的灵活性。1.7与“文件”结构相比,“数据库”结构有些什么不同?答:与文件结构相比,数据库结构主要有下面三点不同:·数据的结构化。文件由记录组成,但各文件之间缺乏联系。数据库中数据在磁盘中仍以文件形式组织,但这些文件之间有着广泛的联系。数据库的逻辑结构用数据模型来描述,整体结构化。数据模型不仅描述数据本身的特点,还要描述数据之间的联系。·数据独立性。文件只有设备独立性,而数据库还具有逻辑独立性和物理独立性。·访问数据的单位。访问文件中的数据,以记录为单位。访问数据库中的数据,以数据 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!项(字段)为单位,增加了系统的灵活性。1.8什么是数据独立性?在数据库中有哪两级独立性?答:数据独立性是指应用程序与DB的数据结构之间相互独立。在物理结构改变时,尽量不影响应用程序,称为物理数据独立性;在逻辑结构改变时,尽量不影响应用程序,称为逻辑数据独立性。1.9分布式数据库系统和面向对象数据库系统各有哪些特点?答:DDBS主要有三个特点:·数据物理上分布在各地,但逻辑上是一个整体;·每个场地既可以执行局部应用,也可以执行全局应用;·各地的计算机由数据通信网络相连接。面向对象数据系统主要有两个特点:·面向对象数据模型能完整地描述现实世界的数据结构,能表达数据间嵌套、递归的联系。·具有面向对象技术的封装性和继承性的特点,提高了软件的可重用性。1.10逻辑记录与物理记录,逻辑文件与物理文件有些什么联系和区别?答:逻辑数据是用户用以操作的数据形式,是抽象的概念化数据。物理数据是实际存放在存储设备上的数据。逻辑数据与物理数据在结构上可以差别很大,需通过两级映象来进行数据传输和格式转换。从以上的解释可以看出,逻辑记录和逻辑文件是用户在程序中使用的记录和文件,而物理记录和物理文件是指磁盘上的记录和文件。逻辑记录、文件与物理记录、文件在结构、组课后答案网成上有很大的差异,而数据管理软件就是通过三级结构两级映象来实现逻辑数据与物理数据之间的转换。1.11试述ER模型、层次模型、网状模型、关系模型和面向对象模型的主要特点。www.hackshp.cn答:ER模型直接表示实体类型及实体间联系,与计算机系统无关,充分反映用户的需求,用户容易理解。层次模型的数据结构为树结构,记录之间联系通过指针实现,查询较快,但DML属于过程化的,操作复杂。网状模型的数据结构为有向图,记录之间联系通过指针实现,查询较快,并且容易实现M:N联系,但DML属于过程化的语言,编程较复杂。关系模型的数据结构为二维表格,容易为初学者理解。记录之间联系通过关键码实现。DML属于非过程化语言,编程较简单。面向对象模型能完整描述现实世界的数据结构,具有丰富的表达能力,能表达嵌套、递归的数据结构。但涉及的知识面较广,用户较难理解,这种模型尚未普及。1.12数据之间联系在各种结构数据模型中是怎么实现的?答:在层次、网状模型中,数据之间的联系通过指针实现的;在关系模型中,数据之间联系通过外键和主键间联系实现的;在面向对象模型中,数据之间嵌套、递归联系通过对象标识符(OID)实现的(见第8章)。1.13DB的三级模式结构描述了什么问题?试详细解释。答:DB的三级模式结构是对数据的三个抽象级别,分别从外部(用户)级、概念级和内部级去观察数据库。外部级是用户使用的局部数据库的逻辑结构,其描述称为外模式。概念级是DB的整体逻辑结构,其描述称为概念模式。内部级是DB的物理结构,其描述称为内模式。1.14试述概念模式在数据库结构中的重要地位。答:数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中,而概念模式提供 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!了连接这两级的相对稳定的中间观点,并使得两级的任何一级的改变都不受另一级的牵制。1.15试叙述用户、DB的三级模式结构、磁盘上的物理文件之间有些什么联系和不同?答:用户、外模式、概念模式、内模式和物理文件中的记录分别称为用户记录、外部记录、概念记录、内部记录和物理记录。用户记录与外部记录的结构是一致的,它们之间只是数据传输问题。而外部记录、概念记录和内部记录之间的结构可能是不一致的,除了数据传输问题,还有格式转换问题。内部记录与物理记录的结构是一致的,它们之间只是数据传输问题。1.16数据独立性与数据联系这两个概念有什么区别?答:数据独立性是指应用程序和DB的数据之间相互独立,不受影响,对系统的要求是“数据独立性要高”,而数据联系是指记录之间的联系,对系统的要求是“数据联系密切”。1.17试述DBMS的工作模式和主要功能。答:DBMS的工作模式有六点:·接受应用程序的数据请求和处理请求;·将用户的数据请求转换成低层指令;·实现对DB的操作;·从对DB的操作中接受查询结果;·对查询结构进行处理;·将处理结果返回给用户。DBMS的主要功能有DB的定义、操纵、保护、维护和数据字典等五个功能。1.18试叙述DBMS对数据库的维护功能。课后答案网答:包括DB的数据载入、转换、转储、DB的改组以及性能监控等功能。这些功能分别由各个实用程序完成。1.19从模块结构观察,DBMS由哪些部分组成?www.hackshp.cn答:DBMS由两大部分组成:查询处理器和存储管理器。(解释略)1.20DBS有哪几部分组成?其中DD有什么作用?答:DBS由DB、硬件、软件和DBA等四个部分组成。(解释略)在DBS中,DD是存储三级结构描述(即元数据)的DB。DBMS的所有工作都要以DD中的元数据为依据,也就是所有工作都要通过DD访问DB。1.21“元数据”与“数据”之间有些什么联系与区别?答:元数据(metadata)是指“数据的数据”,即数据的描述。DB中的元数据是指三级模式结构的详细描述。数据(data),一般是指用户使用的具体值。1.22什么是DBA?DBA应具有什么素质?DBA的职责是什么?答:DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护DB结构的责任。DBA必须具备下列4条素质:熟悉企业全部数据的性质和用途;对所有用户的需求有充分的了解;对系统的性能非常熟悉;兼有系统分析员和运筹学专家的品质和知识。DBA的主要职责有6点:定义模式;定义内模式;与用户的联络;定义安全性规则;定义完整性规则;DB的转储与恢复。1.23试对DBS的全局结构作详细解释。答:从四个方面解释:·数据库用户有四类:DBA,专业用户,应用程序员,终端用户。·DBMS的查询处理器有四个模块:DML编译器,嵌入型DML预编译器,DDL编译器,查询运行核心程序。·DBMS的存储管理器有四个模块:授权和完整性管理器,事务管理器,文件管理器, 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!缓冲区管理器。·磁盘存储器中有五种数据结构:数据文件,数据字典,索引文件,统计数据组织和日志。1.24使用DBS的用户有哪几类?答:(略,见习题1.23)1.25DBMS的查询处理器和存储管理器各有哪些功能?答:(略,见习题1.23)1.26磁盘存储器中有哪五类主要的数据结构?答:(略,见习题1.23)1.27根据计算机的系统结构,DBS可分成哪四种?各有什么特点?答:根据计算机的系统结构,DBS可分成集中式、C/S式、并行式和分布式等四种集中式DBS的特点是单点数据(DB集中在一个场地)单地处理(单个CPU)。C/S式DBS的特点是计算机的功能分放在客户机和服务器上(即功能的分布)。客户机上专门实现前端处理和用户界面。服务器上完成事务处理和数据访问控制。并行式DBS的特点是使用多个CPU和多个磁盘进行并行操作。分布式DBS的特点是多点数据(DB分布在多个场地)多点处理(多个CPU)。数据具有物理分布性和逻辑整体性特点。系统中事务有本地事务(访问本地DB)和全局事务(访问至少两个场地的DB)之分。1.28DBS能产生哪些效益?答:DBS的应用,使计算机应用深入到社会的每个角落。其效益有以下7个方面:灵活性,简易性,面向用户,有效的数据控制,加快应用开发速度,维护方便,标准化。课后答案网1.3自测题1.3.1填空题1.数据管理技术的发展,与www.hackshp.cn__________、__________和__________有密切的联系。2.文件系统中的数据独立性是指__________独立性。3.文件系统的缺陷是:_________、_________和__________。4.就信息处理的方式而言,在文件系统阶段,__________处于主导地位,_________只起着服从程序设计需要的作用;而在数据库方式下,_________占据了中心位置。5.对现实世界进行第一层抽象的模型,称为__________模型;对现实世界进行第二层抽象的模型,称为__________模型。6.层次模型的数据结构是__________结构;网状模型的数据结构是__________结构;关系模型的数据结构是__________结构;面向对象模型的数据结构之间可以__________。7.在层次、网状模型中,用__________导航数据;而在关系模型中,用__________导航数据。8.数据库的三级模式结构是对__________的三个抽象级别。9.DBMS为应用程序运行时开辟的DB系统缓冲区,主要用于__________和__________。10.在数据库技术中,编写应用程序的语言仍然是C一类高级语言,这些语言被称为__________语言。11.在DB的三级模式结构中,数据按__________的描述提供给用户,按__________的描述存储在磁盘中,而__________提供了连接这两级的相对稳定的中间观点,并使得两级中的任何一级的改变都不受另一级的牵制。12.层次、网状的DML属于________语言,而关系型DML属于_________语言。13.DBS中存放三级结构定义的DB称为__________。14.从模块结构考察,DBMS由两大部分组成:__________和__________。15.DBA有两个很重要的工具:__________和__________。16.DBS是________、_________、_________和_________的集合体。17.DBS的全局结构体现了其__________结构。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!18.在DBS中,DB在磁盘上的基本组织形式是_________,这样可以充分利用OS_________的功能。19.根据计算机的系统结构,DBS可分成四种类型:_______、_______、_______和_______。20.数据独立性使得修改DB结构时尽量不影响已有的__________。1.3.2单项选择题(在备选答案中选出一个正确答案)1.在DBS中,DBMS和OS之间关系是[]A.并发运行B.相互调用C.OS调用DBMSD.DBMS调用OS2.在数据库方式下,信息处理中占据中心位置的是[]A.磁盘B.程序C.数据D.内存3.DB的三级体系结构是对_________抽象的三个级别。[]A.存储器B.数据C.程序D.外存4.DB的三级模式结构中最接近外部存储器的是[]A.子模式B.外模式C.概念模式D.内模式5.DBS具有“数据独立性”特点的原因是因为在DBS中[]A.采用磁盘作为外存B.采用三级模式结构C.使用OS来访问数据D.用宿主语言编写应用程序6.在DBS中,“数据独立性”和“数据联系”这两个概念之间联系是[]A.没有必然的联系B.同时成立或不成立C.前者蕴涵后者D.后者蕴涵前者7.数据独立性是指课后答案网[]A.数据之间相互独立B.应用程序与DB的结构之间相互独立C.数据的逻辑结构与物理结构相互独立D.数据与磁盘之间相互独立8.DB中数据导航是指www.hackshp.cn[]A.数据之间联系B.数据之间指针联系C.从已知数据找未知数据的过程D.数据的组合方式9.用户使用DML语句对数据进行操作,实际上操作的是[]A.数据库的记录B.内模式的内部记录C.外模式的外部记录D.数据库的内部记录值10.对DB中数据的操作分成两大类:[]A.查询和更新B.检索和修改C.查询和修改D.插入和修改1.3.3问答题1.试对数据管理技术三个发展阶段作一详细的比较。2.在用户访问数据库中数据的过程中,DBMS起着什么作用?3.什么是“DB的系统缓冲区”?4.DBS中有哪些系统软件?1.4自测题答案1.4.1填空题答案1.硬件软件计算机应用2.设备3.数据冗余数据不一致数据联系弱4.程序设计数据数据5.概念结构(或逻辑)6.树有向图二维表嵌套和递归7.指针关键码(或外键与主键)8.数据9.数据的传输格式的转换10.宿主语言(或主语言,hostlanguage)11.外模式内模式概念模式12.过程性非过程性13.数据字典(DD)14.查询处理器存储管理器 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!15.一系列实用程序DD系统16.数据库硬件软件DBA17.模块功能18.文件管理外存(或文件系统)19.集中式C/S式并行式分布式20.应用程序1.4.2单项选择题答案1.D2.C3.B4.D5.B6.A7.B8.C9.C10.A1.4.3问答题答案1.答:数据管理技术三个发展阶段的详细比较见图1.1。人工管理阶段文件系统阶段数据库阶段时间20世纪课后答案网50年代60年代70年代环外存纸带、卡片、磁带磁盘大容量磁盘境软件汇编语言3GL、OSDBMS计算机应用www.hackshp.cn科学计算进入企业管理企业管理数据的管理者用户(程序员)文件系统DBS数据的针对者面向某一应用程序面向某一应用面向现实世界数据的共享程度无共享共享性差、冗余度大共享性高、冗余度小数据独立性无独立性,独立性差,有高度的物理独立性,数据完全依赖于程序有设备独立性一定的逻辑独立性数据的结构化无结构记录内有结构,整体结构化,整体结构性差用数据模型描述图1.12.答:在用户访问数据的过程中,DBMS起着核心的作用,实现“数据三级结构转换”的工作。3.答:在应用程序运行时,DBMS在内存为其开辟一个程序工作区,称为“DB的系统缓冲区”。这个工作区主要用于“数据的传输和格式的转换”。4.答:DBS应包括DBMS、OS、宿主语言和应用开发支撑软件等四部分系统软件。DBMS是管理DB的软件系统,但对硬盘的管理是由OS实现的,因此DBS中应包括DBMS和OS这两个主要的系统软件。编写应用程序仍然是用C一类高级程序设计语言,这些语言在DBS中称为宿主语言。为提高应用程序开发效率,需要像Dephi、PowerBuilder一类软件开发工具(即应用开发支撑软件)开发应用程序。这些软件属于4GL范畴,可使应用系统开发生产率提高20~100倍。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第2章关系模型和关系运算理论2.1基本内容分析2.1.1本章重要概念(1)基本概念关系模型,关键码(主键和外键),关系的定义和性质,三类完整性规则,ER模型到关系模型的转换规则,过程性语言与非过程性语言。(2)关系代数五个基本操作,四个组合操作,七个扩充操作。(3)关系演算元组关系演算和域关系演算的原子公式、公式的定义。关系演算的安全性和等价性。(4)关系代数表达式的优化关系代数表达式的等价及等价转换规则,启化式优化算法。(5)关系逻辑谓词、原子、规则和查询,规则的安全性,用规则模拟关系代数表达式。2.1.2本章的重点篇幅(1)教材中P56的例2.7(关系代数表达式的应用实例)。(2)教材中P63的例2.19(元组表达式的应用实例)。(3)教材中P81的例2.36(关系逻辑的规则表示)。2.1.3重要内容分析1.关系代数表达式的运用技巧(1)一般规则课后答案网·对于只涉及到选择、投影、联接的查询可用下列表达式表示:π…(σwww.hackshp.cn…(R×S))或者π…(σ…(R⋈S))·对于否定的操作,一般要用差操作表示,例如“检索不学C2课的学生姓名”。·对于检索具有“全部”特征的操作,一般要用除法操作表示,例如“检索学习全部课程的学生姓名”。(2)“检索不学C2课的学生姓名”,决不能用下式表示:πSNAME,AGE(σC#≠"C2"(S⋈SC))一定要用“差”的形式:πSNAME,AGE(S)-πSNAME,AGE(σC#="C2"(S⋈SC))(3)“检索学习全部课程的学生学号”,要用πS#,C#(SC)÷πC#(C)表示,而不能写成πS#(SC÷πC#(C))形式。这是因为一个学生学的课程的成绩可能是不一样的。(4)对于教材P56的例2.7的8个查询语句的关系代数表达式,考生一定要掌握,这是基础。2.非过程性语言与过程性语言的区别编程时必须指出“干什么”及“怎么干”的语言,称为过程性语言;编程时只须指出“干什么”,不必指出“怎么干”的语言,称为非过程性语言。两种语言的主要区别见图2.1。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!过程性语言非过程性语言编程时,必须指出“怎么干”编程时,不必指出“怎么干”由用户进行数据导航由系统进行数据导航单记录处理方式集合处理方式属于3GL范畴属于4GL范畴C语言,层次、网状DML等关系DML,软件开发工具等图2.12.2教材中习题2的解答2.1名词解释·关系模型:用二维表格表示实体集,外键和主键表示实体间联系的数据模型,称为关系模型。·关系模式:是对关系的描述,包括模式名、诸属性名、值域名和模式的主键。·关系实例:关系模式具体的值,称为关系实例。·属性:即字段或数据项,与二维表中的列对应。属性个数,称为元数(arity)。·域:属性的取值范围,称为域。·元组:即记录,与二维表中的行对应。元组个数,称为基数(cardinality)。·超键:能惟一标识元组的属性或属性集,称为关系的超键。·候选键:不含有多余属性的超键,称为候选键。·主键:正在使用的、用于标识元组的候选键,称为主键。·外键:属性集F是模式S的主键,在模式R中也出现,那么称F是模式R的外键。·实体完整性规则:实体的主键值不允许是空值。课后答案网·参照完整性规则:依赖关系中的外键值或者为空值,或者是相应参照关系中某个主键码。·过程性语言:编程时必须给出获得结果的操作步骤,即指出“干什么”及“怎么干www.hackshp.cn”的语言。·非过程性语言:编程时,只需指出需要什么信息,不必给出具体的操作步骤,即只要指出“干什么”,不必指出“怎么干”的语言。·无限关系:指元组个数为无穷多个的关系。·无穷验证:验证公式真假时需要进行无限次验证。�2.2在关系模型中,对关系作了哪些规范性限制?答:对关系作了一下四个限制:属性值不可分解;没有重复元组;没有行序;使用时有列序。2.3为什么关系中的元组没有先后顺序,且不允许有重复元组?答:由于关系定义为元组的集合,而集合中的元素是没有顺序的,因此关系中的元组也就没有先后的顺序(对用户而言)。这样既能减少逻辑排序,又便于在关系数据库中引进集合论的理论。每个关系模式都有一个主键,在关系中主键值是不允许重复的。如果关系中有重复元组,那么其主键值肯定相等,起不了惟一标识作用,因此关系中不允许有重复元组。�2.4外键值何时允许空?何时不允许空?答:在依赖表中,当外键是主键的组成部分时,外键值不允许空;否则外键值允许空。2.5笛卡儿积、等值联接、自然联接三者之间有什么区别?答:笛卡尔积是一个基本操作,而等值联接和自然联接是组合操作。设关系R的元数为r,元组个数为m;关系S的元数为s,元组个数为n。那么,R×S的元数为r+s,元组个数为m×n;R⋈S的元数也是r+s,但元组个数小于等于m×n;iθj 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!R⋈S的元数小于等于r+s,元组个数也小于等于m×n;2.6设有关系R和S:RABCSABC367345257723723443计算R∪S,R-S,R∩S,R×S,π3,2(S),σB<’5’(R),R2<2S,RS。解:R∪SABCR-SABCR∩SABC367367723257257723443443345R×SR.AR.BR.CS.AS.BS.Cπ3,2(S)CB3673455436772332257课后答案网3452577237233457237234www.hackshp.cn43345443723σB<’5’(R)ABCR⋈SR.AR.BR.CS.AS.BS.C2<2723723345443R⋈SABC723�2.7设有关系R和S:�RABSBC�abbc�cbea�debd�计算R⋈S,R⋈S,σA=C(R×S),S⋉R。Bb2))}�解:①π1(σ2=′17′(R))�②R⋈S�③π1(R)∪(S÷π2(S))�④π1(σ1=3∧2=5∧4>6(S×R×R))2.16设两个关系R(A,B)和S(A,C)。用null表示空值,分别写出等价于下列表达式的元组关系演算表达式:①RS;②RS;③RS。解:①RS:{t|(∃u)(∃v)(R(u)∧S(v)∧u[1]=v[1]∧t[1]=u[1]∧t[2]=u[2]∧t[3]=v[2])∨(∃v)(∀u)(S(v)∧R(u)∧v[1]≠u[1]∧t[1]=null∧t[2]=v[1]∧t[3]=v[2])}②RS:{t|(∃u)(∃v)(R(u)∧S(v)∧u[1]=v[1]∧t[1]=u[1]∧t[2]=u[2]∧t[3]=v[2])∨(∃u)(∀v)(R(u)∧S(v)∧u[1]≠v[1]∧t[1]=u[1]∧t[2]=u[2]∧t[3]=null)∨(∃v)(∀u)(S(v)∧R(u)∧v[1]≠u[1]∧t[1]=null∧t[2]=v[1]∧t[3]=v[2])}③RS:{t|(∃u)(∃v)(R(u)∧S(v)∧u[1]=v[1]∧t[1]=u[1]∧t[2]=u[2]∧t[3]=v[2])∨(∃u)(∀v)(R(u)课后答案网∧S(v)∧u[1]≠v[1]∧t[1]=u[1]∧t[2]=u[2]∧t[3]=null)2.17设有三个关系:S(S#,SNAME,AGE,SEX)SC(S#,C#,CNAME)www.hackshp.cnC(C#,CNAME,TEACHER)试用关系代数表达式表示下列查询语句:①检索LIU老师所授课程的课程号和课程名。②检索年龄大于23岁的男学生的学号和姓名。③检索学号为S3学生所学课程的课程名与任课教师名。④检索至少选修LIU老师所授课程中一门课的女学生姓名。⑤检索WANG同学不学的课程的课程号。⑥检索至少选修两门课的学生学号。⑦检索全部学生都选修的课程的课程号与课程名。⑧检索选修课程包含LIU老师所授全部课程的学生学号。解:⑴πC#,CNAME(σTNAME="LIU"(C))⑵πS#,SNAME(σAGE>"23"∧SEX="M"(SC))⑶πCNAME,TNAME(σS#="S3"(SC⋈C))⑷πSNAME(σSEX="F"∧TNAME="LIU"(S⋈SC⋈C))⑸πC#(C)-πC#(σSNAME="WANG"(S⋈SC))⑹π1(σ1=4∧2≠5(SC×SC))⑺πC#,CNAME(C⋈(πS#,C#(SC)÷πS#(S)))⑻πS#,C#(SC)÷πC#(σTNAME="LIU"(C)) 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!2.18试用元组表达式表示第2.17题中各个查询语句。解:⑴{t|(∃u)(C(u)∧u[3]="LIU"∧t[1]=u[1]∧t[2]=u[2])}⑵{t|(∃u)(S(u)∧u[3]>23∧u[4]="M"∧t[1]=u[1]∧t[2]=u[2])}⑶{t|(∃u)(∃v)(SC(u)∧C(v)∧u[1]="S3"∧u[2]=v[1]∧t[1]=v[2]∧t[2]=v[3])}(此处自然联接条件u[2]=v[1]不要遗漏)⑷{t|(∃u)(∃v)(∃w)(S(u)∧SC(v)∧C(w)∧w[3]="LIU"∧u[4]="F"∧u[1]=v[1]∧v[2]=w[1]∧t[1]=u[2])}(此处自然联接条件u[1]=v[1]和v[2]=w[1]不要遗漏)⑸{t|(∃u)(∃v)(∀w)(C(u)∧S(v)∧SC(w)∧v[2]="WANG"∧(w[1]=v[1]=>w[2]≠u[1])∧t[1]=u[1])}其意思是:在关系C中存在一门课程,在关系S中存在一个WANG同学,在关系SC中要求不存在WANG同学学这门课程的元组。也就是要求在关系SC中,WANG同学学的课程都不是这门课程(因此在元组表达式中要求全称量词∀)。⑹{t|(∃u)(∃v)(SC(u)∧SC(v)∧u[1]=v[1]∧u[2]≠v[2]∧t[1]=u[1])}⑺{t|(∃u)(∀v)(∃w)(C(u)∧S(v)∧SC(w)∧w[2]=u[1]∧w[1]=v[1]∧t[1]=u[1]∧t[2]=u[2])}其意思是:在关系C中找一课程号,对于关系S中每一个学生,都应该学这门课(即在关系SC中存在这个学生选修这门课的元组)。⑻{t|(∃u)(SC(u)∧(∀v)(C(v)∧(v[3]="LIU"=>(∃w)(SC(w)∧w[1]=u[1]∧w[2]=v[1])))∧t[1]=u[1])}其意思是:在关系SC课后答案网中找一个学号,对于关系C中LIU老师的每一门课,这个学生都学了(即在关系SC中存在这个学生选修这门课的元组)。由于在括号中出现“=>”符号(包含有“∨”的语义),因此括号中的量词(∃w)就不能随意往左边提了。www.hackshp.cn2.19试用域表达式表示第2.17题的各个查询语句。解:①{t1t2|(∃u1u2u3)(C(u1u2u3)∧u3="LIU"∧t1=u1∧t2=u2)}再简化成:{t1t2|C(t1t2"LIU")}此处(∃u1u2u3)是(∃u1)(∃u2)(∃u3)的简写,下同。②{t1t2|(∃u1u2u3u4)(S(u1u2u3u4)∧u3>"23"∧u4="M"∧t1=u1∧t2=u2)}再简化成:{t1t2|(∃u3)(S(t1t2u3"M")∧u3>"23")}(以下各题的化简略)③{t1t2|(∃u1u2u3)(∃v1v2v3)(SC(u1u2u3)∧C(v1v2v3)∧u1="s3"∧u2=v1∧t1=v2∧t2=v3)}④{t1|(∃u1u2u3u4)(∃v1v2v3)(∃w1w2w3)(S(u1u2u3u4)∧SC(v1v2v3)∧C(w1w2w3)∧w3="LIU"∧u4="F"∧u1=v1∧v2=w1∧t2=u2)}(⑤~⑧题的域表达式,读者可以很容易写出,此处略)2.20设关系R和S的属性集相同,W是R的属性集的子集,试说明下列等式是否成立,并指出它们的正确表示:①πW(R-S)=πW(R)-πW(S)②πW(R∩S)=πW(R)∩πW(S)③πW(R∪S)=πW(R)∪πW(S)答:①πW(R-S)=πW(R)-πW(S)是一个错误的式子。譬如R只有一个元组(1,2,3),S只有一个元组(1,2,4),W为R、S中前两个属性。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!显然R和S不满足上式。正确的式子应该是πW(R-S)=πW(R)-S。②πW(R∩S)=πW(R)∩πW(S)是一个错误的式子。譬如R只有一个元组(1,2,3),S只有一个元组(1,2,4),W为R、S中前两个属性。显然R和S不满足上式。此时不可以把π操作往里移。③πW(R∪S)=πW(R)∪πW(S)是一个正确的式子。2.21在教学数据库的关系S、SC、C中,用户有一查询语句:检索女同学选修课程的课程名和任课教师名。①试写出该查询的关系代数表达式。②画出查询表达式的语法树。③使用启发式优化算法,对语法树进行优化,并画出优化后的语法树。解:①关系代数表达式为:πCNAME,TEACHER(σSEX=’F’(S⋈SC⋈C))②上述关系代数表达式的语法树如图2.2所示。πCNAME,TEACHE课后答案网σSEX=’F’www.hackshp.cn⋈⋈CSSC图2.2③上述的关系代数表达式为:πCNAME,TEACHER(σSEX=’F’(πL(σS.S#=SC.S#∧SC.C#=C.C#((S×SC)×C))))此处L为S、SC、C中全部属性(公共属性只取一次)。设L1=πS#(σSEX="F"(S))L2=πS#,C#(SC)则优化的关系代数表达式为:πCNAME,TEACHER(σSC.C#=C.C#(πSC.C#(σS.S#=SC.S#(L1×L2))×C))优化后的语法树如图2.3所示。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!πCNAME,TEACHERσSC.C#=C.C#×πCSC.C#σS.S#=SC.S#×ππS#S#,C#σSCSEX="F"课后答案网Swww.hackshp.cn图2.3��2.22为什么要对关系代数表达式进行优化?有哪三条启发式规则?对优化起什么作用?答:关系代数表达式由关系代数操作组合而成。操作中,以笛卡尔积和联接操作最费时,并生成大量的中间结果。如果直接按表达式书写的顺序执行,必将花费很多时间,并生成大量的中间结果,效率较低。在执行前,由DBMS的查询子系统先对关系代数表达式进行优化,尽可能先执行选择和投影操作,以便减少中间结果,并节省时间。优化工作是由DBMS做的,用户书写时不必关心优化一事,仍以简练的形式书写。�三条启发式规则是:尽可能早执行选择操作;尽可能早执行投影操作;把笛卡尔积与附近的一连串选择和投影合并起来做。�使用这三条规则,可以使计算时尽可能减少中间关系的数据量。�2.23试解释关系逻辑中的名词:�·谓词:在关系逻辑中,每一个谓词符号表示了一个关系,但在规则中谓词符号类似于关系演算中的公式。�·外延谓词:其关系存储在数据库中的谓词称为“外延谓词”。�·内涵谓词:由逻辑规则定义的谓词称为“内涵谓词”。·外延数据库:用“外延数据库”的缩写EDB来引用外延谓词或相应关系。·内涵数据库:用“内涵数据库”的缩写IDB来引用内涵谓词或相应关系。�·原子:关系逻辑中的基本成分,称为原子。原子有关系原子和算术原子两种。�·关系原子:关系原子是一个谓词符号,带一个参数表,每个参数可以是变量或常量。用大写字母表示谓词符号,用小写字母表示变量,常量用引号括起来。�·算术原子:算术原子是算术比较表达式。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!·规则:规则是形为W←P1∧P2∧…∧Pn的式子,规则有三部分组成:①一个称为头部(head)的关系原子;②符号“←”,通常读作“if”;③包括一个或多个原子的体(body),称为子目标(subgoal),它可能是关系原子,也可能是算术原子。各子目标用“与”运算符∧连接,并且子目标前面可以有“非”运算符┐,也可以没有。�·查询:关系逻辑中的查询是一个或多个规则的聚集,规则之间的顺序无关紧要。�2.24假设R(A,B,C),S(A,B,C)和T(A,B,C)为三个关系。试对下列关系代数表达式写出关系逻辑的规则或规则集:�①R∪S②R∩S③R-S④(R∪S)-T�⑤(R-S)∩(R-T)⑥πa,b(R)�解:①R∪S:W(a,b,c)←R(a,b,c)�W(a,b,c)←S(a,b,c)�②R∩S:W(a,b,c)←R(a,b,c)∧S(a,b,c)�③R-S:W(a,b,c)←R(a,b,c)∧┐S(a,b,c)�④(R∪S)-T:W(a,b,c)←R(a,b,c)∧┐T(a,b,c)�W(a,b,c)←S(a,b,c)∧┐T(a,b,c)�⑤(R-S)∩(R-T):W(a,b,c)←R(a,b,c)∧┐S(a,b,c)∧┐T(a,b,c)课后答案网�⑥πa,b(R):W(a,b)←R(a,b,c)�2.25假设R(X,Y,www.hackshp.cnZ)为一个关系,试写出下列关系代数表达式σF(R)的关系逻辑规则。其中F为以下条件:�①x=y②xy)⑤┐((xy)∧yy),即x≥y∧x≤y,也就是x=y,此时关系选择规则为:�W(x,y,z)←R(x,y,z)∧x=y�⑤F为┐((xy)∧y23③检索学号为S3学生所学课程的课程名与任课教师名。www.hackshp.cnW(a,b)←SC("S3",e,f)∧C(e,a,b)④检索至少选修LIU老师所授课程中一门课的女学生姓名。W(f)←S(e,f,g,"F")∧SC(e,h,i)∧C(h,j,"LIU")⑤检索WANG同学不学的课程的课程号。W(a)←C(a,b,d)∧S(e,"WANG",f,g)∧┐SC(e,a,h)⑥检索至少选修两门课的学生学号。W(a)←SC(a,e,f)∧SC(a,g,h)∧e≠g⑦检索全部学生都选修的课程的课程号与课程名。W(a,b)←C(a,b,e)∧┐S(f,g,h,i)∧┐SC(f,a,j)⑧检索选修课程包含LIU老师所授全部课程的学生学号。W(a)←SC(a,b,e)∧┐C(f,g,"LIU")∧┐SC(a,f,h)�2.29试撰写短文,对关系运算的三种形式作一评估。�答:短文应提到以下几点:�(1)三种关系运算的理论基础。�(2)三种关系运算的等价性。�关系代数和关系演算在关系代数的五个基本操作的基础上是等价的。�关系代数和关系逻辑在表达功能方面不相适应,每个都能表达另一个不能表达的内容。在作了严格的限制后,才能等价。但关系逻辑比关系代数更富于表现力。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!�(3)三种关系运算非过程性的强弱不一样。2.3自测题2.3.1填空题1.关系中没有行序的原因是___________。2.3.关系模型的基本数据结构是___________,其数据库存储时的基本组织方式是___________。4.实体完整性规则是对___________的约束,参照完整性规则是对___________的约束。5.关系代数的理论基础是___________,关系演算的理论基础是___________,关系逻辑的理论基础是___________。6.关系代数的基本操作是___________。7.安全运算是指不产生___________和___________的运算。8.等式RS=R×S成立的条件是___________。9.关系的并、差、交操作,要求两个关系具有___________。10.一般,在关系代数运算中,当查询涉及到“否定”时,就要用到___________操作;当查询涉及到“全部值”时,就要用到___________操作。11.如果关系R和S做自然联接时,只把R中原该舍去的元组放到新关系中,那么这种操作称为___________操作。12.等式πL(σF(E))=σF(πL(E))成立的条件是___________。13.等式πL1(πL2(E))课后答案网=πL1(E)成立的条件是___________。14.等式σF(E1×E2)=E1×σF(E2)成立的条件是___________。15.等式σF(E1⋈www.hackshp.cnE2)=σF(E1)⋈σF(E2)成立的条件是___________。16.关系逻辑中,外延谓词是指_______________,内涵谓词是指_______________。17.关系逻辑中的“安全条件”是指____________________。18.设有关系R(A,B,C),那么与规则W(c,a)←R(a,b,c)等价的关系代数操作是____________。19.设有关系R(A,B,C),那么与规则W(a,b)←R(a,b,"18")∧b≥"15"等价的关系代数操作是____________。20.设有关系R(A,B,C)和S(B,C,D),那么与规则W(a,d)←R(a,b,c)∧S(b,c,d)等价的关系代数操作是____________。2.3.2单项选择题(在备选答案中选出一个正确答案)1.在关系中,“元数”(arity)是指[]A.行数B.元组个数C.关系个数D.列数2.在关系中,“基数”(cardinality)是指[]A.行数B.属性个数C.关系个数D.列数3.由系统进行数据导航的语言称为[]A.第三代语言B.高级程序设计语言C.过程性语言D.非过程性语言4.设关系R、S、W各有10个元组,那么这三个关系的自然联接的元组个数为[]A.10B.30C.1000D.不确定(与计算结果有关)5.设W=RS,且W、R、S的元组个数分别为p、m、n,那么三者之间满足[]iθjA.p<(m+n)B.p≤(m+n)C.p<(m×n)D.p≤(m×n) 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!6.设关系R和S的结构相同,且各有10个元组,那么这两个关系的并操作结果的元组个数为[]A.10B.小于等于10C.20D.小于等于207.设关系R和S的属性个数分别为2和3,那么RS等价于[]1<2A.σ1<2(R×S)B.σ1<4(R×S)C.σ1<2(RS)D.σ1<4(RS)8.如果两个关系没有公共属性,那么其自然联接操作[]A.转化为笛卡尔积操作B.转化为联接操作C.转化为外部并操作D.结果为空关系9.下列式子中,不正确的是[]A.R-S=R-(R∩S)B.R=(R-S)∪(R∩S)C.R∩S=S-(S-R)D.R∩S=S-(R-S)10.设关系R和S都是二元关系,那么与元组表达式{t|(∃u)(∃v)(R(u)∧S(v)∧u[1]=v[1]∧t[1]=v[1]∧t[2]=v[2])}等价的关系代数表达式是[]A.π3,4(R⋈S)B.π2,3(R⋈S)1=3C.π3,4(R⋈S)D.π3,4(σ1=1(R×S))1=1课后答案网11.在元组关系演算中,与公式P1∧P2等价的公式是[]A.┐(P1∨P2)B.┐P1∨┐P2C.┐(┐P1∧┐www.hackshp.cnP2)D.┐(┐P1∨┐P2)12.在元组关系演算中,与公式(∀s)(P1(s))等价的公式是[]A.┐(∃s)(P1(s))B.(∃s)(┐P1(s))C.┐(∀s)(┐P1(s))D.┐(∃s)(┐P1(s))13.在元组关系演算中,与公式P1=>P2等价的公式是[]A.┐P1∨P2B.┐P2∨P1C.┐P1∧P2D.┐P2∧P214.与域演算表达式{ab|R(ab)∧R(ba)}不等价的关系代数表达式是[]A.π1,2(σ1=4∧2=3(R×R))B.π1,2(R⋈R)1=2∧2=1C.R∩π2,1(R)D.σ1=2(R)15.设R和S都是二元关系,那么与元组演算表达式{t|(∃u)(∃v)(R(u)∧S(v)∧u[2]=v[2]∧t[1]=u[1]∧t[2]=v[1])}等价的关系代数表达式是[]A.π1,3(σ2=4(R⋈S))B.π1,3(σ2=2(R×S))C.π1,3(R⋈S)D.π1,3(R⋈S)2=42=216.设有关系R(A,B,C)和S(B,C,D),那么与R⋈S等价的关系代数表达式是[]A.σ3=5(R⋈S)B.π1,2,3,6(σ3=5(R⋈S))2=12=1 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!C.σ3=5∧2=4(R×S))D.π1,2,3,6(σ3=2∧2=1(R×S))17.设R和S都是二元关系,那么与元组演算表达式{t|R(t)∧(∃u)(S(u)∧u[1]≠t[2])}不等价的关系代数表达式是[]A.π1,2(σ2≠3(R×S))B.π1,2(σ2≠1(R×S))C.π1,2(R⋈S)D.π3,4(σ1≠4(S×R))2≠118.在关系代数表达式的查询优化中,不正确的叙述是[]A.尽可能早地执行联接B.尽可能早地执行选择C.尽可能早地执行投影D.把笛卡尔积和随后的选择合并成联接运算2.3.3计算题1.设有关系R和S:RABCSBCD642449653425568526538课后答案网684试计算:R⋈S,R⋈S,R⋈S,R⋈S。2=13=21>32.设有关系R和S:RABwww.hackshp.cnCSDEF246369321345744447试计算下面四个元组表达式的值:R1={t|R(t)∧t[2]<3}R2={t|(∃u)(R(t)∧S(u)∧t[1]w)}R3={xyz|(∃u)(∀v)(R(xyz)∧S(uyv)∧x23ANDSEX=’M’;③SELECTCNAME,TEACHERFROMSC,CWHERESC.C#=C.C#ANDS#=’S3’;④SELECTSNAME(联接查询方式)FROMS,SC,CWHERES.S#=SC.S#ANDSC.C#=C.C#ANDSEX=’F’ANDTNAME=’LIU’;或:SELECTSNAME(嵌套查询方式)FROMSWHERESEX=’F’ANDS#IN(SELECTS#FROMSCWHEREC#IN(SELECTC#FROMCWHERETNAME=’LIU’));或:SELECTSNAME(存在量词方式)FROMSWHERESEX=课后答案网’F’ANDEXISTS(SELECT*FROMSCwww.hackshp.cnWHERESC.S#=S.S#ANDEXISTS(SELECT*FROMCWHEREC.C#=SC.C#ANDTNAME=’LIU’));⑤SELECTC#FROMCWHERENOTEXISTS(SELECT*FROMS,SCWHERES.S#=SC.S#ANDSC.C#=C.C#ANDSNAME=’WANG’);⑥SELECTDISTINCTX.S#FROMSCASX,SCASYWHEREX.S#=Y.S#ANDX.C#!=Y.C#;⑦SELECTC#,CNAMEFROMCWHERENOTEXISTS(SELECT*FROMSWHERENOTEXISTS(SELECT*FROMSC 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!WHERES#=S.S#ANDC#=C.C#));在1974年的SYSTEMR系统中,曾使用过“集合包含”的语法,即(集合1)CONTAINS(集合2)用这种语法也能写出本题的SELECT语句,即:SELECTC#,CNAMEFROMCWHERE(SELECTS#FROMSCWHEREC#=C.C#)CONTAINS(SELECTS#FROMS);由于判断“(集合1)CONTAINS(集合2)”与“NOTEXISTS((集合2)EXCEPT(集合1))”是等价的,因此本题的SELECT语句也能这样写:SELECTC#,CNAMEFROMCWHERENOTEXISTS((SELECTS#FROMS)EXCEPT(SELECTS#FROMSCWHEREC#=C.C#));⑧SELECTDISTINCTS#FROMSCASXWHERENOTEXISTS(SELECT课后答案网*FROMCWHERETNAME=’LIU’www.hackshp.cnANDNOTEXISTS(SELECT*FROMSCASYWHEREY.S#=X.S#ANDY.C#=C.C#));与⑦类似,本题的SELECT语句也能这样写:SELECTDISTINCTS#FROMSCXWHERENOTEXISTS((SELECTC#FROMCWHERETEACHER=’LIU’)EXCEPT(SELECTC#FROMSCYWHEREY.S#=X.S#));3.3对于第3.2题中的8个查询语句,试给出SELECT语句的图示形式。解:为了说明问题,这里先用高级语言的算法形式表示其执行过程,再给出图示形式。下面给出④、⑤、⑦、⑧的算法及图示形式。④如果把三个关系S、SC、C看成三个文件,那么可以看出这个查询语句的SELECT语句实际上是一个三重循环。从而可得这个查询的算法形式如下:for关系S的每个元组do{which:=false;ifS.SEX=’F’thenfor关系SC的每个元组,且NOTwhichdoifSC.S#=S.S#thenfor关系C的每个元组,且NOTwhichdoifC.C#=SC.C#,且TEACHER=’LIU’then 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!{print(S.SNAME);which:=true;}};这个算法可以用图3.1表示。SS#SNAMEAGESEXSCS#C#GRADECC#CNAMETEACHER_XP.F_X_Y_YLIU图3.1⑤for关系S的每个元组do{ifS.SNAME=’WANG’thenfor关系C的每个元组do{which:=false;for关系SC的每个元组,且NOTwhichdoifSC.S#=S.S#,且SC.C#=C.C#thenwhich:=true;ifNOTwhichthenprint(S.SNAME);};这个算法可以用图3.2表示。图中“┐”表示“NOTEXISTS”,即“不存在满足此条件的元组”SS#SNAMEAGESEXCC#CNAMETEACHERSCS#C#GRADE_XWANGP._Y┐_X_Y图3.2⑦for关系C的每个元组do{which1:=false;课后答案网for关系S的每个元组,且NOTwhich1do{which2:=false;for关系SC的每个元组,且NOTwhich2www.hackshp.cndoifSC.S#=S.S#,且SC.C#=C.C#thenwhich2:=true;ifNOTwhich2thenwhich1:=true;};ifNOTwhich1thenprint(C.C#,C.CNAME);};这个算法可以用图3.3表示。CC#CNAMETEACHERSS#SNAMEAGESEXSCS#C#GRADEP._XP.┐_Y┐_Y_X图3.3⑧for关系SC的每个元组xdo{which1:=false;for关系C的每个元组y,且NOTwhich1do{ify.TEACHER=’LIU’then{which2:=false;for关系SC的每个元组z,且NOTwhich2doifz.S#=x.S#,且z.C#=y.C#thenwhich2:=true;ifNOTwhich2thenwhich1:=true;};ifNOTwhich1thenprint(x.S#);}}; 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!这个算法可以用图3.4表示。SCS#C#GRADECC#CNAMETEACHERSCS#C#GRADEP._XP.┐_YLIU┐_X_Y图3.43.4设有两个基本表R(A,B,C)和S(A,B,C),试用SQL查询语句表达下列关系代数表达式:①R∪S②R∩S③R-S④R×S⑤πA,B(R)πB,C(S)⑥π1,6(σ3=4(R×S)⑦π1,2,3=33(RS)⑧R÷πC(S)解:①(SELECT*FROMR)课UNION(SELECT*FROMS);②(SELECT*FROMR)INTERSECT(SELECT*FROMS);③(SELECT*FROMR)MINUS(SELECT*FROMS);④SELECT*FROMR,S;课后答案网⑤SELECTR.A,R.B,S.CFROMR,SWHERER.B=S.B;www.hackshp.cn⑥SELECTR.A,S.CFROMR,SWHERER.C=S.A;⑦SELECTR.*(R.*表示R中全部属性)FROMR,SWHERER.C=S.C;⑧R÷πC(S)的元组表达式如下:{t|(∃u)(∀v)(∃w)(R(u)∧S(v)∧R(w)∧w[1]=u[1]∧w[2]=u[2]∧w[3]=v[3]∧t[1]=u[1]∧t[2]=u[2])}据此,可写出SELECT语句:SELECTA,BFROMRRXWHERENOTEXISTS(SELECT*FROMSWHERENOTEXISTS(SELECT*FROMRRYWHERERY.A=RX.AANDRY.B=RX.BANDRY.C=S.C));3.5设有两个关系R(A,B)和S(A,C),试用SQL查询语句表示下列域表达式:①{a|(∃b)(R(ab)∧b=‘17’)} 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!②{abc|R(ab)∧S(ac)}③{a|(∃c)(∃b1)(∃b2)(S(ac)∧R(ab1)∧R(cb2)∧b1>b2)}解:①SELECTAFROMRWHEREB=17;②SELECTR.A,R.B,S.CFROMR,SWHERER.A=S.A;③SELECTS.AFROMS,RRX,RRYWHERES.A=RX.AANDRX.B>RY.B;3.6试叙述SQL语言的关系代数特点和元组演算特点。答:SQL的关系代数特点如下:①有关系代数运算的并、交、差、自然联接等运算符;②FROM子句体现了笛卡尔积操作,WHERE子句体现了选择操作,SELECT子句体现了投影操作。SQL的元组演算特点如下:①FROM子句中的基本表名应视为“元组变量”,属性名应视为“元组分量”;②有存在量词EXISTS符号。3.7试用SQL查询语句表达下列对3.2题中三个基本表S、SC、C的查询:①在表C中统计开设课程的教师人数。课后答案网②求选修C4课程的女学生的平均年龄。③求LIU老师所授课程的每门课程的平均成绩。④统计每个学生选修课程的门数(超过5门的学生才统计)。要求输出学生学号和选修门www.hackshp.cn数,查询结果按门数降序排列,若门数相同,按学号升序排列。⑤检索学号比WANG同学大,而年龄比他小的学生姓名。⑥在表SC中检索成绩为空值的学生学号和课程号。⑦检索姓名以L打头的所有学生的姓名和年龄。⑧求年龄大于女同学平均年龄的男学生姓名和年龄。⑨求年龄大于所有女同学年龄的男学生姓名和年龄。解:①SELECTCOUNT(DISTINCTTEACHER)FROMC;②SELECTAVG(AGE)FROMS,SCWHERES.S#=SC.S#ANDC#=’C4’ANDSEX=’F’;③SELECTC.C#,AVG(GRADE)FROMSC,CWHERESC.C#=C.C#ANDTEACHER=‘LIU’GROUPBYC.C#;④SELECTS#,COUNT(C#)FROMSCGROUPBYS#HAVINGCOUNT(*)>5ORDERBY2DESC,1;⑤SELECTSNAMEFROMS 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!WHERES#>ALL(SELECTS#FROMSWHERESNAME=’WANG’)ANDAGE(SELECTAVG(AGE)FROMSWHERESEX=’F’);⑨SELECTSNAME,AGEFROMSWHERESEX=’M’课后答案网ANDAGE>ALL(SELECTAGEFROMSwww.hackshp.cnWHERESEX=’F’);3.8对于下面的关系R和S,试求出下列各种联接操作的执行结果:①RNATURALINNERJOINS②RNATURALRIGHTOUTERJOINS③RRIGHTOUTERJOINSUSING(C)④RINNERJOINS⑤RFULLOUTERJOINSONfalseRABCSBCDa1b1c1b1c1d1a2b2c2b2c2d2a3b3c3b4c4d4 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!解:①ABCD②ABCD③AR.BCS.BDabcdb1b1c1d1a1a1b1c1d11111abcdb2b2c2d2a2a2b2c2d22222bcdb4nullnullnullc4d4444④AR.BR.CS.BS.CD⑤AR.BR.CS.BS.CDanullb1c1b1c1d1a1b1c1nullnull1anullb1c1b2c2d2a2b2c2nullnull1anullb1c1b4c4d4a3b3c3nullnull1anullc1b2c2b1c1d1nullnullb1d12anullc2b2c2b2c2课后答案网d2nullnullb2d22anullc4b2c2b4c4d4nullnullb4d42awww.hackshp.cnb3c3b1c1d13ab3c3b2c2d23ab3c3b4c4d433.9SQL2提供CASE表达式操作,这个操作类似于程序设计语言中的多分支选择结构,其句法如下:CASEWHEN条件1THEN结果1WHEN条件2THEN结果2……WHEN条件nTHEN结果nELSE结果mEND如果自上而下“条件i”首先被满足,那么这个操作返回值“结果i”(可以是某个表达式的值);如果没有一个条件被满足,那么返回值“结果m”。在基本表SC(S#,C#,GRADE)中,GRADE值是百分制。如果欲转换成“成绩等第”,则规则如下:若GRADE<40则等第为F,若40≤GRADE<60则等第为C,若60≤GRADE<80则等第为B,若80≤GRADE则等第为A。试写出下列两个查询语句:①检索每个学生的学习成绩,成绩显示时以等第(SCORE)形式出现。②检索每个等第的学生人次数。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!解:①SELECTS#,C#,CASEWHENGRADE>=80THEN"A"WHENGRADE>=60THEN"B"WHENGRADE>=40THEN"C"ELSE"F"ENDASSCOREFROMSC;②SELECTSCORE,COUNT(S#)FROM(SELECTS#,C#,CASEWHENGRADE>=80THEN"A"WHENGRADE>=60THEN"B"WHENGRADE>=40THEN"C"课后答案网ELSE"F"ENDFROMSC)ASRESULT(S#,C#,SCORE)GROUPBYSCORE;www.hackshp.cn3.10用第3.9题给出的CASE操作在下列更新语句中完成SC表中的元组更新:①若课程号为C5则增加6分,若课程号为C8则增加10分,其他一律增加5分。②若C4课程的成绩低于该门课平均成绩时,提高5%,否则提高4%。解:①UPDATESCSETGRADE=GRADE+CASEWHENC#="C5"THEN6WHENC#="C8"THEN10ELSE5END;②UPDATESCSETGRADE=GRADE*CASEWHENGRADE<(SELECTAVG(GRADE)FROMSCWHEREC#="C4")THEN1.05ELSE1.04ENDWHEREC#="C4"; 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!3.11设零件之间有组合联系,其关系模式如下:PART(P#,PNAME,SUBP#,TOTAL)其属性表示零件编号、零件名称、所需子零件编号及数量。设临时关系W(P#,SUBP#)的属性分别表示零件编号、这种零件的直接或间接子零件编号。①试写出表示关系W的规则。②写出计算W的递归查询语句。解:①W(x,y)←PART(x,g,y,h)W(x,y)←W(x,z)∧W(z,y)②WITHRECURSIVEW(P#,SUBP#)AS(SELECTP#,SUBP#FROMPART)UNION(SELECTW1.P#,W2.SUBP#FROMWASW1,WASW2WHEREW1.SUBP#=W2.P#)SELECT*FROMW;3.12试用SQL更新语句表达对3.2题教学数据库中关系S、SC、C的更新操作:①往关系C中插一个课程元组("C8","VC++","BAO")。②检索所授每门课程平均成绩均大于80分的教师姓名,并把检索到的值送往另一个已存在的表FACULTY(TNAME)。③在SC中删除尚无成绩的选课元组。课后答案网④把选修LIU老师课程的女同学选课元组全部删去。⑤把MATHS课不及格的成绩全改为60分。⑥把低于所有课程总平均成绩的女同学成绩提高5%。www.hackshp.cn⑦在表SC中修改C4课程的成绩,若成绩小于等于70分时提高5%,若成绩大于70分时提高4%(用两种方法实现,一种方法是用两个UPDATE语句实现,另一种方法是用带CASE操作的一个UPDATE语句实现)。⑧在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%。解:①INSERTINTOCVALUES("C8","VC++","BAO");②INSERTINTOFACULTY(TNAME)SELECTDISTINCTTEACHERFROM(SELECTTEACHER,C.C#,AVG(GRADE)FROMS,SCWHERESC.C#=C.C#GROUPBYTEACHER,C.C#)ASRESULT(TEACHER,C#,AVG_GRADE)ASXWHERE80<=ALL(SELECTAVG_GRADEFROMRESULTASYWHEREY.TEACHER=X.TEACHER);③DELETEFROMSCWHEREGRADEISNULL;④DELETEFROMSCWHERES#IN(SELECTS#FROMSWHERESEX="F") 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!ANDC#IN(SELECTC#FROMCWHERETEACHER="LIU");⑤UPDATESCSETGRADE=60WHEREGRADE<60ANDC#IN(SELECTC#FROMCWHERECNAME="MATHS");⑥UPDATESCSETGRADE=GRADE*1.05WHERES#IN(SELECTS#FROMSWHERESEX="F")ANDGRADE<(SELECTAVG(GRADE)FROMSC);⑦用两个UPDATE语句实现:UPDATESCSETGRADE=GRADE*1.04WHEREC#="C4"ANDGRADE>70;UPDATESCSETGRADE=GRADE*1.05WHEREC#="C4"ANDGRADE<=70;课后答案网(这两个UPDATE语句的顺序不能颠倒。)用一个UPDATE语句实现:UPDATESCwww.hackshp.cnSETGRADE=GRADE*CASEWHENGRADE>70THEN1.04ELSE1.05ENDWHEREC#="C4";⑧UPDATESCSETGRADE=GRADE*1.05WHEREGRADE<(SELECTAVG(GRADE)FROMSC);3.13设数据库中有三个关系:职工表EMP(E#,ENAME,AGE,SEX,ECITY),其属性分别表示职工工号、姓名、年龄、性别和籍贯。工作表WORKS(E#,C#,SALARY),其属性分别表示职工工号、工作的公司编号和工资。公司表COMP(C#,CNAME,CITY),其属性分别表示公司编号、公司名称和公司所在城市。试用SQL语句写出下列操作:①用CREATETABLE语句创建上述三个表,需指出主键和外键。②检索超过50岁的男职工的工号和姓名。③假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名。④假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号和姓名。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!⑤检索在“联华公司”工作、工资超过1000元的男性职工的工号和姓名。⑥假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数.显示(E#,NUM,SUM_SALARY),分别表示工号、公司数目和工资总数。⑦工号为E6的职工在多个公司工作,试检索至少在E6职工兼职的所有公司工作的职工工号。⑧检索联华公司中低于本公司平均工资的职工工号和姓名。⑨在每一公司中为50岁以上职工加薪100元(若职工为多个公司工作,可重复加)。⑩在EMP表和WORKS表中删除年龄大于60岁的职工有关元组。解:①CREATETABLEEMP(E#CHAR(4)NOTNULL,ENAMECHAR(8)NOTNULL,AGESMALLINT,SEXCHAR(1),ECITYCHAR(20),PRIMARYKEY(E#));CREATETABLECOMP(C#CHAR(4)NOTNULL,CNAMECHAR(20)NOTNULL,CITYCHAR(20),PRIMARYKEY(C#));CREATETABLEWORKS课后答案网(E#CHAR(4)NOTNULL,C#CHAR(4)NOTNULL,SALARYwww.hackshp.cnSMALLINT,PRIMARYKEY(E#,C#),FOREIGNKEY(E#)REFERENCESEMP(E#),FOREIGNKEY(C#)REFERENCESCOMP(C#));②SELECTE#,ENAMEFROMEMPWHEREAGE>50ANDSEX="M";③SELECTEMP.E#,ENAMEFROMEMP,WORKSWHEREEMP.E#=WORKS.E#ANDSALARY>1000;④SELECTA.E#,A.ENAMEFROMEMPA,WORKSB,WORKSCWHEREA.E#=B.E#ANDB.E#=C.E#ANDB.C#="C4"ANDC.C#="C8";⑤SELECTA.E#,A.ENAMEFROMEMPA,WORKSB,COMPCWHEREA.E#=B.E#ANDB.C#=C.C#ANDCNAME="联华公司"ANDSALARY>1000ANDSEX="M"; 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!⑥SELECTE#,COUNT(C#)ASNUM,SUM(SALARY)ASSUM_SALARYFROMWORKSGROUPBYE#;⑦SELECTX.E#FROMWORKSXWHERENOTEXISTS(SELECT*FROMWORKSYWHEREE#="E6"ANDNOTEXISTS(SELECT*FROMWORKSZWHEREZ.E#=X.E#ANDZ.C#=Y.C#));⑧SELECTA.E#,A.ENAMEFROMEMPA,WORKSB,COMPCWHEREA.E#=B.E#ANDB.C#=C.C#ANDCNAME="联华公司"ANDSALARY<(SELECTAVG(SALARY)课后答案网FROMWORKS,COMPWHEREWORKS.C#=COMP.C#www.hackshp.cnANDCNAME="联华公司");⑨UPDATEWORKSSETSALARY=SALARY+100WHEREE#IN(SELECTE#FROMEMPWHEREAGE>50);⑩DELETEFROMWORKSWHEREE#IN(SELECTE#FROMEMPWHEREAGE>60);DELETEFROMEMPWHEREAGE>60;3.14对第3.13题中的关系建立一个有关女职工信息的视图EMP_WOMAN,属性包括(E#,ENAME,C#,CNAME,SALARY)。然后对视图EMP_WOMAN操作,检索每一位女职工的工资总数。(假设每个职工可在多个公司兼职)解:CREATEVIEWEMP_WOMANASSELECTA.E#,A.ENAME,C.C#,CNAME,SALARYFROMEMPA,WORKSB,COMPCWHEREA.E#=B.E#ANDB.C#=C.C#ANDSEX="F";SELECTE#,SUM(SALARY)FROMEMP_WOMANGROUPBYE#;3.15在第1章中提到的仓库管理数据库中有五个基本表: 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!零件PART(P#,PNAME,COLOR,WEIGHT)项目PROJECT(J#,JNAME,DATE)供应商SUPPLIER(S#,SNAME,SADDR)供应P_P(J#,P#,TOTAL)采购P_S(P#,S#,QUANTITY)①试用SQLDDL语句定义上述五个基本表,需说明主键和外键。②试将PROJECT、P_P、PART三个基本表的联接定义为一个视图VIEW1,将PART、P_S、SUPPLIER三个基本表的联接定义为一个视图VIEW2。③试在上述两个视图的基础上进行查询操作:a)检索上海的供应商所供应的零件的编号和名称。b)检索项目J4所用零件的供应商的编号和名称。解:①CREATETABLEPART(P#CHAR(6),PNAMECHAR(10)NOTNULL,COLORCHAR(6),WEIGHTFLOAT(6),PRIMARYKEY(P#));CREATETABLEPROJECT(J#CHAR(6),JNAMECHAR(12)NOTNULL,DATEDATE,课后答案网PRIMARYKEY(J#));CREATETABLESUPPLIER(S#www.hackshp.cnCHAR(8),SNAMECHAR(12)NOTNULL,SADDRVARCHAR(30),PRIMARYKEY(S#));CREATETABLEP_P(J#CHAR(6),P#CHAR(6),TOTALINTEGER,PRIMARYKEY(J#,P#)FOREIGNKEY(J#)REFERENCESPROJECT(J#),FOREIGNKEY(P#)REFERENCESPART(P#));CREATETABLEP_S(P#CHAR(6),S#CHAR(8),QUANTITYINTEGER,PRIMARYKEY(P#,S#)FOREIGNKEY(P#)REFERENCESPART(P#),FOREIGNKEY(S#)REFERENCESSUPPLIER(S#));②CREATEVIEWVIEW1ASSELECTA.J#,JNAME,DATE,C.P#,PNAME,COLOR,WEIGHT,TOTALFROMPROJECTA,P_PB,PARTCWHEREA.J#=B.J#ANDB.P#=C.P#; 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!CREATEVIEWVIEW2ASSELECTA.P#,PNAME,COLOR,WEIGHT,C.S#,SNAME,SADDR,QUANTITYFROMPARTA,P_SB,SUPPLIERCWHEREA.P#=B.P#ANDB.S#=C.S#;③a)SELECTP#,PNAMEFROMVIEW2WHERESADDRLIKE’上海%’;b)SELECTS#,SNAMEFROMVIEW1,VIEW2WHEREVIEW1.P#=VIEW2.P#ANDJ#=’J4’;3.16对于3.2题的教学数据库中基本表SC,建立一个视图:CREATEVIEWS_GRADE(S#,C_NUM,AVG_GRADE)ASSELECTS#,COUNT(C#),AVG(GRADE)FROMSCGROUPBYS#;试判断下列查询和更新操作是否允许执行。如允许,写出转换到基本表SC上的相应操作。①SELECT*FROMS_GRADE;②SELECTS#,C_NUM课后答案网FROMS_GRADEWHEREAVG_GRADE>80;③SELECTS#,AVG_GRADEwww.hackshp.cnFROMS_GRADEWHEREC_NUM>(SELECTC_NUMFROMS_GRADEWHERES#="S4");④UPDATES_GRADESETS#="S3"WHERES#="S4";⑤DELETEFROMS_GRADEWHEREC_NUM>4;答:①允许查询。相应的操作如下:SELECTS#,COUNT(C#)ASC_NUM,AVG(GRADE)ASAVG_GRADEFROMSCGROUPBYS#;②允许查询。相应的操作如下:SELECTS#,COUNT(C#)ASC_NUMFROMSCGROUPBYS#HAVINGAVG(GRADE)>80;③允许查询。相应的操作如下:SELECTS#,AVG(GRADE)ASAVG_GRADEFROMSCGROUPBYS# 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!HAVINGCOUNT(C#)>(SELECTCOUNT(C#)FROMSCGROUPBYS#HAVINGS#="S4");④不允许。C_NUM是对SC中的学生选修门数进行统计,在未更改SC表时,要在视图S_GRADE中更改门数,是不可能的。⑤不允许。在视图S_GRADE中删除选修门数在4门以上的学生元组,势必造成SC中这些学生学习元组的删除,这不一定是用户的原意,因此使用分组和聚合操作的视图,不允许用户执行更新操作。3.17预处理方式对于嵌入式SQL的实现有什么重要意义?答:此时宿主语言的编译程序不必改动,只要提供一个SQL函数定义库,供编译时使用。预处理方式只是把源程序中的SQL语句处理成宿主语言的函数调用形式。3.18在宿主语言的程序中使用SQL语句有哪些规定?答:有三条规定:①在程序中要区分SQL语句与宿主语言语句,所有SQL语句必须加前缀标识“EXECSQL”以及结束标志“END_EXEC”;②允许嵌入的SQL语句引用宿主语言的程序变量,而主语句不能引用数据库中的字段变量;③SQL的集合处理方式与宿主语言的单记录处理方式之间要用游标机制协调。3.19SQL的集合处理方式与宿主语言单记录处理方式之间如何协调?课后答案网答:用游标机制协调。把SELECT语句查询结果定义成游标关系,以使用文件的方式来使用游标关系。与游标有关的SQL语句有四个:游标定义,游标打开,游标推进,游标关闭。3.20嵌入式SQL的DML语句何时不必涉及到游标?何时必须涉及到游标?www.hackshp.cn答:不涉及游标的DML语句有下面两种情况:①INSERT、DELETE、UPDATE语句,只要加上前缀和结束标志,就能嵌入在宿主语言程序中使用;②对于SELECT语句,如果已知查询结果肯定是单元值,也可不必涉及游标操作。涉及游标的DML语句有下面两种情况:①当SELECT语句查询结果是多个元组时,必须用游标机制把多个元组一次一个地传递给主程序处理;②对游标指向元组进行修改或删除操作时,也涉及到游标。3.21在教学数据库中检索成绩不及格的学生信息,要求显示(S#,SNAME,C#,CNAME,TEACHER),试编写实现此功能的嵌有SQL语句的C语言程序段。解:#defineNO_MORE_TUPLES!(strcmp(SQLSTATE,〞02000〞))voidsel(){EXECSQLBEGINDECLARESECTION;charsno[5],cno[5],sname[9],cname[11],teacher[9];charSQLSTATE[6];EXECSQLENDDECLARESECTION;EXECSQLDECLARExCURSORFORSELECTs.s#,sname,c.c#,cname,teacherFROMs,sc,cWHEREs.s#=sc.s#andsc.c#=c.c#andgrade<60;EXECSQLOPENscx;while(1) 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!{EXECSQLFETCHFROMxINTO:sno,:sname,:cno,:cname,:teacher;if(NO_MORE_TUPLES)break;printf(〞%s,%s,%s,%s,%sn〞,sno,sname,cno,cname,teacher);}EXECSQLCLOSEx;}3.3练习题3.3.1填空题1.在SQL中,关系模式称为__________,子模式称为__________,元组称为__________,属性称为__________。2.SQL中,表有两种:__________和__________,也称为__________和__________。3.SQL中,用户有两种:__________和__________。4.SQL中,外模式一级数据结构的基本单位是__________。5.在“SQL模式”中,主要成分有__________。6.基本表中,“主键”概念应该体现其值的__________和__________两个特征。7.操作“元组IN(集合)”的语义是____________________。8.表达式中的通配符“%”表示__________,“_”(下划线)表示__________。9.操作“元组>SOME(集合)”的语义是____________________。10.操作“元组SOMEC.=ALLD.<>ALL4.元组比较操作(a1,a2)>(b1,b2)的意义是[]A.(a1>b1)OR((a1=b1)AND(a2>=b2))B.(a1>=b1)OR((a1=b1)AND(a2>=b2))C.(a1>b1)OR((a1=b1)AND(a2>b2))D.(a1>=b1)OR((a1=b1)AND(a2>b2)5.SQL中,谓词EXISTS可用来测试一个集合是否[]A.有重复元组B.有重复的列名C.为非空集合D.有空值6.对于基本表EMP(ENO,ENAME,SALARY,DNO)其属性表示职工的工号、姓名、工资和所在部门的编号。基本表DEPT(DNO,DNAME) 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!其属性表示部门的编号和部门名。有一SQL语句:SELECTCOUNT(DISTINCTDNO)FROMEMP;其等价的查询语句是[]A.统计职工的总人数B.统计每一部门的职工人数C.统计职工服务的部门数目D.统计每一职工服务的部门数目7.对于第6题的两个基本表,有一个SQL语句:SELECTENO,ENAMEFROMEMPWHEREDNONOTIN(SELECTDNOFROMDEPTWHEREDNAME="金工车间";其等价的关系代数表达式是:[]A.πENO,ENAME(σDNAME≠"金工车间"(EMP⋈DEPT))B.πENO,ENAME(EMP⋈DEPT)DNAME≠"金工车间"C.πENO,ENAME(EMP课后答案网)-πENO,ENAME(σDNAME="金工车间"(EMP⋈DEPT))D.πENO,ENAME(EMP)-πENO,ENAME(σDNAME≠"金工车间"(EMP⋈DEPT))8.对于第6题的两个基本表,有一个www.hackshp.cnSQL语句:UPDATEEMPSETSALARY=SALARY*1.05WHEREDNO="D6"ANDSALARY<(SELECTAVG(SALARY)FROMEMP);其等价的修改语句为[]A.为工资低于D6部门平均工资的所有职工加薪5%B.为工资低于整个企业平均工资的职工加薪5%C.为在D6部门工作、工资低于整个企业平均工资的职工加薪5%D.为在D6部门工作、工资低于本部门平均工资的职工加薪5%9.有关嵌入式SQL的叙述,不正确的是[]A.宿主语言是指C一类高级程序设计语言B.宿主语言是指SQL语言C.在程序中要区分SQL语句和宿主语言语句D.SQL有交互式和嵌入式两种使用方式10.嵌入式SQL实现时,采用预处理方式是[]A.把SQL语句和主语言语句区分开来B.为SQL语句加前缀标识和结束标志C.识别出SQL语句,并处理成函数调用形式D.把SQL语句编译成二进制码11.允许在嵌入的SQL语句中,引用宿主语言的程序变量,在引用时[]A.直接引用 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!B.这些变量前必须加符号“*”C.这些变量前必须加符号“:”D.这些变量前必须加符号“&”12.如果嵌入的SELECT语句的查询结果肯定是单元组,那么嵌入时[]A.肯定不涉及游标机制B.必须使用游标机制C.是否使用游标,由应用程序员决定D.是否使用游标,与DBMS有关13.卷游标的推进语句“EXECSQLFETCHRELATIVE-4”表示[]A.把游标移向查询结果的第4行B.把游标移向查询结果的倒数第4行C.把游标从当前位置推进4行D.把游标从当前位置返回4行14.卷游标的推进语句“EXECSQLFETCHABSOLUTE-3”表示[]A.把游标移向查询结果的第3行B.把游标移向查询结果的倒数第3行C.把游标从当前位置推进3行D.把游标从当前位置返回3行3.3.3简答题1.试叙述SQL的关系代数特点和元组演算特点。2.SQL语言对于“查询结果是否允许存在重复元组”是如何实现的?课后答案网3.试对SELECT语句中使用的基本表名和列名的语义作详细的解释。4.SELECT语句中,何时使用分组子句,何时不必使用分组子句?www.hackshp.cn3.4练习题答案3.4.1填空题答案1.基本表视图行列2.基本表视图实表虚表3.应用程序终端用户4.视图5.基本表、视图、索引、完整性规则等6.惟一非空7.若元组在集合中,其值为true,否则为false8.与零个或多个字符组成的字符串匹配与单个字符匹配9.若元组值大于集合中某一元组值,则其值为true,否则为false10.若元组值小于集合中每一元组值,则其值为true,否则为false11.交互式SQL嵌入式SQL12.SQL语句函数调用13.SQL函数定义库14.EXECSQL分号(;)15.可以进退自如的游标(即可随意推进或返回)3.4.2单项选择题答案1.A2.C3.D4.C5.C6.C7.C8.C9.B10.C11.C12.C13.D14.B3.4.3简答题答案1.答:SQL的SELECT语句的基本句法来自于关系代数表达式πL(σF(R1×…×Rm)),并且SQL中有并(UNION)、交(INTERSECT)和差(EXCEPT)等操作,因此SQL 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!具有关系代数特点。SELECT语句中出现的基本表名,都应该理解成基本表中的元组变量,而列名应理解成元组分量,这样SQL就具有了元组演算的特点。2.答:对于SELECT语句中SELECT子句,若用“SELECTDISTINCT”形式,则查询结果中不允许有重复元组;若不写DISTINCT字样,则查询结果中允许出现重复元组。3.答:在基本SQL中,SELECT语句中使用的基本表名都应该理解成表中的元组变量,而列名就成了元组分量。这样就使SELECT语句带有元组演算的特点。(注:实际上,在基本SQL中,把关系变量和元组变量混为一谈了。这在面向对象数据库中得到了纠正,在引用表时,都要为表定义一个元组变量。)4.答:SELECT语句中使用分组子句的先决条件是要有聚合操作。当聚合操作值与其他属性的值无关时,不必使用分组子句。譬如求男同学的人数。此时聚合值只有一个,因此不必分组。当聚合操作值与其他属性的值有关时,必须使用分组子句。譬如求每一性别的人数。此时聚合值有两个,与性别有关,因此必须分组。课后答案网www.hackshp.cn 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第4章模式设计理论4.1基本知识点4.1.1本章重要概念(1)关系模式的冗余和异常问题。(2)FD的定义、逻辑蕴涵、闭包、推理规则、与关键码的联系;平凡的FD;属性集的闭包;推理规则的正确性和完备性;FD集的等价;最小依赖集。(3)无损分解的定义、性质、测试;保持依赖集的分解。(4)关系模式的范式:1NF,2NF,3NF,BCNF。分解成2NF、3NF模式集的算法。(5)MVD、4NF、JD和5NF的定义。4.1.2本章的重点篇幅(1)教材中P148的例4.13。(无损联接和保持FD的例子)(2)教材中P149的例4.14和P150的例4.15。(分解成2NF和3NF的例子)4.2教材中习题4的解答4.1名词解释·数据冗余:指同一个数据在系统中多次重复出现。·函数依赖(FD):在关系模式R(U)中,FD是形为X→Y的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有t[X]=s[X]蕴涵t[Y]=s[Y],那么称FDX→Y在关系模式R(U)中成立。·平凡的FD:如果X→Y,且Y⊆X,则称X→Y是一个“平凡的FD”。·FD集F的闭包F+:被课后答案网F逻辑蕴涵的函数依赖全体构成的集合,称为F的闭包,记为F+,即F+={X→Y|F⊨X→Y}。·属性集X的闭包www.hackshp.cnX+:从已知的FD集F使用FD推理规则推出的所有满足X→A的属性A的集合,称为X的闭包,记为X+,即X+={属性A|X→A在F+中}。·FD的逻辑蕴涵:如果从已知的FD集F能推导出X→Y成立,那么称F逻辑蕴涵X→Y,记为F⊨X→Y。·FD集的等价:对于两个FD集F和G,有F+=G+,则称F和G是等价的依赖集。·最小依赖集:设F是属性集U上的FD集,Fmin是F的最小依赖集,那么Fmin应满足下列四个条件:F+=F+;每个FD的右边都是单属性;F中没有冗余的FD;每个FD的左边minmin没有冗余的属性。·无损分解:设关系模式R,F是R上的FD集,ρ={R1,…,Rk}是R的一个分解。k如果对R中满足F的每一关系r,都有r=i=1⋈πR(r),那么称分解ρ相对F是“无损分解”。i·泛关系假设:指数据库中每一个关系都是全部属性构成的关系的投影,此时,由全部属性构成的关系称为泛关系。·chase过程:根据已知FD集,对R分解成ρ构造的初始表格的值进行修改,使之符合FD集,这个过程称为chase过程。·保持FD:设关系模式R,F是R上的FD分解,ρ={R1,…,Rk}是R的一个分k解,如果有∪πi=1Ri(F)⊨F,那么称分解ρ保持FD集F。·1NF:如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是1NF的模式。·2NF:如果R是1NF的模式,且每个非主属性完全函数依赖于R的候选键,那么称R是2NF的模式。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!·3NF:如果R是1NF的模式,且每个非主属性都不传递依赖于R的候选键,那么称R是3NF的模式。·BCNF:如果R是1NF的模式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。·4NF:设D是关系模式R上成立的FD和MVD集合。如果D中每个非平凡的MVDX→→Y的左部X都是R的超键,那么称R是4NF模式。·5NF:如果关系模式R的每个JD均由R的候选键蕴涵,那么称R是5NF的模式。·多值依赖(MVD):设关系模式R(U),X和Y是U的子集,Z=U-X-Y。对于R的关系r,若在r中存在元组(x,y1,z1)和(x,y2,z2),就也应存在元组(x,y2,z1)和(x,y1,z2),那么称MVDX→→Y在模式R上成立。·联接依赖(JD):设关系模式R(U),R1、…、Rn是U的子集,并满足U=R1∪…∪Rn,ρ={R1,…,Rn}是R的一个分解。如果对于R的每个关系r都有mρ(r)=r,那么称JD*(R1,…,Rn)在模式R上成立。4.2用A1、A2和A3三条推理规则来证明4.2.3节中的定理4.2(推理规则A4~A8)。(1)A4(合并性,union):{X→Y,X→Z}⊨X→YZ。证明:已知X→Y,根据A2,两边用X扩充,得到X→XY。从已知X→Z,根据A2两边用Y扩充,得到XY→YZ。再根据A3,从X→XY和XY→YZ可得到X→YZ。(2)A5(分解性,decomposition课后答案网):{X→Y,Z⊆Y}⊨X→Z。证明:已知Z⊆Y,可得Y→Z。从Y→Z和已知X→Y,可得X→Z成立。(3)A6(伪传递性):{www.hackshp.cnX→Y,WY→Z}⊨WX→Z。证明:已知X→Y,根据A2,两边用W扩充,得到WX→WY。据WX→WY和已知的WY→Z,。再根据A3,可得WX→Z成立。(4)A7(复合性,composition):{X→Y,W→Z}⊨XW→YZ。证明:已知X→Y,根据A2,两边用W扩充,得到WX→WY。从已知W→Z,根据A2两边用Y扩充,得到WY→YZ。再根据A3,从WX→WY和WY→YZ可得到XW→YZ成立。(5)A8{X→Y,W→Z}⊨X∪(W-Y)→YZ。证明:已知X→Y,根据A2,两边用(W-Y)扩充,得到X∪(W-Y)→Y∪(W-Y),而Y∪(W-Y)=WY,因此有X∪(W-Y)→WY。从已知W→Z,根据A2两边用Y扩充,得到WY→YZ。再根据A3,从X∪(W-Y)→WY和WY→YZ可得到X∪(W-Y)→YZ。4.3对函数依赖X→Y的定义加以扩充,X和Y可以为空属性集,用φ表示,那么X→φ,φ→Y,φ→φ的含义是什么?答:据推理规则的自反律可知,X→ф和ф→ф是平凡的FD,总是成立的。而ф→Y表示在当前关系中,任意两个元组的Y值相等,也就是当前关系的Y值都相等。4.4设关系模式R有n个属性,在模式R上可能成立的函数依赖有多少个?其中平凡的FD有多少个?非平凡的FD有多少个?解:这个问题是排列组合问题。FD形为X→Y,从n个属性值中选择属性组成X共有C0n+C1n+…+Cnn=2n种方法;同理,组成Y也有2n种方法。因此组成X→Y形式应该有2n·2n=4n种方法。即可能成立的FD有4n个。平凡的FD要求Y⊆X,组合X→Y形式的选择有: 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!001012012n01Cn·C0+Cn·(C1+C1)+Cn·(C2+C2+C2)+…+Cn(Cn+Cn+…Cnn)=C0n·20+C1n·21+C2n·22+…+Cnn·2n=(1+2)n=3n即平凡的FD有3n。因而非平凡的FD有4n-3n个。4.5已知关系模式R(ABC),F是R上成立的FD集,F={A→B,B→C},试写出F的闭包F+。解:据已知条件和推理规则,可知F+有43个FD:A→фAB→фAC→фABC→фB→фC→фA→AAB→AAC→AABC→AB→BC→CA→BAB→BAC→BABC→BB→Cф→фA→CAB→CAC→CABC→CB→BCA→ABAB→ABAC→ABABC→ABBC→фA→ACAB→ACAC→ACABC→ACBC→BA→BCAB→BCAC→BCABC→BCBC→CA→ABCAB→ABCAC→ABCABC→ABCBC→BC4.6设关系模式R(ABCD),F是R上成立的FD集,F={A→B,C→B},则相对于F,试写出关系模式R的关键码。并说明理由。解:R的关键码为ACD。因为从已知的F,只能推出ACD→ABCD。4.7设关系模式R(ABCD)上FD集为F,并且F={AB→C,C→D,D→A}。①试从F求出所有非平凡的FD。课后答案网②试求R的所有候选键。③试求R的所有不是候选键的超键。解:①从已知的F可求出非平凡的FD有76个。www.hackshp.cn譬如,左边是C的FD有6个:C→A,C→D,C→AD,C→AC,C→CD,C→ACD。左边是D的FD有2个:D→A,D→AD。左边是AB的FD有12个:AB→C,AB→D,AB→CD,AB→AC,……。感兴趣的读者可以自行把这76个FD写齐。②候选键是能函数决定所有属性的不含多余属性的属性集。根据这个概念可求出R的候选键有三个:AB、BC和BD。③R的所有不是候选键的超键有四个:ABC、ABD、BCD和ABCD。4.8试举出反例说明下列规则不成立:①{A→B}⊨{B→A}②{AB→C,A→C}⊨{B→C}③{AB→C}⊨{A→C}答:设有三个关系:r1ABr2ABCr3ABC1121212321222134323(1)在关系r1中,A→B成立,但B→A不成立。(2)在关系r2中,AB→C和A→C成立,但B→C不成立(3)在关系r3中,AB→C成立,但A→C不成立。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!4.9设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},①试写出属性集BD的闭包(BD)+。②试写出所有左部是B的函数依赖(即形为“B→?”)。解:①从已知的F,可推出BD→BCD,所以(BD)+=BCD。②由于B+=BC,因此左部是B的FD有四个:B→φ,B→B,B→C,B→BC。4.10设关系模式R(ABCDE)上FD集为F,并且F={A→BC,CD→E,B→D,E→A}。①试求R的候选键。②试求B+的值。解:①R的候选键有四个:A、E、CD和BC。②B+=BD。4.11设有关系模式R(ABC),其关系r如图4.1所示。①试判断下列三个FD在关系r中是否成立?A→BBC→AB→A②根据关系r,你能断定哪些FD在关系模式R上不成立?ABC123图4.1解:①在关系r中,A→B成立,BC→A423不成立,B→A不成立。②在关系r中,不成立的FD有:B533→A,C→A,C→B,C→AB,BC→A。4.12设关系模式R(ABC)分解成ρ={AB,BC},如果R上的FD集F={A→B},那么这个分解是损失分解。试举出课后答案网R的一个关系r,不满足mρ(r)=r。解:这个反例r可以举测试时的初始表格:ABCABwww.hackshp.cna1a2b13BCb21a2a3πAB(r)⋈πBC(r)有四个元组:ABCa1a2b13a1a2a3b21a2b13b21a2a3即mρ(r)≠r。4.13试解释数据库“丢失信息”与“未丢失信息”两个概念。“丢失信息”与“丢失数据”有什么区别?答:数据库中丢失信息是指r≠mρ(r),未丢失信息是指r=mρ(r)。丢失信息是指不能辨别元组的真伪,而丢失数据是指丢失元组。4.14设关系模式R(ABC),F是R上成立的FD集,F={A→C,B→C},试分别求F在模式AB和AC上的投影。答:πAB(F)=φ(即不存在非平凡的FD)πAC(F)={A→C}4.15设关系模式R(ABC),F是R上成立的FD集,F={B→A,C→A},ρ={AB,BC}是R上的一个分解,那么分解ρ是否保持FD集F?并说明理由。答:已知F={B→A,C→A},而πAB(F)={B→A},πBC(F)=φ,显然,分解ρ丢失了FDC→A。4.16设关系模式R(ABC),F是R上成立的FD集,F={B→C,C→A},那么分解ρ= 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!{AB,AC}相对于F,是否无损分解和保持FD?并说明理由。答:①已知F={B→C,C→A},而πAB(F)=φ,πAC(F)={C→A}显然,这个分解丢失了FDB→C②用测试过程可以知道,ρ相对于F是损失分解。4.17设关系模式R(ABCDEG)上FD集为F,并且F={D→G,C→A,CD→E,A→B}。①求D+,C+,A+,(CD)+,(AD)+,(AC)+,(ACD)+。②试求R的所有候选键。③用ρ1={CDEG,ABC}替换R,这个分解有什么冗余和异常现象?④用ρ2={DG,AC,CDE,AB}替换R,这个分解是无损分解吗?⑤用ρ3={CDE,AC,DG,BCD}替换R,先求F在ρ3的每个模式上的投影πR(F),再i判断分解ρ3保持FD吗?解:①D+=DG,C+=ABC,A+=AB,(CD)+=ABCDEG,(AD)+=ABDG,(AC)+=ABC,(ACD)+=ABCDEG。②R的候选键只有一个:CD。③用ρ1={CDEG,ABC}替换R,在模式CDEG中,有局部依赖CD→G,此时在关系中,一个D值只有一个G值,但当这个D值与10个C值对应时,就要出现10个元组,则G值就要重复10次。在模式ABC中,有传递依赖(C→A和A→B),此时在关系中,一个A值只有一个B值,但当这个A值与10个C值对应时,就要出现10个元组,则B值就要重复10次。④用ρ2={DG,AC,CDE,AB}替换R,据chase过程可知,相对于F,R分解成ρ是无课后答案网损分解。⑤用ρ3={CDE,AC,DG,BCD}替换R,则F在模式CDE上的投影为{CD→Ewww.hackshp.cn},F在模式AC上的投影为{C→A},F在模式DG上的投影为{D→G},F在模式BCD上的投影为{C→B},显然从这四个投影集中的FD推不出原来F中的A→B,因此分解ρ3不保持FD集。4.18设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C,A→D,D→C},ρ={AB,AC,BD}是R的一个分解。①相对于F,ρ是无损分解吗?为什么?②试求F在ρ的每个模式上的投影。③ρ保持F吗?为什么?答:①用测试过程可以知道,ρ相对于F是损失分解。②πAB(F)={A→B},πAC(F)={A→C},πBD(F)=φ。③显然,分解ρ不保持FD集F,丢失了B→C、A→D和D→C等三个FD。4.19设关系模式R(ABCD),R上的FD集F={A→C,D→C,BD→A},试说明ρ={AB,ACD,BCD}相对于F是损失分解的理由。答:据已知的F集,不可能把初始表格修改为有一个全a行的表格,因此ρ相对于F是损失分解。4.20设关系模式R(ABCD)上FD集为F,并且F={A→B,B→C,D→B}。①R分解成ρ={ACD,BD},试求F在ACD和BD上的投影。②ACD和BD是BCNF吗?如不是,试分解成BCNF。解:①F在模式ACD上的投影为{A→C,D→C},F在模式BD上的投影为{D→B}。②由于模式ACD的关键码是AD,因此显然模式ACD不是BCNF。模式ACD应分解成{AC,AD}或{CD,AD}。但是这个分解不保持FD,丢失了FDD→C或A→C。另外,模式BD已是BCNF。4.21设关系模式R(ABCD),ρ={AB,BC,CD}是R的一个分解。设F1={A→B,B→C},F2= 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!{B→C,C→D}。①如果F1是R上的FD集,此时ρ是否无损分解?若不是,试举出反例。②如果F2是R上的FD集呢?解:①据chase过程可知,相对于F1,R分解成ρ是损失分解。据构造初始表的规则,这个反例可以是下面的表格:rABCD110001100011对于这个r而言,显然r≠mρ(r)。②据chase过程可知,相对于F2,R分解成ρ是无损分解。4.22设关系模式R(ABCD),F是R上成立的FD集,F={AB→CD,A→D}。①试说明R不是2NF模式的理由。②试把R分解成2NF模式集。答:①从已知FD集F,可知R的候选键是AB。另外,AB→D是一个局部依赖,因此R不是2NF模式。②此时R应分解成ρ={AD,ABC},ρ是2NF模式集。4.23设关系模式R(ABC),F是R上成立的FD集,F={C→B,B→A}。①试说明R不是3NF模式的理由。②试把R分解成3NF模式集。答:①从已知FD集F,可知课后答案网R的候选键是C。从C→B和B→A,可知C→A是一个传递依赖,因此R不是3NF模式。②此时R应分解成ρ={CB,BA},ρ是3NF模式集。4.24设有关系模式www.hackshp.cnR(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。试回答下列问题:(1)根据上述规定,写出模式R的基本FD和关键码;(2)说明R不是2NF的理由,并把R分解成2NF模式集;(3)进而分解成3NF模式集。解:(1)基本的FD有三个:(职工编号,日期)→日营业额职工编号→部门名部门名→部门经理R的关键码为(职工编号,日期)。(2)R中有两个这样的FD:(职工编号,日期)→(部门名,部门经理)职工编号→(部门名,部门经理)可见前一个FD是局部依赖,所以R不是2NF模式。R应分解成R1(职工编号,部门名,部门经理)R2(职工编号,日期,日营业额)此处,R1和R2都是2NF模式。(3)R2已是3NF模式。在R1中,存在两个FD:职工编号→部门名部门名→部门经理 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!因此,“职工编号→部门经理”是一个传递依赖,R1不是3NF模式。R1应分解成R11(职工编号,部门名)R12(部门名,部门经理)这样,ρ={R11,R12,R2}是一个3NF模式集。4.25设有关系模式R(运动员编号,比赛项目,成绩,比赛类别,比赛主管)存储运动员比赛成绩及比赛类别、主管等信息。如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。试回答下列问题:(1)根据上述规定,写出模式R的基本FD和关键码;(2)说明R不是2NF的理由,并把R分解成2NF模式集;(3)进而分解成3NF模式集。解:(1)基本的FD有三个:(运动员编号,比赛项目)→成绩比赛项目→比赛类别比赛类别→比赛主管R的关键码为(运动员编号,比赛项目)。(2)R中有两个这样的FD:(运动员编号,比赛项目)→(比赛类别,比赛主管)课后答案网比赛项目→(比赛类别,比赛主管)可见前一个FD是局部依赖,所以R不是2NF模式。R应分解成R1(比赛项目,比赛类别,比赛主管)R2www.hackshp.cn(运动员编号,比赛项目,成绩)这里,R1和R2都是2NF模式。(3)R2已是3NF模式。在R1中,存在两个FD:比赛项目→比赛类别比赛类别→比赛主管因此,“比赛项目→比赛主管”是一个传递依赖,R1不是3NF模式。R1应分解成R11(比赛项目,比赛类别)R12(比赛类别,比赛主管)这样,ρ={R11,R12,R2}是一个3NF模式集。4.26设关系模式R(ABCD),在R上有五个相应的FD集及分解:(1)F={B→C,D→A},ρ={BC,AD}(2)F={AB→C,C→A,C→D},ρ={ACD,BC}(3)F={A→BC,C→AD},ρ={ABC,AD}(4)F={A→B,B→C,C→D},ρ={AB,ACD}(5)F={A→B,B→C,C→D},ρ={AB,AD,CD}试对上述五种情况分别回答下列问题:①确定R的关键码。②是否无损分解?③是否保持FD集?④确定ρ中每一模式的范式级别。解:(1)①R的关键码为BD。②ρ不是无损分解。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!③ρ保持FD集F。④ρ中每一模式已达到BCNF级别。(2)①R有两个关键码:AB和BC。②ρ是无损分解。③因为πACD(F)={C→A,C→D},πBC(F)=φ(没有非平凡的FD),所以ρ不保持FD,丢失了AB→C。④ρ中两模式均已达到BCNF级别。(3)①R有两个关键码:A和C②ρ是无损分解。③因为πABC(F)={A→BC,C→A},πAD(F)={A→D},所以ρ保持FD。④在模式ABC中,关键码是A或BC,属性全是主属性,但有传递依赖(A→BC,BC→A)。因此模式ABC是3NF,但不是BCNF。而模式AD显然已是BCNF。(4)①R的关键码为A。②ρ是无损分解。③因为πAB(F)={A→B},πACD(F)={A→C,C→D},从这两个依赖集推不出原来的B→C,因此ρ不保持FD,丢失了B→C。④模式AB是BCNF,模式ACD不是3NF,只达到2NF级别。(5)①R的关键码为A。②ρ不是无损分解。③因为πAB(F)={A→B},πAD(F)={A→D},πCD(F)={C→D},从这三个依赖集推不出原来的课后答案网B→C,因此ρ不保持FD,丢失了B→C。④ρ中每个模式均是BCNF级别。4.27设有关系模式R(ABC),其关系r如图4.2所示。试判断下列FD和MVD在关系r中是否成立?www.hackshp.cn①A→B②A→→B③BC→A④BC→→A⑤B→C⑥B→→CABC123423533534图4.2解:①A→B在r中成立,②A→→B在r中成立③BC→A在r中不成立④BC→→A在r中成立⑤B→C在r中不成立⑥B→→C在r中成立4.28设有关系模式R(ABCDE),现有R的七个关系,如图4.3所示。试判断FDBC→D和MVDBC→→D分别在这些关系中是否成立?ABCDEABCDEABCDEa2345a2345(空关系)2a3552a355a2346(a)关系r1(a)关系r2(a)关系r3ABCDEABCDEABCDEa2345a2345a23452a3452a3752a345 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!a2365a2346a2365a2366(a)关系r4(a)关系r5(a)关系r6ABCDEa2345a2365a2366a2346(a)关系r7图4.3解:BC→D在r1、r2、r3、r5中成立,在r4、r6、r7不成立。BC→→D在r1、r2、r3、r4、r5、r7中成立,在r6不成立。4.29设关系模式R(ABC)上有一个MVDA→→B。如果已知R的当前关系存在三个元组(ab1c1)、(ab2c2)和(ab3c3),那么这个关系中至少还应该存在哪些元组?解:这个关系中至少还应存在下面6个元组:(ab1c2),(ab2c1),(ab1c3),(ab3c1),(ab2c3),(ab3c2)。4.30在教材P158的例4.20中,模式R(CSPY)上的依赖集D={SP→Y}。试举r的例子满足SP→Y,但πCS(r)⋈πCP(r)⋈πSPY(r)≠r。验证这个r不满足MVDC→→S和C→→P。答:设r为下面的关系:r课后答案网CSPYc1s1p12001c1s2p11999www.hackshp.cnc1s2p22000c1s1p22003在r中,有SP→Y成立,但C→→S和C→→P都不成立。譬如在前两个元组中,交换S的值,得到两个元组(c1,s2,p1,2001)和(c1,s1,p1,1999),但在r中找不到这两个元组,可见C→→S在R中不成立。同样,在中间两个元组中,交换P的值,得到两个元组(c1,s2,p2,1999)和(c1,s2,p1,2000),但在r中也找不到这两个元组,可见C→→P在R中也不成立。关系r在CSP的投影为下面关系:CSPc1s1p1c1s2p1c1s2p2c1s1p2在上面的关系中,可以验证C→→S和C→→P都是成立的。因此多值依赖C→→S和C→→P在模式R(CSPY)中只能是一个嵌入的多值依赖。4.31试举出“若X→→Y和Y→→Z,则X→→Z”不成立的一个例子。解:设R(ABCD),有两个MVDA→→BC和BC→→CD,模式R的关系r值如下所述,显然A→→CD不成立,但A→→D是成立的。RABCDab1c1d1ab2c2d2ab1c1d2 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!ab2c2d14.32下面的结论哪些是正确的?哪些是错误的?对于错误,请给出一个反例加以说明。①任何一个二元关系模式属于3NF模式。②任何一个二元关系模式属于BCNF模式。③任何一个二元关系模式属于4NF模式。④任何一个二元关系模式属于5NF模式。⑤若R(ABC)中有A→B和B→C,则有A→C。⑥若R(ABC)中有A→B和A→C,则有A→BC。⑦若R(ABC)中有B→A和C→A,则有BC→A。⑧若R(ABC)中有BC→A,则有B→A和C→A。解:①、②成立。③不成立。有R(AB)但r=rA⋈rB(即r=rA×rB)不一定成立。④与③一样,不成立。⑤、⑥、⑦成立⑧不成立。例如rABC312课后答案网413422BC→A成立,但B→A和C→A都不成立。4.33试撰写2000www.hackshp.cn字短文,论述泛关系假设、无损联接和保持依赖间的联系。答:这篇短文的要点如下:(1)“泛关系假设”是在谈论数据库时必须存在泛关系情况下再讨论分解。(2)谈论无损分解的先决条件是泛关系假设。(3)谈论保持FD时,不提泛关系假设。(4)无损分解与保持FD之间,没有必然的联系。(5)满足无损分解的数据库,有r=mρ(r)性质。(6)满足保持FD的数据库,数据的语义值肯定满足FD。4.3自测题4.3.1填空题1.关系模式的操作异常问题往往是由__________引起的。2.函数依赖完备的推理规则集包括__________、__________和__________。3.如果Y⊆X⊆U,则X→Y成立。这条推理规则称为__________。4.如果X→Y和WY→Z成立,则WX→Z成立。这条推理规则称为__________。5.如果X→Y和Y⊆X成立,那么称X→Y是一个__________。这种FD可以根据推理规则__________律就可推出。6.“从已知的FD集使用推理规则导出的FD在F+中”,这是推理规则的__________性。7.“不能从已知的FD集使用推理规则导出的FD不在F+中”,这是推理规则的________性。8.函数依赖X→Y能从推理规则导出的充分必要条件是__________。9.被函数依赖集F逻辑蕴涵的函数依赖的全体构成的集合,称为__________,用符号__________表示。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!10.由属性集X函数决定的属性的集合,称为__________,用符号__________表示。11.在关系模式R中,能函数决定所有属性的属性组,称为模式R的__________。12.两个函数依赖集F和G等价的充分必要条件是__________。13.关系模式R有n个属性,则在模式R上可能成立的函数依赖有__________个,其中平凡的FD有__________个,非平凡的FD有__________个。14.谈论无损联接的先决条件是作了__________的假设。15.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={AB→C,D→B},则F在模式ACD上的投影为___________;F在模式AC上的投影为___________。16.消除了非主属性对候选键局部依赖的关系模式,称为__________模式。17.消除了非主属性对候选键传递依赖的关系模式,称为__________模式。18.消除了每一属性对候选键传递依赖的关系模式,称为__________模式。19.在关系模式的分解中,数据等价用__________衡量,依赖等价用__________衡量。4.3.2单项选择题(在备选的答案中选出一个正确的答案)1.在关系模式R中,函数依赖X→Y的语义是[]A.在R的某一关系中,若两个元组的X值相等,则Y值也相等B.在R的每一关系中,若两个元组的X值相等,则Y值也相等C.在R的某一关系中,Y值应与X值相等D.在R的每一关系中,Y值应与X值相等2.如果X→Y和WY→Z成立,那么WX→Z成立。这条规则称为[]A.增广律B.传递律C.伪传递律D.分解律3.X→Y能从推理规则导出的充分必要条件是课后答案网[]A.Y⊆XB.Y⊆X+C.X⊆Y+D.X+=Y+4.两个函数依赖集www.hackshp.cnF和G等价的充分必要条件是[]A.F=GB.F+=GC.F=G+D.F+=G+5.在最小依赖集F中,下面叙述不正确的是[]A.F中每个FD的右部都是单属性B.F中每个FD的左部都是单属性C.F中没有冗余的FDD.F中每个FD的左部没有冗余的属性6.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={B→A,D→C},则F+中左部为(BC)的函数依赖有[]A.2个B.4个C.8个D.16个7.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={A→B,B→C,C→D,D→A},则F+中,左部为(CD)的函数依赖有[]A.2个B.4个C.8个D.16个8.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={AB→C,D→A},则属性集(CD)的闭包(CD)+为[]A.CDB.ACDC.BCDD.ABCD9.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={AB→C,D→A},则R的关键码为[]A.ABB.ADC.BCD.BD10.在关系模式R分解成ρ={R1,……,Rk}时,R上的关系r和其投影联接表达式mρ(r)之间满足[]A.r=mρ(r)B.r⊆mρ(r)C.mρ(r)⊆rD.r≠mρ(r) 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!11.设关系模式R(A,B,C,D),F是R上成立的FD集,F={B→A,A→C},ρ={AB,AC,AD}是R上的一个分解,那么分解ρ相对于F[]A.是无损联接分解,也是保持FD的分解B.是无损联接分解,但不保持FD的分解C.不是无损联接分解,但保持FD的分解D.既不是无损联接分解,也不保持FD的分解12.设关系模式R(A,B,C,D),F是R上成立的FD集,F={A→B,B→C,C→D,D→A},ρ={AB,BC,AD}是R上的一个分解,那么分解ρ相对于F[]A.是无损联接分解,也是保持FD的分解B.是无损联接分解,但不保持FD的分解C.不是无损联接分解,但保持FD的分解D.既不是无损联接分解,也不保持FD的分解13.设关系模式R(A,B,C,D),F是R上成立的FD集,F={AB→C,D→B},那么F在模式ACD上的投影πACD(F)为[]A.{AB→C,D→B}B.{AC→D}C.{AD→C}D.φ(即不存在非平凡的FD)14.设关系模式R(A,B,C,D),F是R上成立的FD集,F={AB→C,D→B},ρ={ACD,BD}是R上的一个分解,那么分解ρ[]A.保持函数依赖集FB.丢失了AB→CC.丢失了D→BD.是否保持FD,由R的当前关系确定15.在关系模式R分解成数据库模式ρ时,谈论无损联接的先决条件是课后答案网[]A.数据库模式ρ中的关系模式之间有公共属性B.保持FD集C.关系模式R中不存在局部依赖和传递依赖D.存在泛关系16.无损联接和保持www.hackshp.cnFD之间的关系是[]A.同时成立或不成立B.前者蕴涵后者C.后者蕴涵前者D.没有必然的联系4.3.3简答题1.为什么要进行关系模式的分解?分解的依据是什么?2.分解有什么优缺点?4.4自测题答案4.4.1填空题答案1.数据冗余2.自反律增广律传递律3.自反律4.伪传递律5.平凡的FD自反6.正确7.完备8.Y⊆X+9.函数依赖集F的闭包F+10.属性集X的闭包X+11.超键(注:不能回答“候选键”)12.F+=G+(注:不能回答F=G)13.4n3n4n-3n14.存在泛关系15.{AD→C}φ(即没有非平凡的函数依赖)16.2NF17.3NF18.BCNF19.无损联接保持FD4.4.2单项选择题答案1.B2.C3.B4.D5.B6.C7.D8.B9.D10.B11.C12.A13.C14.B15.D16.D 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!4.4.3简答题答案1.答:由于数据之间存在着联系和约束,在关系模式的关系中可能会存在数据冗余和操作异常现象,因此需把关系模式进行分解,以消除冗余和异常现象。分解的依据是数据依赖和模式的标准(范式)。2.答:分解有两个优点:①消除冗余和异常;②在分解了的关系中可存储悬挂元组。但分解有两个缺点:①可能分解了的关系不存在泛关系;②做查询操作,需做联接操作,增加了查询时间。课后答案网www.hackshp.cn 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第5章数据库设计与ER模型5.1基本内容分析5.1.1本章重要概念(1)DBS生存期及其7个阶段的任务和工作,DBD过程的输入和输出。(2)概念设计的重要性、主要步骤。逻辑设计阶段的主要步骤。(3)ER模型的基本元素,属性的分类,联系的元数、连通词、基数。采用ER方法的概念设计步骤。(4)ER模型到关系模型的转换规则。采用ER方法的逻辑设计步骤。(5)ER模型的扩充:弱实体,超类和子类。5.1.2本章的重点篇幅(1)教材中P193-194的转换规则和实例。(2)教材中P196-200的四个ER模型实例。5.1.3对ER模型的理解ER模型是人们认识客观世界的一种方法、工具。ER模型具有客观性和主观性两重含义。ER模型是在客观事物或系统的基础上形成的,在某种程度上反映了客观现实,反映了用户的需求,因此ER模型具有客观性。但ER模型又不等同于客观事物的本身,它往往反映事物的某一方面,至于选取哪个方面或哪些属性,如何表达则决定于观察者本身的目的与状态,从这个意义上说,ER模型又具有主观性。ER模型的设计过程,基本上是两大步:·先设计实体类型(此时不要涉及到“联系”);·再设计联系类型(考虑实体间的联系)。课后答案网具体设计时,有时“实体”与“联系”两者之间的界线是模糊的。数据库设计者的任务就是要把现实世界中的数据以及数据间的联系抽象出来,用“实体”与“联系”来表示。另外,设计者应注意,ER模型应该充分反映用户需求,ER模型要得到用户的认可才能确定www.hackshp.cn下来。5.2教材中习题5的解答5.1名词解释(1)·软件工程:研究如何用科学知识、工程方面的纪律指导软件开发的过程,以提高软件质量和开发效率,降低开发成本,这样的一门学科称为“软件工程”。·软件生存期:软件生存期是指从软件的规划、研制、实现、投入运行后的维护,直到它被新的软件所取代而停止使用的整个期间。软件生存期通常分为六个阶段:规划阶段,需求分析阶段,设计阶段,程序编制阶段,调试阶段,运行维护阶段。·数据库工程:数据库应用系统的开发是一项软件工程,但又有自己特有的特点,所以特称为“数据库工程”。·数据库系统生存期:我们把数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间,称为数据库系统生存期。这个生存期一般可划分成下面七个阶段:规划,需求分析,概念设计,逻辑设计,物理设计,实现,运行和维护(2)·实体:可以区别的客观存在的事物,称为实体。·实体集:同一类实体构成的集合,称为实体集。·实体类型:实体集中实体的定义,称为实体类型。·实体标识符:能惟一标识实体的属性或属性集,称为实体标识符。有时也称为关键码(key),或简称为键。(3)·联系:一个或多个实体之间的关联关系,称为联系。·联系集:同一类联系构成的集合,称为联系集。·联系类型:联系集中联系的定义,称为联系类型。(4)·属性:实体的某一特性,称为属性。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!·基本属性:不可再分割的属性,称为基本属性。·复合属性:可再分解成其他属性的属性,称为复合属性。·单值属性:同一实体的属性只能取一个值,称为单值属性。·多值属性:同一实体的属性可能取多个值,称为多值属性。·导出属性:通过具有相互依赖的属性推导而产生的属性,称为导出属性。(5)·联系:·联系的元数:一个联系涉及到的实体集个数,称为该联系的元数。·联系的连通词:联系涉及到的实体集之间实体对应的方式(指对应一个还是多个实体),称为联系的连通词。·实体的基数:是对连通词更为精确的描述。譬如有两个实体集E1和E2,E1中每个实体与E2中有联系实体数目的最小值Min和最大值Max,称为E1的基数。(6)·弱实体:一个实体对于另一些实体(父实体)具有很强的依赖联系,而且该实体主键的部分或全部从其父实体中获得,则称该实体为弱实体。·子类实体和超类实体:某个实体类型中所有实体同时也是另一个实体类型中的实体,此时称前一实体类型是后一实体类型的子类,后一实体类型称为超类。其实体分别称为子类实体和超类实体。·继承性:指子类继承其超类上定义的所有属性,但其本身还可以包含其他的属性。5.2数据库系统的生存期分成哪几个阶段?数据库结构的设计在生存期中的地位如何?答:对DBS生存期的划分,一般分为七个阶段,即规划、需求分析、概念设计、逻辑设计、物理设计、实现和运行维护。DB结构设计的任务就是把概念设计阶段设计好的基本课后答案网ER图转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构。5.3基于数据库系统生存期的数据库设计分成哪几个阶段?答:基于DBS生存期的www.hackshp.cnDBD分成以下五个阶段:规划;需求描述和分析;概念设计;逻辑设计;物理设计。5.4数据库设计的规划阶段应做哪些事情?答:DBD中规划阶段的主要任务是进行建立DB的必要性及可行性分析,确定DBS在组织中和信息系统中的地位,以及各个DB之间的联系。5.5数据库设计的需求分析阶段是如何实现的?目标是什么?答:需求分析阶段的工作由下面四步组成:·分析用户活动,产生用户活动图;·确定系统范围,产生系统范围图;·分析用户活动所涉及的数据,产生数据流图;·分析系统数据,产生数据字典。需求分析阶段的目标是对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求;并把这些要求写成用户和数据库设计者都能接受的文档。5.6概念设计的具体步骤是什么?答:概念设计的主要步走可分为三步:(1)进行数据抽象,设计局部概念模式;(2)将局部概念模式综合成全局概念模式;(3)评审。5.7逻辑设计的目的是什么?试述逻辑设计阶段的主要步骤及内容。答:逻辑设计的目的是把概念设计阶段设计好的基本ER图转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式和外模式)。这些模式在功能、性能、完整性和一致性约束及数据库的可扩充性等方面均应满足用户的各种要求。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!逻辑设计阶段主要有五步:形成初始模式,设计子模式,设计应用程序梗概,评价模式和修改模式。(解释略)5.8什么是数据库结构的物理设计?试述其具体步骤。答:对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程,称为DB的物理设计。物理设计有五步:确定DB的存储记录结构;确定数据存储按排;存取方法的设计;完整性和安全性的设计;应用程序设计。5.9数据库实现阶段主要做哪几件事情?答:数据库实现阶段主要有以下三项工作:建立实际DB结构;装入试验数据调试应用程序;装入实际数据进入试运行状态。5.10数据库系统投入运行后,有哪些维护工作?答:DBS投入运行以后,就进入运行维护阶段。其主要工作有四项:维护DB的安全性与完整性及系统的转储和恢复;DB性能的监督、分析与改进;增加DB新功能;改正运行中发现的系统错误。5.11设某商业集团数据库中有三个实体集。一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商课后答案网店销售,每个商店销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。(1)试画出www.hackshp.cnER图,并在图上注明属性、联系的类型。(2)将ER图转换成关系模型,并注明主键和外键。解:(1)ER图如图5.1所示。商店编号商店名地址商店M1月销售量月薪销售聘用聘期NN商品职工商品号商品名规格单价职工编号姓名性别业绩 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!图5.1(2)这个ER图可转换4个关系模式:商店(商店编号,商店名,地址)职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪)商品(商品号,商品名,规格,单价)销售(商店编号,商品号,月销售量)5.12设某商业集团数据库中有三个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。i.试画出ER图,并在图上注明属性、联系的类型。ii.将ER图转换成关系模型,并注明主键和外键。解:(1)ER图如图5.2所示。课后答案网公司名公司编号地址www.hackshp.cn公司1隶属仓库编号N仓库名仓库地址1聘期聘用工资N职工职工编号姓名性别图5.2(2)这个ER图可转换3个关系模式: 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!公司(公司编号,公司名,地址)仓库(仓库编号,仓库名,地址,公司编号)职工(职工编号,姓名,性别,仓库编号,聘期,工资)5.13设某商业集团数据库有三个实体集。一是“商品”实体集,属性有商品号、商品名、规格、单价等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“供应商”实体集,属性有供应商编号、供应商名、地址等。供应商与商品之间存在“供应”联系,每个供应商可供应多种商品,每种商品可向多个供应商订购,每个供应商供应每种商品有个月供应量;商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品可在多个商店销售,每个商店销售每种商品有个月计划数。试画出反映上述问题的ER图,并将其转换成关系模型。解:ER图如图5.3所示。供应商编号供应商名课后答案网地址商店号商店名地址供应商商店www.hackshp.cnMM月计划数月供应量供应销售NN商品商品号商品名规格单价图5.3(2)这个ER图可转换5个关系模式:供应商(供应商编号,供应商名,地址)商店(商店号,商店名,地址)商品(商品号,商品名,规格,单价)供应(供应商编号,商品号,月供应量)销售(商店号,商品号,月计划数) 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!5.14假设要为银行的储蓄业务设计一个数据库,其中涉及到储户、存款、取款等信息。试设计ER模型。解:储蓄业务主要是存款、取款业务,可设计如图5.4所示的ER图。账号身份证号姓名地址存款余额储户11存款日期取款日期存款取款NN存款单取款单存款单号金额存款方式课后答案网取款单号金额取款方式图5.45.15某体育运动锦标赛有来自世界各国运动员组成的体育代表团参赛各类比赛项目。试为该www.hackshp.cn锦标赛各个代表团、运动员、比赛项目、比赛情况设计一个ER模型。解:图5.5是ER图的一种设计方案。团编号地区住所类别编号类别名主管代表团比赛类别11成员属于NNMN运动员比赛项目参加编号姓名年龄性别项目编号项目名级别比赛时间得分图5.5 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!5.16假设某超市公司要设计一个数据库系统来管理该公司的业务信息。该超市公司的业务管理规则如下:⑴该超市公司有若干仓库,若干连锁商店,供应若干商品。⑵每个商店有一个经理和若干收银员,每个收银员只在一个商店工作。⑶每个商店销售多种商品,每种商品可在不同的商店销售。⑷每个商品编号只有一个商品名称,但不同的商品编号可以有相同的商品名称。每种商品可以有多种销售价格。⑸超市公司的业务员负责商品的进货业务。试按上述规则设计ER模型解:图5.6是ER图的一种设计方案。仓库NMMMP进货库存发货商店业务员N11PNN销售拥有主管商品M1N1具有N课后答案网收银员经理N图5.6销售价格5.17假设要根据某大学的系、学生、班级、学会等信息建立一个数据库,一个系有若干专www.hackshp.cn业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可以参加多个学会,每个学会有若干学生,学生参加某学会有个入会年份。试为该大学的系、学生、班级、学会等信息设计一个ER模型。1N住宿宿舍区系解:图5.7是ER图的一种设计方案。1设置N专业1招收N班级1有NNM参加学会学生图5.7 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!5.18试把教材中5.5.2、5.5.3、5.5.4等三小节中的ER模型转换成关系模型,并指出每个关系模式的主键和外键。(1)(教材中P197的5.5.2节)公司车队信息系统的ER模型本例为某货运公司设计了车队信息管理系统,对车辆、司机、维修、保险、报销等信息和业务活动进行管理。其ER图如图5.8所示。部门M调用N车队1聘用N司机N拥有保险1N1N1N1报销保险2开销车辆保险公司N维修1课后答案网维修公司图5.8公司车队信息系统的ER模型该ER图有7个实体类型,其结构如下:www.hackshp.cn部门(部门号,名称,负责人)车队(车队号,名称,地址)司机(司机号,姓名,执照号,电话,工资)车辆(车牌号,车型,颜色,载重)保险公司(保险公司号,名称,地址)维修公司(维修公司号,名称,地址)开销(顺序号,费用类型,费用,日期,经手人)实体之间有7个联系,其中6个是1:N联系,1个是M:N联系。其中联系的属性如下:调用(出车编号,出车日期,车程,费用,车辆数目)保险1(投保日期,保险种类,费用)保险2(投保日期,保险种类,费用)进而,读者可以很容易地转换成关系模式集。解:根据ER图和转换规则,7个实体类型转换成7个关系模式,1个M:N联系转换成1个关系模式,共8个关系模式,如下:部门(部门号,名称,负责人)车队(车队号,名称,地址)司机(司机号,姓名,执照号,电话,工资,车队号,保险公司号,投保日期,保险种类,费用)车辆(车牌号,车型,颜色,载重,车队号,保险公司号,投保日期,保险种类,费用,维修公司号)保险公司(保险公司号,名称,地址)维修公司(维修公司号,名称,地址) 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!开销(顺序号,车牌号,费用类型,费用,日期,经手人)调用(出车编号,车队号,部门号,出车日期,车程,费用,车辆数目)(2)(教材中P198的5.5.3节)人事管理信息系统的ER模型上海交通电器有限公司设计了人事管理信息系统,其中涉及到职工、部门、岗位、技能、培训课程、奖惩记录等信息。其ER图如图5.9所示。培训课程M选课工资1部门享有属于1NNM1职工设置MMNNN1接受聘任奖惩岗位考核N技能课后答案网图5.9这个ER图有7个实体类型,其属性如下:职工(工号,姓名,性别,年龄,学历)部门(部门号,部门名称,职能)www.hackshp.cn岗位(岗位编号,岗位名称,岗位等级)技能(技能编号,技能名称,技能等级)奖惩(序号,奖惩标志,项目,奖惩金额)培训课程(课程号,课程名,教材,学时)工资(工号,基本工资,级别工资,养老金,失业金,公积金,纳税)这个ER图有7个联系类型,其中1个1:1联系,2个1:N联系,4个M:N联系。联系类型的属性如下:选课(时间,成绩)设置(人数)考核(时间,地点,级别)接受(奖惩时间)解:根据ER图和转换规则,7个实体类型转换成7个关系模式,4个M:N联系转换成4个关系模式,共11个模式,如下:职工(工号,姓名,性别,年龄,学历,部门号,岗位编号)部门(部门号,部门名称,职能)岗位(岗位编号,岗位名称,岗位等级)技能(技能编号,技能名称,技能等级)奖惩(序号,奖惩标志,项目,奖惩金额)培训课程(课程号,课程名,教材,学时)工资(工号,基本工资,级别工资,养老金,失业金,公积金,纳税)选课(工号,课程号,时间,成绩)设置(部门号,岗位编号,人数) 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!考核(工号,技能编号,时间,地点)接受(工号,序号,奖惩日期)(3)(教材中P199的5.5.4节)旅游管理信息系统的ER模型上海普教旅行社设计了一个小型的国内旅游管理信息系统,其中涉及到与业务有关的信息有旅游线路、班次、团体、旅客、保险员、导游、宾馆、交通工具等。其ER图如图5.10所示。旅游线路1开设1交通工具N1交通陪同导游MN旅游班次1M食宿宾馆N有N保险参加旅游团课后答案网111www.hackshp.cn组成N游客图5.10这个ER图有8个实体类型,其属性如下:旅游线路(路线号,起点,终点,天数,主要景点)旅游班次(班次号,出发日期,回程日期,旅游标准,报价)旅游团(团号,团名,人数,联系人,地址,电话)游客(游客编号,姓名,性别,年龄,身份证号码,住址,电话)导游(导游编号,姓名,性别,年龄,身份证号码,住址,电话,语种,等级,业绩)交通工具(旅游班次号,出发工具,出发日期,出发班次,出发时间,回程工具,回程日期,回程班次,回程时间)宾馆(宾馆编号,宾馆名,城市,星级,标准房价,联系人,职务,地址,电话,传真)保险单(保险单编号,保险费,投保日期)这个ER图有7个联系类型,其中2个1:1联系,3个1:N联系,2个M:N联系。解:根据ER图和转换规则,8个实体类型转换成8个关系模式,2个M:N联系转换成2个关系模式,共10个关系模式,如下:旅游线路(路线号,起点,终点,天数,主要景点)旅游班次(班次号,路线号,出发日期,回程日期,旅游标准,报价)旅游团(团号,旅游班次号,团名,人数,联系人,地址,电话)游客(游客编号,团号,姓名,性别,年龄,身份证号码,住址,电话) 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!导游(导游编号,姓名,性别,年龄,身份证号码,住址,电话,语种,等级,业绩)交通工具(旅游班次号,出发工具,出发日期,出发班次,出发时间,回程工具,回程日期,回程班次,回程时间)宾馆(宾馆编号,宾馆名,城市,星级,标准房价,联系人,职务,地址,电话,传真)保险(保险单编号,团号,人数,保险费,投保日期)陪同(旅游班次号,导游编号)食宿(旅游班次号,宾馆编号)5.3自测题5.3.1填空题1.数据库设计过程的输入包括四部分内容:__________,__________,__________和__________。2.数据库设计过程的输出主要有两部分:__________和__________。3.规划阶段具体可以分成三个步骤:___________、___________和___________。4.需求分析的工作主要有下面四步组成:分析用户活动,产生__________;确定系统范围,产生__________;分析用户活动涉及的数据,产生__________;分析系统数据,产生__________。5.需求分析中的数据字典通常包含以下五个部分:__________,__________,__________,__________和__________课后答案网。6.概念设计的目标是产生反映____________的数据库概念结构,即概念模式。7.概念设计阶段可分为三步来完成:__________,__________和__________。8.就方法的特点而言,需求分析阶段通常采用www.hackshp.cn__________的分析方法;概念设计阶段通常采用__________的设计方法。9.逻辑设计的主要工作是:__________________________。10.逻辑设计的步骤有五步:__________,__________,__________,__________和__________。11.物理设计可分成五步进行:__________,__________,__________,__________和__________。12.DBS的维护工作由__________承担的。13.DBS的维护工作主要包括以下四个部分:_________,_________,_________,_________。5.3.2单项选择题(在备选的答案中选出一个正确答案)1.需求分析阶段设计数据流程图(DFD)通常采用[]A.面向对象的方法B.回溯的方法C.自底向上的方法D.自顶向下的方法2.概念设计阶段设计概念模型通常采用[]A.面向对象的方法B.回溯的方法C.自底向上的方法D.自顶向下的方法3.设计子模式属于数据库设计的[]A.需求分析B.概念设计C.逻辑设计D.物理设计4.概念结构设计的主要目标是产生数据库的概念结构,该结构主要反映[]A.应用程序员的编程需求B.DBA的管理信息需求C.数据库系统的维护需求D.企业组织的信息需求5.数据库设计人员和用户之间沟通信息的桥梁是[]A.程序流程图B.实体联系图C.模块结构图D.数据结构图6.有两个不同的实体集,它们之间存在着一个1:1联系和一个M:N联系,那么根据ER模型 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!转换成关系模型的规则,这个ER结构转换成的关系模式个数为[]A.2个B.3个C.4个D.5个7.如果有10个不同的实体集,它们之间存在着12个不同的二元联系(二元联系是指两个实体集之间的联系),其中3个1:1联系,4个1:N联系,5个M:N联系,那么根据ER模型转换成关系模型的规则,这个ER结构转换成的关系模式个数为[]A.14个B.15个C.19个D.22个8.在ER模型转换成关系模型的过程中,下列叙述不正确的是[]A.每个实体类型转换成一个关系模式B.每个联系类型转换成一个关系模式C.每个M:N联系类型转换一个关系模式D.在处理1:1和1:N联系类型时,不生成新的关系模式9.当同一个实体集内部的实体之间存在着一个1:N联系时,那么根据ER模型转换成关系模型的规则,这个ER结构转换成的关系模式个数为[]A.1个B.2个C.3个D.4个10.当同一个实体集内部的实体之间存在着一个M:N联系时,那么根据ER模型转换成关系模型的规则,这个ER结构转换成的关系模式个数为[]A.1个B.2个C.3个D.4个11.在数据库设计中,子类与超类存在着[]A.相容性联系B.调用的联系C.继承性的联系D.一致性联系5.3.3设计题课后答案网假设要为某商业集团设计一个数据库,该集团中有若干仓库、若干商店、经销若干商品。试画一个有关仓库、商店、商品、采购员、职工、顾客、供应商、采购、入库、出库、销售聘用等信息的ERwww.hackshp.cn图。5.3.4ER图实例在数据库设计中,ER模型的设计是一个很重要的环节。为了帮助学习者提高数据库设计水平,有利于毕业设计和今后的工作,我们从毕业生的论文中挑选了5个ER模型,供参考。这些设计并不是惟一的,可能还不完善,但大家从中可得到有益的启发,拓宽思路。1.某学员为医院“住院管理信息系统”设计了数据库的ER模型,对医生、护士、病人、病房、诊断、手术、结账等有关信息进行管理,其ER图如图5.11所示。这个ER图有8个实体类型,其属性如下:病人(住院号,姓名,性别,地址)医生(医生工号,姓名,职称)护士(护士工号,姓名,职称)病床(病床编号,床位号,类型,空床标志)手术室(手术室编号,类型)手术(手术标识号,类型,日期,时间,费用)诊断书(诊断书编号,科别,诊断)收据(收据编号,项目,金额,收款员,日期)这个ER图有11个联系类型,其中1个是1:1联系,8个1:N联系,2个是M:N联系。联系的属性如下:协助(角色)处方(处方单号,序号,药品名称,规格,数量,费用)入住(入院日期,出院日期)试把这个ER图转换成关系模型。并指出各个关系模式的主键和外键。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!1N医生诊断书书写M1MN主刀协助处方拥有NNN1N1手术病人接受1N1位于入住结账11N手术室病床收据1N安排课后答案网分配N1www.hackshp.cn护士图5.11住院管理信息系统的ER图2.某学员为电脑专卖店设计开发了“电脑销售信息管理系统”,数据库的ER模型对商品、供应商、仓库、营业员、门店的有关信息进行了管理,其ER图如图5.12所示。这个ER图有7个实体类型,其属性如下:商品(商品编号,名称,类别,单位,单价)供应商(供应商编号,名称,账号,地址)仓库(仓库编号,地址,负责人)门店(门店编号,名称,地址)采购员(采购员编号,姓名,业绩)管理员(管理员编号,姓名,业绩)营业员(营业员编号,姓名,业绩)这个ER图有7个联系类型,其中2个是1:N联系,1个M:N联系,4个是M:N:P联系。联系的属性如下:采购(采购单号,数量,日期)进货(进货单号,数量,日期)配送(配送单号,数量,日期)销售(销售单号,数量,日期)存储(库存量,日期,安全库存量)试把这个ER图转换成关系模型。并指出各个关系模式的主键和外键。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!N供应商M管理员NM采购员采购管理进货NP1PMN商品仓库存储MMN配送销售NPP属于营业员门店N1图5.12电脑销售信息管理系统的ER图3.某学员为证券营业网点设计的业务信息管理系统,对客户、资金、证券和业务活动进行了管理,其ER图如图5.13所示。课后答案网该ER图有5个实体类型,其结构如下:客户(股东账号,身份证号,姓名,地址,客户类别,开户日期)资金(资金账号,金额,可取余额,冻结金额,解冻金额,利息,日期)www.hackshp.cn证券(证券代码,名称,每手股数)委托(委托序号,数量,买卖类别,价格,时间,操作员)成交(成交序号,数量,买卖类别,成交价格,时间)该ER图有8个联系类型,其中6个1:N联系,2个M:N联系。其中,联系的属性如下:持有(金额,可用数量,冻结数量,解冻数量,日期)存取(存取单序号,存取标志,金额,日期)试把这个ER图转换成关系模式集,并指出每个模式的主键和外键。委托N冻结21证券NNN1申请持有1M冻结1客户过户M1存取交割1NNN清算资金1N成交图5.13证券业务管理系统的ER图 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!4.某学员为某出版社设计了图书发行信息管理系统,数据涉及到图书、作者、开印、入库、客户和发行员等信息。得到的全局ER图如图5.14所示。作者开印单入库单MNN编著开印入库N11图书MMMP发行员出库收款订购NNN客户图5.14图书发行系统的ER图该ER图有6个实体类型,其结构如下:课后答案网图书(图书编号,书名,定价,包本数,开本,统一书号,库存量)作者(作者编号,姓名,性别,地址,电话)开印单(印单号,开单日期,定价,印数,制单人)www.hackshp.cn入库单(入库单号,日期,送书单位,数量,包本数,版印次)发行员(发行员代号,姓名,电话)客户(客户编号,名称,地址,开户行,账号,税号,收款方式)实体类型之间有6个联系,其中2个1:N联系,3个M:N联系,1个M:N:P联系,在图上均已标出。其中联系的属性如下所示。订购(订购单号,日期,数量)出库(出库单号,日期,数量,包本数)收款(收款单号,金额,收款日期)编著(日期,备注)试将ER图转换成关系模型,并注明主键和外键。5.某学员为上海闵行区物资供应公司设计了库存管理信息系统,对货物的库存、销售等业务活动进行管理。其ER图如图5.15所示。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!采购员报损单销售员MNN采购报损定单PN1MP供应商货物客户MMNMP入库存储出库NPN仓位图5.15库存管理系统的ER图该ER图有7个实体类型,其结构如下:货物(货物代码,型号,名称,形态,最低库存量,最高库存量)课后答案网采购员(采购员号,姓名,性别,业绩)供应商(供应商号,名称,地址)销售员(销售员号,姓名,性别,业绩)www.hackshp.cn客户(客户号,名称,地址,账号,税号,联系人)仓位(仓位号,名称,地址,负责人)报损单(报损号,数量,日期,经手人)实体间联系类型有6个,其中1个1:N联系,1个M:N联系,4个M:N:P联系。其中联系的属性如下。入库(入库单号,日期,数量,经手人)出库(出库单号,日期,数量,经手人)存储(存储量,日期)定单(定单号,数量,价格,日期)采购(采购单号,数量,价格,日期)试将ER图转换成关系模型,并注明主键和外键。5.4自测题答案5.4.1填空题答案1.总体信息需求处理需求DBMS特征硬件和OS特性2.完整的数据库结构应用程序设计原则3.系统调查可行性分析确定总目标和制定项目开发计划4.业务流程图系统范围图数据流程图数据字典5.数据项数据结构数据流数据存储加工过程6.企业组织信息需求7.设计局部概念模式综合成全局概念模式评审8.自顶向下逐步细化自底向上逐步综合9.把概念模式转换成DBMS能处理的模式 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!10.形成初始模式设计子模式应用程序设计梗概模式评价模式修正11.存储记录结构设计确定数据存储安排访问方法的设计完整性安全性设计程序设计12.DBA13.DB的转储与恢复DB的安全性与完整性控制DB性能的监督、分析和改进DB的重组织和重构造5.4.2单项选择题答案1.D2.C3.C4.D5.B6.B7.B8.B9.A10.B11.C5.4.3设计题答案这个数据库一种可能的ER图如图5.16所示,图中只画出实体、联系,未画出其属性。供应商NM采购入库采购员MP仓库N课后答案网PN商品MMwww.hackshp.cn出库客户销售NPP职工聘用商店N1图5.16库存管理系统的ER模型5.4.4ER图实例答案1.解:根据ER图和转换规则,8个实体类型转换成8个关系模式,2个M:N联系转换成2个关系模式。因此,图5.11的ER图可转换成10个关系模式,如下所示:病人(住院号,姓名,性别,地址,病房编号,床位号,入院日期,出院日期)医生(医生工号,姓名,职称)护士(护士工号,姓名,职称,手术室编号)病床(病床编号,床位号,类型,空床标志,护士工号)手术室(手术室编号,类型)手术(手术标识号,类型,日期,时间,费用,手术室编号,医生工号,住院号)诊断书(诊断书编号,科别,诊断,医生工号,住院号)收据(收据编号,项目,金额,收款员,日期,住院号)协助(手术标识号,医生工号,角色)处方(处方单号,序号,药品名称,规格,数量,费用,住院号,医生工号)2.解:根据ER图和转换规则,7个实体类型转换成7个关系模式,1个M:N联系和4个 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!M:N:P联系转换成5个关系模式。因此,图5.12的ER图可转换成12个关系模式,如下所示:商品(商品编号,名称,类别,单位,单价)供应商(供应商编号,名称,账号,地址)仓库(仓库编号,地址,负责人)门店(门店编号,名称,地址)采购员(采购员编号,姓名,业绩)管理员(管理员编号,姓名,业绩,仓库编号)营业员(营业员编号,姓名,业绩,门店编号)采购(采购单号,数量,日期,采购员编号,供应商编号,商品编号)进货(进货单号,数量,日期,供应商编号,商品编号,仓库编号)配送(配送单号,数量,日期,商品编号,仓库编号,门店编号)销售(销售单号,数量,日期,商品编号,门店编号,营业员编号)存储(商品编号,仓库编号,日期,库存量,安全库存量)3.解:根据ER图和转换规则,5个实体类型转换成5个关系模式,2个M:N联系转换成2个关系模式。因此,图5.13的ER图可转换成7个关系模式,如下:客户(股东账号,身份证号,姓名,地址,客户类别,开户日期)资金(资金账号,金额,可取余额,冻结金额,解冻金额,利息,日期)证券(证券代码,名称,每手股数)委托(委托序号,课后答案网股东账号,证券代码,资金账号,数量,买卖类别,价格,时间,操作员)成交(成交序号,股东账号,证券代码,资金账号,数量,买卖类别,成交价格,www.hackshp.cn时间)持有(股东账号,证券代码,日期,金额,可用数量,冻结数量,解冻数量)存取(存取单序号,股东账号,资金账号,存取标志,金额,日期)4.据转换规则,ER图中有6个实体类型,可转换成6个关系模式,另外ER图中有3个M:N联系和1个M:N:P联系,也将转换成4个关系模式。因此,图5.14的ER图可转换成10个关系模式,具体如下:图书(图书编号,书名,定价,包本数,开本,统一书号,库存量)作者(作者编号,姓名,性别,地址,电话)开印单(印单号,开单日期,图书编号,定价,印数,制单人)入库单(入库单号,日期,送书单位,数量,包本数,版印次,图书编号)发行员(发行员代号,姓名,电话)客户(客户编号,名称,地址,开户行,账号,税号,收款方式)订购(订购单号,日期,数量,客户编号,图书编号,发行员代号)出库(出库单号,日期,数量,包本数,客户编号,图书编号)收款(收款单号,金额,收款日期,客户编号,图书编号)编著(作者编号,图书编号,日期,备注)5.据转换规则,ER图中有7个实体类型,可转换成7个关系模式,另外ER图中有1个M:N联系和4个M:N:P联系,也将转换成5个关系模式。因此,图5.15的ER图可转换成12个关系模式,具体如下:货物(货物代码,型号,名称,形态,最低库存量,最高库存量)采购员(采购员号,姓名,性别,业绩)供应商(供应商号,名称,地址)销售员(销售员号,姓名,性别,业绩) 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!客户(客户号,名称,地址,账号,税号,联系人)仓位(仓位号,名称,地址,负责人)报损单(报损号,数量,日期,经手人,货物代码)入库(入库单号,日期,数量,经手人,供应商号,货物代码,仓位号)出库(出库单号,日期,数量,经手人,客户号,货物代码,仓位号)存储(货物代码,仓位号,日期,存储量)定单(定单号,数量,价格,日期,客户号,货物代码,销售员号)采购(采购单号,数量,价格,日期,供应商号,货物代码,采购员号)课后答案网www.hackshp.cn 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第6章数据库的存储结构6.1基本内容分析6.1.1本章重要概念本章有以下一些重要概念:(1)计算机系统的存储介质层次。(2)两种文件组织:定长记录和变长记录。被拴记录,悬挂指针,分槽式页结构。(3)四种文件结构:堆文件、顺序文件、散列文件和聚集文件。(4)索引技术:主索引及三种实现方法(稠密、稀疏、多级索引);辅助索引;B+树索引文件;B树索引文件。(5)散列技术:散列函数;散列索引;静态散列;动态散列(可扩充散列结构)。(6)两种多键访问技术:网格文件和分区散列。6.1.2本章的重点篇幅(1)教材中P214的图6.8(分槽式页结构)。(2)教材中P224~232的B+树索引文件和B树索引文件。(3)教材中P236~241的可扩充散列结构。(2)教材中P242~244的网格文件。6.2教材中习题6的解答6.1名词解释(1)·定长记录文件:记录为定长格式的文件。课后答案网·变长记录文件:记录为变长格式的文件。·被拴记录(pinnedrecord):被指针指向的记录,称为被拴记录。·悬挂指针(danglingwww.hackshp.cnpointer):如果指针指向的记录已被删除,那么该指针称为悬挂指针。悬挂指针指向的空间称为“垃圾”,别人无法使用。(2)·堆文件:以输入顺序为序的文件,称为堆文件。·顺序文件:记录按查找键值升序或降序的顺序存储的文件,称为顺序文件。·散列文件:将记录的某个属性值通过散列函数求得的值作为记录的存储地址的文件,称为散列文件。·聚集文件:可以存储多个关系(表)的记录的文件,称为聚集文件。(3)·有序索引:根据记录中某种排序顺序建立的索引,称为有序索引。·主索引:如果索引的查找键值的顺序与主文件的顺序一致,那么这种索引称为主索引,也称为聚集索引。·稠密索引:对于主文件中每一个查找键值建立一个索引记录,索引记录包括查找键值和指向具有该值的记录链表的第一个记录的指针。这种索引称为“稠密索引”。·稀疏索引:在主文件中,对若干个查找键值才建立一个索引记录,这种索引称为“稀疏索引”。·多级索引:在索引很大时,还可对索引建立索引,这样就形成树结构的多级索引。·辅助索引:不是根据主索引的查找键值,而是根据其他查找键值来寻找主文件的记录,这种索引称为辅助索引。·平衡树:一棵m阶平衡树或者为空,或者满足以下四个条件:每个结点至多有m棵子树;根结点或为叶结点,或至少有两棵子树;每个非叶结点至少有m/2棵子树;叶结点在同一层次上。·B+树:一棵m阶B+树是平衡树,多个结点至多有m-1个查找键值和m个指向子树的指针,但叶结点中的指针指向主文件中的记录,而非叶结点形成了叶结点上的一个多级稀疏索引。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!·B树:B树类似于B+树,B树中所有查找键值只能出现一次,但可出现任何结点上。(4)·散列方法:根据记录的查找键值,使用一个函数计算得到的函数值,作为磁盘块的地址,对记录进行存储和访问,这种方法称为散列方法。·桶溢出(散列碰撞):在散列组织中,每个桶的空间是固定的,如果某个桶内已装满记录,还有新的记录要插入到该桶,这种现象称桶溢出。·封闭散列法:即溢出桶拉链法。某桶号的空间分成基本桶和溢出桶两种。·开放式散列法:把桶的集合固定下来,也就是只考虑基本桶,不考虑溢出桶。如果有一个桶装满了记录,还需装入新记录时,就在桶集中挑选一个有空闲空间的桶去装新记录。(5)·散列索引:把查找键值与指针一起组合成散列文件结构的一种索引。·静态索引:在散列函数确定以后,所有的桶地址及桶空间都确定了。这种技术称为“静态散列”技术。·动态散列:桶空间可以随时申请或释放的散列技术,称为“动态散烈”技术。·可扩充散列:对静态散列中成倍扩充法的改进,能随时根据需要申请和释放桶。(6)·单键索引:只使用一个查找键的查询,称为单键查询。·多键查询:使用多个查找键的查询,称为多键查询。·网格文件:网格文件是由网格矩阵和线性标尺组成的结构,网格矩阵中每个格子中有一个指针,指向一个桶。·分区散列:是对散列技术的扩充,能允许在多个属性上进行索引。6.2试叙述计算机系统的物理存储介质层次,并说明每一种介质的数据访问速度。答:根据访问数据的速度、成本和可靠性,计算机系统的存储介质可分成以下六类:①高速缓冲存储器(课后答案网cache):这是一种静态的随机访问存储器(StaticRandomAccessMemory,简记为SRAM)。CPU用cache存储器来加快程序的执行。②主存或内存:这是一种动态的随机访问存储器(DynamicRAM,简记为DRAM)。现在微机的内存已达www.hackshp.cn200MB。上述两种存储器是一种易失性存储器,即掉电时会丢失存储的内容。③快闪存储器(FlashMemory):这种存储器采用EEPROM(电可擦写可编程只读存储器)技术,其优点是存取速度快,缺点是必须一次擦写或写入。其容量已达32兆位,存取速度7×10-8/s,写传输速度是430KB/s。④磁盘:是一种直接访问存储器,现在微机上磁盘的容量已达180GB,I/O传输速度达80MB/s。上述两种存储器属于非易失性存储器,也称为联机存储器。⑤光盘:这种存储器是利用光学原理来存储数据,并通过激光元件来读取数据。自动光盘机的容量已达数千吉字节,旋传速度达400转/分钟,传输速度为200KB/s。数据视频盘(DVD)的容量在4~15吉字节之间。⑥磁带:主要用于数据存档和备份。磁带的容量为1600~6250字节/英寸,一般可达50吉字节。自动磁带机可以存储数量级达太字节的数据。上述两种存储器是一种脱机存储器,又称为第三级存储器。6.3试对“被拴记录”下个确切的定义。被拴记录在物理存储中起什么作用?有什么利弊?答:在数据库中,被指针指向的记录,称为“被拴记录”。被拴记录表示记录已被其他用户引用。如果不小心把被拴记录删掉,那么指向该记录的指针成了“悬挂指针”。悬挂指针指向的空间是“垃圾”,别人无法使用。6.4在教材(P212)的图6.5中,删除记录5。试比较使用下面各种操作时的利弊:①把记录5以下的记录依次移上一个记录位置。②把最后一个记录(记录7)移到记录5的位置。③在记录5中置删除标志位,不移动记录。答:①把被删记录后的记录依次移上来,平均要移动文件中的一半记录。②把文件中最后一个记录填补到被删记录位置,这时只要移动一个记录。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!③在被删结点处置删除标志位,这时使指向该记录的指针成为悬挂指针。6.5在教材(P213)的图6.6的文件中,画出执行下列三个操作后的文件结构:①插入(AN,B-678,800)记录;②删除记录2;③插入(AN,A-384,600)记录。答:解:①插入记录在“记录1”处。②删掉记录2,并且记录2链接到被删结点链表的链首处。③插入记录在“记录2”处。此时图见图6.1。文件首部0LIUA-1026001ANB-6788002ANA-3846003ZHANGA-21460045LIUB-21580067ZHANGB-4676008LIUC-333400图6.16.6试举一个数据库应用例子,说明在表达变长记录时,有时预留空间方法要比指针形式好课后答案网。并作解释。答:譬如在文件中表达学生和选修课程情况,如果每个学生选修课程门数都在12~15门之间,那么此时使用预留空间形式较好,空间浪费较小。www.hackshp.cn6.7试举一个数据库应用例子,说明在表达变长记录时,有时指针形式比预留空间方法好。并作解释。答:譬如在文件中表达学生和其奖惩情况,每个学生的奖惩项目的差别是比较大的,那么此时用指针表示方式较好。6.8在教材(P215)的图6.9变长记录预留空间的文件中,画出执行下列三步操作后的文件结构:①插入(HE,E-254,800)记录;②插入(LOU,C-293,600)记录;③删除(LIU,C-333,400)记录。解:执行题中三步操作后的文件结构如图6.2所示。0LIUA-102600B-215800⊥⊥1WENB-306700⊥⊥⊥⊥2HEF-257800E-254800⊥⊥3ZHANGA-214600B-467600⊥⊥4ZHOUC-343750⊥⊥⊥⊥5LOUB-428850C-293600⊥⊥图6.26.9在教材(P215)的图6.9的文件中,如果还要插入(LIU,F-834,750)记录,会发生什么现象?如何处理?有何利弊?解:此时,LIU的记录长度超过最大长度,此时有两种实现方式:一种是改组文件,增加记录长度,以适应应用的需要。但这样有可能造成空间浪费。另一种是再取一个记录,放(LIU,F-834,750)值,但是应该使这一条记录与原来的记录联系起来,可通过指针等方法来实现。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!6.10在教材(P216)的图6.10变长记录指针表示方式的文件中,画出执行下列三步操作后的文件结构:①插入(HE,E-254,800)记录;②插入(LOU,C-293,600)记录;③删除(LIU,C-333,400)记录。解:执行题中三步操作后的文件结构如图6.3所示。0LIUA-1026001WENB-3067002HEF-2578003ZHANGA-2146004ZHOUC-3437505B-2158006LOUB-4288507B-46760089E-25480010C-293600图6.36.11在顺序文件组织中,为什么只有一个溢出记录时,仍然要申请一个溢出块存放这个溢出课后答案网记录?答:由于文件被组织成物理块的形式,当数据块放满时,只能再申请一个溢出块,把溢出记录放到溢出块中。6.12在关系数据库存储时,试说出下面每种存储技术的两个优点和两个缺点:www.hackshp.cn①每个文件中只存储一个关系;②每个文件中存储多个关系(或整个数据库)。答:①每个文件存储一个关系。其优点是:管理简单,一般的OS就能实现;系统实现方便,一般适用于规模小的数据库。其缺点是文件之间分离,没有联系;数据联系通过软件实现,效率较低。②每个文件中存储多个关系。其优点是:使有联系的数据混放在一起,提高查询速度;加强数据之间的联系。其缺点是:增加了系统的复杂性;对两个文件中的查询处理,速度将变慢。6.13设关系数据库中有两个关系:COURSE(COURSE_NAME,TEACHER)ENROLLMENT(COURSE_NAME,STUDENT_NAME,GRADE)设有三门课程,五个学生,学生与课程间有选修联系。试用聚集文件表示这两个关系的文件结构。解:设有三门课程:PL、OS、DB,五个学生:BAO、CHEN、GU、HAI和YU。如果用户查询多数是从课程找选修的学生。那么可用图6.4表示这个文件:PLWUPLBAO80PLGU70OSLIUOSCHEN90OSGU90DBMA 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!DBBAO85DBYU95图6.46.14什么情况下使用稠密索引比稀疏索引要好?并请作必要的解释。答:在存取时间和空间开销方面,如果强调存取时间,那么应采用稠密索引。这是因为稠密索引是对每个查找键值建立一个索引记录,所以查找速度较快。6.15索引机制加快了查询处理,但为什么文件只在单属性的查找键上建索引?尽可能所出你的理由。答:文件只在单属性的查找键上建索引,这样可以简化系统的管理。如果一个索引有多个属性构成,那么在查询时,若查询条件不是等值操作,而是比较操作,就会带来复杂性,会有较多的I/O操作。6.16主索引和辅助索引之间有什么区别?答:两种索引的区别在于:主索引是指索引的查找键值的顺序与主文件的顺序一致的索引。而辅助索引,是指索引的查找键值的顺序与主文件的顺序不一致的索引。6.17在同一关系上能否对两个不同查找键值建立两个主索引?为什么?答:在同一关系上不允许对两个不同查找键值建立两个主索引,这是因为大多数情况下,主文件的顺序不可能同时与两个索引的查找键值顺序一致。6.18设查找键值集为{2,3,5,7,11,17,19,23,29,31}。假设初始时B+树为空,按升序次序插入键值。就下面三种情况建立三棵B+树:①4阶;②6阶;课后答案网③8阶。解:①4阶B+树如图6.5所示。www.hackshp.cn19符合B+树要求:每个叶结点至少应有2个查找键,至多有3个查找键;每个非叶结点5,1129至少应有2个指针,至多有4个指针;根结点或者没有指针,或者至少2个指针至多有4个指针。2,35,711,1719,2329,31图6.5②6阶B+树如图6.6所示。7,192,3,57,11,1719,23,29,31图6.6③8阶B+树如图6.7所示。112,3,5,711,17,19,23,29,31图6.7 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!6.19对6.18题中建立的B+树,试叙述下列查找操作的过程:①找查找键值为11的记录;②找查找键值在7~17之间的记录;解:B+树的查询方法如下:要检索查找键值为k的所有记录,首先在根结点中找大于k的最小查找键值(设为Ki),然后沿着Ki左边的指针Pi到达第二层的结点。在第二层的结点,用类似的方法找到一个指针,进入第三层的结点……,一直到进入B+树的叶结点,找到一个指针直接指向主文件的记录,或指向一个桶(存放指向主文件记录的指针),最后把所需记录找到。(对6.18题中建立的B+树的查找过程略)6.20对6.18题中建立的B+树,画出执行下列每一步操作后B+树:①插入9;②插入10;③插入8;④删除23;⑤删除19解:(1)对6.18题中的4阶B+树,在插入查找键值9,10,8后,如图6.8所示。19295,9,112,35,7,89,1011,1719,2329,31课后答案网图6.8再删除23后,如图6.9所示。www.hackshp.cn115,9192,35,7,89,1011,1719,29,31图6.9再删除19后,如图6.10所示。115,9292,35,7,89,1011,1729,31图6.10(2)对6.18题中的6阶B+树,在插入键值9、10、8后,如图6.11所示。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!7,10,192,3,57,8,910,11,1719,23,29,31图6.11再删除23、19后,如图6.12所示。7,102,3,57,8,910,11,17,29,31图6.12(3)对6.18题中的8阶B+树,在插入键值9、10、8和删除23、19后,如图6.13所示。112,3,5,7,8,9,1011,17,29,31图6.136.21对于6.18题的查找键值集,建立B树。课后答案网解:据教材中的描述,m阶B树,非叶结点中最多可包含m个指针和m-1个查找键值,而叶结点最多可包含n个指针和n-1个查找键值,而n和m间关系有n>m。(1)对6.18题中的查找键值集,建立www.hackshp.cn4阶B树。此时非叶结点中最多3个查找键值,而假设叶结点中最多可以4个查找键值。再插入2、3、5、7、11后的B树如图6.14所示。52,37,11图6.14再插入17、19、23、29、31后的B树如图6.15所示。5,172,37,1119,23,29,31图6.15(2)对6.18题中的查找键值集,建立6阶B树。此时非叶结点中最多5个查找键值,而假设叶结点中最多可以6个查找键值。在插入10个键值后的B树如图6.16所示。72,3,511,17,19,23,29,31图6.16 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!(3)对6.18题中的查找键值集,建立8阶B树。此时非叶结点中最多7个查找键值,而假设叶结点中最多可以8个查找键值。在插入10个键值后的B树如图6.17所示。112,3,5,717,19,23,29,31图6.176.22封闭式散列法和开放式散列法之间有什么区别?在数据库应用中,这两种方法各有什么利弊?答:封闭式散列法和开放式散列法是指在桶溢出时所采用的方法。(1)封闭式散列法是指每个桶号的存储空间分成基本桶和溢出桶两种。溢出桶链接成一条溢出链,查找某桶号的数据就在这条溢出链中进行,不会到其他溢出链中查找。(2)开放式散列法是把桶集固定下来,也就是只考虑基本桶,不考虑溢出桶。如果有一个桶装满了记录,那么就在桶集中挑选一个有空闲空间的桶,装入新记录。封闭散列法的优点是查找速度快,但结构比较复杂。开放散列法的空间较省,但插入、删除操作比较复杂。所以现在大多数DBS中都是使用封闭散列法。6.23在散列文件组织中,是什么原因引起桶溢出的?有什么办法能减少桶溢出的次数?答:产生桶溢出的原因有两个:初始设计时桶数偏少;散列函数的“均匀分布性”不好。对于前一个原因,在设计散列函数时,桶数应放宽些,一般存储空间应有课后答案网20%的余量,让它空闲着,以利减少桶溢出的机会。对于后一个原因,不管散列函数如何好,再留有空间余量,桶溢出现象难免还会发生,因此用封闭散列法和开放式散列法来解决桶溢出问题。6.24设查找键值集为{2www.hackshp.cn,3,5,7,11,17,19,23,29,31},散列函数为h(x)=(xmod8),每个桶可存储3个记录。试建立一个可扩充散列结构,并画出示意图。解:查找键值的散列值为:键值X散列值h(X)22(010)33(011)55(101)77(111)113(011)171(001)193(011)237(111)291(001)317(111)插入键值2、3、5后的可扩充散列结构,如图6.18所示。00桶002桶地址表3图6.185 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!在插入键值7、11后的结构图,如图6.19所示。桶011203111桶1157图6.19再插入键值17后的结构图,如图6.20所示。2桶01720桶1212233课后答案网111桶2,桶35www.hackshp.cn7图6.20再插入键值19、23、29、31后的结构图,如图6.21所示。2桶0,桶1172930桶21322345桶336371119桶4,桶525桶6,桶72图6.2172331 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!6.25对6.24题中的可扩充散列结构,试叙述执行下列各操作后可扩充散列结构如何变化:①删除11;②删除31;③插入1;④插入15。解:在6.24题的可扩充散列结构中,执行本题的各个操作后,得到的结构图如图6.22所示。2桶0122912桶1223019122桶2352桶3723课后答案网15图6.226.26为什么散列结构不适宜对查找键进行范围查询?www.hackshp.cn答:由于范围查询的查找键是分散在各个桶中,因此散列结构不适宜对查找键进行范围查询。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第7章系统实现技术7.1基本知识点7.1.1本章重要概念(1)系统目录及其和DBMS各子系统的联系。(2)事务的定义,COMMIT和ROLLBACK的语义,事务的ACID性质,事务的状态变迁图。(3)存储器类型,稳定存储器的实现,数据传送过程。(4)恢复的定义、基本原则和实现方法,故障的类型,检查点技术,REDO和UNDO操作,运行记录优先原则。(5)并发操作带来的三个问题,X锁、PX协议、PXC协议,S锁、PS协议、PSC协议,活锁、饿死和死锁,并发调度,串行调度,并发调度的可串行化,两段封锁法,SQL中事务的存取模式和隔离级别。(6)完整性的定义,完整性子系统的功能,完整性规则的组成。SQL中的三大类完整性约束,SQL3中的触发器技术。(7)安全性的定义、级别,权限,SQL中的安全性机制,几种常用的安全性措施,自然环境的安全性。7.1.2本章的重点篇幅(1)教材中P261的图7.7。(检查点技术)(2)并发操作带来的四个问题,封锁带来的三个问题,并发调度的可串行化。(教材P265-276)课后答案网(3)SQL中完整性约束的实现:断言(教材P290)。(4)安全性中的授权语句(教材P298)。www.hackshp.cn7.2教材中习题7的解答7.1名词解释·系统目录:系统目录(systemcatalog)是任何通用DBMS的核心。系统目录本身就是一个“微型数据库”,其主要功能是存储DBMS管理的数据库的定义或描述。这类信息被称为元数据(metadata),主要包括数据库三级结构、两级映像的定义。·事务:事务是构成单一逻辑工作单元的操作集合。·DB的可恢复性:系统能把DB从被破坏、不正确的状态,恢复到最近一个正确的状态,DBMS的这种功能称为DB的可恢复性。·并发操作:在多用户共享系统中,许多事务可能同时对同一数据进行操作,这种操作称为并发操作。·封锁:封锁是系统保证对数据项的访问以互斥方式进行的一种手段。·X锁:事务T对某数据加了X锁后,其他事务要等T解除X锁后,才能对这个数据进行封锁。·PX协议:只有获准X锁的事务,才能修改数据,否则这个事务进入等待状态。·PXC协议:PX协议再加上一条规则:“X锁必须保留到事务终点才能解除”。·S锁:事务T对某数据加了S锁后,仍允许其他事务再对该数据加S锁,但在对该数据的所有S锁都解除之前决不允许任何事务对该数据加X锁。·PS协议:获准S锁的事务,只能读数据,不能修改数据。·PSC协议:PS协议再加上一条规则:“S锁必须保留到事务终点才能解除”。·活锁:系统可能使某个事务永远处于等待状态,得不到封锁的机会,这种现象称为“活锁”。·饿死:若干事务连续不断地对某数据实现加S锁和释放S锁的操作,那么若有一个事务欲对该数据加X锁,将永远轮不上封锁的机会。这种现象称为“饿死”。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!·死锁:若干事务都处于等待状态,相互等待对方解除封锁,结果造成这些事务都无法继续执行,这种现象称为系统进入了“死锁”状态。·调度:事务的执行次序称为“调度”。·串行调度:多个事务依次执行,称为事务的串行调度。·并发调度:利用分时的方法,同时处理多个事务,则称为事务的并发调度。·可串行化调度/不可串行化调度:如果一个并发调度的执行结果与某一串行调度的执行结果等价,那么这个并发调度称为“可串行化的调度”,否则称为“不可串行化调度”。·两段封锁协议:事务分成两个阶段,前一阶段只能申请封锁,后一阶段只能释放封锁,这一规则称为事务的两段封锁协议。7.2关系DBMS的系统目录中存储那些信息?答:关系DBMS的系统目录存储下列信息:①关系名,属性名,属性域(数据类型);②各种约束,主键,辅助键,外键,空值/非空值;③视图的外部级描述,存储结构和索引的内部级描述;④安全性和授权规则;⑤数据完整性规则。在关系DBMS中,系统目录被组织成关系(表格),例如Oracle系统中,系统目录由42个关系组成。DBMS可以对目录执行查询、修改和维护操作;而用户一般只能执行查询操作不能进行修改或维护。7.3试叙述系统目录中三级模式的信息是如何存储的?答:系统目录中存储三级模式结构的信息主要有以下一些表格:课后答案网①存储数据库中关系模式定义的表格。其属性有关系模式的名字、属性名、类型名、是否主键、是否外键等。②存储数据库中视图定义的表格要两张。一张表格用于存储视图的定义,另一张表格用www.hackshp.cn于存储视图中的属性。③有关数据库中关键码、索引的信息,各用一张表格。7.4为什么必须有效地访问DBMS的系统目录?试举例说明。答:在DBS运行时,DBMS各个子系统都要频繁地使用系统目录。所有用户的逻辑数据和磁盘中物理数据,都要与系统目录中的数据定义去比较。也就是这两种数据之间的数据传输和格式转换都要在系统目录定义的框架中进行。因此DBMS的DDL编译程序,DML的分析程序、编译程序、优化程序,安全性、完整性等检查程序都要随时访问系统目录,必须是有效地访问,否则势必造成系统效率低下,甚至瘫痪、崩溃。7.5试把教材中P251的图7.3扩充的ER图转换成等价的关系模式集。解:这个扩充的ER图可转换成如下的关系模式集。由于教材中ER图里的属性较少,这里又增加了一些属性。关系(关系编号,关系名,数据库编号)视图关系(视图关系编号,视图名,创建者,创建时间)视图属性(视图属性编号,属性名,类型,视图关系编号)基本关系(基本关系编号,关系名,创建者,创建时间)属性(属性编号,属性名,类型,基本关系编号,键编号,索引编号)键(键编号,键名,键类型,基本关系编号,索引编号)外键(外键编号,外键名,基本关系编号) 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!索引(索引编号,索引名,索引类型,基本关系编号)7.6试叙述事务的四个性质,并解释每一个性质由DBMS的哪个子系统实现?每一个性质对DBS有什么益处?答:①事务的原子性,是指一个事务对DB的所有操作,是一个不可分割的工作单元。原子性是由DBMS的事务管理子系统实现的。事务的原子性保证了DBS的完整性。②事务的一致性,是指数据不会因事务的执行而遭受破坏。事务的一致性是由DBMS的完整性子系统实现的。事务的一致性保证数据库的完整性。③事务的隔离性,是指事务的并发执行与这些事务单独执行时结果一样。事务的隔离性是由DBMS的并发控制子系统实现的。隔离性使并发执行的事务不必关心其他事务,如同在单用户环境下执行一样。④事务的持久性,是指事务对DB的更新应永久地反映在DB中。持久性是由DBMS的恢复管理子系统实现的。持久性能保证DB具有可恢复性。7.7事务的COMMIT语句和ROLLBACK语句各做什么事情?答:COMMIT语句表示事务执行成功地结束(提交),此时告诉系统,DB要进入一个新的正确状态,该事务对DB的所有更新都已交付实施(写入磁盘)。ROLLBACK语句表示事务执行不成功地结束(应该“回退”),此时告诉系统,已发生错误,DB可能处在不正确的状态,该事务对DB的所有更新必须被撤消,DB应恢复该事务到初始状态。7.8试列出事务状态变迁图(教材P255的图7.4)中所有可能的状态路径。并叙述路径中状态变迁的原因。课后答案网答:状态变迁如图7.1所示。状态变迁变迁的原因活动状态=>局部提交事务的最后一个语句执行之后状态www.hackshp.cn局部提交状态=>提交事务未与并发事务发生干扰,并且事务对DB状态修改均已写到磁盘活动状态=>失败状态事务还没到达最后一个语句就中止执行局部提交状态=>失败局部提交的事务,发现与其他并发事务发生干状态扰,或未能完成对磁盘中DB的修改失败状态=>异常中止处于失败状态的事务,应该被撤销,即回退图7.17.9试解释三种存储器类型之间的区别。答:从存储器的访问速度、容量和恢复能力角度考察,计算机系统的存储介质可分成三类。①易失性存储器,指内存和cache存储器。在系统发生故障时,存储的信息会立即丢失。但访问速度最快。②非易失性存储器,指磁盘和磁带。在系统故障时,存储的信息不会丢失。但这一类存储器受制于本身的故障,会导致信息的丢失。访问速度要比易失性存储器慢几个数量级。③稳定存储器,这是一个理论上的概念。存储的信息是决不会丢失。这可以通过对非易失性存储器进行技术处理来达到稳定存储器的目标。7.10为什么稳定性存储器是不可能实现的?在DBS中采用什么方法追求这个目标?答:由于存储器受制于本身的故障,会导致信息的丢失,因此稳定性存储器是不可能实现的。但可以通过对非易失性存储器进行技术处理来达到稳定性存储器的目标。主要是通过数据备份和数据银行形式实现。7.11假设一个DBS决不会发生故障,是否还需要有恢复管理机制?试说出理由。答:即使一个DBS不会发生故障,那么仍然需要有恢复管理机制。譬如,事务并发执行时由 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!封锁产生的死锁问题,以及掉电引起的系统停止运行,这些都是系统运行时遇到的不可抗拒的事件,仍然需要由恢复管理机制利用日志执行REDO和UNDO处理。7.12数据库恢复的基本原则是什么?具体实现方法是什么?答:恢复的基本原则是“冗余”,即数据重复存储。为了做好恢复工作,在平时应做好两件事:定时对DB进行备份;建立日志文件,记录事务对DB的更新操作。7.13DBS中有哪些类型的故障?哪些故障破坏了数据库?哪些故障未破坏数据库,但使其中某些数据变得不正确?答:DBS中DB的故障主要有三类:事务故障、系统故障和介质故障。前两类故障未破坏DB,但使其中某些数据变得不正确,此时只要利用日志撤消或重做事务。介质故障将破坏DB,此时只能把DB备份拷贝到新的磁盘,再利用日志重做事务对DB的修改。7.14“检查点机制”的主要思想是什么?COMMIT语句与检查点时刻的操作如何协调?答:“检查点机制”的主要思想是在检查点时刻才真正做到把对DB的修改写到磁盘。在DB恢复时,只有那些在最后一个检查点到故障点之间还在执行的事务才需要恢复。事务在COMMIT时,事务对DB的更新已提交,但对DB的更新可能还留在内存的缓冲区,在检查点时刻才真正写到磁盘。因此事务的真正结束是在COMMIT后还要加上遇到检查点时刻。7.15什么是UNDO操作和REDO操作?为什么要这样设置?答:UNDO和REDO是系统内部命令在DB恢复时,对于已经COMMIT但更新仍停留在缓冲区的事务要执行REDO(重做)操作,即根据日志内容把该事务对课后答案网DB修改重做一遍。对于还未结束的事务要执行UNDO(撤消)操作,即据日志内容把该事务对DB已作的修改撤消掉。设置UNDO和www.hackshp.cnREDO操作,是为了使数据库具有可恢复性。7.16什么是“运行记录优先原则”?其作用是什么?答:写一个修改到DB中和写一个表示这个修改的登记记录到日志文件中是两个不同的操作,后者比前者重要,后者应先做。这就是运行记录优先原则。其作用是保证DBS具有可恢复性。7.17数据库的并发操作会带来哪些问题?如何解决?答:如果不加控制,数据库的并发操作会带来四个问题:丢失更新问题、读脏数据问题、错误求和问题、不可重复读问题。解决并发操作带来的问题,可以使用封锁技术和时标技术。7.18为什么DML可以单独提供解除S封锁的命令,而不单独提供解除X封锁的命令?答:为防止由事务的ROLLBACK引起丢失更新操作,X封锁必须保留到事务终点,因此DML不提供专门的解除X锁的操作,即解除X锁的操作合并到事务的终点去做。而在未到事务终点时,执行解除S锁的操作,可以增加事务并发操作的程度,但对DB不会产生什么错误的影响,因此DML可以提供专门的解除S锁的操作,让用户使用。7.19为什么有些封锁需保留到事务终点,而有些封锁可随时解除?答:(答案与7.18题的解答相同)7.20封锁会带来哪些问题?如何解决?答:封锁技术,可以避免并发操作引起的各种错误,但有可能产生三个问题,其解决办法如下:①“活锁”问题,可用“先来先服务”排队的方式和提高事务优先级的方法来解决。②“饿死”问题,可用“授权加锁”方法来避免。③“死锁”问题,可用抽取某事务作为牺牲品,把它撤销的方法来解决。7.21死锁的发生是坏事还是好事?试说明理由。如何解除死锁状态?答:在DBS运行时,死锁状态是我们不希望发生的,因此死锁的发生本身是一件坏事。但是 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!坏事可以转换为好事。如果我们不让死锁发生,让事务任意并发做下去,那么有可能破坏DB中数据,或用户读了错误的数据。从这个意义上讲,死锁的发生是一件好事,能防止错误的发生。在发生死锁后,系统的死锁处理机制和恢复程序就能起作用,抽取某个事务作为牺牲品,把它撤消,做ROLLBACK操作,使系统有可能摆脱死锁状态,继续运行下去。7.22试叙述“串行调度”与“可串行化调度”的区别。答:如果多个事务依次执行,则称事务串行调度。如果利用分时的方法,同时处理多个事务,则称为事务的并发调度。如果一个并发调度的结果与某一串行调度执行结果等价,则称这个并发调度是可串行化调度。7.23SQL中事务存取模式的定义和隔离级别的定义与数据库的并发控制有什么关系?答:事务的存取模式是对事务的读/写操作的限制。事务的隔离机制是对事务并发控制的约束。隔离机制从高到低有四个级别:可串行化,可重复读,读提交数据和可以读未提交数据。7.24什么是事务的时标?时标顺序协议的基本思想是什么?答:在事务Ti运行时,有惟一的时间标志,称为时标或时戳。具体地说,事务的时标是指事务的启动时间或某个逻辑编号。时标顺序协议的基本思想有三点:①数据库中,所有的物理更新推迟到COMMIT的时候执行。,②不允许一个事务查看被较年轻事务更新了的记录,也不允许要求更新被较年轻事务查看过或更新过的记录。如果发生这种事情,那么提出要求的事务被重新启动。③事务重启动时不需要任何回退操作。课后答案网7.25就实现的难度和额外开销两方面,比较阴影页恢复技术和基于日志恢复技术的优缺点。答:这个比较见图7.2。www.hackshp.cn阴影页恢复技术基于日志恢复技术实现难度实现难度较大系统中常用的恢复技术减少了额外的output操作,恢与存储技术无关,优点复比较快,不必做REDO和UNDO利用日志来进行恢额外开销操作复增加了存储技术的复杂性,恢复时,要执行REDO缺点产生了垃圾回收问题和UNDO操作图7.27.26图7.3表示事务T1和T2的并发执行,在下列条件下各会发生什么情况?①PSC协议(并执行两段封锁法)。②PXC协议。③时标顺序协议。时间事务T1事务T2t1*startt2*startt3FINDAt4FINDBt5FINDBt6FINDAt7UPDBT8UPDA图7.3一个并发调度解:则三种情况的执行示意图分别如图7.4、图7.5、图7.6所示。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!时间事务T1事务T2t1*startt2*startt3SFINDAt4SFINDBt5SFINDBt6SFINDAt7UPDXB(失败)t8waitUPDXA(失败)t9waitwaitt10waitwait(两事务在t9时刻进入死锁状态)图7.4执行PSC协议(并执行两段封锁法)时的示意图时间事务T1事务T2t1*startt2*startt3XFINDAt4XFINDBXFINDB(失t5败)课后答案网XFINDA(失t6wait败)t7waitwaitwww.hackshp.cnt8waitwait(两事务在t7时刻进入死锁状态)图7.5执行PXC协议时的示意图时间事务T1事务T2R_timestamp(A)W_timestamp(A)R_timestamp(B)W_timestamp(B)TS(T1)*start*0000TS(T2)*start*t3read(A)TS(T1)t4read(B)TS(T2)t5read(B)TS(T2)t6read(A)TS(T2)t7write(B)t8*restart*write(A)TS(T2)(为方便,此图中把FIND和UPD操作改成read和write操作。这个例子在t7时刻,事务T1的写操作失败,将重新启动)图7.6执行时标顺序协议时的示意图7.27什么是数据库的完整性?DBMS的完整性子系统的主要功能是什么?答:DB中完整性是指数据的正确性、有效性和相容性,防止错误的数据进入DB。DBMS完整性子系统的主要功能有两点:监督事务的执行,并测试是否违反完整性规则;若有违反现象,则采取恰当的操作。7.28完整性规则由哪几个部分组成?SQL中的完整性约束有哪些?答:完整性规则由三部分组成:触发条件,约束条件和ELSE子句。SQL中把完整性约束分成三大类:域约束。基本表约束和断言。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!7.29参照完整性规则在SQL中可以用哪几种方法实现?删除参照关系的元组时,对依赖关系有哪些影响?修改参照关系的主键值时,对依赖关系有哪些影响?答:参照完整性规则,在SQL中可以用外键子句、检查子句、断言等三种方式实现。删除参照关系的元组时,对依赖关系的影响可以采取下列三种做法之一:RESTRICT方式、CASCADE方式和SETNULL方式。(解释略)修改参照关系的主键值时,对依赖关系的影响也可以采取与上述类似的三种做法之一。(解释略)7.30试对SQL中检查约束(CHECK子句)和断言两种完整性约束进行比较,各说明什么对象?何时激活?能保证数据库的一致性吗?答:检查子句主要用于对属性值、元组值加以限制和约束。断言实际上是一种涉及面广的检查子句,用CREATE语句来定义。这两种约束都是在进行插入或修改时激活,进行检查。检查子句只在定义它的基本表中有效,而对其他基本表无约束力,因此在与检查子句有关的其他基本表进行修改时,就不能保证这个基本表中检查子句的语义了。而断言能保证完整性约束彻底实现。7.31设教学数据库的关系如下:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)试用多种方法定义下列完整性约束:⑴在关系S中插入的学生年龄值应在16课后答案网~25岁之间。⑵在关系SC中插入元组时,其S#值和C#值必须分别在S和C中出现。⑶在关系C中删除一个元组时,首先要把关系SC中具有同样C#值的元组全部删去。⑷在关系S中把某个S#值修改为新值时,必须同时把关系SC中那些同样的S#值也修改www.hackshp.cn为新值。解:这里每个约束用一种方式定义。(1)用检查子句定义:CHECK(AGEBETWEEN16AND25);(2)在关系SC的定义中,用外键子句定义:FOREIGNKEY(S#)REFERENCESS(S#);FOREIGNKEY(C#)REFERENCESC(C#);(3)在关系SC的定义中,用外键子句定义:FOREIGNKEY(C#)REFERENCESC(C#)ONDELETECASCADE;(4)在关系SC的定义中,用外键子句定义:FOREIGNKEY(S#)REFERENCESS(S#)ONUPDATECASCADE;7.32在教学数据库中的关系S、SC、C中,试用SQL的断言机制定义下列两个完整性约束:⑴学生必须在选修MATHS课后,才能选修其他课程。⑵每个男学生最多选修20门课程。解:(1)这个约束可用下列形式表达:不存在一个学生的选课,这个学生没学过MATHS课。这样就能很容易地写出断言:CREATEASSERTIONASSE1CHECK(NOTEXISTS(SELECTS#FROMSCX 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!WHERENOTEXISTS(SELECT*FROMSCY,CWHEREY.C#=C.C#ANDY.S#=X.S#ANDCNAME=’MATHS’)));(2)CREATEASSERTIONASSE2CHECK(20>=ALL(SELECTCOUNT(C#)FROMS,SCWHERES.S#=SC.S#ANDSEX=’M’GROUPBYS.S#));7.33什么是数据库的安全性?有哪些级别的安全措施?答:DB的安全性是指保护DB,防止不合法的使用,以免数据的泄密、更新或破坏。为了保护DB,防止恶意的滥用,可以在从低到高五个级别上设置各种安全措施:环境级、职员级、OS级、网络级、DBS级。(解释略)7.34对银行的DBS应采取哪些安全措施?分别属于哪一级?(解释略)7.35什么是“权限”?用户访问数据库有哪些权限?对数据库模式有哪些修改权限?答:用户(或应用程序)使用DB的方式称为权限。用户访问DB有四种权限:Read、Insert、Update和Delete。用户修改DB模式有四种权限:Index、Resource、Alteration和Drop。7.36试解释权限的转授与回收。课后答案网答:权限的转授与回收是指DBS允许用户把已获得的权限再转授给其它用户,也允许把已授给其它用户的权限再回收上来,但应保证转授出去的权限能收得回来。为了便于回收,用权限图表示转让关系。www.hackshp.cn一个用户拥有权限的充分必要条件是在权限图中从根结点到该用户结点存在一条路经。7.37SQL的视图机制有哪些优点?答:SQL的视图机制使系统具有三个优点:数据安全性,逻辑独立性和操作简便性。7.38SQL2中的用户权限有哪几类?并作必要的解释。答:SQL2中用户权限有六类:SELECT、INSERT、DELETE、UPDATE、REFERENCES和USAGE。(解释略)7.39安全性措施中强制存取控制是如何实现的?答:这个方法的基本思想是把数据分成若干个密级级别,用户也分成相应的若干个许可证级别。密级和许可证级别都是严格有序的。在系统运行时,规定用户只能查看比它级别低或同级的数据,用户只能修改和它同级的数据。用这种方法来保证系统的安全性。7.40统计数据库是如何防止用户获取单记录信息的?答:在统计数据系统运行时,对查询应作下列限制:①一个查询查到的记录个数不能太少,至少应是n;②两个查询查到的记录的“交”数目不能太多,至多是m;系统可以调整n和m的值,使得用户很难获取个别记录的信息,但要做到完全杜绝是不可能的。7.41数据加密法有些什么优点?如何实现?答:数据加密法的优点是虽然加密键是公开的,但解密键极难推出。用这个方法保证了数据的安全性。(实现方法见教材P186-187)7.42数据库的并发控制、恢复、完整性和安全性之间有些什么联系和区别?答:这四个方面是一个有机的整体,不可偏废某一方面。DBMS的这四个子系统一起保证了DBS的正常运行。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!DB的可恢复性防止DB被破坏或DB中数据有错误。DB的并发控制是为了避免DB中数据有错误或用户读取“脏数据”这两件事的发生。DB的完整性是为了保证DB中数据是正确的,避免非法的更新。DB的安全性也是为了保护DB,防止不合法的使用,以免数据的泄露、非法更改和破坏。7.3自测题7.3.1填空题1.系统目录的功能是存储元数据,元数据主要包括___________的定义。2.在DBS运行时,DBMS各个子系统要频繁地访问___________,来保证系统正常运行。3.在应用程序中,事务以BEGINTRANSACTION语句开始,以___________或__________语句结束。4.事务的原子性是由DBMS的___________实现的。5.事务的一致性是由DBMS的___________实现的。6.事务的隔离性是由DBMS的___________实现的。7.事务的持久性是由DBMS的___________实现的。8.抽象的事务模型中,事务有五种状态:________、________、________、________和________。9.恢复的基本原则是___________。要使数据库具有可恢复性,在平时要做好两件事:___________和___________。10.如果对数据库的并发操作不加以控制,则会带来四类问题:___________、___________、___________和___________。11.锁(lock)描述了数据项的状态,其作用是使________________。12.事务的执行次序称为___________课后答案网。13.判断一个并发调度是否正确,可以用___________概念来解决。14.封锁能避免错误的发生,但会引起问题。15.S封锁增加了并发度,但缺点是www.hackshp.cn___________。16.两段式封锁是可串行化的__________条件。17.数据库的完整性是指数据的___________、___________和___________。18.错误数据的输入和输出,称为___________。19.数据库中数据发生错误,往往是由___________引起的。20.数据库完整性子系统是根据___________工作的。21.数据库完整性规则由三部分组成:___________、___________和___________。22.SQL中完整性约束有四种:___________,___________,___________和___________。23.SQL中全局约束有___________和___________两种。24.在SQL的外键约束中,如果“ONDELETE……”短语不写时,系统默认是___________方式。25.用户使用数据库的方式,称为___________。26.SQL中的安全性机制,主要有两个:___________和___________。27.SQL的授权语句中的关键字PUBLIC表示___________。28.SQL中“REVOKEGRANTOPTIONFOR……”表示___________。7.3.2单项选择题(在备选的答案中选出一个正确答案)1.事务(transaction)是一个[]A.程序B.进程C.操作序列D.完整性规则2.事务对DB的修改,应该在数据库中留下痕迹,永不消逝。这个性质称为事务的[]A.持久化B.隔离性C.一致性D.原子性3.事务的并发执行不会破坏DB的完整性,这个性质称为事务的[]A.持久化B.隔离性C.一致性D.原子性 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!4.数据库恢复的重要依据是[]A.DBAB.DDC.文档D.事务日志5.后备副本的主要用途是[]A.数据转储B.历史档案C.故障恢复D.安全性控制6.“日志”文件用于保存[]A.程序运行过程B.数据操作C.程序执行结果D.对数据库的更新操作7.在DB恢复时,对已经COMMIT但更新未写入磁盘的事务执行[]A.REDO处理B.UNDO处理C.ABORT处理D.ROLLBACK处理8.在DB恢复时,对尚未做完的事务执行[]A.REDO处理B.UNDO处理C.ABORT处理D.ROLLBACK处理9.在DB技术中,“脏数据”是指[]A.未回退的数据B.未提交的数据C.回退的数据D.未提交随后又被撤消的数据10.如果有n个事务串行调度,那么不同的有效调度有[]A.n2B.2nC.4nD.n!11.如果n个事务并发调度,那么可能的并发调度数目[]A.为nB.为4nC.为n!D.大于n!12.事务的执行次序称为[]A.过程B.步骤C.调度D.优先级13.在事务依赖图中,如果两个事务的依赖关系形成一个循环,那么就会课后答案网[]A.出现活锁现象B.出现死锁现象C.事务执行成功D.事务执行失败14.“所有事务都是两段式”与“事务的并发调度是可串行化”两者之间关系是www.hackshp.cn[]A.同时成立与不成立B.没有必然的联系C.前者蕴涵后者D.后者蕴涵前者15.“断言”是DBS采用的[]A.完整性措施B.安全性措施C.恢复措施D.并发控制措施7.3.3简答题1.试叙述事务的ACID性质及其实现者。2.COMMIT操作和检查点时的操作有些什么联系?你认为应该如何恰当协调这两种操作才有利于DB的恢复?3.日志文件中记载了哪些内容?4.试比较并发与并行的区别。5.试解释DB的并发控制与恢复有什么关系?6.X封锁与S封锁有什么区别?7.3.4设计题设教学数据库中有四个基本表:系DEPT(D#,DNAME,MGR#)其属性分别表示系编号、系名、系主任的教师工号。教师T(T#,TNAME,AGE,SEX,SALARY,D#)其属性分别表示教师工号、姓名、年龄、性别、工资、所在系的编号。任课TC(T#,C#,TEXTBOOK)其属性分别表示教师工号、课程号和所用的教材名。课程C(C#,CNAME,D#)其属性分别表示课程号、课程名和开课系的编号。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!下面的题目都是针对这四个基本表进行操作。1.用SQL的子句或语句定义下列完整性约束:①编号小于D8的系的教师年龄在20~40岁之间,其他系的教师年龄在20~60岁之间。②在教师表T中出现的D#值必须在DEPT表中出现(用三种形式定义)。③每个女教师至少要任教一门课。④每个男教师至少要任教两门课。⑤每个系教师的平均工资不能低于2000元。⑥不允许男教师担任“艺术体操”课程。2.试对下列操作写出授权语句:①把对DEPT表的插入、修改、删除、查询的权限授给用户LIU。②把对TC、C表的查询权限转授给全体用户。③允许用户ZHANG引用C表的主键作为新表的外键,并有转让权限。④从用户ZHANG回收对C表主键引用的转授权。7.4练习题答案7.4.1填空题答案1.DB三级结构、两级映象2.系统目录3.COMMITROLLBACK4.事务管理子系统5.完整性子系统6.并发控制子系统课后答案网7.恢复管理子系统8.活动状态局部提交状态失败状态异常中止状态提交状态9.冗余转储(备份)www.hackshp.cn记“日志”10.丢失更新问题读“脏数据”问题错误求和问题不可重复读问题11.并发事务对数据库中数据项的访问能够同步12.调度13.可串行化14.活锁和死锁15.容易发生死锁16.充分17.正确性有效性相容性18.垃圾进垃圾出19.非法的更新20.完整性规则集21.触发条件约束条件(谓词)ELSE子句22.主键约束外键约束属性值约束全局约束23.基于元组的检查子句断言24.RESTRICT25.权限26.视图授权27.系统中当前的和未来的全体用户28.回收转授出去的转让权限7.4.2单项选择题答案1.C2.A3.B4.D5.C6.D7.A8.B9.D10.D11.D12.C 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!13.B14.C15.A7.4.3简答题答案1.答:事务的ACID性质及其实现者见图7.7。内容实现者事务是一个基本工作单位,不可以被分割DBMS的事务管理子系原子性执行统1.程序员(正确地编写事务独立执行的结果,应保证DB的一致事务)一致性性2.DBMS的完整性子系统在多个事务并发执行时,保证执行结果是DBMS的并发控制子系隔离性正确的,如同单用户环境一样统事务对DB的更新,应永久地反映在DB中,DBMS的恢复管理子系持久性即应保留这个事务执行的痕迹统图7.72.答:在COMMIT和检查点技术联合使用时,COMMIT操作就不一定保证事务对DB的修改写到磁盘,而要到检查点时刻才保证写到磁盘。在系统恢复时,那些已经执行了COMMIT操作但修改仍留在内存缓冲区的事务需要做恢复工作,利用日志重做(REDO)事务对DB的修改。在事务执行时,应在日志中记下事务的开始标记、结束标志以及事务对DB的每一个修改。在系统恢复时,要在日志中检查故障点与最近一个检查点之间,哪些事务执行了课后答案网COMMIT操作(这些事务应重做),哪些事务还未结束(这些事务应撤销)。3.答:日志文件中记载了事务开始标记、事务结束标记以及事务对DB的插入、删除和修改的每一次操作前后的值。www.hackshp.cn4.答:并发与并行的区别见图7.8。定义方法对立面在某时间段单处理机(一个CPU,利串行(serial)(事务按并发上,有n个活用分时方法,实现多个事务顺序先后执行)(concurrent)动同时作)在某时间点顺序(sequential)(事并行上,有n个活多处理机(并行系统)务按顺序先后执行)(parallel)动图7.85.答:如果采用封锁机制,事务并发操作时有可能产生死锁。为了解除死锁状态,就要抽取某个事务作牺牲品,把它撤消掉,做回退操作,这就属于DB的恢复范畴。6.答:X锁与S锁的区别见图7.9。X锁S锁只允许一个事务独锁数据允许多个事务并发S锁某一数据获准X锁的事务可以修改数据获准S锁的事务只能读数据,但不能修改数据事务的并发度低事务的并发度高,但增加了死锁的可能性X锁必须保留到事务终点根据需要,可随时解除S锁解决“丢失更新”问题解决“读不一致性”问题图7.97.4.4设计题答案1.解: 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!①用检查子句定义:CHECK((D#<"D8"ANDAGEBETWEEN20AND40)OR(D#>="D8"ANDAGEBETWEEN20AND60));②第一种形式,在T表中,加一个外键子句,同时在D#定义时注明非空:D#CHAR(4)NOTNULL,FOREIGNKEYD#REFERENCESDEPT(D#)第二种形式,在T表中用CHECK子句定义:CHECK(D#IN(SELECTD#FROMDEPT))第三种形式,用断言定义:CREATEASSERTIONASSE2CHECK(NOTEXISTS(SELECT*FROMTWHERED#NOTIN(SELECTD#FROMDEPT)));③用断言定义:CREATEASSERTIONASSE3CHECK(NOTEXISTS(SELECT*FROM课后答案网TWHERESEX="F"ANDT#NOTINwww.hackshp.cn(SELECTT#FROMTC)));④用断言定义:CREATEASSERTIONASSE4CHECK(2<=(SELECTCOUNT(C#)FROMT,TCWHERESEX="M"ANDT.T#=TC.T#GROUPBYT.T#));⑤用断言定义:CREATEASSERTIONASSE5CHECK(2000<=(SELECTAVG(SALARY)FROMTGROUPBYD#));⑥用断言定义:CREATEASSERTIONASSE6CHECK(NOTEXISTS(SELECT*FROMTCWHERET#IN(SELECTT#FROMTWHERESEX="M")ANDC#IN(SELECTC#FROMC 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!WHERECNAME="艺术体操")));2.解:①GRANTINSERT,UPDATE,DELETE,SELECTONDEPTTOLIU;②GRANTSELECTONTC,CTOPUBLIC;③GRANTREFERENCES(C#)ONCTOZHANGWITHGRANTOPTION;④REVOKEGRANTOPTIONFORREFERENCES(C#)ONCFROMZHANG;课后答案网www.hackshp.cn 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第8章对象数据库系统8.1基本内容分析8.1.1本章重要概念(1)新一代DBS的两条途径:ORDBS和OODBS。(2)平面关系模型,嵌套关系模型,复合对象模型,引用类型,对象联系图的成分及表示方法,数据的概化/特化,继承性。(3)OO的数据类型系统:基本类型,五种复合类型,引用类型。(4)对象关系模型的定义,两个级别的继承性,引用类型的定义,ORDB的查询语言,路径表达式,Oracle中查询的两种技术,嵌套与解除嵌套。(5)OODBS的定义,OO数据模型的五个基本概念,ODMG1.0标准的ODL和OML,ODMG2.0标准的数据模型、ODL和OQL。(6)OODB与ORDB的比较。(7)UML的类图,用类图表达类、关联、关联类、概化/特化、聚合。8.1.2本章的重点篇幅:(1)教材P311的图8.5。(对象联系图)(2)OO的类型系统。(教材P313~314)(3)教材P318的例8.7,P321-322的例8.10~例8.13。(ORDB的定义语言和查询语言)(4)教材P339的例8.26,P341的例8.27。(ODMG2.0标准的ODL和OQL)(5)教材P347的8.9节的UML类图。虽然本书对这一节加了星号“*”,但面向对象的概念建模是今后发展的方向。课后答案网8.1.3重点内容分析本章的核心是数据库技术发展的三个演变过程。1.数据模型的演变www.hackshp.cn从关系模型到面向对象模型经历了下面的发展过程:·平面关系模型:属性都是基本数据类型。·嵌套关系模型:属性可以是基本数据类型,也可以是关系类型,且数据结构可以多次嵌套。·复合对象模型:属性可以是基本数据类型,也可以是关系类型,还可以是元组类型,且数据结构可以多次嵌套。·面向对象类型:在复合对象模型的基础上,数据结构的嵌套采用引用(指针)方式,并且引入面向对象技术的继承性等概念。2.查询语言的演变这里主要是指SELECT语句的演变过程:·RDB中的SELECT语句,由六个子句构成。·ORDB中的SELECT语句(SQL3标准),引入了路径表达式、嵌套与解除嵌套等概念。·OODB中的SELECT语句(ODMG2.0标准),有了更多的扩充,并与宿主语言语句混合起来,可以表达更为复杂的查询操作。3.概念建模的演变这里主要是理解ER图的演变历程:·ER图:主要用于关系数据库的设计。·对象联系图:它是ER图的扩充,使之能表达对象之间的引用。·UML的类图:这是一种纯OO技术的结构。体现了现实世界数据之间面向对象的各种联系方式。8.2教材中习题8的解答8.1名词解释 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!·平面关系模型:满足INF性质的关系模型,称为平面关系模型。·嵌套关系模型:允许属性值可以是一个关系,而且可以出现多次嵌套,这种关系模型称为嵌套关系模型。·复合对象模型:允许属性值可以是关系或元组,而且可以出现多次嵌套,这种关系模型称为复合对象模型。·数据的泛化/细化:是对概念之间联系进行抽象的一种方法。当在较低层上抽象表达了与之联系的较高层上抽象的特殊情况时,就称较高层上抽象是较低层上抽象的“泛化”;而较低层上抽象是较高层上抽象的“细化”。·对象关系模型:在传统的关系模型基础上,提供元组、数组、集合一类丰富的数据类型以及处理新数据类型操作的能力,并且有继承性和对象标识等面向对象特点,这样形成的数据模型,称为“对象关系数据模型”。·类型级继承性:在ORDB中,数据类型之间的子类型与超类型的联系,称为“类型级继承性”。·表级继承性:在ORDB中,表之间的子表与超表的联系,称为“表级继承性”。·引用类型:数据类型嵌套时,在具体实现时不是引用对象本身的值,而是引用对象标识符,这种数据类型称为“引用类型”。·ODMG组织:致力于开发工业化OODB标准的国际组织。·对象:对象可以定义为对一组信息及其操作的描述。对现有一组变量、一组消息和一组方法三个部分组成。·类:类是相似对象的集合,类中所有对象共享一个公共的定义,而赋予变量的值各不相同。课后答案网·单重继承型:一个子类只继承某一个超类的结构和特性,称为单重继承性。·多重继承性:一个子类继承了多个超类的结构和特性,称为多重继承性。·对象标识:在www.hackshp.cnDBS内识别对象的标志,称为对象标识。对象标识具有位置独立性和数据独立性两个性质。·对象包含:不同类的对象之间可能存在着包含关系(即组合关系),包含是一种“一部分”(ispartof)联系。·类继承层次图:类之间的细化层次图称为类继承层次图。·类包含层次图:类之间的组合层次图称为类包含层次图。·持久数据:所谓持久数据是指创建这些数据的程序运行终止后依然存在于系统之中的数据。·持久对象:创建的对象在程序终止后将被保存,这种对象称为持久对象。·持久指针:持久指针是指持久对象的对象标识。持久指针与内存中指针不一样,它在程序执行后及数据重组后仍保持有效。·持久化C++系统:基于C++语言的持久化扩充的OODBS,称为持久化C++系统。8.2随着计算机应用领域的扩大,关系数据库系统不能适应哪些应用需要?答:不能适应多媒体数据、空间数据、时态数据、复合对象、演绎推理等应用的需要。8.3什么是对象联系图?图中,椭圆、小圆圈、单箭头(→)、双箭头(→→)、双线箭头(⇒)、双向箭头(←→)这些结构各表示什么含义?答:描述类型定义间嵌套和递归联系的图称为对象联系图。图中,每个对象可以有若干属性,属性的类型可以是基本数据类型、元组类型或集合类型,而元组或集合是以指针形式(引用类型)实现。对象联系图中椭圆表示对象类型(相当于实体类型);小圆圈表示属性是基本数据类型,单箭头(→)表示属性值是单值;双箭头(→→)表示属性值是多值;双线箭头(=>)表示对象类型之间的子类与超类联系(从子类指向超类);双向箭头(↔)表示两个属性之间值的联系为逆联系。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!8.4OO的类型系统中有哪些基本数据类型?有哪些复合数据类型?答:基本数据类型有整型、浮点型、字符、字符串、布尔型和枚举型等五种。复合类型有行类型、数组类型、列表类型、包类型和集合类型等五种。8.5ORDB中,子表和超表应满足哪两个一致性要求?答:(1)超表中每个元组最多可以与每个子表中的一个元组对应。(2)子表中每个元组在超表中恰有一个元组对应。8.6试解释类型T与引用类型ref(T)之间的区别,什么情况下你会使用引用类型?答:在创建表时,可定义某个属性是类型T或类型ref(T),前者是引用对象本身的值,后者是引用对象标识符。而用户使用时,不必关心是何种类型。在对象的值空间很大时,或会出现递归嵌套时,那么应该定义属性的类型为ref(T)。8.7图8.1是有关教师(Faculty)、系(Department)和系主任(Director)信息的对象联系图。(1)试用ORDB的定义语言,定义这个数据库。(2)试用ORDB的查询语言,分别写出下列查询的SELECT语句:①检索精通俄语(Russian)的教师工号和姓名。②检索复旦大学出访过瑞士(Switzerland)并且精通日语(Japanese)的系主任。fno(工号)works_forfanem(姓名)Faculty(大学名)universitylanguages(精通的外语)Department课后答案网countries(系名)dname(出访过的国家)staffwww.hackshp.cnDirectordiredno(系主任编号)图8.1对象联系图解:(1)CREATETYPEMyStringcharvarying;CREATETABLEdepartment(universityMyString,dnameMyString,staffsetoff(ref(faculty)),direref(director));CREATETABLEfaculty(fnointeger,fnameMyStringlanguagessetoff(MyString),countriessetoff(MyString),works_forref(department));CREATETABLEdirector(dnointeger)Underfaculty;(2)①SELECTfno,fnameFROMfacultyWHERE‘Russian’inlanguages;②SELECTD.dno,D.fnameFROMdirectorasDWHERED.works_for.university=’FudanUniversity’ 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!AND‘Switzerland’inD.countriesAND‘Japanese’inD.languages;8.8图8.2是有关学生(student)和学习(study)信息的对象联系图。studies(课程名)coursenamesno(身份证号)(成绩)gradestudystudentsname(姓名)(求学地)citycity(籍贯)student(大学)university图8.2对象联系图(1)试解释这个对象联系图。(2)试用ORDB的定义语言,定义这个数据库。(3)试用ORDB的查询语言,分别写出下列查询的SELECT语句:①检索每个学生的学习课程和成绩。②检索至少有一门课程的求学地与籍贯在同一城市的学生学号和姓名。解:(1)对象student包含身份证号、姓名、籍贯和学习(studies)等属性,对象study包含课程名、成绩、求学地、大学以及学生(课后答案网student)等属性。对象student和study之间联系为1:N。(2)CREATETYPEMyStringcharvarying;CREATETABLEstudent(snointeger,www.hackshp.cnsnameMyString,cityMyString,studiessetoff(ref(study)));CREATETABLEstudy(coursenameMyString,gradeinteger,cityMyString,universityMyString,studentref(student));(3)①SELECTA.sname,B.coursename,B.gradeFROMstudentasA,A.studiesasB;②SELECTA.sno,A.snameFROMstudentasA,A.studentasBWHEREA.city=B.city;8.9ODMG1.0标准有哪五个核心概念?答:ODMG1.0标准的五个核心概念是:对象是基本的数据结构;每个对象有一个永久的标识符;对象可以被指定为类型和子类型;对象状态由数据值与联系定义;对象行为由对象操作定义。8.10OODBS应满足哪两个准则?答:首先OODBS是一个DBS,应具备DBS的基本功能,譬如查询语言、事务管理、一致性控制和恢复等。其次OODBS是一个面向对象系统,具有持久对象、自定义数据类型、自定义函数、对象封装等必不可少的特点。8.11继承性表现了数据间什么联系?试举例说明。答:继承性表示数据间泛化/细化联系,是一种“isa”联系,表示了类之间的相似性。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!譬如人是教师、学生、职工的超类,而教师、学生、职工等都是人的子类。8.12持久化语言和嵌入式SQL语言有什么区别?答:有两个主要的区别:(1)在嵌入式语言中,宿主语言的类型系统与SQL的类型系统不同,程序员要负责宿主语言与DML之间类型转换。而持久化程序设计语言的查询语言与宿主语言完全集成在一块,具有相同的类型系统。(2)使用嵌入式查询语言的编程人员都要负责编写程序,把数据从数据库中取出放到内存中。在更新时,还需编写程序将更新过的数据写回数据库。8.13持久化语言中有哪三个基本概念?答:持久化语言中有对象的持久性、对象标识和指针、持久对象的存储和访问等三个概念。8.14试用ODMGC++ODL定义上述第8.7题中的数据库。答:classDepartment:publicPersistent_Object{public:stringuniversity;stringdname;Set>staffinverseFaculty::works_for;RefdireinverseDirector::works_for;};classFaculty:publicPersistent_Object{public:intfno;stringfname;Set课后答案网languages;Setcountries;Refworks_forinverseDepartment::staff;};www.hackshp.cnclassDirector:publicFaculty{public:intdno;};8.15试用ODMGC++ODL定义上述第8.8题中的数据库。答:classStudent:publicPersistent_Object{public:intsno;stringsname;stringcity;Set>studiesinverseStudy::student;};classStudy:publicPersistent_Object{public:stringcoursename;intgrade;stringcity;stringuniversity;RefstudentinverseStudent::studies;};8.16试用ODMGODL定义上述第8.7题中的数据库。解:interfaceDepartment(extentDept){attributestringuniversity;attributestringdname; 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!relationshipSetstaffinverseFaculty::works_for;relationshipDirectordireinversedirector::works_for;};interfaceFaculty(extentteachers){attributeintegerfno;attributestringfname;setlanguages;setcountries;relationshipDepartmentworks_forinverseDepartment::staff;};interfaceDirector:Faculty(extentDirectors){attributeintegerdno;}8.17试用ODMGODL定义上述第8.8题中的数据库。解:interfaceStudent(extentStudents){attributeintegersno;attributestringsname;attributestringcity;课后答案网relationshipSetstudiesinverseStudy::student;}interfaceStudywww.hackshp.cn(extentSt){attributestringcoursename;attributeintegergrade;attributestringcity;attributestringuniversity;relationshipStudentstudentinverseStudent::studies;}8.18试用ODMGOQL表达教材中P339的例8.26数据库中的查询:①检索教师人数超过1000人的大学。要求显示大学校名及校长姓名。显示时,属性名为univ_name和president_name。②检索每个大学里的教师平均年龄。③检索上海地区与非上海地区的教师平均年龄。④检索年龄最小的10位校长姓名。⑤检索开设MATHS课的教师姓名。⑥检索开课课程的教材全采用本校编写的教师工号与姓名。⑦检索至少有20位教师年龄超过80岁的大学的编号、校名和超过80岁的人数。解:①SELECTuniv_name:U.uname,president_name:U.president.nameFROMUniversityUWHEREU.num_staff()>1000;②SELECTU.uno,U.uname,avgAGE:AVG(SELECTP.F.ageFROMpartitionP)FROMUniversityU,U.staffF 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!GROUPBYU.uno,U.uname;③SELECTyes,no,avgAGE:AVG(SELECTP.F.ageFROMpartitionP)FROMUniversityU,U.staffFGROUPBYyes:U.city=’shanghai’,no:U.city!=’shanghai’;④(SELECTU.president.nameFROMUniversityUORDERBYU.president.age)[0:9];⑤SELECTF.nameFROMFacultyF,F.teachCWHEREC.cname=’MATHS’;⑥SELECTF.fno,F.nameFROMFacultyFWHEREFORALLCINF.teach:F.works_for.uno=C.editor.uno;⑦SELECTU.uno,U.uname,count(SELECT*FROMpartitionP,P.staffFWHEREF.age>80)FROMuniversityU课后答案网GROUPBYU.uno,U.unameHAVINGCOUNT(SELECT*www.hackshp.cnFROMpartitionP,P.staffFWHEREF.age>80)>20;8.19试用ODMGOQL的SELECT语句表达教材中P339的例8.26数据库中的查询:检索上海地区大学中年龄在25~30岁之间的教师开设课程的课程名。(试用多种形式表达)解:SELECTStruct(U.uno,U.uname,set(F.name,set(C.cname)))FROMuniversityU,U.staffF,F.teachCWHEREU.city=’shanghai’ANDF.ageBETWEEN25AND30;或SELECTStruct(F.works_for.uno,F.works_for.uname,set(F.name,set(C.cname)))FROMFacultyF,F.teachCWHEREF.works_for.city=’shanghai’ANDF.ageBETWEEN25AND30;8.20OODBS和ORDBS各有什么样的市场目标?答:ORDBS的典型应用是涉及到复合数据(包括多媒体数据)的存储和查询。8.21关系DBS、基于持久化语言的OODBS、ORDBS三者各有什么长处和劣势?答:关系DBS的数据类型简单,查询语言功能强大,高保护性。其缺点是不能表示嵌套、递归的数据结构。基于持久化语言的OODBS能支持复合数据类型,与程序设计语言集成一体化,高性能。但较难提供对说明性查询的支持。(这在ODMG97中已有改观)ORDBS能支持复合数据类型,查询语言功能强大,高保护性。其缺点是还不能说是严格意义上的面向对象数据模型。8.22OODB与ORDB之间有些什么主要区别? 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!答:ORDB是从SQL出发,引入复合类型、继承性、引用类型等面向对象概念,很可能是从关系世界通往面向对象世界的一条平坦之路。OODB是在面向对象语言(C++)基础上,引入持久数据的概念,能操作DB,ODMG93标准不支持SQL标准,因此尚难推广使用。ODMG97标准吸收了SQL的SELECT语句特色,使OODB的实用性得到加强。8.23试写一篇5000字短文,对OODB与ORDB作一论述。答:这篇论文应包括下列要点:①关系模型的缺陷。对新的DBS的研究②ORDB的产生和发展。③OODB的产生和发展。④OODB与ORDB的区别。⑤对发展前景瞻望。8.24什么是UML?答:UML是20世纪90年代中期Booch、Rumbaugh和Jacobson等三位专家源于早先的方法和符号,但并不拘泥于早先的方法和符号,设计了一个标准的建立模型语言。经过修改后,OMG组织在1997年推出UML1.0和UML1.1版,确定UML为面向对象开发的行业标准语言,并得到了微软、Oracle、IBM等大厂商的支持和认证。8.25试对“类图”下个定义?答:类图描述了面向对象模型的静态结构,主要包括三部分内容:类,类的内部结构,类参与的联系。8.26试对类图中的下列术语作解释:课后答案网·对象(Object):对象是一个实体,在应用范围内扮演着意义明确的角色,有状态、行为和身份三重含义。·类(Class):类是www.hackshp.cn“对象类”的简称,类是表示共享公共结构和公共行为的对象集。·关联(association):关联是对类的实例之间联系的命名。·关联元数:与关联有关的类的个数,称为关联元数或度数。·关联角色(Associationrole):关联的端部,也就是与关联相连的类,称为关联角色。·重复度(multiplicity):重复度是指在一个给定的联系中有多少对象参与。·关联类(Associationclass):在关联本身也有属性或自己的操作时,或者关联也参与其他类的联系时,这种关联称为关联类。·鉴别器:在类之间具有概化/特化联系时,用以指出概化基础的属性,称为鉴别器。·抽象类(Abstractclass):抽象类是一种没有直接实例,但它的子孙可以有直接实例的类。·具体类(concreteclass):具体类是指有直接实例的类。·概化:数据的概化/特化(generalization/specialization)是对概念之间联系进行抽象的一种方法。当在较低层上抽象表达了与之联系的较高层上抽象的特殊情况时,就称较高层上抽象是较低层上抽象的“概化”,而较低层上抽象是较高层上抽象的“特化”。这种概化联系是一种“是”(isa)的联系。·聚合(Aggregation):聚合是一种表达成分对象和聚合对象之间的part-of(一部分)联系。·复合(Composition):复合是属于整体对象的一个部分对象,并与整体对象共存亡。8.27类图中的重复度与ER图中实体的基数有什么异同?答:重复度类似于ER模型中实体基数的概念。但是这是两个相反的概念。实体基数是指与一个实体有联系的另一端实体数目的最小、最大值,基数应写在这一端实体的边上。而重复度是指参与关联的这一端对象数目的最小、最大值,重复度应写在这一端类的边 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!上。8.28试比较概化、聚合、复合等这三个概念的区别。答:这三个概念都表达了类图中类之间的联系,但表达的内容不一样。概化表达了子类与超类之间的“isa”联系。聚合表达了成分对象和聚合对象之间“ispartof”的联系。复合是较强形式的聚合,此时一部分对象只属于一个整体对象,并与整体对象共存亡。8.29试用类图形式来表示8.7题的图8.1的对象联系图。解:该对象联系图的类图如图8.3所示。FacultyDepartmentfnouniversityfnamedname1staff�*languagescountries1△Directordire�1dno课后答案网图8.3有关教师、系和系主任等信息的类图8.30试用类图形式来表示8.8题的图8.2的对象联系图。解:解:该对象联系图的类图如图8.4所示。www.hackshp.cnStudyStudentcoursenamesnograde*◄studies1snamecitycityuniversity图8.4有关学生和学习的类图8.31试写一篇5000字短文,对ER图、对象联系图和类图作一比较。根据你的理解,应该用什么图形和符号来模拟现实世界比较好。答:这篇短文的要点如下:①ER图的基本成分,表达了实体之间的1:1、1:N、M:N联系。②从ER图到对象联系图的发展,引入了“引用类型”,对象之间可以嵌套和递归引用。③从对象联系图到UML类图的发展,引入了数据之间的概化、聚合和复合等联系。④尽可能地指出这三种图的优缺点。8.3练习题8.3.1填空题1.OODBS是从___________出发,引入___________技术。2.ORDBS是从___________出发,引入___________技术。3.关系模型中基本的数据结构层次是___________,并且要求关系模式具有___________性质。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!传统的关系模型又称为___________模型。4.在嵌套关系模型中,数据类型可以是基本数据类型,还可以是___________类型。5.在复合对象模型中,数据类型可以是基本数据类型,还可以是___________类型或___________类型。6.嵌套关系模型和复合对象模型的一个明显弱点是它们无法表达___________,即类型定义不允许___________。7.对象联系图是___________的演变,能清楚地表示OO数据模型___________之间的联系。8.面向对象的类型系统中,复合类型有五种:___________,___________,___________,___________和___________。9.ORDB中,引用类型用关键字___________表示。10.ORDB中,继承性有两种级别:__________和__________。11.第一个纯面向对象语言是___________,现在最常使用的混合型面向对象语言是___________。12.OODB中,对象由三部分组成:___________,___________和___________。13.(15)面向对象技术中,封装性是一种___________技术,其目的在于将___________和___________分开。14.类是___________的集合。15.面向对象模型中类和对象的概念相当于ER模型中___________和___________的概念。16.对象标识是指针一级的概念,是一个强有力的___________。17.继承性是数据间的泛化/细化联系,是一种___________联系,而对象包含是一种___________联系。课后答案网18.UML类图描述了系统的__________结构,其中包括了类和类之间联系。19.关联是对_________________的命名。20.类、对象和关联分别相当于www.hackshp.cnER模型中的_________、_________和_________。21.概化表达了类之间的__________联系,聚合表达了类之间的__________联系。8.3.2选择题(在备选答案中选出一个正确的答案)1.传统的SQL技术中,使用“SELECTDISTINCT”方式查询得到的结果,实际上为[]A.数组B.列表C.包D.集合2.传统的SQL技术中,在SELECT语句中使用了ORDERBY子句方式查询得到的结果,实际上为[]A.数组B.列表C.包D.集合3.在面向对象系统中,不同类型元素的有序集合,称为[]A.行类型B.数组类型C.列表类型D.包类型E.集合类型4.在面向对象系统中,同类元素的有序集合(大小已预置),称为[]A.行类型B.数组类型C.列表类型D.包类型E.集合类型5.在面向对象系统中,同类元素的有序集合(大小未预置),称为[]A.行类型B.数组类型C.列表类型D.包类型E.集合类型6.在ORDB中,同类元素的无序集合,并且允许一个成员多次出现,称为[]A.行类型B.数组类型C.列表类型D.包类型E.集合类型7.在ORDB中,同类元素的无序集合,但每个成员只能出现一次,称为[]A.行类型B.数组类型C.列表类型D.包类型E.集合类型8.ORDB中,引用类型是指嵌套引用时,不是引用对象本身的值,而是引用[]A.关键码B.主键C.实体标识符D.对象标识符9.面向对象技术中,封装性是一种[]A.封装技术B.信息隐蔽技术C.组合技术D.传递技术 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!10.在OODB中,“类”(class)是[]A.实体的集合B.数据类型的集合C.表的集合D.对象的集合11.在面向对象数据模型中,下列叙述不正确的是[]A.类相当于ER模型中实体类型B.类本身也是一个对象C.类相当于ER模型中实体集D.类的每个对象也称为类的实例12.在OODB中,对象可以定义为对一组信息及其__________的描述[]A.操作B.存取C.传输D.继承13.在OODB中,包含其他对象的对象,称为[]A.强对象B.超对象C.复合对象D.持久对象14.在OODB中,对象标识[]A.与数据的描述方式有关B.与对象的物理存储位置有关C.与数据的值有关D.是指针一级的概念15.UML类图中的关联相当于ER模型中的[]A.实体B.实体集C.联系D.属性8.3.3简答题1.什么是嵌套的数据结构?什么是递归的数据结构?递归的数据结构如何实现?2.与ER图相比,对象联系图有哪些修改和扩充?3.试解释OODB中对象、类、类对象三个概念。4.试详细解释“对象标识”这个概念。8.3.4设计题课后答案网图8.5是关于系(Dept)、学生(Student)、成绩(SC)、课程(Course)和教师(Faculty)信息的对象联系图。Dept是有关学校里系信息的对象类型,有六个属性。两个是基本数据类型,系编号(www.hackshp.cndno)和系名(dname);单值属性director表示有一位教师是系主任;还有三个是多值属性,staff表示系里有若干教师,mass表示系里有若干学生,set_up表示系里开设了若干门课程。Student是有关学生信息的对象类型,有六个属性。四个是基本数据类型,学生的学号(sno)、姓名(sname)、年龄(age)和性别(sex);单值属性study_in表示学生属于某个系;多值属性study表示该学生的学习成绩。SC是有关成绩信息的对象类型,有三个属性。成绩grade是基本数据类型;单值属性student表示该成绩是属于何学生;单值属性course表示该成绩属于何门课程。Course是有关课程信息的对象类型,有五个属性。两个是基本数据类型,课程号(cno)和课程名(cname);有两个是单值属性,teacher表示课程的任课老师,founder表示课程由何系设置的;多值属性learn表示选修这门课程的学生成绩。Faculty是有关教师信息的对象类型,有五个属性。三个是基本数据类型,教师工号(fno)、姓名(fname)和工资(salary);单值属性works_for表示教师服务的系;多值属性teach表示教师开设了若干门课程。sno 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!agesexStudentstudy_instudentdnomassdnamestudyDeptgradefounderSCworks_fordirectorstaffcourselearnset_upfnoteachercnoFacultyfnameCoursecnamesalary课后答案网teach图8.5下面题目都是针对图8.5设置的。1.试用ORDB的定义语言,定义图8.5的数据库。www.hackshp.cn2.试用ORDB的查询语言,分别写出下列查询的SELECT语句:①检索“计算机系”每一个学生的学习成绩,要求显示(sno,sname,cname,grade)。②检索选修本系课程的学生选课情况,要求显示(dno,dname,sno,sname,cno,cname)。③检索选修本系课程、并由本系教师任教的课程的学生选课情况,要求显示(dno,dname,sno,sname,cno,cname,fno,fname)。④检索“计算机系”每一个男学生选修课程的门数,要求显示(sno,sname,course_num)。3.试用ODMGC++ODL(伪代码)定义图8.5的数据库。4.试用ODMGODL定义图8.5的数据库。5.试用类图形式来表示图8.5的对象联系图。8.4练习题答案8.4.1填空题答案1.OOPLDB2.传统的关系DB技术(或SQL语言)OO3.关系——元组——属性1NF平面关系4.关系(或集合)5.关系(或集合)元组(或结构)6.递归的结构递归7.ER图数据8.行类型数组类型列表类型包类型集合类型9.ref10.类型级表级11.smalltalkC++ 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!12.一组变量一组消息一组方法13.信息隐蔽使用者设计者14.类似对象15.实体集实体16.数据操纵原语17.是一个(isa)是一部分(ispartof)18.静态19.类的实例之间联系20.实体集实体联系21.isaispartof8.4.2选择题答案1.D2.B3.A4.B5.C6.D7.E8.D9.B10.D11.A12.A13.C14.D15.C8.4.3简答题答案1.答:嵌套的数据结构是指属性的类型可以是关系类型或元组类型。递归的数据结构是指递归的嵌套结构,譬如数据A中嵌有数据B,而数据B中嵌有数据A。递归的结构要用“指针”概念才能实现,以避免无穷嵌套问题。2.答:与ER图相比,对象联系图从以下几个方面进行了修改和扩充:①实体类型改称为“对象类型”,用椭圆表示。②小圆圈表示属性,并且是基本数据类型。对象类型与属性之间联系可以是单箭头(表示单值)或双箭头(表示多值)。课后答案网③对象类型之间的连线表示指针方式的引用,连线也可以是单箭头(表示单值,即元组)或双箭头(表示多值,即集合)。④子类与超类的联系用双线箭头(泛化边)表示。www.hackshp.cn3.答:在OODB中,需分清对象、类、类对象三个概念:①对象(object)是对客观世界中实体的进一步抽象。对象可以定义为对一组信息及其操作的描述。②类(class)是类似对象的集合。面向对象模型中类和对象的概念相当于ER模型中实体集和实体的概念。③类本身也当作一个对象,称为类对象(classobject)。4.答:面向对象中的“对象标识”(oid)与程序设计语言中的地址、关系DB中的主键概念都不一样。对象标识与对象的物理存储位置无关,也与数据的描述方式、值无关。对象标识是指针一级的概念,是一个强有力的数据操纵原语,也是复合对象、引用类型操纵的基础。8.4.4设计题答案1.解:对图8.5的对象联系图,用ORDB的定义语言,定义如下:CREATETYPEMyStringcharvarying;CREATETABLEdept(dnoMyString,dnameMyString,masssetof(ref(student)),set_upsetof(ref(course)),directorref(faculty),staffsetof(ref(faculty)));CREATETABLEstudent(snoMyString,snameMyString,ageinteger, 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!sexMyString,study_inref(dept),studysetof(ref(sc)));CREATETABLEsc(gradeinteger,studentref(student),courseref(course));CREATETABLEcourse(cnoMyString,cnameMyString,founderref(dept),teacherref(faculty));CREATETABLEfaculty(fnoMyString,fnameMyString,salaryinteger,works_forref(dept),teachsetof(ref(course)));2.解:①SELECTA.sno,A.sname,B.course.cname,B.gradeFROMstudentasA,A.studyasBWHEREA.study_in.dname="计算机系";或者SELECTA.sno,A.sname,B.course.cname,B.gradeFROMdeptasD,D.massasA,A.studyasBWHERED.dname="课后答案网计算机系";②SELECTA.study_in.dno,A.study_in.dname,A.sno,A.sname,B.course.cno,B.course.cnameFROMwww.hackshp.cnstudentasA,A.studyasBWHEREA.study_in.dno=B.course.founder.dno;或者SELECTD.dno,D.dname,A.sno,A.sname,B.course.cno,B.course.cnameFROMdeptasD,D.massasA,A.studyasBWHERED.dno=B.course.founder.dno;③SELECTA.study_in.dno,A.study_in.dname,A.sno,A.sname,B.course.cno,B.course.cname,B.course.teacher.fno,B.course.teacher.fnameFROMstudentasA,A.studyasBWHEREA.study_in.dno=B.course.founder.dnoANDA.study_in.dno=B.course.teach.works_for.dno;④SELECTA.sno,A.sname,COUNT(SELECT*FROMA.study)FROMstudentasAWHEREA.sex="M";3.解:对图8.5的对象联系图,用ODMGC++ODL(伪代码)定义如下:classDept:publicPersistent_Object{public:stringdno;stringdname;Set〈Ref〈Student〉〉massinverseStudent::study_in;Set〈Ref〈Course〉〉set_upinverseCourse::founder;Ref〈Faculty〉director;Set〈Ref〈Faculty〉〉staffinverseFaculty::works_for; 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!};classStudent:publicPersistent_Object{public:stringsno;stringsname;intage;stringsex;Ref〈Dept〉study_ininverseDept::mass;Set〈Ref〈SC〉〉studyinverseSC::student;};classSC:publicPersistent_Object{public:intgrade;Ref〈Student〉studentinverseStudent::study;Ref〈Course〉〉courseinverseCourse::learn;};classCourse:publicPersistent_Object{public:stringcno;stringcname;Ref〈Dept〉founderinverseDept::set_up;Ref〈Faculty〉teacherinverseFaculty::teach;};classFaculty:public课后答案网Persistent_Object{private:intsalary;public:stringfno;stringwww.hackshp.cnfname;Ref〈Dept〉works_forinverseDept::staff;Set〈Ref〈Course〉〉teachinverseCourse::teacher;};4.解:对图8.5的对象联系图,用ODMGODL定义如下:interfaceDept(extentDepts){attributestringdno;attributestringdname;relationshipSetmassinverseStudent::study_in;relationshipSetset_upinverseCourse::founder;relationshipFacultydirector;relationshipSetstaffinverseFaculty::works_for;}interfaceStudent(extentStudents){attributestringsno;attributestringsname;attributeintegerage;attributestringsex;relationshipDeptstudy_ininverseDept::mass;relationshipSetstudyinverseSC::student; 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!}interfaceSC(extentSCs){attributeintegergrade;relationshipStudentstudentinverseStudent::study;relationshipCoursecourseinverseCourse::learn;}interfaceCourse(extentCourses){attributestringcno;attributestringcname;relationshipSetlearninverseSC::course;relationshipDeptfounderinverseDept::set_up;relationshipFacultyteacherinverseFaculty::teach;};interfaceFaculty{attributestringfno;attributestringfname;relationshipDeptworks_forinverseDept::staff;relationshipSetteachinverseCourse::teacher;};课后答案网5.解:图8.5的对象联系图的类图如图8.6所示。StudentDeptwww.hackshp.cnsnodno1mass�1snamednameage1sex11staffdirector*SC▼▼grade*1*FacultyCoursednoset_up�*cnodnamecnamesalary1teach�*图8.6关于系、学生、成绩、课程和教师信息的类图 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第9章分布式数据库系统9.1基本内容分析9.1.1本章重要概念(1)分布计算的三种形式:处理分布,数据分布,功能分布。(2)C/S系统,工作模式,技术特征,体系结构,两层、三层、多层C/S结构。(3)DDBS的定义、特点、优点、缺点和分类;分布式数据存储的两种形式(分片和分配)。(4)DDB的体系结构:六层模式,分布透明性的三个层次,DDBS的组成,DDBMS的功能和组成。(5)分布式查询处理的查询代价,基于半联接的优化策略,基于联接的优化策略。(6)分布式数据库的并发控制和恢复中出现的问题,以及处理机制。9.1.2本章的重点篇幅(1)两层、三层、多层C/S结构。(教材P365-367)(2)分布式数据存储:分片和分配。(教材P375-377)(3)DDB的体系结构。(教材P378的图9.10,P381的图9.12)(4)基于半联接的执行示意图。(教材P389的图9.17)9.2教材中习题9的解答9.1名词解释·集中计算:单点数据和单点处理的方式称为集中计算。·分布计算:随着计算机网络技术的发展,突破集中计算框架,课后答案网DBMS的运行环境逐渐从单机扩展到网络,对数据的处理从集中式走向分布式、从封闭式走向开放式。这种计算环境称为分布计算。·处理分布:指系统中处理是分布的,数据是集中的这种情况。www.hackshp.cn·数据分布:指系统中数据是分布的,但逻辑上是一个整体这种情况。·功能分布:将计算机功能分布在不同计算机上执行,譬如把DBMS功能放在服务器上执行,把应用处理功能放在客户机上执行。·服务器位置透明性:指C/S系统向客户提供服务器位置透明性服务,用户不必知道服务器的位置,就可以请求服务器的服务。·集中式DBS:所有工作都由一台计算机完成,这种DBS称为集中式DBS。·DDBS:是物理上分散逻辑上集中的DBS,每一场地既能完成局部应用又能完成全局应用,这种系统称为DDBS。·DDB:DDB是计算机网络环境中各场地上DB的逻辑集合。·DDBMS:DDBMS是DDBS中的一组软件,它负责管理分布环境下逻辑集成数据的存取、一致性和完备性。同时,由于数据的分布性,在管理机制上还必须具有计算机网络通信协议的分布管理特性。·分布透明性:是指用户不必关心数据的逻辑分片,不必关心数据物理位置分配的细节,也不必关心各个场地上DB的数据模型是哪种类型,可以像集中式DB一样来操作物理上分布的DB。·数据分片:把全局概念模式中的全局关系划分成若干不相交部分的过程,称为数据分片。·水平分片:对全局关系执行选择操作得到的片段,称为水平分片。·垂直分片:对全局关系执行投影操作得到的片段,称为垂直分片。·数据分配:是指片段在场地上的分配策略。·分片透明性:分片透明性位于全局概念模式与分片模式之间。分片透明性是指用户或应用程序只对全局关系进行操作而不必考虑数据的分片。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!·位置透明性:位于分片模式和分配模式之间。位置透明性是指用户或应用程序应当了解分片情况,但不必了解片段的存储场地。·局部数据模型透明性:位于分配模式与局部概念模式之间。指用户或应用程序要了解分片及各片段存储的场地,但不必了解场地上使用的是何种数据模型。9.2C/S结构的基本原则是什么?客户机和服务器的任务各是什么?答:C/S结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即“功能分布”原则。客户机完成数据处理、数据表示、用户接口等功能。服务器完成DBMS的核心功能。9.3一个典型的应用程序有哪四部分组成?在C/S结构的DBS中是如何实现的?答:一个典型的应用程序有四部分组成:用户界面的显示逻辑,应用逻辑,事务逻辑,数据管理。在C/S环境下,通常把前两部分驻留在客户机上,而把后两部分驻留在服务器上。9.4C/S系统有哪些主要的技术特征?答:C/S系统主要有下面六个技术特征:按功能划分;共享资源;不对称协议;定位透明性;基于消息的交换;可扩展性。9.5C/S系统的体系结构有几部分组成?试作必要的解释。答:C/S系统的体系结构由客户机、服务器和中间件等三大部分构成。(解释略)9.6试对C/S结构的两层模型、三层模型、多层模型作详细的解释。从C/S的结构看,其发展趋势如何?答:两层C/S结构的引出主要是为了减轻集中式课后答案网DBS主机的负担,把计算机功能分布在不同计算机上。三层C/S结构的引出主要是为了减轻客户机的负担,从两层C/S的客户机和服务器中各抽出一部分功能组成应用服务器。www.hackshp.cn多层C/S结构的引出是通过引入中间层组件,扩大了两层C/S结构。C/S结构的发展趋势是:客户机越来越瘦,服务器品种越来越多。使得C/S结构容易组装、扩展。9.7网络服务器有哪几类?答:网络服务器分成DB服务器、文件服务器、事务服务器、文档服务器、Web服务器、电子邮件服务器、各种应用服务器等。9.8试叙述数据从集中存储、分散存储到分布存储的演变过程。答:集中式DBS的数据属于集中存储方式;把数据库分成多个,建立在多台计算机上,但相互独立,这种分散式系统的数据属于分散存储;把分散在各地的DBS通过网络通信联接起来,这种分布式DBS的数据属于分布存储,兼有集中式和分散式的优点。9.9与集中式DBS、分散式DBS相比,DDBS的区别在哪里?答:与集中式DBS的集中存储相比,分布式DBS的数据具有“分布性”特点:数据不是存储在一个场地,而是分布存储在各个场地。与分散式DBS的分散存储相比,分布式DBS的数据具有“逻辑整体性”特点。9.10DDBS有哪些基本特点?还可以导出哪些特点?答:DDBS有四个基本特点:物理分布性,逻辑整体性,场地自治性,场地之间协作性。由此还可导出其他四个特点:数据独立性,集中与自治相结合的控制机制,适当增加数据冗余度,事务管理的分布性。9.11在DDBS中为什么需要适当增加数据冗余度?答:在DDBS中希望通过冗余数据提高系统的可靠性、可用性和改善系统性能。9.12DDBS有哪些优点和缺点?答:与集中式DBS相比,DDBS有六个优点:灵活的体系结构,分布式的管理和控制机构, 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!经济性能优越,系统可靠性高可用性好,局部应用的响应速度快,可扩展性好。缺点有三个:花在通信部分开销较大,复杂的存取结构在分布式系统中不一定有效,数据的安全性保密性较难处理。9.13试解释下列术语:同构同质型DDBS,同构异质型DDBS,异构型DDBS。答:同构同质型DDBS:系统中各个场地都采用同一类型的数据模型,并且是同一型号的DBMS。同构异质型DDBS:系统中各个场地都采用同一类型的数据模型,但DBMS的型号可不同。异构型DDBS:系统中各个场地的数据模型是不同的类型。9.14DDB中,数据分片有哪些策略?定义分片时必须遵守那些规则?答:数据分片有水平分片、垂直分片、导出分片和混合分片等四种方式。数据分片时必须遵守三条规则:完备性条件,可重构条件,不相交条件。9.15全局关系与片段之间映像只能是一对多,不可以是多对多,为什么?答:在DDB的体系结构中,往上方向是越来越“逻辑”,往下方向是越来越“物理”。据此可看出,全局关系在上方,片段在下方,因此每个片段只能来自一个全局关系。如果来自多个全局关系的数据,那就不是片段了,而是位于全局关系上方的全局视图(全局外模式)了。因而全局关系与片段之间的映象只能是一对多。9.16DDB中,数据分配有哪些策略?分配策略的评估因素有哪几个?答:数据分配有集中式、分割式、全复制式和混合式等四种分配策略。分配策略的评估因素有四个:存储代价,可靠性,检索代价和更新代价。9.17试叙述DDB的六层模式结构的主要成分。课后答案网答:DDB的六层模式结构的主要成分是:六层模式、五级映像和五级独立性(透明性)。(详细解释略)9.18DDB的六层模式结构是一种通用的概念结构,它有哪些显著的特征?www.hackshp.cn答:有三个特征:数据分布独立性,数据冗余的显式控制,局部DBMS的独立性。9.19DDB的六层模式结构之间的五级映象,各体现什么独立性(或透明性)?答:五级映像体现五个独立性(透明性),自上而下是:逻辑独立性,分片透明性,位置透明性,局部数据模型透明性,物理独立性。9.20DDBMS主要有哪些功能?DDBMS应包括哪些基本功能模块?答:DDBMS的功能有五点:接受并处理用户请求,访问网络数据字典,分布式处理,通信接口功能,异构型处理。DDBMS应包括以下四个基本功能模块:查询处理模块,完整性处理模块,调度处理模块,可靠性处理模块。9.21分布式系统中影响查询的主要因素是什么?答:主要因素是网络中数据的传输量。9.22基于半联接的优化策略的基本原理是什么?答:不参与联接的数据或无用的数据不必在网络中来回传输。9.23什么是“半联接程序”?如何执行?答:用半联接方法来计算自然联接的方法,称为“半联接程序”。具体步骤为:R⋈S==(R⋈πB(S))⋈S(此处B为R和S的公共属性)==(R⋉S)⋈S(如何执行见教材P389)9.24与集中式DBMS比较,DDBMS环境中在并发控制和恢复方面遇到哪些新问题?答:与集中式DBMS比较,DDBMS环境中在并发控制和恢复方面会遇到以下五个问题: 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!①数据项的多拷贝之间的一致性问题。②在单个场地故障恢复时,局部数据库的数据应和其他场地的同步问题。③通信网络的故障处理能力问题。④分布式提交的实现问题。⑤分时式死锁的处理问题。9.25试解释分布式并发控制中使用的名词:·副本(拷贝):DDB中,一个数据项可以复制存放在多个场地,每个场地的数据称为副本或拷贝。·识别拷贝:一个数据项可以在多个场地有副本,系统为每个数据项指定一个特定的拷贝作为该数据项的识别拷贝。对该数据项的封锁应与识别拷贝相联系,并且所有的封锁和解锁请求都被传送到包含那个拷贝的场地上。·主场地:数据库中所有的识别拷贝都被保留在同一个场地上,该场地称为主场地。·备份场地:在主场点发生故障时,将接管它而成为主场地的场地称为“备份场地”。·主拷贝:各种数据项的识别拷贝可以存储在不同的场地上,这种识别拷贝称为主拷贝。·协调者场地:存储数据项识别拷贝的场地,称为该数据项的协调者场地。9.26试对分布式并发控制中的主场地方法和主拷贝方法作一比较。使用备份场地对它们有什么影响?答:分布式并发控制中的主场地方法和主拷贝方法的比较以及有备份场地时对它们的影响如图9.1所示。主场地技术主拷贝技术是集中式方案的简单扩充,课后答案网一个场地的故障只会影响本场优点不太复杂。地作为主拷贝场地的那些数据项的事务。www.hackshp.cn①主场地是瓶颈口,超负荷运缺点行。实现和管理较复杂。②主场地的故障会使系统瘫痪。有备份场能克服上述第②个缺点,简化了地时的影恢复的过程,但会使系统运行速提高系统的可靠性和可用性。响度变慢。图9.19.27在分布式数据库中,什么时候要使用投票和选举方法?答:在分布式并发控制中,如果不存在备份场地,或主场地和备份场地都有故障时,就要用到选举方法产生一个备份场地。在系统中如果不采用识别拷贝技术,那么并发控制就要采用投票方法来决定封锁是成功还是失败。9.3自测题9.3.1填空题1.C/S结构的基本原则是__________原则。2.C/S结构中,客户端完成__________功能,服务器端完成__________功能。3.DDBS逐渐向C/S模式发展。单服务器的结构本质上还是___________系统。只有在网络中有多个DB服务器时,并可协调工作,为众多客户机服务时,才称得上是__________系统。4.C/S环境中,一个典型的应用程序可分解成四个组成部分:__________、__________、__________和__________。5.两层C/S结构克服了__________问题,三层C/S结构克服了__________问题。6.C/S结构的发展趋势是:客户机越来越__________,服务器越来越。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!7.DDBS具有如下四个基本特点:__________,__________,__________和__________。8.DDB的数据分片有___________,___________和___________等三种分片方式。9.在定义数据分片时,必须遵守三个条件:___________,___________和___________。10.DDB的数据分配有__________,___________,__________和_________四种分配策略。11.DDBS的体系结构自上而下有六个层次:___________,___________,___________,___________,___________和___________。12.DDBS的分片透明性位于___________和___________之间。13.DDBS的位置透明性位于___________和___________之间。14.DDBS中透明性层次越高,应用程序的编写越___________。15.基于半联接的查询优化策略的主要思想是______________________。9.3.2单项选择题(在备选的答案中选出一个正确答案)1.C/S体系结构的关键在于[]A.功能的分布B.客户机的分布C.服务器的分布D.数据的分布2.C/S系统中客户机的功能是实现[]A.前端处理和事务处理B.事务处理和用户界面C.前端处理和用户界面D.事务处理和数据访问控制3.C/S系统中服务器的功能是实现[]A.前端处理和事务处理B.事务处理和用户界面C.前端处理和用户界面D.事务处理和数据访问控制4.如果各个场地的数据模型是不同的类型(层次型或关系型),那么这种课后答案网DDBS是[]A.同构型B.异构型C.同质型D.异质型5.DDBS中的“数据分片”是指[]A.对磁盘的分片www.hackshp.cnB.对全局关系的分片C.对内存的分片D.对网络结点的分片6.DDBS中的“数据分配”是指在计算机网络各场地上的[]A.对磁盘的分配策略B.对数据的分配策略C.对内存的分配策略D.对网络资源的分配策略7.DDBS的分片模式和分配模式均是[]A.全局的B.局部的C.集中的D.分布的8.在DDBS中,必须把全局关系映射到片段中。这个性质称为[]A.映射条件B.完备性条件C.重构条件D.不相交条件9.在DDBS中,必须从分片能通过操作得到全局关系。这个性质称为[]A.映射条件B.完备性条件C.重构条件D.不相交条件10.在DDBS中,要求一个全局关系被分片后互不重迭(主键除外)。这个性质称为[]A.映射条件B.完备性条件C.重构条件D.不相交条件11.DDBS的体系结构是[]A.分布的B.集中的C.全局的D.分层的12.DDBS的“分片透明性”位于[]A.全局外模式与全局概念模式之间B.全局概念模式与分片模式之间C.分片模式与分配模式之间D.分配模式与局部概念模式之间13.DDBS的“位置透明性”位于[]A.全局外模式与全局概念模式之间B.全局概念模式与分片模式之间C.分片模式与分配模式之间D.分配模式与局部概念模式之间14.DDBS的“局部数据模型透明性”位于[]A.全局外模式与全局概念模式之间B.全局概念模式与分片模式之间 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!C.分片模式与分配模式之间D.分配模式与局部概念模式之间15.DDBS中“分布透明性”可以归入[]A.逻辑独立性B.物理独立性C.场地独立性D.网络独立性16.DDBS中,透明性层次越高[]A.网络结构越简单B.网络结构越复杂C.应用程序编写越简单D.应用程序编写越复杂17.关系代数的半联接操作由下列操作组合而成:[]A.投影和选择B.联接和选择C.联接和投影D.自然联接和投影9.3.3简答题1.C/S系统的基本原理是什么?有什么重要意义。2.集中式DBS中和DDBS中影响查询的主要因素各是什么?3.设有关系R和S:RABCSBCD123234456578889864357238试计算下列表达式的值:(1)R⋈S(2)课后答案网R⋉S(3)S⋉R(4)R⋈S(5)R⋉S(6)S⋉R3=23=22=3(7)R⋈Swww.hackshp.cn(8)R⋉S(9)S⋉R1=31=33=14.设关系R(A,B,C)在场地1,关系S(C,D,E)在场地2,现欲在场地2得到R⋈S的操作结果。(1)用联接的方法,如何执行上述操作。(2)用半联接的方法,如何执行上述操作。(需写出详细的操作式子)9.4练习题答案9.4.1填空题答案1.功能分布2.数据处理、数据表示和用户接口DBMS的核心功能3.集中式DB分布式DB4.用户界面的显示逻辑应用逻辑事务逻辑数据管理5.集中式主机的瓶颈口客户机6.瘦品种繁多7.物理分布性逻辑整体性场地自治性场地之间协作性8.水平分片垂直分片导出分片混合分片9.完备性条件重构条件不相交条件10.集中式分割式全复制式混合式11.全局外模式全局概念模式分片模式分配模式局部概念模式局部内模式12.全局概念模式分片模式13.分片模式分配模式 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!14.简单15.不参与联接的值或无用的值不必在网络中来回传输9.4.2单项选择题答案1.A2.C3.D4.B5.B6.B7.A8.B9.C10.D11.D12.B13.C14.D15.B16.C17.D9.4.3简答题答案1.答:C/S系统的基本原理是“功能的分布”,将计算机应用任务分解成多个子任务,由多台计算机分工完成。其重要意义是减轻了集中式系统中主机的负担(瓶颈口现象)。2.答:在集中式系统中,影响查询的主要因素是对磁盘的访问次数。而在分布式系统中,影响查询的主要因素是通过网络传递信息的次数和传送的数据量。3.解:(1)R⋈S(2)R⋉S(3)S⋉RABCDABCBCD123412323412383572383578578(4)R⋈S(5)R⋉S(6)S⋉R3=23=22=3AR.BR.CS.B课后答案网S.CDABCBCD123234123234123238456238456www.hackshp.cn864357864357238(7)R⋈S(8)R⋉S(9)S⋉R1=31=33=1AR.BR.CS.BS.CDABCBCD4562344562344568648898648895785788892382384.解:(1)用联接的方法执行,就是直接把关系R从场地1传输到场地2,在场地2执行自然联接。(见图9.2)场地1(关系R)场地2(关系S)RR⋈S图9.2联接的执行示意图(2)用半联接方法执行的过程如下(见图9.3):①在场地2,求πC(S)的值;传输 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!②把πC(S)的值从场地2传输到场地1;③在场地1执行R⋈πC(S)操作;④把(R⋈πC(S))的值从场地1传输到场地2;⑤在场地2执行(R⋈πC(S))⋈S操作,即求得R⋈S的值。即R⋈S=(R⋈πC(S))⋈S=(R⋉S)⋈S场地1(关系R)场地2(关系S)②传输①πC(S)④传输③R⋉πC(S)⑤(R⋉πC(S))⋈S图9.3基于半联接的执行示意图课后答案网www.hackshp.cn 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第10章中间件技术10.1基本内容分析10.1.1本章重要概念(1)中间件的定义和作用(2)ODBC分层的体系结构:应用程序,驱动程序管理器,DB驱动程序,ODBC数据源。(3)ODBC接口:应用程序基本流程,ODBC句柄,ODBC连接,SQL语句的执行。ODBC两套符合性级别。典型的DB应用系统开发工具。(4)JDBC的基本功能,JDBC的结构,JDBC接口。10.1.2本章的重点篇幅(1)ODBC分层的体系结构(教材P403的图10.2)。(2)ODBC应用程序的基本流程(教材P408的图10.6)。(3)JDBC驱动程序(教材P427-428),JDBCAPI接口(教材P430)。10.2教材中习题10的答案10.1什么是中间件?有什么作用?答:中间件是分布式环境中保证OS、通信协议、数据库等之间进行对话、互操作的软件系统。中间件的作用是保证了客户和服务器间的联系,使网络、数据库、操作系统对于应用软件的开发界面透明化。10.2试解释中间件的三个透明性。答:中间件的网络透明性是指中间件能支持所有类型的网络。中间件的服务器透明性是指不管服务器上的课后答案网DBMS是何种型号(ORACLE、SYBASE、DB2等),一个好的中间件都能通过标准的SQL语言与不同DBMS上的SQL语言连接起来。中间件的语言透明性是指客户机可用任何开发语言进行发送请求和接受回答,被调用的功能应该像语言那样也是独立的。中间件还应该保证开发语言的数据类型和服务器上数据库www.hackshp.cn使用的数据类型之间能够相互转换。10.3ODBC技术与传统的数据库编程方式有什么区别?答:传统的DB编程方式是“主语言+DML”,但一个应用程序却不能访问不同DB服务器上的数据。ODBC技术实际上是一个公共接口API,使用ODBC技术,同一个应用程序就可以访问不同DB服务器上的数据。10.4ODBC技术有什么作用?其卓越贡献是什么?答:ODBC技术的作用是使应用程序与DBMS在逻辑上可以分离,使应用程序具有数据库无关性。ODBC的卓越贡献是使应用程序具有良好的互用性和可移植性,并且具备同时访问多种DBS的能力,从而克服了传统数据库应用程序的缺陷。对用户而言,ODBC驱动程序屏蔽掉了不同DBS的差异。10.5ODBC的体系结构有哪几层?试叙述各层之间联系。答:ODBC的体系结构有四层:应用程序,驱动程序管理器,DBMS驱动程序、数据源。应用程序要完成ODBC外部接口的所有工作,用C语言和ODBC函数来编应用程序。驱动程序管理器管理应用程序和DBMS驱动程序之间的交互作用,为应用程序加载和调用DBMS驱动程序。DBMS驱动程序执行ODBC函数,解释执行SQL语句。数据源是驱动程序与DB连接的桥梁。10.6ODBC数据库应用程序的主要功能是什么?主要完成哪些任务?答:ODBC数据库应用程序的主要功能有四个:调用ODBC函数,递交SQL语句给DBMS,检索出结果,并进行处理。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!应用程序要完成ODBC外部接口的所有工作。主要完成以下8个任务:连接数据库;向数据源发送SQL语句;为SQL语句执行结果分配存储空间,定义所读取的数据格式;读取结果;处理错误;向用户提交处理结果;请求事务的提交和回退操作;断开与数据源的连接。10.7什么是驱动程序管理器?驱动程序管理器的主要功能是什么?答:驱动程序管理器是一个动态连接库,用于连接各种DBS的DBMS驱动程序,管理应用程序和DBMS驱动程序之间的交互作用。驱动程序管理器的主要功能有五点:为应用程序加载DBMS驱动程序;检查ODBC函数的合法性;为不同驱动程序的ODBC函数提供单一的入口;调用正确的DBMS驱动程序;提供驱动程序信息。10.8什么是DBMS驱动程序?主要任务是什么?答:DBMS驱动程序实际上是一个DBMS,执行ODBC函数,解释执行SQL语句,实现对数据源的各种操作。驱动程序主要任务有六个:建立应用程序与数据源的连接;向数据源提交用户请求执行的SQL语句;进行数据格式和类型的转换;把处理结果返回给应用程序;将DBS的错误转换成ODBC标准错误代码返回给应用程序;根据需要定义和使用光标。10.9DBMS驱动程序有哪两种类型?主要区别是什么?答:驱动程序有两种类型:单层驱动程序和多层驱动程序。单层驱动程序中包含了数据库引擎,解释执行SQL语句。在网络中传输的是整个数据库文件,所以网络的数据通信量很大。多层驱动程序中不包含数据库引擎,将课后答案网SQL语句传递给数据源服务器,由DBMS解释执行。因此在网络中传输的只是用户请求和数据库处理的结果,从而使网络的数据通信量大大减少,减轻了网络的负担,均衡了服务器和客户机的负载,提高了应用程序的运行效率。10.10什么是ODBCwww.hackshp.cn数据源?有哪三类?答:数据源是驱动程序与DBS连接的桥梁,用于表达一个ODBC驱动程序和DBMS特殊连接的命名。数据源分成三类:用户数据源,系统数据源,文件数据源。10.11试叙述ODBC应用程序的基本流程。答:应用程序的基本流程分为三个部分:初始化,SQL处理和终止部分。每一部分按常规,要使用一些ODBC函数(与DB有关)。10.12什么是ODBC句柄?有哪几种?这几种句柄之间有什么联系?答:ODBC句柄就是应用程序变量,系统用来存储关于应用程序的上下文信息和应用程序所用到的一些对象。有三种句柄:环境句柄,连接句柄和语句句柄。三者之间是嵌套的关系。一个应用程序只有一个环境句柄,在环境句柄内可以定义若干连接句柄,在连接句柄内可定义多个语句句柄。10.13ODBC技术提供哪两种不同的执行SQL语句的方式?各用在什么场合?答:ODBC技术提供两种不同执行SQL语句的方法:直接执行和有准备地执行。前者以快捷的方式执行SQL语句,在ODBC函数中放上一条可直接执行的SQL语句。后者则提供了更大的灵活性,ODBC函数SQLPrepare把SQL语句准备好(但可能条件不齐),待条件补全后,再用ODBC函数SQLExecute执行SQL语句。如果SQL语句已经组织好了,并且只使用一次,那么可使用“直接执行SQL语句的函数”。如果SQL语句需要多次执行,或者SQL语句的查询条件还不齐,那么这种情况就要使用“有准备地执行SQL语句”的函数。10.14ODBC技术中有哪两个主要的光标函数?起什么作用?答:ODBC中主要的光标函数有两个:移动光标函数SQLFetch和读光标指向行中一列值的函 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!数SQLGetData。10.15ODBC技术中有哪两个符合性级别?为什么要设置这两个符合性级别?答:ODBC定义了两套符合性级别:一套是关于ODBC函数调用的API符合性,指出驱动程序支持哪些ODBC函数。另一套是关于所支持的SQL的SQL符合性,指出驱动程序支持哪些SQL语句和功能。10.16ODBCAPI与SQLCLI间有什么联系?答:ODBCAPI是微软公司开发的ODBC标准。SQLCLI是SAG财团和X/Open组织开发的SQL3标准中的一部分内容。两者使用了不同的术语,但双方承诺要使标准统一起来。10.17有哪些典型的数据库应用系统开发工具?这些工具有些什么共同的特点?答:典型的数据库应用系统开发工具有四个:PowerBuilder8.0,Delphi6.0,VisualBasic6.0,和Developer/2000。这些工具都属于4GL的软件开发工具,具有基于Windows界面、C/S结构、面向对象的可视化等特点。10.18Java语言对Internet的广泛应用起了什么作用?答:在Java出现以前,Internet主要用于信息共享,信息访问和传递方式也只是简单的链接。现在,Java已经成为Internet应用的主要开发语言,将信息共享的方式往前推进了一大步,使通过Web提供完全交互式的应用程序成为可能。10.19试解释Java源程序的运行顺序。答:Java源程序分两步运行:·Java源代码先通过Java编译器产生Java虚拟机字节代码(bytecodes)。字节代码文件称为类文件(classfiles课后答案网)。·然后,字节代码在本地或通过网络下载到客户机,再经Java解释器将字节代码转换成实际系统的机器代码去执行。10.20试解释Java语言的“平台无关性”?www.hackshp.cn答:开发人员在编写源程序时,不必担心程序运行的实际平台。当程序一旦编成,便可以不经修改直接运行于各种不同的平台上。这个性质称为Java语言的“平台无关性”。10.21Java语言有哪些良好的特性?答:Java具有下述五个特性:简单性,可移植性,面向对象,分布式和动态结构,安全性。10.22Java应用有哪两种方式?有什么区别?答:一般可以把Java的应用程序分成两类:应用程序(application)和小应用程序(applet)。简单的说,小应用程序就是嵌入式Web文档的程序,而应用程序则是所有其它类型的程序。小应用程序是从Web文档进来的Java程序,也就是从HTML文件进来的程序。而应用程序则是从命令行上运行的程序。小应用程序需要来自Web浏览器的大量信息(包括何时启动、何时激活或关闭等)。而应用程序可能运行在最简单的环境中,它来自外部世界的惟一输入就是命令行参数。10.23什么是JDBC?答:JDBC是执行SQL语句的JavaAPI。JDBC是“JavaDataBaseConnectivity”(JDBC数据库连接)的缩写。JDBC由一组用Java语言编写的类与接口组成。10.24JDBC的基本功能是什么?答:Java与JDBC的结合使程序员可以只写一次数据库应用软件便能在各种数据库系统上运行。JDBC的基本功能包括三点:建立与数据库的连接,发送SQL语句,处理结果。10.25试比较CGI和JDBC这两种方法的程序执行过程。答:在CGI方法中,当应用程序发出访问数据库的命令后,Web服务器调用所需要的CGI程序,并利用相应的服务器脚本技术解释执行CGI程序,通过CGI程序实现对数据库的访问。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!在JDBC方法中,当应用程序发出访问数据库的命令后,只需要将SQL命令发送给数据库的服务器,而不再需要Web服务器解释执行,这就大大缩短了执行SQL语句的时间。在CGI方法中,CGI脚本必须独立的连接数据库,处理执行结果。而JDBC的解决方案使应用程序直接与数据库相连,执行各种操作。因此采用JDBC来访问数据库比使用CGI方法效果更好,访问的速度也更快。10.26JDBCAPI数据库设计方法有哪两种方式?答:JDBCAPI支持这两种应用方式:Java应用程序和Java小应用程序,这两种方式分别在两层应用模型和三层应用模型中实现。10.27JDBCAPI采取哪些措施与标准SQL保持一致性的?答:JDBCAPI采取三种方法与标准SQL保持一致:·允许将任何查询字符串传递给基础DBMS驱动器,这意味着应用可以自动地使用尽可能多的SQL功能,但这会使某些DBMS系统接收到某种错误的查询。·采用ODBC风格的方法,提供表示几种常见的SQL差别的标准JDBC语法。·对于复杂应用,借助于DatabaseMetaData接口,提供关于DBMS的描述性信息,使应用能适应每个DBMS的需求与能力。10.28JDBC驱动程序有哪几类?结构如何?答:JDBC驱动程序有四类:本地库Java驱动程序,独立于DBMS的网络协议驱动程序,DBMS协议Java驱动程序,JDBC-ODBC桥驱动程序。(解释略)10.29JDBCAPI的目标是什么?答:JDBCAPI的目标主要有以下六点。课后答案网·为Java定义一个“调用层”(call-level)的SQL接口·遵循SQL2标准·JDBC应建立在现存的数据库接口上www.hackshp.cn·必须保证这个接口与Java系统的其他部分保持一致·使基本的API尽量简单·尽量保持强大的、静态的类型10.30JDBC接口分为哪几个部分?答:JDBC接口分为两个层次:应用程序层和驱动程序层。应用程序层是面向程序开发人员的JDBCAPI,驱动程序层是由驱动厂家实现的。10.31在java.sql包中,JDBC有哪些核心的接口和类?请对每一个接口和类作简短的解释。答:在java.sql包中,包含了JDBC的核心接口和类。JDBC的核心接口主要有8个:(1)java.sql.CallableStatement接口,用于执行数据库中的SQL存储过程。(2)java.sql.Connection接口,用于与特定的数据源建立连接。(3)java.sql.DatabaseMetaData接口,定义了多种方法来处理在特定连接中包含的数据库信息,如基本表、存储过程、连接功能、支持的语法等信息。(4)java.sql.Driver接口,用于数据库驱动程序与数据库建立连接关系。(5)java.sql.PreparedStatement接口,这个对象用于多次执行相同查询语句时使用。(6)java.sql.ResultSet接口,这个接口提供访问结果集的许多方法。(7)java.sql.ResultSetMetaData接口,提供了获取结果集中列的数目、类型和属性等信息的方法。(8)java.sql.Statement接口,这个对象用来执行静态SQL语句(通常是没有参数的SQL语句)。JDBC的核心类主要有9个:(1)java.sql.Date类,它是java.util.Date类的子类,为用户提供了处理日期的方法。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!(2)java.sql.DriverManager类,提供了用于管理JDBC驱动程序的方法。(3)java.sql.DriverPropertyInfo类,一般只被高级程序员使用,通过使用getDriverProperties与Driver进行交互,获得或使用建立连接需要的资源。(4)java.sql.Time类,提供处理时、分和秒的方法。这个类是java.util.Date类的子类。(5)java.sql.Timestamp类,它是java.util.Date类的子类,用于处理时间戳问题。(6)java.sql.Types类,定义了一些用于表示SQL类型的变量,这些类型的常量值与X/Open标准中的类型值一致。(7)java.sql.DataTruncation类,用于数据截断,这个类是SQLWarning类的子类。(8)java.sql.SQLExceptoin类,它是java.lang.SQLException类的子类,用于提供处理访问数据库时的出错信息。(9)java.sql.SQLWarning类,它是SQLExceptoin类的子类,所以SQLExceptoin类的方法都可以使用。10.32使用JDBC来连接数据库的一般步骤有哪几步?答:使用JDBC来连接数据库的步骤一般有以下三步:建立数据源,建立连接,发送SQL语句。(解释略)10.3自测题及答案10.3.1填空题1.在C/S系统中广泛地使用了中间件技术,以隐藏__________,屏蔽__________。2.中间件是分布式环境中保证__________、__________、__________等之间进行对话、互操作的软件系统。课后答案网3.中间件的作用是保证网络中各部件(软件和硬件)之间__________地连接,即隐藏网络部件的__________性。4.ODBC技术以__________www.hackshp.cn结构为设计基础,使得__________与__________之间在逻辑上可以分离,是应用程序具有数据库无关性。5.ODBC是一个分层的体系结构,由纵向四部分构成:__________、__________、__________和__________。6.ODBC数据库应用程序是用__________和__________编写的。7.驱动程序管理器的作用是为__________调用和加载__________。8.数据源是__________与__________连接的桥梁。9.ODBC应用程序的基本流程分为三个部分:__________、__________和_________。10.在ODBC应用程序的初始部分,与数据库操作有关的步骤有四步:__________、__________、__________和__________。11.在ODBC应用程序的终止部分,与数据库操作有关的步骤有四步:__________、__________、__________和__________。12.像PowerBuilder一类的数据库应用系统开发工具具有四个显著的特点:__________、__________、__________和__________。13.JDBC的基本功能包括三个部分:__________、__________和_________。14.JDBCAPI数据库设计方法有两种方式:__________和_________。这两种方式分别在两层和三层应用模型中实现。15.JDBC驱动程序有四类:__________、__________、__________和__________。10.3.2填空题答案1.各种复杂性各种系统之间的差异2.操作系统通信协议数据库3.透明异构4.C/S应用程序DBMS 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!5.ODBC数据库应用程序驱动程序管理器DB驱动程序数据源6.宿主语言(C语言)ODBC函数7.应用程序DB驱动程序8.驱动程序DBS9.初始化SQL处理终止10.分配环境句柄分配连接句柄与服务器连接分配语句句柄11.与服务器断开释放语句句柄释放连接句柄释放环境句柄12.基于C/S结构Windows界面OO的开发技术可视化技术13.建立与数据库的连接发送SQ语句处理结果14.Java应用程序Java小应用程序15.本地库Java驱动程序网络协议Java驱动程序本地协议Java驱动程序JDBS-ODBC桥驱动程序课后答案网www.hackshp.cn 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第11章数据库与WWW11.1基本内容分析本章的重要概念有:(1)Internet、Intranet和WWW的定义,IP地址和域名。(2)ISO/OSI/RM、实用的协议模型和TCP/IP协议组等三种网络层次模型结构。(3)WWW与DB交互的方法:CGI,JDBC和API。三种方法的比较。(4)CGI程序的功能、工作方式,CGI规范,CGI与DB的集成。(5)三种常用的Web编程语言:ASP、JSP和PHP。11.2教材中习题11的解答11.1试对Internet、Intranet、WWW这三个概念写出确切的定义。三者之间有什么关系?答:Internet是一个“网间网”,应包含三方面的内容:网络、网络用户和信息资源。Intranet,即企业内部网,是属于某一组织的Web站点或一组Web站点,只能由该组织的成员访问。WWW是一个涉及全世界的信息系统,也是一种Internet上高效、方便的检索工具。三者之间是相互联系、相互依赖而存在。Internet把不同的网络连在一起,Intranet是企业内部使用的Internet,WWW统一了整个Internet,使之变成一个超媒体形象资源的集合。11.2什么是IP地址?其结构如何?什么是域名?答:连接到Internet上的每台计算机都必须有一个惟一地址。Internet的地址用数字来表示的,称为IP地址。IP地址含有4个字节,32个二进制位。在书写时,通常每个字节都用十进制表示,而字课后答案网节之间用小圆点“.”分隔开来。要记住这些枯燥的数字不是容易的事,因此大多数计算机都有一个便于记忆的别名与IP地址相连系,这个别名称为“域名www.hackshp.cn”。11.3WWW主要有哪三种标准成分组成?答:WWW主要由三种标准成分组成,即URL(统一资源定位器)、HTTP(超文本传输协议)和HTML(超文本标记语言)。11.4试叙述ISO/OSI/RM、实用的协议模型和TCP/IP等三种网络层次模型结构。答:为了保证计算机网络的开放性与兼容性,网络协议必须遵循标准化的体系结构。主要有下面三个:(1)ISO/OSI/RM网络协议层次模型:这是ISO于1983年提出的,把网络协议分成七层,自下而上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。(2)实用的协议模型:为使用方便,实际使用时把OSI/RM模型的上面三层统称为“应用层”。(3)TCP/IP协议组:已成为事实上的工业标准,把网络协议看成五个层次,自下而上分别为物理层、网络接口层、网络层、传输层和应用层,与实用的协议模型类似,但层次的命名不一样。11.5ISO/OSI/RM的网络层次模型有几层?每一层的功能是什么?答:ISO/OSI/RM的网络层次模型有七层,自下而上每层的功能如下:·物理层:负责两个端点处物理信道上二进制比特的传输。·数据链路层:保证信息以帧(Frame)为单位在链路上的可靠传送。·网络层:保证信息以包为单位在两个端点处的路由传输。·传输层:确保较高层上的数据以可靠,高效的方式传送。·会话层:管理和同步较高层的数据交换的机制。·表示层:提供一套格式服务。·应用层:负责向用户提供使用各种服务软件的工具和方法。11.6TCP/IP中的TCP协议和IP协议的功能各是什么? 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!答:TCP/IP中的TCP协议是在传输层中,其功能是保证数据发送的正确性,确保数据到达顺序和发送顺序一致,如果数据发生损失或丢失,TCP要求重新发送该数据。TCP/IP中的IP协议是在互联网层中,其功能是使用IP地址来确定发送端(源主机)和接收端(目的地主机),提供端到端(主机到主机)的“数据报”传递。11.7为什么WWW与数据库的结合显得越来越重要?答:随着Internet/Intranet的兴起与发展,WWW与数据库的结合显得越来越重要。这种结合有两种方式:第一种方式:WWW作为访问DB的工具,可以借用统一的浏览器软件,无需开发数据库前端。第二种方式:DB作为WWW的一种工具,为WWW提供更加有效的数据组织和管理方式。无论是DB为WWW服务,还是WWW为DB服务,还是它们相互作用。将给我们带来的是一种更为有效、便利的信息管理和展示方式。11.8WWW与DB的连接,现在有哪三种主要方式?各有什么优缺点?答:WWW与DB的连接,现在有CGI、JDBC和API三种方式。这三种方式的优缺点,见教材P291的表10-1。11.9什么是CGI?在开发Web数据库应用中起什么作用?可用哪些语言编写CGI?答:CGI是一个用于定义Web服务器与外部程序之间通信方式的标准,使得外部程序能够生成HTML、图像或者其它内容。CGI程序在开发Web数据库中的作用相当于一个中介,在浏览器、Web服务器和数据库之间传递信息。几乎任何一种高级语言都可以被用来编写CGI程序。在实际应用中,根据所选用的操作系课后答案网统类型,用于CGI编程的语言可以为Perl、C、VB或Shellscripts(UNIX)。11.10CGI有哪两种规范?各有哪些方法或方式?答:CGI有两种规范:方法规范和接口规范。www.hackshp.cnCGI方法规范定义了调用CGI程序的途径。有三种主要的方法:GET方法,POST方法和HEAD方法。CGI接口规范定义了CGI与Web服务器之间通信方式,有四种:命令行,标准输入,标准输出和环境变量。11.11什么是ASP?ASP技术有什么特点?答:ASP是ActiveServerPages(动态服务器页面)的缩写,它是一个服务器端的脚本环境,在站点的Web服务器上解释脚本,可产生并执行动态交父式高效率的站点服务器应用程序。ASP可以胜任基于微软Web服务器的各种动态数据发布。ASP技术有下列特点:ASP技术主要有下列特点::·使用VBScript、JScript等简单易懂的脚本语言;·程序无须编译,容易编写,可在服务器端直接执行;·浏览器无关性;·能与任何ActiveXscripting语言相容;·提高了程序的安全性;·具有面向对象的开发特点;·无限的可扩充性。11.12ASP服务器端程序的原理是什么?答:ASP本身并不是一种脚本语言,它只是提供了一种使镶嵌在HTML页面中的脚本程序得以运行的环境。与一般的程序不同,ASP程序无须编译,其控制部份是使用VBScript、JScript等脚本语言来设计的。执行ASP程序时,由脚本解释器进行翻译并将其转换成服务器所能执行的命令。 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!11.13什么是JSP?主要包含哪些内容?答:JSP是JavaServerPages(Java服务器页面)的缩写,是由Sun公司于1999年推出的一项技术,是基于JavaServlet以及整个Java体系的Web开发技术,进而可以建立先进、安全和跨平台的动态网站。JSP主要包含指令和脚本语言两大部分。11.14JSP脚本语言是嵌入在页面内的java代码,有哪三种?答:JSP脚本语言是嵌入在页面内的java代码,分为三种:声明(Declarations)、脚本(Scriptlet)、表达式(Expression)。11.15什么是JSP中的指令?有什么作用?答:指令是JSP的一个重要的内容。指令提供了该页的全局信息,例如,重要的状态,错误处理,是否是session的一部分等等。这些指令包括:include指令,page指令,taglib指令以及动作指令(包括forward指令,useBean指令和plugin指令)。Include指令用于在JSP程序中包含一个静态或动态文件。page指令用于定义整个JSP文件都要使用的属性值,并在JSP程序进行编译时将这些文件属性传递给JSP引擎。taglib指令用于定义一个标签库以及其自定义标签的前缀。forword指令用于重定向一个HTML文件,JSP文件,或者是一个程序段。useBean指令用于定位或示例一个JavaBeans组件。plugin指令用于执行一个Applet或Bean,有可能的话还要下载一个Java插件用于执行它。11.16什么是JSP中的内置对象?有什么作用?答:为了开发的方便,在课后答案网JSP中已经预先定义好了一些常用的对象,在java脚本中不用声明就可以直接使用这些对象,称之为内置对象。通过在java脚本中使用这些对象,可以方便地实现特定的功能。各个对象的功能如图11.1所示。www.hackshp.cn对象名称对象功能request对象用户端请求,此请求会包含来自GET/POST请求的参数response对象网页传回用户端的回应pageContext对网页的属性是在这里管理象session对象与请求有关的通话期application对象Servlet正在执行的内容out对象用来传送回应的输出资料流config对象Servlet的构架物件page对象Jsp网页本身图11.111.17什么是PHP?PHP语言的特点是什么?答:PHP是ProfessionalHomePages的缩写,也是一种用服务器端HTML嵌入脚本创建动态网站的常用方式,其特色在于对DB操作的方便性。PHP是通过Internet进行合作开发的开放源代码软件,它从简单的Perl语言编写的CGI程序开始,通过不断的扩展与修改,最终称为结构完善、功能强大的动态网站的创建工具。PHP语言具有下列特点:·支持多种系统平台;·具有自由软件的特点;·版本更新速度快;·容易和HTML网页融合,执行效率高; 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!·具有丰富的函数接口;·具有丰富的功能,几乎完整地囊括所有网站所需的功能;·PHP具有很高的安全性。课后答案网www.hackshp.cn 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第12章XML技术12.1基本内容分析本章的重要概念有:(1)从SGML、HTML到XML的发展,XML文档、DTD(文档类型定义)、XML模式,XML数据库的存取方法。(2)XML查询语言XQUERY的基本功能、基本概念,简单查询的表达,各种类型查询的表达,复杂查询的表达。(3)基于关系数据库XML的处理,XML存储和查询系统体系结构,XML数据到关系数据库的存储映射,基于关数据库的XML查询。12.2教材中习题12的解答12.1名词解释(1)SGML:SGML的源头最早可追溯到1969年IBM公司的一个研究小组开发的“通用标记语言”GML,1986年被完善成ISO国际标准(ISO8879),即SGML,由ISO/IEC联合技术组JTC1/WG4负责制定,目前WG4还在进行SGML相关的标准化工作。SGML(通用标记语言标准,StandardforGeneralizedMarkupLanguage)不仅仅是一种标记语言,还可认为是一种元语言。利用它可以定义各种各样的标记语言。它允许开发者根据需要制定相关的DTD(文档类型定义)。但是这种灵活性带来的弊端是需要复杂的软件去处理它。(2)HTML:用于万维网的标记语言HTML可以看作是一个非正统的DTD。HTML针对SGML过于复杂的问题,指定很小的一组结构和语义标记,使其适合相对简单的文档的书写,另课后答案网外还增加了对超文本的支持。(3)XML:XML是SGML的一个子集。XML的设计目的明确地定位为万维网上的应用。设计工作基于两个重要的准则:易于编写处理XML的计算机程序,以及人和系统能花费极少的www.hackshp.cn代价将HTML移植到XML中。12.2试描述XML文本的组成部分答:一个XML文档由序言和文档实例两个部分组成。序言包括一个XML声明和一个文档类型声明,二者都是可选的。文档类型声明由DTD定义,它定义了文档类型结构。序言之后是文档实例,它是文档的主体,它是DTD的一个实现。12.3比较XML数据库的几种形式答:XML数据库有两种形式:(1)纯粹的XML存取方法:它是专门针对XML格式文档进行存取管理和数据操作的数据库,数据库中的数据和元数据完全采用XML结构表示,其底层针对XML数据的特点,采用相应的存储结构,而不是采用现有的数据存储工具。(2)基于关系数据库的存取方法:它是在关系数据库基础之上扩展了XML支持模块,它将XML数据存储在关系数据库中,在查询时将XML数据查询语言转换成关系数据数据库查询语言。这两种方法各有优缺点。就前者而言,XML文档存取无需模式转换,存取速度快;对格式复杂的XML文档有很好的支持;支持大多数最新的XML技术标准;支持层次化的数据模型;支持基于标签和路径的操作;支持对位置特征的查询。这是传统的查询语言所不具备的。但是这种方法技术比较新,没有经过时间的考验。而后者的优势在于其重发利用了传统数据库的成熟技术,如并发控制、事务处理、结构化查询等。但劣势在于XML文档存入到数据库时需要将其分解并进行数据映射,取出时需要重新组合,开销大,且有可能丢失某些信息。12.4假设XML文档actor.xml对应的DTD如下: 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!请给出不同要求下的XQuery查询语句:(1)查询陈道明参演的所有电影的名称和发行年份。(2)找出至少出演过4部以上电影的演员的Name以及他参演的所有电影的名字。(3)查询参演过电影<<乱世佳人>>的所有演员的Name,结果按名字降序排序。解:(1)for$iindocument("/actor.xml")//Actorwhere$i/Name/FirstName="陈"and$i/Name/LastName="道明"return{$i/Filemography/Movie}(2)课后答案网for$iindocument("/actor.xml")//Actorwherecount($i/Filemography/Movie)>=4returnwww.hackshp.cn{$i/Name}{$i/Filemography/Movie/Title}(3)for$iindocument("/actor.xml")//Actorlet$j:=$i/Filemography/Movie/Titlewhere$j="乱世佳人"return{$i/Name}sortby(FirstName,LastName)12.5设有一个XML文档集movie.xml,其DTD如下: 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!试完成下列查询语句:(1)查询2003年发行的所有电影的title。(2)根据movie.xml和actor.xml,查询出陈道明参演的所有电影的导演。解:(1)for$iindocument("/movie.xml")//Moviewhere$i/Year=2003return{$i/Title}(2)for$iindocument("/actor.xml")//Actor,$jindocument("/movie.xml")//Moviewhere$i/Name/FirstName="陈"and$i/Name/LastName="道明"and$i/Filemography/Movie/Title=$j/Titlereturn{$j/Directed_By}12.6试比较基于模板的驱动和模型驱动两种方式的优缺点。课后答案网答:基于模板方法的原理是首先定义一个模板,然后在模板中嵌入对数据库访问的命令,这些命令将交给数据库关系系统进行执行。在基于模型驱动的方法中,数据从数据库到XML文档的传送用一个具体的模型,而不是用www.hackshp.cn户定义的模型实现的。用户可以将相应的格式直接定义到这个模型上,从而将数据库中的数据展示各种各样的形式。其中前者更为灵活,可以定一个各种格式,但后者对用户的使用更为方便,用户不用操心数据具体的格式。12.7对下面这个DTD:描述其Basicinlining、SharedInlining和HybridInlining三种方法产生的结果。答:(1)Basicinlining产生的结果如下:paper(paperid:integer,paper.title:string)title(titleid:integer,title:string)keyword(keyid:integer,key.aprentid:integer,keyword:string)author(authorid:integer,author.parentid:integer,author.name:string)name(nameid:integer,name:string)(2)Sharedinlining产生的结果如下:paper(paperid:integer,paper.title:string)keyword(keyid:integer,key.aprentid:integer,keyword:string)author(authorid:integer,author.parentid:integer,author.name:string)(3)HybridInling产生的结果如下: 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!paper(paperid:integer,paper.title:string)keyword(keyid:integer,key.aprentid:integer,keyword:string)author(authorid:integer,author.parentid:integer,author.name:string)课后答案网www.hackshp.cn'

您可能关注的文档