• 340.00 KB
  • 2022-04-22 11:51:41 发布

数据库原理与应用答案.doc

  • 43页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'《数据库原理与应用》复习思考题第一部分复习思考:填空题1、关系运算可分为__传统的集合运算_和__专门的关系运算__两大类。2.数据模型通常都是由数据结构、_数据操纵__和_数据完整性约束__三个要素组成。3.1NF的关系消除_部分函数依赖和传递函数_依赖后,可将范式等级提高到2NF。4.2NF的关系消除____    ____依赖后,可将范式等级提高到3NF。4.SQL的含义是一种操纵数据库的结构查询语言_____。5.SQL语言中WHERE子句作用对应于关系运算的____算术表达式_______和____逻辑表达式___运算。6.在传统集合运算中,假定有关系R和S,运算结果为RS。如果RS中的元组属于R或者属于S,则RS是___并_____运算的结果;如果RS中的元组属于R而不属于S,则RS是____差_____运算的结果;如果RS中的元组既属于R又属于S,则RS是____交_____运算的结果。7.在SQLSELECT语句查询中,要去掉查询结果中的重复记录,应该使用__DISTINCT_______关键字。8、数据处理是将数据  转换成信息  过程。9、数据库存储的是通用化的相关数据集合,它不仅包括数据本身,而且包括 相关数据之间的联系 。10、数据的逻辑独立性是指当数据的整体逻辑结构  改变时,通过系统内部的自动映像或转换功能,保持了数据的 局部逻辑结构 不变。11、在E-R图中,用菱形框表示 联系 ,用长方形表示 实体  ,用椭圆形框表示  属性   。12、在概念结构设计中使用E-R方法的基本步骤为:设计局部  E-R图、综合成初步  E-R图和优化成基本 E-R图。13、DBMS一般应提供的功能有:数据库的定义功能、数据的 操纵功能、数据库运行控制功能和 数据字典 。14、数据库保护分为: 安全性控制 、完整性控制  、 并发控制 和 数据的恢复 。15、由一个或多个基本表导出的表称为 视图  ,它是一个 虚   表。16、常用数据模型中,网状模型的基本联系方式是 多对多  的联系;层次模型的基本联系方式是 一对多  ;而关系模型是通过二维表   表示实体和实体之间联系的。17、假定一个E-R图包含有A实体和B实体,并且A和B之间存在着m:n的联系,则转换成关系模型后包含有 3  个关系模式。18、关系规范化的目的是为了解决 插入异常  、 删除异常  和 更新异常  的问题,从而得到一个好的或比较好的 关系模式  的集合。19、设X->Y是关系模式R的一个函数依赖,如果存在X的真子集X’,使得X’->Y成立,则称Y 部分依赖于  X,记作 X‘->Y 。20、如果关系模式R中的所有的非主属性都不传递依赖于任何一个候选关键字,则称关系R是属于 第三范式  ,记为 R∈3NF  。21、一个关系模式中包含有若干 属性  ,其数目多少称为关系的 元数  。22、包含在任何一个候选关键字中的属性称为  主属性  。23、如果一个关系中属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为该关系的  外关键字 。24、一个关系模式为Y(X1,X2,X3,X4),假定该关系存在着如下函数依赖:    (X1,X2)->X3,X1->X4,则该关系属于 第一  范式,因它存在着部分函数依赖   。 25、数据库系统是由  硬件 、  系统数据库集合 、数据库管理系统及相关软件、数据库管理员   和用户组成的。26、按照数据库管理系统所支持的数据模型不同,可将数据库划分为 网状  数据库、  层次 数据库和  关系 数据库三种类型。27、数据的物理独立性是指当数据的 存储结构  改变时,通过系统内部的自动映像或转换功能,保持了数据的  逻辑结构 不变。28.实体之间的联系可归结为  一对一(或1:1) 、  一对多(或1:n) 和 多对多(或n:m)  三种。29.在概念结构设计中使用E-R图方法的基本步骤为: 设计 局部E-R图、   综合 成初步E-R图和  优化 基本E-R图。    30.采用关系模型的逻辑结构设计任务是将E-R图转换成一组 关系模式  ,并进行  规范化 处理。31.数据库并发控制包括以  独占 方式打开数据库和对数据库或记录 加锁  两种方法。32.数据完整性控制包括   域完整性   和  关联完整性 控制两个方面。33.本身独立存在即实际存储在数据库中而不是从其它表导出的表称为基本表  。34.关系运算包括两类:一类是传统的 集合关系  运算,另一类是专门的关系   运算。35.对于属性X的每一个具体值,属性Y都有唯一的具体值与之对应,称Y函数依赖于X,或称X 函数决定Y,记作 X->Y  。36.假定一个E-R图包含有A实体和B实体,并且A和B之间存在着1:n的联系,则转换成关系模型后包含有  2 个关系模式。37.在关系R中所有的非主属性都不传递依赖于任何一个候选关键字,则称关系R是属于 第三范式  ,记为  R∈3NF 。38.在关系模式R(U)中,K是U中的属性或属性组,如果K-〉U,则称K为关系R(U)的一个 候选关键字  。7.有一个读者关系,其关键字为借书证号。另有一个借阅关系,其属性有借书证号、总编号、借书日期等,关键字总编号,则借书证号为借阅关系的外关键字 。39.一个关系模式为R(X1,X2,X3,X4),假定该关系存在着如下函数依赖:(Xl,X2)->X3,X3->X4,则该关系属于  第二范式 范式,因它存在着传递依赖关系   。40.关系规范化的目的是为了解决  插入异常 、 删除异常  和  更新异常 等存储异常问题,从而得到一个好的或比较好的关系模式的集合。 复习题一:1.什么是数据?数据有什么特征?数据和信息有什么关系?2.什么是数据处理?数据处理的目的是什么?3.数据管理的功能和目标是什么?4.什么是数据库?数据库中的数据有什么特点?5.什么是数据库管理系统?它的主要功能是什么?6.数据冗余能产生什么问题?7.什么是数据的整体性?什么是数据的共享性?为什么要使数据库中的数据具有整体性和共享性?8.信息管理系统与数据库管理系统有什么关系?9.用文件系统管理数据有什么缺陷?10.数据库系统阶段的数据管理有什么特点?11.数据库系统对计算机硬件有什么要求? 12.数据库系统的软件由哪些部分组成?它们的作用及关系是什么?13.试述数据库管理员的职责。14.试述数据库系统的三级模式结构及每级模式的作用?15.什么是数据的独立性?数据库系统中为什么能具有数据独立性?16.试述数据库系统中的二级映象技术及作用。17.在下面所列出的条目中,哪些是数据库管理系统的基本功能———。A.数据库定义         B.数据库的建立和维护C.数据库的存取       D.数据库和网络中其他软件系统的通信18.在数据库的三级模式结构中,内模式有————。A.1个  B.2个   C.三个   D.任意多个19.下面列出的条目中,哪些是数据库技术的主要特点————。A.数据的结构化        B.数据的冗余度小C.较高的数据独立性    D.程序的标准化20.在数据库管理系统中,下面哪个模块不是数据库存取的功能模块———。A.事务管理程序模块     B.数据更新程序模块C.交互式程序查询模块   D.查询处理程序模块 复习题一答案1.答:   数据是用于载荷信息的物理符号.   数据的特征是:1)数据有"型"和"植"之分;2)数据受数据类型和取值范围的约束;3)数据有定性表示个定量表示之分;4)数据应具有载体和多种表现形式   数据与信息的关系为:数据是信息的一种表现形式,数据能通过书写的信息编码表示信息.信息有多种表现形式,它通过手势、眼神、声音或图形等方式表达,但是数据是   信息的最佳表现形式。由于数据能够书写,因而它能够被记录、存储和处理,丛中挖掘出更深的信息。但是数据不等于信息,数据只是信息表达方式的一种。正确的数据可以表达信息,而虚假、错误的数据所表达的是缪误的,不是信息。  2答   数据处理是指对数据的收集、组织、整理、加工、存储和传播等工作。围绕着数据所做的工作均称为数据处理。  数据处理目的为:通过数据管理,收集信息并将信息用数据表示和保存,在需要的时候,为各种使用和数据处理;通过数据加工,对数据进行变换、抽取和运算,从而得到更有用的数据,一指导或控制人的行为或事物的变化趋势;通过数据传播,是更多的人得到并理解信息,从而是信息的作用充分发挥出来。  3答   数据管理的功能为:1)组织和保存数据功能,即收到的数据合理地分类组织,将其存储在物理载体上,使数据能够长期的被保存;2)数据维护功能,即根据需要随时进行插入新数据、修改原数据和删除失效数据的操作;3)数据查询和数据统计功能,即快速地得到需要的正确数据,满足各种使用要求;4)数据的安全和完整性控制功能,即使保证数据的安全性和完整性。   数据管理的目标是:收集完整的信息,将信息用数据表示,按数据结构合理科学地组织并保存数据;为各种使用快速地提供需要的正确数据,并保证数据的安全性和完整性。  4答:    数据库是数据管理的新方法和技术,它是一个按数据结构来存储和管理数据的计算机软件系统。   数据库中的数据具有的特点是:1)数据库中的数据具有数据整体性,即数据库中数据要保持自身完整的数据结构;2)数据库中的数据具有数据共享性,不同用户可以按各自用法使用数据库中的数据,多个用户可以同时共享数据库中的数据资源。  5答:   数据库管理系统简称DBMS,它是专门用于管理数据库的计算机系统软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性进行控制的功能。   数据库管理系统主要功能是数据存储、数据操作和数据控制功能。其数据存储和数据操作是:数据库的定义功能,指为说明库中的数据情况而进行的建立数据库结构的操作;数据库建立功能,将大批数据录入到数据库的操作,它使得库中含有需要保存的数据记录;数据库维护功能,指对数据的插入、删除和修改操作,其操作能满足库中信息变化或更新的需求;数据查询和统计功能,指通过对数据库的访问,为实际应用提供需要的数据。数据库管理系统的数据控制功能为:数据安全性控制功能,即为了保证数据库的数据安全可靠,防止不合法的使用造成数据泄漏和破坏,即避免数据被人偷看、篡改或搞坏;数据完整性控制功能,指为了保证数据库中数据的正确、有效和相容,以防止不合语义的错误数据被输入或输出。  6答:   数据冗余大会造成浪费存储空间的问题,是数据的存储、管理和查询都不容易实现。同时,由于文件系统中相同的数据需要重复存储和各自的管理,数据冗余度大还回给数据的修改和维护带来麻烦和困难,还特别容易造成数据不一致的恶果。数据冗余度大还会给数据的修改和维护带来麻烦和困难,还特别容易造成数据不一致的恶果。数据冗余度大时,由于数据重复出现,还使得数据统计的结果不正确。  7答:   数据的整体性好似指在进行数据库设计是,要站在全局需要的角度进行抽象和组织数据;要完整的、准确的描述数据自身和数据之间联系的情况;要建立适合整体需要的数据模型。   数据的共享性是指由于数据库中的数据冗余度变小,从而避免了由于数据冗余度大带来的数据冲突问题,也避免可由此产生的数据维护麻烦和数据统计错误问题。数据共享度高会提高数据的利用率,它使得数据更有价值和更容易、更方便地被使用。8答:数据库管理系统是提供数据库管理的计算机系统软件,它为信息管理系统的设计提供了方法、手段和工具,利用数据库管理系统设计信息管理系统可以达到事半功倍的效果。信息管理系统是实现某种具体事物管理功能的应用软件。信息管理系统的数据存放在数据库中,利用数据库管理系统,信息管理可以更快、更好的设计和实施。9答  用文件系统管理数据会有三个缺陷:1)由于文件之间缺乏联系,会造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存储,所以数据冗余度大。2)由于数据冗余,在进行更新操作时,稍不谨慎,就可能是同样的数据在不同的文件中不一样,从而产生少数局不一致缺陷。3)由于文件之间相互独立,缺乏联系,会造成数据联系弱的缺陷。10答:   数据库系统阶段的数据管理有5方面的特点:1)采用复杂的数据模型表示数据结构。2)有较高的数据独立性。30数据库系统为用户提供了方便的用户接口。4)系统提供有数据库的恢复、并发控制、数据完整和数据安全性的数据控制功能,以保证数据库中的数据是安全的、正确的和可靠的。5)对数据的操作不一定以记录为单位,也可以以数据项为单位,从而增加了系统的灵活性。11答:  由于数据库系统是建立在计算机硬件的基础之上的,它在必须的硬件资源支持下才能工作。支持数据库系统的计算机硬件资源包括CPU、内存、外存及其他外部设备。外部设备主要包括某个具体的数据库系统所需的数据通信设备和数据输入输出设备。因为数据库系统数据量大、数据结构复杂、软件内容多,所以要求起硬件设备能够处理并快速处理数据,这需要硬件的数据存储容量大、数据处理速度和数据输入输出速度快。具体要求为:1)计算机内存要尽量大;2)计算机外存也要尽量大;3)计算机的数据传输速度要快。12答: 数据库系统的软件中包括操作系统(OS)、数据库管理系统(DBMS)、主语言系统、应用程序软件和用户数据库。各软件之间的关系如图5-1所示。 应用系统、数据库  应用开发工具软件 DBMS、主语言编译系统 操作系统 计算机硬件    数据库系统中各种软件的作用如下: 1)操作系统或汉字操作系统:操作系统是所有计算机软件的基础,在数据库系统中它起着支持DBMS及主语言系统工作的作用。如果管理的信息中有汉字,则需要中文操作系统的支持,以提供汉字的输入、输出方法和汉字信息的处理方法。 2)数据库管理系统和主语言系统:数据库系统是为定义、建立、维护、使用及控制数据库而提供的有关数据管理的系统软件。主语言系统是为应用程序提供的诸如程序控制、数据输入输出、功能函数、图形处理、计算方法等数据处理功能的系统软件。 3)应用开发工具软件:应用开发工具是DBMS系统为应用开发人员和最终用户提供的高效率、多功能的应用生成器、第四代计算机语言等各种软件工具,如报表生成器、表单生成器、查询和视图设计器等,它们为数据库系统的开发和使用提供了良好的环境和帮助。 4)应用系统及数据库:数据库应用系统包括为特定的应用环境建立的数据库、开发的各类应用程序及编写的文档资料,它们是一个有机整体。通过运行数据库应用系统,可以实现对数据库中数据的维护、查询、管理和处理操作。13答:数据库管理员(DBA)的职责为:1)   DBA应参与数据库和应用系统的设计。 数据库管理员只有参与数据库及应用程序的设计,才可能使自己对数据库结构及程序设计方法了解得更清楚,唯一后管理工作打下基础。同时,由于数据库管理员是用户,他们对系统应用的显示世界非常了解,能够提出更合理的要求和建议,所以有DBA参与系统及数据库的设计,可以是其设计更合理。2)   DBA应参与决定数据库的存储结构和存取策略的工作。数据库管理员要综合各用户的应用要求,和数据库设计员共同决定数据的存储结构和存取策略,是数据的存储空间利用的更合理,存取效率更高。3)   DBA要负责定义数据的安全性要求和完整性条件。数据库管理员的重要职责是保证数据库的安全性和完整性。DBA要负责定义个用户的数据使用权限、数据保密级别和数据完整的约束条件。4)   DBA负责监视数据库系统的运行,负责系统的维护和数据恢复工作。数据库管理员要负责监视系统的允许,及时处理系统允许过程中出现的问题,排除系统故障,保证系统能够正常工作。在日常工作中,数据流管理员要负责记录数据库使用的“日志文件”,通过日志文件了解数据库的被使用和更改的情况。数据库管理员还要定期对数据作“备份”,为以后的书记使用(几处理历史数据)各数据恢复作准备。当系统由于鼓掌而造成数据库被破坏是,数据库管理员要根据日志文件和数据备份进行数据恢复工作,是数据库能在最短的时间里恢复到正确状态。5)   DBA负责数据库的改进和重组。数据库管理员负责建设机和分析系统的性能,是系统的空间利用率和出来效率总是处于较高的水平。当发现系统出现问题或由于长期的数据插入、删除操作早晨系统性能降低是,数据库管理员要按一定策略对数据库进行改造或重组工作。当数据库的数据模型发生变化是,系统的改造工作也有数据库管理负责进行。14答:数据库的三级没收是指逻辑模式、外模式(子模式)、内模式(物理模式)。逻辑模式是对数据库中数据的整体逻辑结构和特征的描述。外模式是对各个用户或程序所涉及到的数据的逻辑结构和数据特征的描述。内模式是数据的内部表示或低层描述。 逻辑模式是系统为了减小数据冗余、实现数据共享的目标,并对所有的数据进行综合抽象而的到的统一的全局数据视图。通过外模式,可以方便用户使用和增强数据的安全性。通过设计内模式,可以将系统模式(全局逻辑模式)组织成最优的物理模式,以提高数据的存取效率,改善系统的性能指标。15答:数据独立性是只应用程序和数据之间的依赖程度低,相互影响小。数据独立性分成物理数据独立性和逻辑独立性两极。数据的物理独立性是指应用程序对数据存储结构的依赖程度。数据物理独立性高是指当数据的物理结构发生变化是,应用程序不需要修改也可以正常工作。数据的逻辑独立性是指应用程序数据全局逻辑结构的依赖程度。数据逻辑独立性高是只当数据库系统的数据全局逻辑结构改变时,它们对应的应用程序不需要改变仍可以正常运行。数据库系统之所以具有数据物理独立性高的特点,是因为数据库管理系统能够提供数据的物理与逻辑结构之间的映像或转换功能。这种数据映像功能是得应用程序可以根据数据的逻辑结构进行设计,并且一旦数据的存储结构发生变化,系统可以通过修改其映像来适应变化。所以数据物理结构的变化不会影响到应用程序的正确执行。     数据库系统之所以具有教高的数据逻辑独立性,是由于数据库系统能够提供数据的全局逻辑结构和局部逻辑结构之间的映像和转换功能。这种数据映像功能使得数据库可以按数据全局逻辑结构设计,而应用程序可以按数据局部逻辑结构进行设计。这样,当全局逻辑结构中的部分数据结构改变时,即使那些与变化相关的数据局部逻辑结构受到了影响,也可以通过修改与全局逻辑结构的映像而减小其受影响的程度,使数据局部逻辑结构基本上保持不变。由于数据库系统中的程序中的程序是按局部数据逻辑结构进行设计的,并且当全局数据逻辑结构变换时可以使局部数据逻辑结构基本保持不变,所以数据库系统的数据逻辑独立性高。16.答:数据库系统的二级映像技术是指外模式与模式之间的映像、模式与内模式之间的映像技术,这二级映像技术不仅在三级数据模式之间建立了联系,同时也保证了数据的独立性。    外模式/模式之间的映像,定义并保证了外模式与数据模式之间的对应关系。当模式变化时,DBA可以通过修改映像的方法使外模式不变,由于应用程序是根据外模式进行设计的,只要外模式不变化,应用程序就不需要修改,保证了数据的逻辑独立性。    模式/内模式之间的映像,定义并保证了数据的逻辑模式与内模式之间的对应关系。当数据库的存储结构改变时,DBA可以通过修改模式/内模式之间的映像使数据模式不变化。由于用户或程序是按数据的逻辑模式使用数据的,所以只要数据模式不变,用户仍可以按原来的方式使用数据,程序也不需要修改,从而保证了数据的物理独立性。17.答:A,B,C   18.答:A     19.答:A,B,C  20.答:C 复习题二: 1. 定义并解释下列术语。实体、实体型、实体集、属性、码、实体联系图(E-R图)、数据模型。2.试述数据模型的概念、数据模型的作用和数据模型的三个要素。3.试述概念模型的作用。4.试给出三个实际部门的E-R图,要求实体型之间具有一对一,一对多,多对多各种不同的联系。5.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教师,其中一些教授和副教授每人各带若干研究生。每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。用E-R图画出此学校的概念模型。 6.试述层次模型的概念,举出三个层次模型的实例。7.试述网状模型的概念,举出三个网状模型的实例。8.下述那一条不属于概念模型应具备的性质———。  A.有丰富的语义表达能力    B.易于交流和理解  C.易于变动                D.在计算机中实现的效率高9.用二维表结构表示实体以及实体间联系的数据模型称为————。  A.网状模型          B.层次模型  C.关系模型          D.面向对象模型 复习题二答案:1.答①实体:现实世界中存在的可以相互区分的事物或概念称为实体。例如,一个学生、一个工人、一台机器、一部汽车等是具体的事物实体,一门课、一个班级等称为概念实体。②实体型:现实世界中,对具有相同性质、服从相同规则的一类事物(或概念,即实体)的抽象称为实体型。实体型是实体集数据化的结果,实体型中的每一个具体的事物(实体)为它的实例。③实体集:具有相同特征或能用同样特征描述的实体的集合称为实体集。例如,学生、工人、汽车等都是实体集。④ 属性:属性为实体的某一方面特征的抽象表示。如学生,可以通过学生的“姓名”、“学号”、“性别”、“年龄”及“政治面貌”等特征来描述,此时,“姓名”、“学号”、“性别”、“年龄”及“政治面貌”等就是学生的属性。⑤码:码也称关键字,它能够惟一标识一个实体。例如,在学生的属性集中,学号确定后,学生的其他属性值也都确定了,学生记录也就确定了,由于学号可以惟一地标识一个学生,所以学号为码。⑥实体联系图(E-R图):实体-联系方法(Entity-RelationshipApproach,即E-R图法)是用来描述现实世界中概念模型的一种著名方法。E-R图法提供了表示实体集、属性和联系的方法。⑦数据模型:数据模型是一组严格定义的概念集合。这些概念精确地描述了系统的数据结构、数据操作和数据完整性约束条件。2.答:数据模型是一组严格定义的概念集合,这些概念精确地描述了系统的数据结构、数据操作和数据完整性约束条件。数据模型是通过概念模型数据化处理得到的。  数据库是根据数据模型建立的,因而数据模型是数据库系统的基础。  数据模型的三要素是数据结构、数据操作和完整性约束条件。其中:数据结构是所研究的对象类型的集合,它包括数据的内部组成和对外联系:数据操作是指对数据库中各种数据对象允许执行的操作集合,它包括操作对象和有关的操作规则两部分内容:数据约束条件是一组数据完整性规则的集合,它是数据模型中的数据及其联系所具有的制约和依存规则。3.答:概念模型也称信息模型,它是对信息世界的管理对象、属性及联系等信息的描述形式。概念模型不倚赖计算机及DBMS,它是现实世界的真实而全面的反映。概念模型通过系统需求分析得到,对概念模型数据化处理后得到了数据库的数据模型。4.答:图5-2中:一个部门有一个负责人,一个负责人负责一个部门的工作,部门和负责人间的联系是一对一的联系:一个学生可以借阅多本书,一本书只能一个人借,学生和借阅间的联系为一对多的联系;一个学生可以参加多个社会团体,一个社会团体有多个学生参加,学生和社会团体间的联系为多对多的联系。        部门负责  负责人学生借阅 图书学生 参加 社团11n            1                               1                                                  1mm                                 图5-2 三个部门的E-R图5.答:  用E-R图画出的学校的概念模型图如图5-3所示。                                     1            1  包含 下属 教学系                                n              n  班级 教研室   学习 工作                                1               1                                n               n学生 教师     选课 教学                            n                n                               m                        m课程普通生研究生                                图5-3学校的E-R图模型 6.答:在数据结构中,定义满足下面两个条件的基本层次联系的集合为层次模型:①有且仅有一个结点没有双亲结点,这个结点称为根结点。②除跟结点之外的其他结点有且只有一个双亲结点。模型实例如图5-4所示。教学系 班级 教研室 车间 工人 教研室 教师                                图5-4层次模型实例图7.答:  满足以下两个条件的基本层次联系的集合称为网状模型:①有一个以上的结点没有双亲。②结点可以有多于一个的双亲。模型实例如图所示。课程 学生 职工  医生 病房        C-G            S-G            D-P          S-P      E-L     L-E 成绩病人领导                                  图5-5 网状模型实例图 8.答:A,D  9.答:C复习题三1. 试述数据库的设计过程。2.对数据库设计过程中各个阶段的设计进行描述。3. 试述数据库设计过程中结构设计部分形成的数据库模式。4.试述数据库设计的特点。5.需求分析阶段的设计目标是什么?调查内容是什么?6.数据字典的内容和作用是什么?7.什么是数据库的概念结构?试述其特点和设计策略。8.什么是数据抽象?试举例说明。9.试述数据库概念结构设计的重要性和设计步骤?10.什么是E-R图?构成E-R图的基本要素是什么?11.为什么要视图集成?视图集成的方法是什么?12.什么是数据库的逻辑结构设计?试述其设计步骤?13.试述E-R图转换为网状模型和关系模型的转换规则。14.试述数据库物理设计的内容和步骤。15.什么数据库的再组织和重构造?为什么要进行数据库的再组织和重构造?16.现有一个局部应用,包括两个实体:“出版社”和“作者”,这两个实体是多对多的联系,请设计适当的属性,画出E-R图,再将其转换为关系模型(包括关系名、属性名、码和完整性约束条件)。 17.请设计一个图书馆数据库,此数据库中对每个借阅者保存的记录包括:读者号,姓名,地址,性别,年龄,单位。对每本书保存有:书号,书名,作者,出版社。对每本被借出的书保存有读者号、借出日期和应还日期。要求:给出该图书馆数据库的E-R图,再将其转换为关系模型。 18.图4-1是某个教务管理数据库的E-R图,请把它们转换为关系模型(图中关系、属性和联系的含义,已在旁边用汉字标出)。 19.图4-2是一个销售业务管理的E-R图,请把它转换成关系模型。 20.设有一家百货商店,已知信息有:1) 每个职工的数据是职工号、姓名、地址和他所在的商品部。2)每一商品部的数据有:它的职工,经理和它经销的商品。3) 每种经销的商品数有:商品名、生产厂家、价格、型号(厂家定的)和内部商品代号(商店规定的)。4)关于每个生产厂家的数据有:厂名、地址、向商店提供的商品价格。请设计该百货商店的概念模型,再将概念模型转换为关系模型。注意某些信息可用属性表示,其他信息可用联系表示。21.下列有关E-R模型向关系模型转换的叙述中,不正确的是——。A.    一个实体模型转换为一个关系模式B.     一个1:1联系可以转换为一个独立的关系模式,也可以与联系的任意一端实体所对应的关系模式合并C.    一个1:n联系可以转换为一个独立的关系模式,也可以与联系的任意一端实体所对应的关系模式合并D.一个m:n联系转换为一个关系模式复习题三答案1.答:数据库的设计要经过需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护6个阶段,其内容可以通过图5-6表示。        企业  数据分析  用户业务活动分析 概念模型分析 功能模型 逻辑模式设计 事物设计 物理模式设计 程序说明 用户子模式设计 应用程序设计 加栽试验数据 调试和运行 性能考察 满意 加栽数据库 投入运行维护                                                     图5-6数据库设计过程示意图2.答:  数据库设计分为6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。各阶段的主要内容为: ①需求分析阶段:准确了解并分析用户对系统的需要和要求,弄清系统要达到的目标和实现的功能。 ②概念结构设计阶段:通过对用户需求分析进行综、归纳与抽象,形成一个独立于具体DBMS的概念模型。 ③逻辑结构设计阶段:将概念结构转换为某个DBMS所支持的数据模型,并将其性能进行优化。 ④数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据存储结构和存取方法。 5数据库实施阶段:愚勇DBMS提供的数据操作语言和宿主语言,根据数据库的逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库并进行系统试运行。 6数据库运行和维护阶段:数据库经过试运行后即可投入正式运行。在数据库系统运行过程中,必须不断的对其结构性能进行评价,调整和修改。  3.答:   概念设计阶段,设计者要将应用需求转换为与计算机硬件无关的,与各个数据库管理系统产品无关的概念模型(即E-R图):逻辑设计阶段,要完成数据库的逻辑模式和外模式的设计工作,即系统设计者要先将E-R图转换成具体的数据库产品支持的数据模型,形成数据库逻辑模式,然后根据用户处理的要求,安全性的考虑,建立必要的数据试图,形成数据的外模式:在物理设计阶段,要根据具体使用的数据库管理系统的特点和处理的需要进行物理存储安排,并确定系统要建立的索引,得出数据库的内模式。  4.答:  数据库设计有2个特点:  1进行数据库系统设计时应考虑到计算机硬件,软件和用户的实际情况。即要求数据库设计时,必须适应所在的计算机硬件环境,选择合适的DBMS,了解并提高数据库用户的技术水平和管理水平。  2数据库系统设计时应使结构特性设计和行为特性设计紧密结合。数据库设计时,结构设计和行为设计应分离设计,相互参照,反复探寻,共同达到设计目标。  5.答:  需求分析调查的具体内容有3方面:  1数据库中的信息内容:数据库中需存储哪些数据,它包括用户将从数据库中直接获得或者间接导出的信息的内容和性质。  2数据处理内容:用户要完成什么数据处理功能:用户对数据处理响应时间的要求:数据处理的工作方式。  3数据安全性和完整性要求:数据的保密措施和存取控制要求:数据自身的或数据间的约束限制。  6.答:  数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所获得的主要成果。数据字典通常包括数据项,数据结构,数据流,数据存储和处理过程5个部分.  7.答:  概念结构设计是将系统需求分析得到的用户需求抽象为信息结构过程。概念结构设计的结果是数据库的概念模型。  概念结构设计是将系统需求分析得到的用户要求抽象为信息结构过程。概念结构设计的结果是数据库的概念模型。  概念结构独立于数据库逻辑结构和支持数据库的DBMS,其主要特点是:  1概念模型是现实世界的一个真实模型:概念模型应能真实,充分反映现实世界,能满足用户对数据的处理要求。  2概念模型应当易于理解:概念模型只有被用户理解后,才可以与设计者交换一件,参与数据库的设计  3概念模型应当易于更改:由于现实世界(应用环境和应用要求)会发生变化,这就需要改变概念模型。易于更改的概念模型有利于修改和扩充。  4概念模型应易于向数据模型转换:概念模型最终要转换为数据模型。设计概念模型时应当注意,使其有利于向特定的数据模型转换。  8.答:  抽象就是抽取显示世界的共同特性,忽略本质的细节,并吧这些共同特性用各种概念精确的加以描述,形成某种模型。  例子如下    1使用分类法抽象“职工”类:在企业环境中,张小英是职工中的一员,她是具有职工们共有的特性和行为:在某个部门工作,参与某个工程的设计或施工。与张小英属同一对象的还有王丽平等其他职工,如图5-7所示            职工.                                                                                                          “成员”                                               ……                       张小英  王丽平 柳勇     李成                                        图5-7 职工分类示意图      2使用聚集方法抽象“职工”属性:把实体集“职工”的“职工号”,“姓名”等属性聚集为实体型“职工”,如图5-8所示职工    年龄 工资 姓名  职工号 实体型   性别 属性                              图5-8 职工属性聚集实例      3使用概括法将“职工”的子类合并:职工是个实体集,技术人员,干部也是实体集,担技术人员,干部局势职工的子集,如图5-9所示                             图5-9概括表示示意图9.答: 概念结构设计是将系统需求分析得到的用户需求抽象为信息结构过程。概念结构设计的结果是数据库的概念模型。概念结构能转化为机器世界中的数据模型,并用DBMS实现这些要求。 概念结构的设计可分为两步:第一步是抽象数据并设计局部视图;第二步是集成局部视图,得到全局的概念结构。10.答:E-R图是描述现实世界的概念模型的图形,E-R图也称为实体-联系图。它提供了表示实体集,属性和联系的方法。构成E-R图的基本要素是实体集、属性和联系。11.答:视图集成就是把设计好的各个子系统的分E-R图综合成一个系统的总E-R图,同时消除属性冲突、命名冲突、机构冲突,为关系数据库逻辑结构设计做准备。基本E-R   视图的集成可以有两种方法:一种方法是多个分E-R图综合一次集成,如图,5-10a所示;另一种方法是逐步集成,累加的方法一次集成两个分E-R图,如图5-10b所示。                                a                                                                                    b图5-10 视图集成的两  12.答:  逻辑结构设计是把概念模型结构转换成某个具体的     DBMS所支持的数据模型。  逻辑结构设计步骤为:  1把概念模型转换成一般的数据模型。  2把一般的数据模型转换成特定的DBMS所支持的数据模型。  3通过优化方法将其转化为优化的数据模型。13.答:1)E-R图转换为网状模型的方法为:1每个实体集转换成一个记录。2每个1:n的二元联系转换成一个系,系的方向由1方实体记录指向n方向实体记录。3每个m:n的二元联系,在转换时要引入一个连结记录,并形成两个系,系的方向由实体记录方指向连结记录方。4(>=3)个实体型之间的多元联系,在转换时也引入一个连结记录,并将联系转换成k个实体记录型之间的k个系,系的方向均为实体型指向连结记录。2)E-R图转换为关系模型的方法为:1一个实体集转换为关系模型中的一个关系,实体的属性就是关系的属性,实体的码就是关系的码,关系的结构时关系模式。2一个1:1联系可以转换为一个独立的关系,也可以与任意一端实体集所对应的关系合并。如果将1:1联系转换为一个独立的关系,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,且每个实体的码均是该关系的候选码。如果将1:1联系与某一端实体所对应的关系合并,则需要在被合并关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体的码。 3实体间的1:n联系可以有两种转换方法:一种方法是将联系转换为一个独立的关系,其关系的属性由与该联系相连的各实体集的码一击联系本身的属性组成,而该关系的码为n端实体的码;另一种方法是在n端实体集中增加新属性,新属性由联系对应的1端实体集的码和联系自身的属性构成,新增属性后原关系的码不变。4一个m:n联系转换为一个关系:与该联系相连的各实体集的码以及联系本省的属性均转换为关系的属性,新关系的码为两个相连实体码的组合。14.答:数据库物理设计的内容主要是选择存取方法和存储结构,包括确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。数据库的威力设计可以分为两步惊醒:1确定数据的物理结构,即确定数据库的存取方法和存储结构。2对物理结构进行评价。15.答:数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库的性能也下降。这时,数据库管理员就要对数据库进行重组织或部分重组织。 重组织按原数据库设计要求重新安排存储位置、回收垃圾、减少指针链等,以提高系统性能。重构造通过部分修改数据库的模式和内模式,使数据库适应新的应用环境。16.答:转换后的关系模型如图5-11所示。出版社(出版社名,地址,邮政编码);作者(姓名,性别,年龄,证件号码,单位);出版(出版社名,作者姓名,出书数量,联系方式)。 出版出版社名,地址,邮政编码出版社                                                   出书数量   单位出版    联系方式    作者     作者姓名,性别,年龄,证件号码,  复习题四1.              试述关系模型的三个组成部分。2.            试述关系数据语言的特点和分类。3.            定义并解释下列术语,说明它们之间的联系与区别。1)主码、候选码、外码2)笛卡儿积、关系、元组、属性、域。3)关系、关系模式、关系数据库。4.试述关系模型的完整性规则。在参照完整性中,为什么外码属性的值也可以为空?什么情况下可可以为空?5.试述等值连接与自然连接的区别和联系。6.对于学生选课关系,其关系模式为:学生(学号,姓名,年龄,所在系);课程(课程名,课程号,先行课);选课(学号,课程号,成绩)。用关系代数完成以下查询:1) 求学过的数据库课程的学生的姓名和学号。2)求学过的数据库和数据结构的学生的姓名和学号。3) 求没有学过数据库课程的学生学号。4)求学过的数据库的先行课的学生学号。7.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY)。其中:供应商表S由供应商代码(SNO)、供应商姓名(SNAME),供应商状态(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J由工程项目代码(JNO)、工厂项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。试用关系代数完成如下查询:1)求供应工程J1零件的供应商号码SNO。2)求供应工程J1零件P1的供应商号码SNO。3) 求供应工程J1零件为红色的供应商号码SNO。4) 求没有使用天津供应商生产的红色零件的工程号。5)求至少用了供应商S1所供应的全部零件的工程号。8.设属性A是关系R的主属性,则属性A不能取空值(NULL),这是——。 A.实体完整性规则   B.参照完整性规则C.用户定义完整性规则   D.域完整性规则9.下面对于关系的叙述中,不正确的是———。 A.    关系中的每个属性是不可分解的B.     在关系中元组的顺序是无关紧要的C.    任意的一个二维表都是一个关系D.    每一个关系只有一种记录类型10.设关系R和S的元组个数分别为100和300,关系T是R与S的笛卡儿积,则T的元组个数是————。A.400   B.10000 C.30000   D.9000011.设关系R与关系S具有相同的目(或称度),且相对应的属性的值取自同一个域,则R-(R-S)等于———。A.RUS  B.R∩S C.R×S D.R-S  复习题四答案3.答:1) 若关系中的某一属性组(或单个属性)的值能惟一标识一个元组,则称该属性组(或属性)为候选码。当一个关系有多个候选码时,应选定其中的一个候选码为主码;而如果关系中只有一个候选码,这个惟一的候选码就是主码。设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码。2)给定一组D1,D2,…Dn,这些域中可以有相同的部分,则D1,D2,…,Dn的笛卡儿积为:D1×D2×…×Dn={(d1,d2,…,dn)∣di∈Di,i=1,2,…,n}.D1×D2×…×Dn的子集称作在域D1,D2,…,Dn上的关系,表示为:R(D1,D2,…,Dn)。其中,R表示关系的名字,n是关系的目。笛卡儿积集合中的每一个元素(d1,d2,…,dn)称为一个元组。关系中的每一列称为一个属性。域为数据集全,属性值来源于域。3)关系是笛卡儿积的有限子集,所以关系也是一个二维表。关系的描述称为关系模式。关系模式可以形式化地表示为:R(U,D,Dom,F)。其中:R为关系名,它是关系的形式化表示:U为组成该关系的属性集合;D为属性组U中属性所来自的域;Dom为属性向域的映像的集合;F为属性间数据的依赖关系集合。在某一应用领域中,所有实体集及实体之间联系所形成关系的集合就构成了一个关系数据库。4.答:关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。关系的实体完整性规则为:基属性A是基本关系R的主属性,则属性A的值不能为空值。关系的参照完整性为:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。由于外码在被参考关系A中,是非主属性,其值为空,不景响关系的实体完整性。当外码值不清楚或不确定时,可以设定值,此时参照表中有对应的记录与之匹配。 5.答:   等值连接是从关系R和S的广义笛卡儿积中选取A和B属性值相等的那些元组。自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。 6.答: 1)∏ 姓名,学号(  课程名=‘数据库’(学生∞选课∞课程)) 2)∏ 姓名,学号(  课程名=‘数据库’(学生∞选课∞课程))∩∏姓名,学号(  课程名=‘数据结构’(学生∞选课∞课程))3)∏ 姓名,学号(学生)-∏ 姓名,学号( 课程名=‘数据库’(学生∞选课∞课程))4) 设课程的两个副本为课程A和课程B,课程B.先行课=讲课。课程号    课程A.先行课=课程B课程号 ∏课程A.学号((  课程A.课程名=‘数据库’(课程A  ∞ 课程B))            ∞     选课) 7.答: 1)∏SNO(JNO=’J1’(SPJ) 2)∏SNO( JNO=’J1’∧PNO=‘P1’(SPJ)  3)∏SNO( JNO=’J1’∧COLOR=‘红色’(SPJ∞P)  4)∏JNO(J)-∏JNO( CITY=’天津’∧COLOR=‘红色’(SPJ∞S∞P))  5)∏JNO,PNO(SPJ)÷∏PNO( sno=’s1’(S∞SPJ))  8.答: A 9.答: D 10.答: C 11.答: B    复习题五1.试述SQL语言的特点。2.设职工---社团数据库有三个基本表:职工(职工号,姓名,年龄,性别);社会团体(编号,名称,负责人,活动地点);参加(职工号,编号,参加日期);其中:1)职工表的主码为职工号。2)社会团体表的主码为编号;外码为负责人,被参照表为职工表,对应属性为职工号。 3)参加表的职工号和编号为主码;职工号为外码,其被参照表为职工表,对应属性为职工号;编号为外码,其被参照表为社会团体表,对应属性为编号。试用SQL语句表达下列操作:(1)定义职工表、社会团体表和参加表,并说明其主码和参照关系。(2)建立下列两个视图。社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别);参加人情况(职工号,姓名,社团编号,社团名称,参加日期)(3)查找参加唱歌队或篮球队的职工号和姓名。(4)查找没有参加任何团体的职工情况。(5)查找参加了全部社会团体的职工情况。(6)查找参加了职工号为“1001”的职工所参加的全部社会团体的职工号。(7)求每个社会团体的参加人数。(8)求参加人数最多的社会团体的名称和参加人数。(9)求参加人数超过100人的社会团体的名称和负责人。(10)把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户李平,并允许他将此权力授予其他用户。3.设工程—零件数据库中有四个基本表:供应商(供应商代码,姓名,所在城市,联系电话);工程(工程代码,工程名,负责人,预算);零件(零件代码,零件名,规格,产地,颜色);供应零件(供应商代码,工程代码,零件代码,数量)试用SQL语句完成下列操作:1)找出天津市供应商的姓名和电话。2)查找预算在50000~100000元之间的工程的信息,并将结果按预算降序排列。3)找出使用供应商S1所供零件的工程号码。4)找出工程项目J2使用的各种零件名称及其数量。5)找出上海厂商供应的所有零件号码。6)找出使用上海产的零件的工程名称。7)找出没有使用天津产的零件的工程号码。8)把全部红色零件的颜色改成蓝色。9)将由供应商S5供给工程代码为J4的零件P6改为由S3供应,并作其他必要的修改。10)从供应商关系中删除S2的记录,并从供应零件关系中删除相应的记录。4.在嵌入式SQL中,如何区分SQL语句和主语言语句?5.在嵌入式SQL中,如何解决数据库工作单元与源程序工作单元之间的通信?6.在嵌入式SQL中,如何协调SQL语言的集合处理方式和主语言的单记录处理方式?7.SQL语言集数据查询、数据操作、数据定义、和数据控制功能于一体,语句INSERT、DELETE、UPDATE实现下列哪类功能————。A.数据查询     B。数据操纵C.数据定义     D。数据控制8.下面列出的关于视图的条目中,不正确的是————。A.视图是外模式      B。视图是虚表C.使用视图可以加快查询语句的执行速度D.使用视图可以简化查询语句的编写9.在SQL语言的SELECT语句中,能实现投影操作的是———。A.SELECT    B.FROM  C.WHERE   D.GROUP BY 10.SQL语言集数据查询、数据操作、数据定义、和数据控制功能于一体,语句ALTERTABLE实现哪类功能————。A.数据查询     B.数据操纵C.数据定义     D.数据控制11.在关系数据库系统中,为了简化用户的查询操作,而又不增加数据的存储空间,常用的方法是创建————。A.另一个表  B.游标   C.视图   D.索引 复习题五答案 1. 答:SQL语言集数据查询、数据操纵、数据定义和数据控制功能一体,它除了具有一般关系数据库语言的特点外,还具有3个特点:①SQL具有自含式和嵌入式两种形式:②SQL具有语言简洁、易学易用的特点:③SQL支持三级模式结构。2.答:1) 1) CREAT TABLE 职工(职工号 CHAR(10)NOT NULL UNIQUE,             姓名 CHAR(8)NOT NULL,             年龄 SMALLINT,             性别 CHAR(2),     CONSTRAINT C1 CHECK(性别IN(‘男’,‘女’))); CREAT TABLE 社会团体(编号 CHAR(8)NOT NULL UNIQUE, 名称 CHAR(12)NOT NULL,负责人 CHAR(8),活动地点 VARCHAR(50),CONSTRAINT C2 FOREIGN KEY(负责人)REFERENCES职工 (职工号));CREAT TABLE 参加(职工号 CHAR(8),编号 CHAR(8),参加日期 DATA,CONSTRAINT C3 PRIMARY KEY(职工号,编号),CONSTRAINC3FOREIGNKEY(职工号)REFERENCES职工(职工号));2)CREATVIEW社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别)AS SELECT编号,名称,负责人,姓名,性别FROM 社会团体,职工WHERE 社会团体.负责人=职工.职工号;CREATVIEW参加人情况(职工号,姓名,社团编号,参加日期)AS SELECT参加.职员号,姓名,社会团体.编号,名称,参加日期                  FROM职工,社会团体,参加 WHERE 职工.职工号=参加.职工号AND参加.编号=社会团体.编号;3)SELECT 职工号,姓名FROM 职工,社会团体,参加     WHERE 职工.职工号=参加.职工号AND参加.编号=社会团体.编号                  AND 社会团体.名称IN(‘唱歌队’,‘篮球队’);4)SELECT* FROM 职工WHERE NOT EXISTS(SELECT*            FORM 参加WHERE 参加.职工号=职工.职工号);5) SELECT*FROM 职工 WHERE NOT EXISTS(SELECT*FROM参加WHERE NOT EXISTS (SELECT*FROM 社会团体WHERE参加.职工号=职工.职工号AND参加.编号=社会团体.编));6)SELECT职工号 FROM 职工WHERE NOT EXISTS(SELECT* FROM参加 参加1      WHERE 参加1.职工号=‘1001’AND NOT EXISTS (SELECT* FROM 参加 参加2                 WHERE 参加2.编号=参加1.编号 AND 参加2.职工号=职工.职工号)); 7) SELECT COUNT(职员号)FROM 参加 GROUP BY 编号;8) SELECT 社会团体.名称,COUNT(参加.职工号)    FROM社会团体 参加    WHERE 社会团体.编号=参加.编号   GROUP BY 参加编号   HAVING MAX (COUNT(参加.职工号))=COUNT(参加.职工号));9) SELECT 社会团体.名称,职工.姓名  FROM 职工,社会团体,参加  WHERE 社会团体.编号=参加.编号 AND 社会团体.负责人=职工.职工号  GROUP BY 参加.编号 HAVING COUNT(参加.编号)>100;10)  GRANT SELECT,INSERT,DELECT ON 社会团体,参加 TO 李平WHERE GRANT OPTION;3.  答:1)      SELECT 姓名,联系电话FROM 供应商2)     SELECT*FROM工程WHERE 预算 BETWEEN 50000 AND 100000ORDER BY 预算 DESC;3)      SELECT 工程代号FROM 供应零件WHERE 供应商代码=‘SI’;4)     SELECT 零件.零件名,供应零件.数量FROM 零件 供应零件WHERE 零件.零件代码=供应零件.零件代码AND供应零件.工程代码=‘J2’;   5)SELECT 零件代号FROM 供应商,供应零件WHERE 供应商.供应商代码=供应零件.供应商代码AND供应商.所在城市=‘上海’;6) SELECT 工程名FROM 供应商,供应零件,工程WHERE 供应商.供应商代码=供应零件.供应商代码AND供应零件.工程代码=工程.工程代码 AND 供应商.所在城市=‘上海’;  7) SELECT 工程号码FROM 工程WHERE NOT EXISTS(SELECT*                        FROM供应零件            WHERE工程.工程代码=供应零件.工程代码 AND 供应商代码 IN (SELECT 供应商代码                          FROM 供应商8)UPDATE 零件SET 颜色=‘蓝色’WHERE 颜色=‘红色’;9)UPDATE 供应零件SET 供应商代码=‘S3’WHERE 供应商代码=‘S5’AND工程代码=’J4’ AND零件代码=‘P6’;10)     DELETE  FROM    供应零件WHERE    供应商代码=’S2’; DELETE FROM     供应商  WHERE    供应商代码=’S2’; 4. 答:在嵌入方式下,SQL语句在嵌入主语言的程序时其前缀加EXEC SQL ;其结束处用END_EXEC或用分号“;”。5.答:数据的工作单元和程序工作单元之间通信的主要方式有:主语言通过变量向SQL语句 提供参数;SQL语句的当前工作状态和运行环境数据要返馈给应用程序。6.答:使用游标解决SQL一次一集合的操作与主语言一次一记录操作的矛盾。游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。用户可以通过游标逐一获取记录,并将记录赋给主变量,交给主语言做进一步处理。7.答:B  8.答:C  9.答:A   10.答:C   11.答:C 复习题六1.客户机/服务器体系结构的特点是什么?SQL Server2000客户机/服务器的结构特点是什么?2.简述SQL Server2000客户机/服务器的体系结构和软件结构。3. SQLServer2000的物理数据库有哪些文件构成?逻辑数据库有哪些内容构成?4.SQL Server2000的数据库中有哪些数据库对象?这些数据库对象在数据库系统中分别起什么作用。5. 简述SQL Server2000的4个最主要的系统数据库及作用。6.简述SQL Server2000的主要管理功能。7.简述SQL Server2000提供的主要管理工具及功能。8.Trangsact—SQL与标准SQL相比,数据查询语句有什么不同之处?9.设要建立学生选课数据库,库中包括学生、课程和选课3个表,其表结构为:学生(学号,姓名,性别,年龄,所在系);课程(课程号,课程名,先行课);选课(学号,课程号,成绩)。用Transact—SQL完成下列操作。1)建立学生选课库。2)建立学生、课程和选课表。3)建立各表以主码为索引项的索引。4)建立学生性别只能以“男”或“女”的规则,性别为“男”的缺省,并将它们绑定的学生表上。5)建立在对选课表输入或更改数据时,必须服从参照完整性约束的INSERT和UPDATE触发器。6)建立在删除学生记录时,同时也要把相应的选课记录删除的触发器。7)查询各系及学生数,最后求出共有多少系和多少学生。8)将学生表和选课表进行内连接、左连接和右外连接。列出学生学号、姓名及学习情况。学习情况用好、较好、一般或较差表示。当平均成绩大于85分时,学习情况为好:当平均成绩在70-85分之间,学习情况为较好:当平均成绩在60-70分之间,学习情况为一般:当平均成绩在60分以下,学习情况为较差. 复习题六答案1.答     客户机/服务器(Client/Server)是分布式数据库与网络技术相结合的产物,C/S系统可以通过网络连接产品将多台计算机连接为企业内部网,能够与Internet相连并发布网页。网络中的一台或多台计算称为服务器(Server),其他的计算机称为客户机(Client).在C/S系统中,应用程充安装在客户机端,客户机端实现用户界面和前端处理功能:数据库服务 嚣程序安装在服务器端,同服务器实现颁事务的协调和数据访问控制。    2.答:SQL Server2000的数据库系统结构采用多层客户/服务器系统结构。其软件结构为客户软件、网络软件和服务器软件。客户软件包括客户应用程序软件、服务器的数据库应用程序、编程接口API和网络资源库;SQL服务器软件由网络链接库、开放式数据服务、SQL Server代理服务程序、SQLServer服务器以及分布事务管理服务5部分构成。    3.答:             SQLServer的物理数据库由两个或多个物理文件组成,一个物理数据库中至少有一个数据库数据文件和一个数据库事务日志文件。    逻辑数据库中有表、视图、图表等数据对象。  4.答:    SQL Server的数据库对象包括表、视图、用户、角色、索引、数据类型、默认值、存储过程、触发器和约束等。① 表和视图:表,即基本表,它是在数据库中存放的实际关系;视图是为了用户查询方便或根据数据安全的需要而建立的虚表。②   ②    用户和角色:用户是数据库系统的合法使用者;角色是同一个或多个用户组成的单元,角色也称职能组。③   ③    索引:索引是用来加速数据访问和保证表的实体完整性的数据库对象。SQL Server中的索引有群聚和非群聚索引两种。群聚索引会使表的物理顺序与索引顺序一致,一个表只能有一个群聚索引;非群聚索引与表的物理顺序无关,一个表可以建立多个非群聚索引。④   ④    存储过程:存储过程是通过Transact-SQL编写的程序。存储进程包括系统存储过程和用户存储过程:系统存储进程是由SQLServer提供的,其过程名均以SP开头;用户过程是由用户编写的,它可以自动执行过程中安排的任务。⑤   ⑤    触发器:触发器是一种特殊类型的存储过程,当表中发生特殊事件时执行。触发器主要用于保证数据的完整性。⑥   ⑥    约束:约束规则用于加强数据完整性。  5.答:     系统数据库是由SQLServer内部创建和提供的一组数据库,其中最主要的数据库有4个,它们分别是Master、Msdb、Model和Tempdb。    ① Master数据库:用于记录所有SQLServer系统级别的信息,这些信息用于控制用户数据库和数据操作。    ②Msdb数据库:由EnterpriseManager和Agent使用,记录着任务计划信息、事件处理信息、数据备份有恢复信息、警告及异常信息。    ③Model数据库:SQLServer为用户数据库提供的样板,新的用户数据库都以model数据库为基础。每次创建一个新数据库时,SQLServer先制作一个model数据库的拷贝,然后再将这个拷贝扩展成要求的规模。    ④tempdb数据库:一个共享的工作空间,SQLServer中的所有数据库都可以使用它,它为临时表和其他临时工作提供了一个存储区。    6.答:  ①SQL服务器的安装、配置和管理:为了使用SQL服务器,必须先对它们进行安装和配置。当系统中有多台SQL服务器时,还需要将它们链接,使它们协同作。 ②服务管理:在SQL客户机安装相应的软件并正确配置它们。③数据库管理:包括数据库的创建、修改、删除以及备份和恢复等。④数据库对象的管理:管理数据库中的表、视图、存储过程、触发器、规则、缺省值等。⑤数据管理:实现记录的添加、删除和修改以及数据的传递与复制等。⑥安全性管理:包括用户管理和权限管理两方面的内容。⑦作业管理:包括警报管理、操作员管理和任务管理。⑧集成管理:SQL Server与电子邮件系统和Web服务器的交互操作。    7.答:①查询分析器:编辑Transact-SQL,将其发送到服务器,并将执行结果有分析显示出来或进行存储。    ②导入和导出数据:通过向导实现SQLServer与任何OLEDB、ODBC、JDBC或文本文件等多种不同类型的数据库之间实现数据传递。    ③服务管理器:用于开启中、暂停和停止SQL服务工作,同时,也可以通过它设置服务是否自动启动。    ④客户机网络连接工具和服务器网络连接工具:客户机网络连接工具用于设置本机作为服务器或客户机所使用的缺省网络链接库,并可为不支持缺省网络库的SQL服务器设置连接方式。服务器网络连接工具用于设置本机作为服务器时允许的连接协议,以支持不同配置的客户端。    ⑤联机丛书:SQLServer2000为用户提供在线帮助功能。    ⑥企业管理器:实现对管理对象的定义、改动、删除等各种操作。    ⑦事件探查器:服务器活动跟踪程序,用于监视与分析SQLServer活动、SQLServer   服务器的网络进出流量或发出在SQLServer上的事件。    ⑧在IIS中配置SQLXML支持:设置并管理IIS虚拟目录。    ⑨分析管理器:管理分析服务器;创建数据库和指定数据源;生成并处理多维数据集;创建并处理数据挖掘模型;指定存储选项并优化查询性能;管理安全性;浏览数据源、共享维度、安全角色和其他对象。⑩英语查询工具:为用户提供了英语询问,而不是用SQL语句进行数据查询的方式 。8.答:①新增加INTO、COMPUTE和COMPUTE BY三种子句:INTO子句用于创建一个表,并将查询结果添加到该表中;COMPUTE子句的作用是产生汇总值,并在结果集中后将汇总值放入摘要列,COMPUTE与BY配合,将起到换行控制和分段小计的作用。②SELECT中增加了[TOP <数值>[PERCENT]]短语,增加了<列名或表达式>[AS] <列别句> 及<列别名> =<表达式> 的列组表示方法。③ FROM子句中新增加了连接表类型及连接表示,数据源中可以使用嵌套的SELECT  语句。④ TSQL用GO表示语句结束,标准SQL用分号‘;’表示结束。9.答:1)1) CREATE DATABASE 学生选课库ON PRIMARY (NAME=学生选课库,FILENAME=‘C:msSQLdata学生选课.mdfSIZE=4MB,MAXSIZE=6MB, FILEROWHT=2MB)     GO 2)CREATETABLE 学生(学号CHAR(10)PRIMARY KEY CLUSTERED,姓名 CHAR(8),性别 CHAR(2),年龄 SMALLINT,所在系 VARCHAR(50))    GO     CREATE TABLE 课程(课程号 CHAR(10)PRIMARY KEY CLUSTERED课程名  VARCHAR(50),先行课  VARCHAR(50))    CREATE TABLE 选课(学号  CHAR(10),课程号 VARCHAR(50),               成绩 SMALLINT,         CONSTRAINT C1 PRIMARY KEY(学号课程,课程号),           CONSTRAINT C2 PRIMARY KEY(学号)REFERENCES 学生(学号),             CONSTRAINT FOREIGN KEY(课程号) REFERENCES 课程(课程号))     GO 3)    3)      CREATE INDEX student_ind ON 学生(学号)GO   CREATE INDEX class_ind ON 课程(课程号)   GO   CREATE INDEX select_ind ON 选课(学号,课程号)   GO4)    4)     CREATE RULEvalue_rule AS@VALUE IN(‘男’,‘女’)GOCREATE DEFAULT性别缺省 AS‘男’GOEXEC sp_bindrule ‘value_rude’,‘学生.性别’GOEXEC sp_binddefault ‘性别缺省’,‘学生.性别’GO5) CREATETRIGGERsc_insert ON 选课FOR INSERTAS IF(SELECTCOUNT(*)   FROM 学生, inserted ,课程  WHERE 学生.学号=inserted.学号AND课程.课程号=inserted.课程号)=0 ROLLBACK TRANSACTIONGOCREATETRIGGERsc_update ON   FOR UPDATE    AS IF(SELECT COUNT(*)   FROM 学生, updated, 课程WHERE学生.学号=updated.学号AND课程.课程号=updated.课程号)=0  ROLLBACK TRANSACTIONGO6)    CREATE TRIGGER delete_all ON 学生FOR DELETE AS DELETEFROM 选课WHERE 选课.学号=deleted.学号        GO7) SELECT 所在系,COUNT(学号)FROM 学生 GROUP BY 学生.所在系COMPUTE COUNT(DISTINCT(所在系))COMPUTECOUNT(学号) BY 所在系 GO8)  SELECT*  FROM 学生 INNER JOIN 课程GOSELECT* FROM 学生 LEFT OUTER JOIN 课程GOSELECT* FROM 学生 RIGHT OUTER JOIN 课程GO9)9) SELECT 选课.学号 ,学生.姓名,    学习情况中=CASEWHEN AVG(成绩)>=85 THEN‘好’WHEN AVG(成绩)>=70 ANDAVG(成绩)<85 THEN ‘较好’WHEN AVG(成绩)>=60 ANDAVG(成绩)<70 THEN ‘一般’WHEN AVG(成绩)<60 THEN ‘较差’ FROM 学生选课WHERE 学生.学号=选课.学号 GROUP BY 选课.学号GO   复习题七1.给出下列术语的定义,并加以理解. 函数依赖、完全函数依赖、传递函数依赖、侯选关键字、主关键字、全关键字、1NF、2NF、3NF、BCNF、多值依赖、4NF、连接依赖、5NF。2 现在要建立关于系、学生、班级、学会诸信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。    描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区;    描述班级的属性有:班号、专业名、系名、人数、入校年份;    描述系的属性有:系名、系号、系办地点、人数;    描述学会的属性有:学会名、成立年份、地点、人数、学生参加某回有一个入会年份。    1)请写出关系模式。    2)写出每个关系模式的最小函数依赖集,指出是否存在传递依赖。在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖,还是部分函数依赖。    3)指出各个关系模式的侯选关键字、外部关键字,以及有没有全关键字.3设关系模式R(A,B,C,D,E,F),函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A}.1)求出R的侯选码。2)求出F的最小函数依赖集。3)将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性。 4.设关系模式R〈A,B,C,D,E,F〉,函数依赖集F={AB→E,AC→F,AD→B,B→C,C→D}。 1)证明AB、AC、AD均是候选关键字。2)证明主属性C部分依赖于关键字AB,传递依赖于AD。同时证明主属性D部分依赖于关键字AC,传递依赖于关键字AB。5.设关系模式R〈A,B,C,D,E,F〉,函数依赖集F={AB→E,BC→D,BE→C,CD→B,CE→AF,CF→BD,C→A,D→EF},求F的最小函数依赖集。6.判断下面的关系模式是不是BCNF,为什么?1)任何一个二元关系。2)关系模式选课(学号,课程号,成绩),函数依赖集F={(学号,课程号)→成绩}。3)关系模式R(A,B,C,D,E,F),函数依赖集F={A→B,C→F,E→A,CE→A},将R分解为p={ABE,CDEF}。判断p是否是无损连接。8.设关系模式R{B,O,I,S,Q,D},函数依赖集F={S→D,I→S,IS→Q,B→Q}。1)找出R的主码。2)把R分解为BCNF,且具有无损连接性。9.在关系模式选课(学号,课程号,成绩)中,“学号→→课程号”正确吗?为什么?10.设有关系模式R(A,B,C),数据依赖集F={AB→C,C→→A},R属于第几范式?为什么?11.设有关系模式R(A,B,C,D),数据依赖集F={A→B,B→A,AC→D,BC→D,AD→C,BD→C,A→→CD,B→→CD}。1)求R的主码。2)R是否为第四范式?为什么?3)R是不是BCNF?为什么?4)R是不是3NF?为什么?12.下面的结论哪些是正确的?哪些是错误的?对于错误的请给出一个反例说明。1)任何一个二目关系是属于3NF的。2)任何一个二目关系是属于BCNF的。3)任何一个二目关系是属于4NF的。4)当且仅当函数依赖A→B在R上成立,关系R(A,B,C)等于投影R1(A,B)和R2(A,C)的连接。5)若R.A→R.B,R.B→R.C,则R.A→R.C。6)若R.A→R.B,R.A→R.C,则R.A→R.(B,C)。7)若R.B→R.A,R.C→R.A,则R.(B,C)→R.A。8)若R.(B,C)→R.A,则R.B→R.A,R.C→R.A。13.试述查询优化的一般步骤。14.试述查询优化的一般准则。15.有关系模式A(C,T,H,R,S),其中各属性的含义是:C,课程:T,教员:H,上课时间:R,教室:S,学生。根据语义有如下函数依赖集:F={C→T,(H,R)→C,(H,T)→R,(H,S)→R}。现将关系模式A分解为两个关系模式A1(C,T),A2(H,R,S),则其中A1的规范化程度达到          。 A.1NF       B.2NF           C.3NF     D.BCNF16.有关系模式A(C,T,H,R,S),其中各属性的含义是:C,课程:T,教员:H,上课时间:R,教室:S,学生。根据语义有如下函数依赖集F={C→T,(H,R)→C,(H,T)→R,(H,S)→R}。关系模式A的规范化程度最高达到           。A.1NF        B.2NF           C.3NF      D.BCNF 17.有关系模式A(C,T,H,R,S),其中各属性的含义是:C,课程:T,教员:H,上课时间:R,教室:S,学生。根据语义有如下函数依赖集F={C→T,(H,R)→C,(H,T)→R,(H,S)→R}。关系模式A的码是          。A.C        B.(H,R)       C.(H,T)  D.(H,S)18.下面关于函数依赖的叙述中,不正确的是           。A.若X→Y,Y→Z,则X→YZ   B.若XY→Z,则X→Z,Y→Z             C.若X→Y,Y→Z,则X→Z    D.若X→Y,Y’包含Y,则X→Y’19.下面关于函数依赖的叙述中,不正确的是           。A.若X→Y,X→Z,则X→Y      B.若XY→Z,则X→Z,Y→Z             C.若X→Y,WY→Z,则XW→Z        D.若X→Y,则XZ→YZ     复习题七答案  1.答:(1) 函数依赖:设R<U>是属性集U上的关系模式,X,Y是U的子集。若对于R的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而Y上的属性值不等,则称X函数确定Y函数,或Y函数依赖于X函数,记作X→Y 。例如,在学生(学号,姓名,年龄,年级)表中:学号→姓名,学号→年龄,学号→年级。(2)部分函数依赖和完全函数依赖:在R<U>中,如果X→Y,并且对于X的任何一个真子集X’,都有X’→Y ,则称Y对X完全依赖,记作:X→Y;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:X→Y。P F 例如,在教学关系模式中,学号和课程名为主码。(学号,课程名)→成绩,(学号,课程名)→姓名。传递 (3)传递函数依赖:在R中,如果X→Y, (Y    X),Y→X ,Y→Z,则称Z对X传递函数依赖。传递函数依赖记作X → Z。  例如,在教学模式中,因为存在:学号→系名,系名→系主任;所以也存在:学号→系主任。(4)候选关键字,主关键字,全关键字:设R  为一关系模式,F为R所满足的一级函数依赖,X为{A1,A2…An}的子集,如果X满足:1)X→A1,A2…An∈F+ 。2)不存在X的真子集Y,Y    X, Y→A1,A2…An∈ F+。则称X是关系模式的码(候选关键字)。在候选关键字中选择一个为主码(主关键字)。如果关系模式中不存在函数依赖,则全部属性构成码,即为全码(全关键字)。(5)1NF,2NF,3NF,BCNF:如果关系模式R,其所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式;若R∈1NF,且每一个非属性完全依赖于码,则R∈2NF;关系模式R<U,F>中若不存在这样的码X、属性组Y及非主属性Z(Z不为Y子集)使得X→Y、X不可推导出Y,Y→Z成立,则称R<U,F>∈3NF;系模式R<U,F>∈1NF。若X→Y且Y不为X子集时,X必含有码,则R<U,F>∈BCNF。(6)多值依赖,4NF:设有关系模式R,U是属性集,X、Y是U的子集。如果R的任一关系,对于X的一个确定值,都存在Y的一组值与之对应,且Y的这组值又与Z=U-X-Y中的属性值不相关,此时称Y多值依赖于X,或X多值决定于Y,记为X→→Y。关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y不为X子集),X必含有码,则称R∈4NF(7)连接依赖,5NF:设R是属性集U上的关系模式,x1,x2,x3,…,xn是U的子集,并且x1∪x2∪x3∪…∪xn=U,如果R=R[1]∞R[2]∞R[3]∞…∞R[n]对R的一切关系均成立,则称R在x1,x2,x3,…,xn上具有n目连接依赖,记作∞R[1]R[2]…R[n]。如果关系模式R中的每一个连接依赖均由R的候选码所隐含,则称R∈5NF。 2.答: (1)学生(学号,姓名,出生日期,班号)   班级(班级编码,专业名,系号,人数,入校年份);   教学系(系名,系号,办公室地点,人数,宿舍区)   学会(学会名,成立年份,地点,人数)   参加(学号,学会名,入会年份)。 (2)F(班级)={班级编码→专业名,班级→系号,班级→人数,班级→入校年份};   F(学生)={学号→姓名,学号→出生日期,学号→班号}   F(教学系)={系号→系名,系号→办公室地点,系号→人数,系号→宿舍区}   F(参加)={学会名→成立年份,学会名→地点,学会名→人数};F(学会)={(学号,学会名)→入会年份}(3)学生表中,码为学号。班级表中,码为班级编码。教学系表中,码为系号。学会表中,码为学会名。参加表中,码为(学号,学会名);外码为学号,参照属性为学生(学号);外码为学会名,参照属性为学会(学会名)。 3.答:(1)R的候选码为BD(2)a,将F中的函数依赖都分解为右部为单属性的函数依赖。    F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A}b,去掉F中冗余的函数依赖。判断A→C是否冗余。设:G1={C→A,B→A,B→C,D→A,D→C,BD→A},得(A)G1+=A∵C不属于(A)G1+   ∴      A→C不冗余判断C→A是否冗余。设:G2={A→C,B→A,B→C,D→A,D→C,BD→A},得(A)G2+=C∵A不属于(C)G1+   ∴      C→A不冗余判断B→A是否冗余。 设:G3={A→C,C→A,B→C,D→A,D→C,BD→A},得(B)G3+=BCA∵A属于(B)G3+   ∴  B→A冗余判断B→C是否冗余。设:G4={A→C,C→A,D→A,D→C,BD→A},得(B)G4+=B∵C不属于(B)G4+   ∴     B→C不冗余判断D→A是否冗余。设:G5={A→C,C→A,B→C,D→C,BD→A},得(D)G5+=DCA∵A不属于(D)G5+   ∴     D→A冗余判断A→C是否冗余。设:G6={A→C,C→A,B→C,BD→A},得(D)G6+=D∵C不属于(D)G6+   ∴     D→C不冗余判断BD→A是否冗余。设:G7={A→C,C→A,B→C,D→C},得(BD)G7+=BDCA∵A不属于(BD)G7+   ∴   BD→A冗余F={A→C,C→A,B→C,D→C}c,由于各函数依赖左部都为单属性,故:Fm={A→C,C→A,B→C,D→C}(3)τ={AC,BC,DC,BD} 4.答:(1)∵(AB)F+=ABECDF,    ABCDEF∈(AB)F+,   ∴AB为码∵(AC)F+=ABECDF,    ABCDEF∈(AC)F+,   ∴AC为码 ∵(AD)F+=ABECDF,    ABCDEF∈(AD)F+,   ∴AD为码(2)∵B→C         ∴AB→(部分)C∵AD→B,B→C     ∴AD→(传递)C ∵C→D         ∴AC→(部分)C ∵B→C,C→D      ∴AB→(传递)C  5.答: (1)将F中的函数依赖都分解为右部为单属性的函数依赖。F={AB→E,BC→D,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A, D→E,D→F}  (2)去掉F中冗余的函数依赖。判断AB→E是否冗余。设G1={BC→D,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F} 得(AB)G1+=AB∵E不属于(A)G1+    ∴AB→E不冗余判断BC→D是否冗余。设G1={AB→E,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F} 得(BC)G2+=BCAEFD∵D属于(BC)G2+    ∴BC→D冗余判断BE→C是否冗余。 设G3={AB→E,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F} 得(BE)G3+=BE∵C不属于(BE)G3+    ∴BE→C不冗余判断CD→B是否冗余。设G4={AB→E,BE→C,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F} 得(CD)G4+=CDAEFB∵B属于(CD)G4+    ∴CD→B冗余判断CE→A是否冗余。设G5={AB→E,BE→C,CE→F,CF→B,CF→D,C→A,D→E,D→F} 得(CE)G5+=CEFBDA∵A属于(CE)G5+    ∴CE→A冗余判断CE→F是否冗余。设G6={AB→E,BE→C,CF→B,CF→D,C→A,D→E,D→F} 得(CE)G6+=CEA∵F不属于(CE)G6+    ∴CE→F不冗余判断CF→B是否冗余。设G7={AB→E,BE→C,CE→F,CF→D,C→A,D→E,D→F} 得(CF)G7+=CFDEF∵B不属于(CF)G7+    ∴CF→B不冗余判断CF→D是否冗余。设G8={AB→E,BE→C,CE→F,CF→B,C→A,D→E,D→F} 得(CF)G8+=CFABE∵D不属于(CF)G8+    ∴CF→D不冗余判断C→A是否冗余。设G9={AB→E,BE→C,CE→F,CF→B,CF→D,D→E,D→F} 得(C)G9+=C∵A不属于(C)G9+    ∴C→A不冗余判断D→E是否冗余。设G10={AB→E,BE→C,CE→F,CF→B,CF→D,D→E,D→F} 得(D)G10+=DF∵E不属于(D)G10+    ∴D→E不冗余判断D→F是否冗余。设G11={AB→E,BE→C,CE→F,CF→B,CF→D,C→A,D→E} 得(D)G11+=DE∵F不属于(D)G11+    ∴D→不冗余∴F={AB→E,BE→C,CE→F,CF→B,CF→D,C→A, D→E,D→F}   (3)去掉各函数依赖左部冗余的属性。本题需要考虑AB→E,BE→C,CE→F,CF→B,CF→D的情况。考虑AB→E:在决定因素中去掉B。求得:Af+=A∵C不属于Af+    ∴不能以A→C代替AB→C在决定因素中去掉A 求得:Bf+=B∵C不属于Bf+    ∴不能以A→C代替AB→C∴AB→E不冗余考虑BE→C:在决定因素中去掉B。求得:Ef+=E∵C不属于Ef+    ∴不能以E→C代替BE→C在决定因素中去掉E求得:Bf+=B∵C不属于Bf+    ∴不能以B→C代替BE→C∴BE→C不冗余考虑CE→F:在决定因素中去掉C。求得:Ef+=E∵F不属于Af+    ∴不能以E→F代替CE→F在决定因素中去掉E求得:Cf+=CA∵F不属于Cf+    ∴不能以C→F代替CE→F∴CE→F不冗余考虑CF→B:在决定因素中去掉C。求得:Ff+=F∵B不属于Ff+    ∴不能以F→B代替CF→B在决定因素中去掉F求得:Cf+=CA∵B不属于Cf+    ∴不能以C→B代替CF→B∴CF→B不冗余考虑CF→D:在决定因素中去掉C。求得:Ff+=F∵D不属于Ff+    ∴不能以F→D代替CF→D在决定因素中去掉F求得:Cf+=CA∵D不属于Cf+    ∴不能以C→D代替CF→D∴CF→D不冗余   Fm={AB→E,BE→C,,CE→F,CF→B,CF→D,C→A, D→E,D→F} 6.答:  1)是BCNF。二元关系中或为全码,或为一个单属性码候选码。  2)是BCNF。关系模式中只有一个候选码。  3)不是BCNF。因为模式中存在候选码为AD、BCD和BE,显然C对AD是部分依赖。7.答:    ∵U1∩U2=E   U1-U2=ABU1∩U2→U1-U2={E→AB}={E→A,E→B}U1∩U2→U1-U2∈F+ ∴该分解具备无损连接。8.答:1)R的主码为IBO。2)Fm={S→D,I→S,I→Q,B→Q}令ρ=BOISQDa.a. 由于R的码为IBO,选择S→D分解得出:ρ={S1,S2}其中:S1=SD,     F1={S→D}S2=BOISQ, F2={I→S,I→Q,B→Q}。显然,S2不服从BCNF,需继续分解。b.对S2分解。S2的码为IBO,选择I→S分解。得出:ρ={S1,S3,S4}。其中:S3=IS,     F3={I→S}S4=BOIQ,  F4={I→Q,B→Q}。显然,S4不服从BCNF,还需继续分解。c.对S4分解。S4的码为IBO,选择I→Q分解。得出:ρ={S1,S3,S5,S6}其中  S5=IQ,    F5={I→Q}S6=BIO     F6=Φ   d.最后的分解为:ρ={SD,IS,IQ,BIO}9.答: 正确。因为学号能够多值决定课程号。10.答:BCNF。由于A多值依赖于C,而C不是码,故不服从4NF。但在函数依赖式中,C依赖于码AB,故该模式服从BCNF。11.答:1)候选码为AC,BC,AD,BD。可选其中之一为主码。2)不服从4NF。在多值依赖中,决定因素中不包含码。3)不服从BCNF。在函数依赖中决定因素中不包含码。4)服从3NF。该模式中不存在非主属性。12答:1)正确。2)正确。3)正确。4)正确。5)正确。6)正确。7)正确。8)不正确。例如:(学号,课程号)→成绩,则不存在:学号→成绩,课程号→成绩。13.答:1)把查询转换成语法树表示。2)把语法树转换成标准(优化)形式。3)选择低层的存取路径。4)生成查询计划,选择代价最小的查询计划。14.答:1)选择运算尽可能先做。2)在执行连接前对关系适当地预处理,即在连接属性上建立索引和对关系进行排序。3)把投影运算和选择运算同时进行。4)把投影同其前或其后的双目运算结合起来。5)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。 6)找出公共子表达式。15.答:D  16.答:B  17.答:D  18.答:B  19.答:B 复习题八  1什么是数据库的安全性?  2数据库安全性和计算机的安全性有什么关系?  3试述实现数据库安全性控制的常用方法和技术。  4SQL语言中提供可哪些数据控制(自主存取控制)的语句?请试举例说明它们的使用方法。  5今有两个关系模式:     职工(职工号,姓名,年龄,职务,工资,部门号);     部门(部门号,名称,经理名,地址,电话)。  请用SQL的GRANT和REVOKE语句(加上视图机制),完成以下授权定义或存取控制功能。    1)用户王明对两个表有SELECT权力。    2)用户李勇对两个表有INSERT和DELETE权力。    3)用户刘星对职工表有SELECT权力,对工资字段具有更新权力。    4)用户张新具有修改两个表的结构的权力。    5)用户王明对两个表有的所有权力(读、写插、改、删除数据),并具有给其他用户授权的权力。    6)用户扬兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资的权利,他不能查看每个人的工资。 6.把习题8.5中1)-6)的每个用户所授予的权利予以撤消。 7.什么是数据库的完整性? 8.数据库的完整性概念与数据库的安全性概念有什么区别和联系? 9.什么是数据库的完整性约束条件?的分为哪几类? 10.DBMS的完整性控制应具有哪些功能? 11.RDBMS在实现参照完整性时需要考虑哪些方面? 12.假设有下面两个关系模式:     职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;     部门(部门号,名称,经理名,地址,电话),其中部门号为主码;   用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:    1)定义每个模式的主码。    2)定义参照完整性    3)定义职工年龄不得超过60岁。 13.在数据库中为什么要并发控制? 14并发操作可能和产生哪几类数据不一致?用什么方法能避免这些不一致的情况? 15什么是封锁? 16基本的封锁类型有几种?试述它们的含义。 17如何用封锁机制保证数据的一致性? 18什么是封锁协议?不同级别的封锁协议的主要区别是什么? 19不同封锁协议与系统一致性级别得到关系是什么? 20什么是活锁?什么是死锁? 21试述活锁的产生原因和解决方法。  22请给出预防死锁的若干方法。 23请给出检测死锁发生的一种方法,当发生死锁后如个解除死锁? 24什么样的旧宾恢复调度是正确的调度? 25试述两段锁协议的概念 26为什么要引进意向锁?意向锁的含义是什么? 27理解并解释下列术语含义:封锁、活锁、死锁、排它锁、共享锁、并发锁、并发事务的调度、可串行化的调度、两段锁协议 复习题八答案1.答:数据库的安全性是指保护数据库,以防止不合法的使用数据泄密、更改或破坏。2.答:数据库安全性是计算机系统的安全性的一个部分,数据库系统不仅要利用计算机系统的安全性保证自己系统的安全性,同时还会提供专门的手段和方法,使安全性能更好。例如,在用户要求进入计算机系统时,系统首先根据用户输入的用户标识进行身份鉴定,只有合法的用户才准许进入计算机系统;对已进入的用户,DBMS还要进行存取控制,只允许用户执行合法操作;操作系统也会提供相应的保护措施;数据最后还可以可以以密码形式存储到数据库中。3.答:①   用户标识与鉴别;②存取控制;③自主存取控制方法;④强制存取控制方法;⑤视图机制;⑥审计;⑦数据加密4.答:①      GRANT(授权)语句例:GRANTSELECT,INSERTON学生TO张勇WITHGRANTOPTION;②      REVOKE(收回)语句例:REVOKEINSERTON学生     FORM张勇;5.答:1)GRANTSELECTON职工,部门TO王明 WITHGRANTOPTION;2)GRANTINSERT,DELETEON职工,部门TO张勇WITHGRANTOPTION;3)GRANTSELECT,UPDATE(工资)ON职工TO刘星WITHGRANTOPTION;4)GRANTALTERTABLE  TO张新WITHGRANTOPTION;5)GRANTALLPRIVILIGESON职工,部门TO周平WITHGRANTOPTION;6)CREATEVIEW部门工资统计(最高工资,最低工资,平均工资)ASSELECTMAX(工资),MIN(工资),AVG(工资)FROM职工GROUPBY部门号;GRANTSELECTON部门工资统计TO杨兰;6.答:1)    REVOKESELECTON职工,部门FROM王明;2)    REVOKEINSERT,DELETEON职工,部门FROM李勇;3)    REVOKESELECT,UPDATE(工资)ON职工FROM刘星4)    REVOKEALTERTABLEFROM张新5)    REVOKEALLPRIVILIGESON职工,部门FROM周平6)REVOKESELECTON部门工资统计FROM杨兰;7.答:数据库的完整性是指数据的正确性和相容性。 8.答:数据库的完整性是指数据的正确性和相容性。数据库的安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。其相同点是两者都是对数据库中的数据进行控制,各自所实现的功能目标不同。9.答:数据完整性约束是为了保证进入数据库中的数据的有效性而定义的数据规则。它可以分为以下两类:①       针对不同的对象可以分为表级约束、元组级约束和属性级约束(也称列约束):表级约束是若干元组间、关系之间的约束;元组级约束则是元组中的字段组和字段间联系的约束;属性级约束主要是针对列的类型、取值范围、精度、排序等而制定的约束条件。②       针对数据对象的状态可以分为静态约束和动态约束:静态约束是指数据库每仪确定状态时的数据对象所应满足的约束条件,他是反映数据库状态稳定时的约束;动态约束是指数据库从一种状态变为另一种状态时,新、旧值之间所满足的约束条件,它是反映数据库在状态变迁的约束。10.答:①   定义和存储完整性功能;②检查完整性功能;③控制完整性功能。11.答:①   外码能够接受空值的问题;②    在被参照关系中删除元组时,采用级联删除、受限插入、或置空值删除的方法处理参照关系;③   在参照关系中插入元组时,可以使用受限插入、递归插入两种方法处理参照关系;④   参照关系的主码时,可以采用不允许修改主码、或允许修改关系主码。但必须保证主码的唯一性和非空性方法处理参照关系;⑤   修改被参照关系时,可以采用级联修改、拒绝修改和置空值修改方法处理参照关系。12.答:    CREATETABLE职工(职工号CHAR(5)PRIMARYKEY,姓名CHAR(8)NOTNULL,年龄SMALLINT,职务CHAR(10)工资DECIMAL(7,2),部门号CHAR(5),CONSTRAINTC1CHECK(年龄<60)),CONSTRAINTC2FOREIGNKEY(部门号);)CREATETABLE部门(部门号CHAR(5)PRIMARYKEY,名称CHAR(16),经理名CHAR(8),电话CHAR(8),CONSTRAINTC3FOREINGNKEY(经理名)REFERENCES职工(姓名));13.答:数据库的并发控制就是为了控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。14.答: 并发操作可能会产生丢失修改、不可重复读和读“脏”的数据不一致问题。用封锁的方法能避免这些不一致的情况。15.答:封锁是使事务对它要操作的数据有一定的控制能力。封锁具有三个环节:第一环节是申请加锁;第二个环节是获得锁;第三个环节是释放锁。16.答:基本的封锁类型有两种:排它锁和共享锁。排它锁也称为独占或写锁。一旦事务T对数据对象A加上排它锁。则只允许T读取和修改A,其它任何事务既不能读取也不能修改A,也不能再对A加任何类型的锁,直到T释放A上的锁为止。共享锁又称读锁。如果事务T对数据对象A加上共享锁,其它事务只能再加对A加S锁,不能加X锁,知道事务T释放A上的S锁为止。17.答:封锁机制作为并发控制的重要手段,利用封锁的特性和封锁协议,它再并发操作保证事务的隔离性,用正确的方式调度并发操作,是一个用户事务的执行不受其它事务的干扰,从而避免造成数据的不一致性。18.答:在对外数据对象加锁时,还需要约定一些规则,这些规则称为封锁协议。一级封锁协议:是事务T在修改数据之前必须先对其加X锁,直到事务结束才释放,一级封锁协议可有效的防止丢失修改,并能够保证事务T的可恢复性。一级封锁协议由于没有对数据进行加锁,所以不能保证可重复读和不读“脏”数据。二级封锁协议:是事务T对要修改的数据必须先加X锁,直到事务结束才释放X锁;要读取的数据必须先加S锁,读完后即可释放S锁。二级封锁协议不但能够防止丢失修改,还可进一步防止读“脏”数据。三级封锁协议:是事务T在读取数据之前必须先对其加S锁,在要修改数据之前必须先对其加X锁,直到事务结束后才释放所有锁。由于三级封锁协议强调即使事务读完之后也不释放S锁,从而使的别的事务无法更改数据A。三级封锁协议不但防止了丢失修改和不读“脏‘数据,才读。19.答:一级封锁协议可有效地防止丢失修改,并能保证事务T的可恢复性。一级封锁由于没有对数据进行加锁,所以不能保证可重复读和不读“脏‘数据。二级封锁协议不但能够防止丢失修改,还可进一步防止读“脏”数据。由于三级封锁协议强调即使事务读完数据A之后也不释放S锁,从而使的别的事务无法更改数据。三级封锁协议不但防止了丢失修改和不读“脏”数据,而且防止了不可重复读。20.答:在多个事务请求对同一数据加锁时,总是使某一用户等待得情况称为活锁;多事务交错等待得僵持局面称为死锁。21.答:活锁是封锁的无序造成的。解决方法是采用先来先去服务的方法,即对要求封锁数据的事务排队,使前面的事务先获得数据的封锁权。22.答:预防死锁通常有以下两种方法:①一次封锁法,就是要求每个事务必须一次将所有要使用的数据全部加锁,否则该事务不能继续执行;② 顺序封锁法,是预先对数据对象规定一个封锁顺序,搜有事务都按这个顺序实行封锁。 23.答: 检测死锁发生的一种方法是选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有锁,使其他事务得以继续运行下去。解除死锁问题有两类方法:一类方法是采用一定措施来预防死锁的发生;另一类方法是允许发生死锁,然后采用一定手段定期诊断系统中有无死锁,若有则解除之。24.答: 如果一个事务运行过程中没有其他事务同时运行,即没有受到其他事务的干扰,那么就可以认为该事务的运行结果是正常的,可串行性是并发事务正确性的准则,为了保证并发操作的正确性,DBMS的并发控制机制必须提供一定的手段来保证调度是可串行化的。25.答:  所谓两段锁协议是指所有事务必须分两个阶段对数据项进行加锁和解锁;(1)    在对任何数据进行读,写操作之前,首先要申请并获得对该数据的加锁;(2)    在释放一个封锁之后,事务不再申请并获得对该数据的封锁即每个事务分成两个阶段,第一阶段是申请和获得封锁,也称为扩展阶段。在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能再申请任何锁。26.答:  事务T要对关系R1加X锁时,系统只需检查根节点数据库和关系R1是否已加入了不相容的锁,而不再需要搜索和检查R1中的每一个元组是否加了X锁,对任一元组加锁,必须先对他所在的关系加意向锁。意向的含义是:如果对一个节点加意向锁,则说明该节点的下层节点正在被加锁;对任何一结加锁时,必须先对它的上层节点加意向锁。27.答:(1)    封锁:封锁是使事务对它要操作的数据有一定的控制能力。(2)    活锁:这种在多个事务请求对同一数据封锁时,总是使某一用户等待的情况称为活锁。(3)    死锁:这种多事务交错等待的僵持局面称为死锁。(4)    排它锁:排它锁也称为独占或写锁。一旦事务T对数据对象A加上排它锁,则只允许T读取和修改A。其他任何事务既不能读取和修改A,也不能再对A加任何类型的锁,直到T释放A上的锁为止。(5)    共享锁:共享锁又称为读锁。如果事务T对数据对象A加上共享锁,其他事务只能再对A加S锁,不能加X锁,知道事务T释放A上的S锁为止。(6)    并发事务的调度:多个事务并发执行调度策略称为并发事务调度。(7)    可串行化的调度:如果多个事务并发执行的结果与按串行执行的结果相同,这种调度策略称为可串行化的调度。两段锁协议:所谓两段锁协议是指所有事务必须分两个阶段对数据项进行加锁和解锁。 '