• 1.75 MB
  • 2022-04-22 11:51:44 发布

数据库原理习题解答(苗学兰).doc

  • 32页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'习题一解答1.答:数据是用于载荷信息的物理符号。数据的特征是:①数据有“型”和“值’之分;②数据受数据类型和取值范围的约束;③数据有定性表示和定量表示之分;④数据应具有载体和多种表现形式。数据与信息的关系为:数据是信息的一种表现形式,数据通过能书写的信息编码表示信息。信息有多种表现形式,它通过手势、眼神、声音或图形等方式表达,但是数据是信息的最佳表现形式。由于数据能够书写,因而它能够被记录、存储和处理,从中挖掘出更深层的信息。但是,数据不等于信息,数据只是信息表达方式中的一种。正确的数据可表达信息,而虚假、错误的数据所表达的是谬误,不是信息。2.答:数据处理是指对数据的收集、组织、整理、加工、存储和传播等工作。围绕着数据所做的工作均称为数据处理。数据处理目的为:通过数据管理,收集信息并将信息用数据表示和保存,在需要的时候,为各种使用和数据处理提供数据;通过数据加工,对数据进行变换、抽取和运算,从而得到更有用的数据,以指导或控制人的行为或事物的变化趋势;通过数据传播,使更多的人得到并理解信息,从而使信息的作用充分发挥出来。3.答:数据管理的功能为:①组织和保存数据功能,即将收集到的数据合理地分类组织,将其存储在物理载体上,使数据能够长期地被保存。②数据维护功能,即根据需要随时进行插入新数据、修改原数据和删除失效数据的操作;③数据查询和数据统计功能,即快速地得到需要的正确数据,满足各种使用要求;④数据的安全和完整性控制功能,即保证数据的安全性和完整性。数据管理的目标是:收集完整的信息,将信息用数据表示,按数据结构合理科学地组织并保存数据;为各种使用快速地提供需要的正确数据,并保证数据的安全性和完整性。4.答:数据库是数据管理的新方法和技术,它是一个按数据结构来存储和管理数据的计算机软件系统。数据库中的数据具有的特点是:①数据库中的数据具有数据整体性,即数据库中的数据要保持自身完整的数据结构;②数据库中的数据具有数据共享性,不同的用户可以按各自的用法使用数据库中的数据,多个用户可以同时共享数据库中的数据资源。5.答:数据库管理系统简称DBMS(DatabaseManagementSystem),它是专门用于管理数据库的计算机系统软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。 数据库管理系统的主要功能是数据存储、数据操作和数据控制功能。其数据存储和数据操作是:数据库的定义功能,指为说明库中的数据情况而进行的建立数据库结构的操作;数据库建立功能,指将大批数据录入到数据库的操作,它使得库中含有需要保存的数据记录;数据库维护功能,指对数据的插入、删除和修改操作,其操作能满足库中信息变化或更新的需求;数据查询和统计功能,指通过对数据库的访问,为实际应用提供需要的数据。数据库管理系统的数据控制功能为:数据安全性控制功能,即为了保证数据库的数据安全可靠,防止不合法的使用造成数据泄漏和破坏,即避免数据被人偷看、篡改或搞坏;数据完整性控制功能,指为了保证数据库中数据的正确、有效和相容,以防止不合语义的错误数据被输入或输出。6.答:数据冗余度大会造成浪费存储空间的问题,使数据的存储、管理和查询都不容易实现。同时,由于文件系统中相同的数据需要重复存储和各自的管理,数据冗余度大还会给数据的修改和维护带来麻烦和困难,还特别容易造成数据不一致的恶果。数据冗余度大时,由于数据重复出现,还使得数据统计的结果不正确。7.答:数据的整体性是指在进行数据库设计时,要站在全局需要的角度进行抽象和组织数据;要完整地、准确地描述数据自身和数据之间联系的情况;要建立适合整体需要的数据模型。数据的共享性是指由于数据库系统是从整体角度上看待和描述数据的,数据不再是面向某个应用,而是面向整个系统。数据的整体性高会使得数据库中的数据冗余度变小,从而避免了由于数据冗余度大带来的数据冲突问题,也避免了由此产生的数据维护麻烦和数据统计错误问题。数据共享度高会提高数据的利用率,它使得数据更有价值和更容易、更方便地被使用。8.答:数据库管理系统是提供数据库管理的计算机系统软件,它为信息管理系统的设计提供了方法、手段和工具,利用数据库管理系统设计信息管理系统可以达到事半功倍的效果。信息管理系统是实现某种具体事物管理功能的应用软件。信息管理系统的数据存放在数据库中。利用数据库管理系统,信息管理系统可以更快、更好地设计和实施。9.答:用文件系统管理数据会有三个缺陷:①由于文件之间缺乏联系,会造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存储,所以数据冗余度大。②由于数据冗余,在进行更新操作时,稍不谨慎,就可能使同样的数据在不同的文件中不一样,从而产生数据不一致缺陷。③由于文件之间相互独立,缺乏联系,会造成数据联系弱的缺陷。10.答:数据库系统阶段的数据管理有5方面的特点:①采用复杂的数据模型表示数据结构。②有较高的数据独立性。③数据库系统为用户提供了方便的用户接口。④系统提供有数据库的恢复、并发控制、数据完整性和数据安全性的数据控制功能,以保证数据库中的数据是安全的、正确的和可靠的。⑤对数据的操作不一定以记录为单位,也可以以数据项为单位,从而增加了系统的灵活性。11.答:由于数据库系统是建立在计算机硬件的基础之上的,它在必需的硬件资源支持下才能工作。支持数据库系统的计算机硬件资源包括CPU、内存、外存及其他外部设备。外部设备主要包括某个具体的数据库系统所需的数据通信设备和数据输入输出设备。因为数据库系统数据量大、数据结构复杂、软件内容多所以要求其硬件设备能够处理并快速处理数据,这需要硬件的数据存储容量大、数据处理速度和数据输入输出速度快。具体要求为:①计算机内存要尽量大;②计算机外存也要尽量大;③计算机的数据传输速度要快。12.答:数据库系统的软件中包括操作系统(OS)、数据库管理系统(DBMS)、主语言系统、应用程序软件和用户数据库。各软件之间的关系如图5-1所示。 图5-1数据库系统的软件结构数据库系统中各种软件的作用如下:①操作系统或汉字操作系统:操作系统是所有计算机软件的基础,在数据库系统中它起着支持DBMS及主语言系统工作的作用。如果管理的信息中有汉字,则需要中文操作系统的支持,以提供汉字的输入、输出方法和汉字信息的处理方法。②数据库管理系统和主语言系统:数据库管理系统是为定义、建立、维护、使用及控制数据库而提供的有关数据管理的系统软件。主语言系统是为应用程序提供的诸如程序控制、数据输入输出、功能函数、图形处理、计算方法等数据处理功能的系统软件。③应用开发工具软件:应用开发工具是DBMS系统为应用开发人员和最终用户提供的高效率、多功能的应用生成器、第四代计算机语言等各种软件工具.如报表生成器、表单生成器、查询和视图设计器等,它们为数据库系统的开发和使用提供了良好的环境和帮助。④应用系统及数据库:数据库应用系统包括为特定的应用环境建立的数据库、开发的各类应用程序及编写的文档资料,它们是一个有机整体。通过运行数据库应用系统,可以实现对数据库中数据的维护、查询、管理和处理操作。13.答:数据库管理员(即DBA)的职责为:①DBA应参与数据库和应用系统的设计。数据库管理员只有参与数据库及应用程序的设计,才可能使自己对数据库结构及程序设计方法了解得更清楚,为以后管理工作打下基础。同时,由于数据库管理员是用户,他们对系统应用的现实世界非常了解,能够提出更合理的要求和建议,所以有DBA参与系统及数据库的设计,可以使其设计更合理。②DBA应参与决定数据库的存储结构和存取策略的工作。数据库管理员要综合各用户的应用要求,和数据库设计员共同决定数据的存储结构和存取策略,使数据的存储空间利用得更合理,存取效率更高。③DBA要负责定义数据的安全性要求和完整性条件。数据库管理员的重要职责是保证数据库的安全性和数据完整性。DBA要负责定义各用户的数据使用权限、数据保密级别和数据完整性的约束条件。④DBA负责监视和控制数据库系统的运行,负责系统的维护和数据恢复工作。数据库管理员要负责监视系统的运行,及时处理系统运行过程中出现的问题,排除系统故障,保证系统能够正常工作。在日常工作中,数据库管理员要负责记录数据库使用的“日志文件”,通过日志文件了解数据库的被使用和更改的情况。数据库管理员还要定期对数据作“备份”,为以后的数据使用(即处理历史数据)和数据恢复做准备。当系统由于故障而造成数据库被破坏时,数据库管理员要根据日志文件和数据备份进行数据恢复工作,使数据库能在最短的时间里恢复到正确状态。⑤DBA负责数据库的改进和重组。 数据库管理员负责监视和分析系统的性能,使系统的空间利用率和处理效率总是处于较高的水平。当发现系统出现问题或由于长期的数据插入、删除操作造成系统性能降低时,数据库管理员要按一定策略对数据库进行改造或重组工作。当数据库的数据模型发生变化时,系统的改造工作也由数据库管理负责进行。14.答:数据库的三级模式是指逻辑模式、外模式(子模式)、内模式(物理模式)。逻辑模式是对数据库中数据的整体逻辑结构和特征的描述。外模式是对各个用户或程序所涉及到的数据的逻辑结构和数据特征的描述。内模式是数据的内部表示或底层描述。逻辑模式是系统为了减小数据冗余、实现数据共享的目标,并对所有用户的数据进行综合抽象而得到的统一的全局数据视图。通过外模式,可以方便用户使用和增强数据的安全性。通过设计内模式,可以将系统的模式(全局逻辑模式)组织成最优的物理模式,以提高数据的存取效率。改善系统的性能指标。15.答:数据独立性是指应用程序和数据之间的依赖程度低,相互影响小。数据独立性分成物理数据独立性和逻辑数据独立性两级。数据的物理独立性是指应用程序对数据存储结构的依赖程度。数据物理独立性高是指当数据的物理结构发生变化时,应用程序不需要修改也可以正常工作。数据的逻辑独立性是指应用程序对数据全局逻辑结构的依赖程度。数据逻辑独立性高是指当数据库系统的数据全局逻辑结构改变时,它们对应的应用程序不需要改变仍可以正常运行。数据库系统之所以具有数据物理独立性高的特点,是因为数据库管理系统能够提供数据的物理结构与逻辑结构之间的映像或转换功能。这种数据映像功能使得应用程序可以根据数据的逻辑结构进行设计,并且一旦数据的存储结构发生变化,系统可以通过修改其映像来适应变化。所以数据物理结构的变化不会影响到应用程序的正确执行。数据库系统之所以具有较高的数据逻辑独立性,是由于数据库系统能够提供数据的全局逻辑结构和局部逻辑结构之间的映像和转换功能。这种数据映像功能使得数据库可以按数据全局逻辑结构设计,而应用程序可以按数据局部逻辑结构进行设计。这样,当全局逻辑结构中的部分数据结构改变时,即使那些与变化相关的数据局部逻辑结构受到了影响,也可以通过修改与全局逻辑结构的映像而减小其受影响的程度,使数据局部逻辑结构基本上保持不变。由于数据库系统中的程序是按局部数据逻辑结构进行设计的,并且当全局数据逻辑结构变换时可以使局部数据逻辑结构基本保持不变,所以数据库系统的数据逻辑独立性高。16.答:数据库系统的二级映像技术是指外模式与模式之间的映像、模式与内模式之间的映象技术,这二级映像技术不仅在三级数据模式之间建立了联系,同时也保证了数据的独立性。外模式/模式之间的映像,定义并保证了外模式与数据模式之间的对应关系。当模式变化时,DBA可以通过修改映像的方法使外模式不变,由于应用程序是根据外模式进行设计的,只要外模式不改变,应用程序就不需要修改,保证了数据的逻辑独立性。模式/内模式之间的映像,定义并保证了数据的逻辑模式与内模式之间的对应关系。当数据库的存储结构改变时,DBA可以通过修改模式/内模式之间的映像使数据模式不变化。由于用户或程序是按数据的逻辑模式使用数据的,所以只要数据模式不变,用户仍可以按原来的方式使用数据,程序也不需要修改,从而保证了数据的物理独立性。17.答:A,B,C18.答:A19.答: A,B,C20.答:C  习题二解答1.答:①实体:现实世界中存在的可以相互区分的事物或概念称为实体。例如,一个学生、一个工人、一台机器、一部汽车等是具体的事物实体,一门课、一个班级等称为概念实体。②实体型:现实世界中,对具有相同性质、服从相同规则的一类事物(或概念,即实体)的抽象称为实体型。实体型是实体集数据化的结果,实体型中的每一个具体的事物(实体)为它的实例。③实体集:具有相同特征或能用同样特征描述的实体的集合称为实体集。例如,学生、工人、汽车等都是实体集。④属性:属性为实体的某一方面特征的抽象表示。如学生,可以通过学生的“姓名”、“学号”、“性别”、“年龄”及“政治面貌”等特征来描述,此时,“姓名”、“学号”、“性别”、“年龄”及“政治面貌”等就是学生的属性。⑤码:码也称关键字,它能够惟一标识一个实体。例如,在学生的属性集中,学号确定后,学生的其他属性值也都确定了,学生记录也就确定了由于学号可以惟一地标识一个学生,所以学号为码。⑥实体联系图(E-R图):实体-联系方法(Entity-RelationshipApproach,即E-R图法)是用来描述现实世界中概念模型的一种著名方法。E-R图法提供了表示实体集、属性和联系的方法。⑦数据模型:数据模型是一组严格定义的概念集合。这些概念精确地描述了系统的数据结构、数据操作和数据完整性约束条件。2.答:数据模型是一组严格定义的概念集合,这些概念精确地描述了系统的数据结构、数据操作和数据完整性约束条件。数据模型是通过概念模型数据化处理得到的。数据库是根据数据模型建立的因而数据模型是数据库系统的基础。数据模型的三要素是数据结构、数据操作和完整性约束条件。其中:数据结构是所研究的对象类型的集合,它包括数据的内部组成和对外联系;数据操作是指对数据库中各种数据对象允许执行的操作集合,它包括操作对象和有关的操作规则两部分内容;数据约束条件是一组数据完整性规则的集合,它是数据模型中的数据及其联系所具有的制约和依存规则。3.答:概念模型也称信息模型,它是对信息世界的管理对象、属性及联系等信息的描述形式。概念模型不依赖计算机及DBMS,它是现实世界的真实而全面的反映。概念模型通过系统需求分析得到,对概念模型数据化处理后就得到了数据库的数据模型。4.答:图5-2中:一个部门有一个负责人,一个负责人负责一个部门的工作,部门和负责人间的联系是一对一的联系;一个学生可以借阅多本书,一本书只能一个人借。学生和借阅间的联系为一对多的联系;一个学生可以参加多个社会团体,一个社会团体有多个学生参加,学生和社会团体间的联系为多对多的联系。  图5-2三个部门的E-R图5.答:用E-R图画出的学校的概念模型图如图5-3所示。图5-3学校的E-R图模型6.答:在数据结构中定义满足下面两个条件的基本层次联系的集合为层次模型:①有且仅有一个结点没有双亲结点,这个结点称为根结点。②除根结点之外的其他结点有且只有一个双亲结点。模型实例如图5-4所示。图5-4层次模型实例图7.答:满足以下两个条件的基本层次联系的集合称为网状模型:①有一个以上的接点没有双亲。②结点可以有多于一个的双亲。模型实例如图5-5所示。 图5-5网状模型实例图8.答:A,D9.答:C 习题三解答1.答:数据库的设计要经过需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护6个阶段,其内容可以通过图5-6表示。图5-6数据库设计过程示意图 2.答:数据库设计分为6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。各阶段的主要内容为:①需求分析阶段:准确了解并分析用户对系统的需要和要求,弄清系统要达到的目标和实现的功能。② 概念结构设计阶段:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。③逻辑结构设计阶段:将概念结构转换为某个DBMS所支持的数据模型,并将其性能进行优化。④数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据存储结构和存取方法。⑤数据库实施阶段:运用DBMS提供的数据操作语言和宿主语言.根据数据库的逻辑设计和物理设计的结果建立数据库、编制与调试应用程序、组织数据入库并进行系统试运行。③数据库运行和维护阶段:数据库经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其结构性能进行评价、调整和修改。3答:概念设计阶段.设计者要将应用需求转换为与计算机硬件无关的、与各个数据库管理系统产品无关的概念模型(即E-R图):逻辑设计阶段.要完成数据库的逻辑模式和外模式的设计工作,即系统设计者要先将E-R图转换成具体的数据库产品支持的数据模型,形成数据库逻辑模式.然后根据用户处理的要求、安全性的考虑建立必要的数据视图,形成数据的外模式.在物理设计阶段,要根据具体使用的数据库管理系统的特点和处理的需要进行物理存储安排,井确定系统要建立的索引,得出数据库的内模式。4答:数据库设计有2个特点:①进行数据库系统设计时应考虑到计算机硬件、软件和用户的实际情况。即要求数据库设计时,必须适应所在的计算机硬件环境.选择合适的DBMS,了解并提高数据库用户的技术水平和管理水平。③数据库系统设计时应使结构特性设计和行为特性设计紧密结合。数据库设计时,结构设计和行为设计应分离设计、相互参照、反复探寻,共同达到设计目标。5答:需求分析阶段的设计目标是:弄清现实世界要处理的对象及相互关系,清楚原系统的概况和发展前景,明确用户对系统的各种需求,得到系统的基础数据及其处理方法,确定新系统的功能和边界。需求分析调查的具体内容有3方面:①数据库中的信息内容:数据库中需存储哪些数据,它包括用户将从数据库中直接获得或者间接导出的信息的内容和性质。②数据处理内容:用户要完成什么数据处理功能;用户对数据处理响应时间的要求;数据处理的工作方式。③数据安全性和完整性要求:数据的保密措施和存取控制要求;数据自身的或数据间的约束限制。6答:数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。7答; 概念结构设计是将系统需求分析得到的用户需求抽象为信息结构过程。概念结构设计的结果是数据库的概念模型。概念结构独立于数据库逻辑结构和支持数据库的DBMS.其主要特点是:①概念模型是现实世界的一个真实模型:概念模型应能真实、充分地反映现实世界能满足用户对数据的处理要求。②概念模型应当易于理解:概念模型只有被用户理解后才可以与设计者交换意见参与数据库的设计。③概念模型应当易于更改:由于现实世界(应用环境和应用要求)会发生变化,这就需要改变概念模型,易于更改的概念模型有利于修改和扩充。④概念模型应易于向数据模型转换:概念模型最终要转换为数据模型。设计概念模型时应当注意.使其有利于向特定的数据模型转换。8答.抽象就是抽取现实世界的共同特性.忽略非本质的细节.井把这些共同特性用各种概念精确地加以描述,形成某种模型。例子如下.①使用分类法抽象“职工”类:在企业环境中张小英是职工中的一员,她具有职工们共有的特性和行为:在某个部门工作,参与某个工程的设计或施工:与张小英属同一对象的还有王丽平等其他职工,如图5-7所示:②使用聚集法抽象“职工”属性:把实体集“职工”的“职工号”、“姓名”等属性聚集为实体型“职工”,如图5-8所示。③使用概括法将“职工”的子类合并:职工是个实体集,技术人员、干部也是实体集,但技术人员、干部均是职工的子集,如图5.9所示: 9.答:概念结构设计是将系统需求分析得到的用户需求抽象为信息结构过程、概念结构设计的结果是数据库的概念模型。概念结构能转化为机器世界中的数据模型,并用DBMS实现这些需求。概念结构的设计可分为两步:第一步是抽象数据并设计局部视图;第二步是集成局部视图,得到全局的概念结构。10.答:E-R图是描述现实世界的概念模型的图形,E-R图也称为实体一联系图,它提供了表示实体集、属性和联系的方法。构成E-R图的基本要素是实体集、属性和联系。11.答:视图集成就是把设计好的各于系统的分E-R图综合成一个系统的总E-R图,同时消除属性冲突、命名冲突、结构冲突,为关系数据库逻辑结构设计做准备。视图的集成可以有两种方法:一种方法是多个分E-R图一次集成.如图5-10a所示:另一种方法是逐步集成,用累加的方法一次集成两个分E-R图,如图5-10b所示。12.答:逻辑结构设计是把概念模型结构转换成某个具体的DBMS所支持的数据模型。逻辑结构设计步骤为:①把概念模型转换成一般的数据模型。②将一般的数据模型转换成特定的DBMS所支持的数据模型。③通过优化方法将其转化为优化的数据模型。13.答:l)E-R图转换为网状模型的方法为: ①每个实体集转换成一个记录。②每个1:n的二元联系转换成一个系,系的方向由1方实体记录指向n方实体记录:③每个m:n的二元联系,在转换时要引入一个连结记录,并形成两个系,系的方向由实体记录方指向连结记录方。④K(≧3)个实体型之间的多元联系,在转换时也引入一个连结记录,并将联系转换成K个实体记录型和连结记录型之间的K个系,系的方向均为实体型指向连结记录。2)E-R图转换为关系模型的方法为:①一个实体集转换为关系模型中的一个关系,实体的属性就是关系的属性,实体的码就是关系的码,关系的结构是关系模式。②一个1:1联系可以转换为一个独立的关系,也可以与任意一端实体集所对应的关系合并。如果将1:1联系转换为一个独立的关系,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,且每个实体的码均是该关系的候选码。如果将1:l联系与某一端实体集所对应的关系合并,则需要在被合并关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体集的码。③实体间的1:n联系可以有两种转换方法:一种方法是将联系转换为一个独立的关系,其关系的属性由与该联系相连的各实体集的码以及联系本身的属性组成.而该关系的码为n端实体集的码;另一种方法是在n端实体集中增加新属性.新属性由联系对应的1端实体集的码和联系自身的属性构成,新增属性后原关系的码不变。④一个m:n联系转换为一个关系:与该联系相连的各实体集的码以及联系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合。14.答:数据库物理设计的内容主要是选择存取方法和存储结构,包括确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。数据库的物理设计可以分为两步进行:①确定数据的物理结构,即确定数据库的存取方法和存储结构:②对物理结构进行评价。15.答:数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏降低了数据的存取效率,数据库的性能也下降、这时,数据库管理员就要对数据库进行重组织或部分重组织。重组织按原数据库设计要求重新安排有储位置、回收垃圾、减少指针链等,以提高系统性能。重构造通过部分修改数据库的模式和内模式,使数据库适应新的应用环境。16.答:转换后的关系模型如图5-11所示。出版社(出版社名,地址,邮政编码);作者(姓名,性别,年龄,证件号码,单位);出版(出版社名,作者姓名,出书数量,联系方式)。 17.答:该图书馆数据库的E-R图如图5l-12所示:其中:读者:读者号,姓名,地址,性别,年龄,单位;图书.书号,书名,作者,出版社。转换后的关系模型为:借阅者(读者号,姓名,地址,性别,年龄,单位);书籍(书号,书名,作者,出版社);借阅(读者号,书号,借出日期,应还日期)。18答:转换后的关系模型如下:Student(SNO,SN,SD,SA);Teacher(TNO,TN,TD,TG);Course(CNO,CN,PCNO);ST(SNO,TNO);SC(SNO,CNO,G);TC(TNO,CNO)。19.答:转换后的关系模型如下工厂(厂名,厂长,地址);产品(编号,型号,单价);用户(姓名,地址,电话); 工厂-产品-用户(厂名,编号,姓名)。20.答:概念模型如图5-13所示。关系模型为:职工(职工号,姓名,住址,工作商品部);商品部(商品部号,名称,经理职工号,经理名);商品(商品代号,价格,型号,出厂价格);生产厂家(厂名,地址);销售(商品代号,商品部号);生产(厂名,商品代号)。图中:职工:职工号,姓名,住址;商品部:商品部号,名称;商品:商品代号,价格,型号,出厂价格;生产厂家:厂名,地址。21.答:D习题四解答1.答:关系模型的三个组成部分为关系结构、关系操作和关系完整性约束。在关系模型中,无论是实体集,还是实体集之间的联系均由单一的关系表示。关系模式可以形式化地表示为:R(U,D,Dom,F),其中R为关系名,U为组成该关系的属性集合,D为属性组U中属性所来自的域,Dom为属性向域的映像的集合,F为属性间数据的依赖关系集合。关系操作语言包括关系代数、关系演算和基于映像的语言。关系操作语言灵活方便.表达能力和功能都非常强大。其主要特点是:关系操作语言操作一体化;关系操作的方式是一次一集合方式;关系操作语言是高度非过程化的语言。关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 2答:关系操作语言灵活方便,表达能力和功能都非常强大,其主要特点是:关系操作语言操作一体化;关系操作的方式是一次一集合方式;关系操作语言是高度非过程化的语言。关系操作语言包括关系代数、关系演算和基于映像的语言。关系代数语言是用对关系的运算来表达查询要求的语言。关系演算语言是用查询得到的元组应满足的谓词条件来表达查询要求的语言。基于映像的语言是具有关系代数和关系演算双重特点的语言。3.答:1)若关系中的某一属性组(或单个属性)的值能惟一标识一个元组,则称该属性组(或属性)为候选码。当一个关系有多个候选码时,应选定其中的一个候选码为主码;而如果关系中只有一个候选码,这个惟一的候选码就是主码。设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。如果F与基本关系s的主码KS相对应,则称厅是基本关系R的外码。2)给定一组域D1,D2,…,Dn.这些域中可以有相同的部分,则D1,D2,…,Dn的笛卡地积为:D1×D2×…×Dn﹦{(dl,d2,…,dn)∣di∈Di,i=1,2,…,n}。D1×D2×…×Dn的子集称作在域D1,D2,…,Dn上的关系,表示为:R(D1,D2,…,Dn)。其中,R表示关系的名字,n是关系的目。笛卡儿积集合中的每一个元素(dl,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.答: 7.答:8.答:A9.答:D10.答:C11.答:B习题五解答1.答:SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体.它除了具有一般关系数据库语言的特点外,还具有3个特点:①SQL具有自含式和嵌入式两种形式:②SQL具有语言简洁、易学易用的特点③SQL支持三级模式结构。2.答:1)CREATTABLE职工(职工号CHAR(l0)NOTNULLUNIQUE,姓名CHAR(8)NOTNULL,年龄SMALLINT,性别CHAR(2),CONSTRAINTC1CHECK(性别IN(‘男’,‘女’)));CREATTABLE社会团体(编号CHAR(8)NOTNULLUNIQUE,名称CHAR(12)NOTNULL,负责人CHAR(8),活动地点VARCHAR(50), CONSTRAINTC2FOREIGNKEY(负责人)REFERENCES职工(职工号));CREATTABLE参加(职工号CHAR(8),编号CHAR(8),参加日期DATECONSTRAINTC3PRIMARYKEY(职工号,编号),CONSTRAINC3FOREIGNKEY(职工号)REFERENCES职工(职工号));2)CREATVIEW社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别)ASSELECT编号,名称,负责人,姓名,性别FROM社会团体,职工WHERE社会团体,负责人=职工.职工号;CREATVIEW参加人情况(职工号,姓名,社团编号,社团名称,参加日期)ASSELECT参加.职工号,姓名,社会团体编号,名称,参加日期FROM职工,社会团体,参加WHERE职工.职工号=参加.职工号AND参加.编号=社会团体.编号;3)SELECT职工号,姓名FROM职工,社会团体,参加WHERE职工.职工号=参加.职工号AND参加.编号=社会团体.编号AND社会团体.名称IN(‘唱歌队’,‘篮球队’)4)SELECT*FROM职工WHERENOTEXISTS(SELECT*FROM参加WHERE参加.职工号=职工.职工号);5)SELECT*FROM职工WHERENOTEXISTS(SELECT*FROM参加WHERENOTEXISTS(SELECT*FROM社会团体WHERE参加.职工号=职工.职工号AND参加.编号=社会团体.编号));6)SELECT职工号FROM职工WHERENOTEXISTS(SELECT*FROM参加参加1WHERE参加1.职工号=‘1001’ANDNOTEXISTS(SELECT* FROM参加参加2WHERE参加2.编号=参加1.编号AND参加2.职工号一职工.职工号));7)SELECTTCOUNT(职工号)FROM参加GROUPBY编号;8)SELECT社会团体.名称,COUNT(参加.职工号)FROM社会团体参加WHERE所在城市=‘天津’));8)UPDATE零件SET颜色=‘蓝色’WHERE颜色=‘红色’;9)UPDATE供应零件SET供应商代码=‘S3’WHERE供应商代码=‘S5’AND工程代码=‘J4’AND零件代码=‘P6’;10)DELETEFROM供应零件WHERE供应商代码=‘S2’;DELETEFROM供应商WHERE供应商代码=‘S2’4.答:在嵌入方式下,SQL语句在嵌入主语言的程序时其前缀加EXECSQL;其结束处用END_EXEC或用分号“;”。5.答:数据库的工作单元和程序工作单元之间通信的主要方式有:主语言通过主变量向SQL语句提供参数;SQL语旬的当前工作状态和运行环境数据要返馈给应用程序。6.答:使用游标解决SQL一次一集合的操作与主语言一次一记录操作的矛盾。游标是系统为用户开设的一个数据缓冲区存放SQL语句的执行结果。用户可以通过游标逐一获取记录.并将记录赋给主变量.交给主语言做进一步处理。7.答:B8.答:C9.答:A 10.答:C11.答:C 习题六解答1.答:客户机/服务器(Client/Server)是分布式数据库与网络技术相结合的产物,C/S系统可以通过网络连接产品将多台计算机连接为企业内部网,能够与Internet相连并发布网页。网络中的一台或多台计算机称为服务器(Server),其他的计算机称为客户机(Client)。在C/S系统中,应用程序安装在客户机端,客户机端实现用户界面和前端处理功能;数据库服务器程序安装在服务器端,由服务器实现分布事务的协调和数据访问控制。SQLServer2000的客户机/服务器体系是N层结构的,其中N可以是2、3、4或更大值。2层客户机/服务器数据库系统的结构最简单,它包括一个数据库服务器和多个SQL客户机。多层客户机/服务器数据库系统结构可以简单地分为:后端服务器、中间端服务器和客户机,其中,中间端服务器可以是多层的。中间端服务器可以管理一个或多个独立的数据库,每个中间服务器都是一个独立的实体,能够为客户机或前级服务器提供与自己数据库相关的事务服务和数据预处理工作。后端服务器是中间服务器的后台,它能够管理多个中问服务器,并能够提供整个数据库系统的事务管理功能。2.答:SQLServer2000的数据库系统结构采用多层客户/服务器系统结构。其软件结构为客户软件、网络软件和服务器软件。客户软件包括客户应用程序软件、服务器的数据库应用程序、编程接口API和网络资源库;网络软件包括网络传输协议及网络资源库;SQL服务器软件由网络链接库、开放式数据服务、SQLServer代理服务程序、SQLServer服务器服务以及分布事务管理服务5部分构成。3.答:SQLServer的物理数据库由两个或多个物理文件组成,一个物理数据库中至少有一个数据库数据文件和一个数据库事务日志文件。逻辑数据库中有表、视图、图表等数据库对象。4.答:SQLServer的数据库对象包括表、视图、用户、角色、索引、数据类型、默认值、存储过程、触发器和约束等。①表和视图;表,即基本表,它是在数据库中存放的实际关系;视图是为了用户查询方便或根据数据安全的需要而建立的虚表。②用户和角色;用户是数据库系统的合法使用者;角色是由一个或多个用户组成的单元,角色也称职能组。③素引:索引是用来加速数据访问和保证表的实体完整性的数据库对象。SQLServe中的索引有群聚和非群聚索引两种:群聚京引会使表的物理顺序与索引顺序一致,一个表只能有一个群聚索引;非群聚索引与表的物理顺序无关,一个表可以建立多个非群聚索引。④存储过程:存储过程是通过Trantact-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客户机安装相应的软件并正确配置它们。③数据库管理:包括数据库的创建、修改、删除以及备份和恢复等。④数据库对象的管理:管理数据库中的表、视图、存储过程、触发器、规则、缺省值等。⑤数据管理:实现记录的添加、删除和修改以及数据的传递与复制等。⑥安全性管理:包括用户管理和权限管理两方面的内容。⑦作业管理:包括警报管理、操作员管理和任务管理。⑧集成操作:SQLServer与电子邮件系统和Web服务器的交互操作。7.答:①查询分析器:编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来或进行存储。②导人和导出数据:通过向导实现SQLServe与任何OLEDB、ODBC、JDBC或文本文件等多种不同类型的数据库之间实现数据传递。③服务管理器:用于开启、暂停和停止SQL服务工作,同时.也可以通过它设置服务是否自动启动。④客户机网络连接工具和服务器网络连接工具:客户机网络连接工具用于设置本机作为服务器或客户机所使用的缺省网络链接库,井可为不支持缺省网络库的SQL服务器设置连接方式。服务器网络连接工具用于设置本机作为服务器时允许的连接协议,以支持不同配置的客户端。⑤联机丛书:SQLServer2000为用户提供在线帮助功能。⑥企业管理器;实现对管理对象的定义、改动、删除等各种操作。⑦事件探查器:服务器活动跟踪程序,用于监视与分析SQLServer活动、SQLServer服务器的网络进出流量或发出在SQLS_上的事件。⑧在IIS中配置SQLXh4L支持:设置井管理IIS虚拟目录。⑨分析管理器:管理分析服务器;创建数据库和指定数据源;生成并处理多线数据集;创建并处理数据挖掘模型;指定存储选项并优化查询性能.管理安全性.浏览数据源、共享维度、安全角色和其他对象。⑩英语查询工具:为用户提供了用英语询问,而不是用SQL语句进行数据查询的方式。8.答:①新增加INTO、COMPUTE和COMPUTEBY三种子句:INTO子句用于创建一个表,并将查询结果添加到该表中;COMPUTE子句的作用是产生汇总值,并在结果集中后将汇总值放入摘要列,COMPUTE与BY配合,将起到换行控制和分段小计的作用。②SELECT中增加了[TOP〈数值〉[PERCENT]短语,增加了〈列名或表达式〉[AS]〈列别名〉及〈列别名〉=〈表达式〉的列组表示方法。③FROM子句中新增加了连接表类型及连接表示,数据源中可以使用嵌套的SELECT语句。④TSQL用GO表示语句结束,标准SQL用分号‘:’表示结束。9.答:l)CREATEDATABASE学生选课库 ONPRIMARY(NANE=学生选课库,FILENAME=‘C:\msSQLdata学生选课.mdf’,SIZE=4MB,MAXSIZE=6MB,FILEROWHT=2MB)GO2)CREATTABLE学生(学号CHAR10)PRIMARYKEYCLUSTERED,姓名CHAR(8),性别CHAR(2),年龄SMALLINT所在系VARCHAR(50))GOCREATTABLE课程(课程号CHAR(10)PRIMARYKEYCLUSTERED,课程名VARCHAR(50),先行课VARCHAR(50))GOCREATETABLE选课(学号CHAR(10),课程号VARCHAR(50),成绩SMALLINT,CONSTRAINTC1PRIMARYKEY(学号,课程号),CONSTRAINTC2FOREIGNKEY(学号)REFRENCES学生(学号),CONSTRAINTFOREIGNKEY(课程号)REFERENCES课程(课程号))GO3)CREATEINDEXstudent_indON学生(学号)GOREATEI**巨class_indON课程(课程号)GOCREATEINDEXselect_indON选课(学号,课程号)GO4)CREATRULEvalue_ruleAS@VALUEIN(‘男’,‘女’)GOCREATDEFAULE性别缺省AS‘男’GOEXECsp_bindrule‘value_rule’,‘学生.性别’GOEXECSp_binddefault‘性别缺省’,‘学生.性别’GO5)CREATETRIGGERsc_insertON选课FORINSERTASIF(SELECTCOLJNT(*)FROM学生,inserted,课程WHERE学生.学号=inserted.学号AND课程.课程号=inserted.课程号)=0ROLLBACKTRANSACTIONGOCREATETRIGGERsc_updat6ON选课FORUPDATEASIF(SELECTCOUNT(*)FROM学生,updated,课程WHERE学生.学号=updated.学号AND课程.课程号=updated.课程号)=0ROLLBACKTRANSACTIONGO6)CREATETRIGGERdelete_allON学生FORDELETE ASDELETEFROM选课WHERE选课.学号=deleted.学号GO7)SELECT所在系,COUNT(学号)FROM学生GROUPBY学生.所在系COMPUTECOUNT(DISTINCT(所在系))COMPUTECOUNT学号)BY所在系GO8)SELECT*FROM学生INNERJOIN课程GOSELECT*FROM学生LEFTOUTERJOIN课程GOSELECT*FROM学生RIGHTOUTERJOIN课程GO9)SELECT选课.学号,学生.姓名,学习情况=CASEWHENAVG(成绩)>=85THEN‘好’WHENAVG(成绩)>=75ANDAVG(成绩)<85THEN‘较好’WHENAVG(成绩)<60THEN‘较差’ENDFROM学生选课WHERE学生.学号=选课.学号GROUPBY选课.学号GO习题七解答1.答:①函数依赖:设R〈U〉是属性集U上的关系模式,X、Y是U的子集。若对于R〈U〉的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而Y上的属性值不等,则称X函数确定Y函数,或Y函数依赖于X函数,记作X→Y。例如,在学生(学号,姓名,年龄,年级)表中:学号→姓名,学号→年龄,学号→年级。②部分函数依赖和完全函数依赖:在R〈U〉中,如果X→Y,并且对于X的任何一个真子集X’,都有,则称Y对X完全函数依赖.记作:XY;若X→Y,但Y不完全函数依赖于X.则称Y对X部分函数依赖.记作.XY。例如在教学关系模式中,学号和课程名为主码。(学号,课程名)→成绩,(学号课程名)姓名。③传递函数依赖:在R〈U〉中,如果X→Y,,Y→Z,称Z对X传递函数依赖。递函数依赖记作XZ。例如,在教学模式中,因为存在:学号→系名,系名→系主任;所以也存在;学号系主任。④候选关键字,主关键字,全关键字:设R〈A1,A2,…An〉为一关系模式,F为R所满足的一组函数依赖,X为{A1,A2,…An}的子集,如果X满足:l)X→A,A2,… An∈。2)不存在X的真子集Y,YX,Y→A1,A2,…An∈则称X是关系模式的码(候选关键字)。在候选关键宇中选择一个为主码(主关键字)。如果关系模式中不存在函数依赖,则全部属性构成码,即为全码(全关键字)。⑤1NF,2NF,3NF,BCNF:果关系模式R,其所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式;若R∈1NF,且每一个非主属性完全依赖于码,则R∈2NF;关系模式R〈U,F〉中若不存在这样的码X、属性组Y及非主属性使得X→Y、、Y→Z成立,则称R〈U,F〉∈E3NF;系模式R〈U,F〉∈1NF。若X→Y且,X必含有码.则R〈U,F〉∈BCNF。⑥多值依赖,4NF:设有关系模式R〈U〉,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,X必含有码,则称R〈U,F〉∈4NF。⑦连接依赖,5NF:设R〈U〉是属性集U上的关系模式X1、X2、X3、…、Xn是U的子集,并且=U。如果对R=的一切关系均成立,则称R在X1、X2、…、Xn上具有n目连接依赖,记作:。如果关系模式R中的每一个连接依赖均由R的候选码所隐含,则称R∈5NF。2.答:(1)学生(学号,姓名,出生日期,班号);班级(班级编码,专业名,系号,人数.入校年份);教学系(系名,系号,办公室地点,人数,宿舍区);学会(学会名,成立年份,地点,人数);参加(学号,学会名,入去年份)。(2)={班级编码→专业名,班级→系号,班级→人数.班级→入校年份};={学号→姓名,学号→出生日期,学号→班号);={系号→系名,系号→办公室地点,系号→人数,系号→宿舍区};={学会名→成立年份,学会名→地点,学会名→人数};={(学号,学会名)→入会年份}。(3)学生表中,码为学号。班级表中,码为班级编码。教学系表中,码为系号。学会表中,码为学会名。参加表中:码为(学号,学会名);外码为学号,参照属性为学生(学号);外码为学会名,参照属性为学会(学会名)。3.答:1)R的候选码为BD。2)①将F中的函数依赖都分解为右部为单属性的函数依赖。F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A}②去掉F中冗余的函数依赖。判断A→C是否冗余。设:G1={C→A,B→A,B→C,D→A,D→C,BD→A},得:=A∵C∴A→C不冗余判断C→A是不冗余。设:G2={A→C,B→A,B→C,D→A,D→C,BD→A},得:=C∵A∴C→A不冗余判断B→A是否冗余。设:G3={A→C,C→A,B→C,D→A,D→C,BD→A},得:=BCA∵A∴B→A冗余判断B→C是否冗余。 设:G4={A→C,C→A,D→A,D→C,BD→A},得:=B∵C∴B→C不冗余判断D→A是否冗余。设:G5={A→C,C→A,B→C,D→C,BD→A},得:=DCA∵A∴D→A不冗余判断D→C是否冗余。设:G6={A→C,C→A,B→C,BD→A},得:=D∵C∴D→C不冗余判断BD→A是否冗余。设:G7={A→C,C→A,B→C,D→C},得:=BDCA∵A∴BD→A冗余F={A→C,C→A,B→C,D→C}③由于各函数依赖在部都为单属性.故:Fm={A→C,C→A,B→C,D→C}。3)T={AC,BC,DC,BD}4.答:1)∵=ABECDFABCDEF∈∴AB为码∵=ABECDFABCDEF∈∴AC为码∵=ABECDFABCDEF∈∴AD为码2)∵B→C∴ABC∵AD→B,B→C∴ADC∵C→D∴ACC∵B→C,C→D∴ABC5.答:①将F中的函数依赖都分解为右部为单属性的函数依赖。F={AB→E,BC→D,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F}②去掉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∵E∴AB→E不冗余判断BC-D是否冗余。设:G2={AB→E,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F}得:=BCAEFD∵D∈∴BC→D冗余 判断BE→C是否冗余。设:G3={AB→E,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F}得:=BE∵C∴BE→C不冗余判断CD-B是否冗余。设:G4={AB→E,BE→C,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F}得:=CDAEFB∵B∈∴CD→B冗余判断CE-A是否冗余。设:G5={AB→E,BE→C,CE→F,CF→B,CF→D,C→A,D→E,D→F}得:=CEFBDA∵A∈∴CE→A冗余判断CE→F是否冗余。设:G6={AB→E,BE→C,CF→B,CF→D,C→A,D→E,D→F}得:=CEA∵F∴CE→F不冗余判断CF-B是否冗余。设:G7={AB→E,BE→C,CE→F,CF→D,C→A,D→E,D→F}得:=CFDEF∵B∴CF→B不冗余判断CF→D是否冗余。设:G8={AB→E,BE→C,CE→F,CF→B,C→A,D→E,D→F}得:=CFABE∵D∴CF→D不冗余判断C→A是否冗余。设:G9={AB→E,BE→C,CE→F,CF→B,CF→D,D→E,D→F}得:=C∵A∴C→A不冗余判断D-E是否冗余。设:G10={AB→E,BE→C,CE→F,CF→B,CF→D,C→A,D→F}得:=DF∵E∴D→E不冗余判断D-F是否冗余。设:G11={AB→E,BE→C,CE→F,CF→B,CF→D,C→A,D→E}得:=DE∵E∴D→F不冗余∴F={AB→E,BE→C,CE→F,CF→B,CF→D,C→A,D→E,D→F} 求得.FF=FDFF不能以F→D代替CF→D在决定因素中去掉F。求得:CF=CADCp不能以C→D代替CF→D不能以CF→D不冗余F={AB→E,BE→C,CE→F,CF→B,CF→D,C→A,D→E,D→F}6答:l)是BCNF。二元关系中或为全码,或为一个单属性码候选码。2)是BCNF。关系模式中只有一个候选码。3)不是BCNF、因为模式中存在候选码为AD、BCD和BE。显然C对AD是部分依赖。7答:U1U2=EU1-U2=ABU1U2→U1-U2={E→AB}={E→A,E→B}U1U2→U1-U2F该分解具备无损连接。8答:l)R的主码为IBO。2)F={S→D,I→S,1→Q.B→Q}令P=BOISQD①由于R的码为IBO.选择S→D分解。得出:={S1,S2}其中S1=SD,F1={S→D};S2=BOISQ,F2={I→S,I→Q,B→Q}。显然S2不服从BCNF,需要继续分解:②对S1分解,S2的码为IBO,选择I→S分解。得出:={S1,S2,S3}其中:S3=IS.F3={I→S}S4=BOIQ.F4={I→Q,B→Q}显然.S4不服从BCNF,还需要继续分解。③对S4分解。S4的码为IBO,选择I→Q分解。得出:={S1,S3,S5,S6}。其中S5=IQ,F5={I→Q};S6=BIO,F6=。④最后的分解为:={SD,IS.IQ.BIO}。9答:正确。因为学号能够多值决定课程号。10答:BCNF。由于A多值依赖于动而C不是码.故不服从4NF。但在函数依赖式中C依赖于码AB.故该模式服从BCNF。11答:l)候选码为AC,BC.AD,BD、可选其中之一为主码。2)不服从4NF。在多值依赖中泱定因素中不包含码。3)不服从BCNF。在函数依赖中决定因素中不包含码。4)服从3NF。该模式中不存在非主属性。12答.1)正确。2)正确。3)正确。 4)正确。5)正确。6)正确。7)正确。8)不正确。例如(学号课程号)→成绩,则不存在:学号→成绩,课程号→成绩13答:①把查询转换成语法树表示。②把语法树转换成标准(优化)形式。③选择低层的存取路径。④生成查询计划选择代价最小的查询计划。14答:①选择运算尽可能先做。②在执行连接前对关系适当地预处理即在连接属性上建立索引和对关系进行排序。③把投影运算和选择运算同时进行。④把投影同其前或其后的双目运算结合起来。⑤把某些选择同在它前面要执行的笛卡儿科结合起来成为一个连接运算。③找出公共子表达式。15答.D16答:B17答:D18答.B19答:B 习题八解答1答.数据库的安全性是指保护数据库.以防止不合法的使用数据泄密、更改或破坏。2答:数据库安全性是计算机系统的安全性的一个部分.数据库系统不仅要利用计算机系统的安全性保证自己系统的安全性.同时还会提供专门的手段和方法,使安全性能更好。例如在用户要求进入计算机系统时.系统首先根据用户输入的用户标识进行身份鉴定,只有合法的用户才准许进入计算机系统:对已进入的用户***S还要进行存取控制,只允许用户执行合法操作:操作系统也会提供相应的保护措施;数据最后还可以以密码形式存储到数据库中。3答.①用户标识与鉴别:②存取控制:③自主存取控制方法.④强制存取控制方法:⑤视图机制;③审计.o数据加密。4答.①GRANT(授权)语句例:GRANTSELECTINSRRTON学生TO张勇 WITHGRANTOPTION;②REVOKE(收回)语句例:REVOKEINSERTON学生FROM张勇;5答:l)GRANTSELECTON职工,部门TO王明WITHGRANTOPTION;2)GRANTINSERT,DELETEON职工,部门TO李勇WITHGRANTOPTION;3)GRANTSELECT,UPDATE(工资)ON职工TO刘星WITHGRANTOPTION;4)GRANTALTETABLETO张新WITHGRANTOPTION5)GRANTALLPRIVILIGESON职工,部门TO周平WITHGRANTOPTION6)CREMVIEW部门工资统计(最高工资,最低工资.平均工资)ASSELECTMAX(工资),MIN(工资),AVG(工资)FROM职工GROUPBY部门号.GRANTSELECTON部门工资统计TO杨兰.6答:1)REVOKESELECTON职工,部门FROM王明;2)REVOKEINSERT,DELETEON职工,部门FROM李勇;3)REVOKESELECT,UPDATE(工资)ON职工FROM刘星4)REVOKEALTERTABLEFROM张新5)REVOKEALLPRIVILGESON职工,部门FROM周平6)REVOKESELECTON部门统计TO杨兰;7答:数据库的完整性是指数据的正确性和相容性。8答:数据库的完整性是指数据的正确性和相容性、数据库的安全性是指保护数据库.以防止不合法的使用造成的数据泄密、更改或破坏。其相同点是两者都是对数据库中的数据进行控制.各自所实现的功能目标不同。9答:数据完整性约束是为了保证进入数据库中的数据的有效性而定义的数据规则、它可以分为以下两类.① 针对不同的对象可以分为表级约束、元塑级约束和属性级约束(也称列约束);表级约束是若干元组间、关系中及关系之间的约束:元组级约束则是元组中的字段组和字段间联系的约束;属性级约束主要是针对列的类型、取值范围、精度、排序等而制定的约束条件。②针对数据对象的状态可以分为静态约束和动态约束:静态约束是指数据库每一确定状态时的数据对象所应满足的约束条件.它是反映数据库状态稳定时的约束.动态约束是指数据库从一种状态转变为另一种状态时.新、旧值之间所应满足的约束条件.它是反映数据库状态变迁的约束。10答;①定义和存储完整性功能.②检查完整性功能;③控制完整性功能。11答:①外码能够接受空值的问题.②在被参照关系中删除元组时.采用级联删除、受限删除或置生值删除的方法处理参照关系;③在参照关系中插入元组时.可以使用受限插入、递归插入两种方法处理参照关系.④修改关系的主码时可以采用不允许修改主码、或允许修改关系主码.但必须保证主码的惟一性和非空性方法处理参照关系;⑤修改被参照关系时,可以采用级联修改、拒绝修改和置空值修改方法处理参照关系。12答:CREATETABLE职工(职工号CHAR(5)PRIMARYKEY,姓名CHAR(8)NOTNULL,年龄SMALLINT.职务CHAR(10),工资DECIMAL(7,2),部门号CHAR(5)。CONSTRAINTCICHECK(年龄<60).CONSTRAINC2FOREIGNKEY(部门号)REFEENCES部门(部门号));CREATTABLE部门(部门号CHAR(5)PRIMARYKEY.名称CHAR(l).经理名CHAR(8).电话CHAR(8).CONSTRAINTC3FOREIGNKEY(经理名)REFERECES职工(姓名));13答;数据库的井发控制就是为了控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。14答.井发操作可能会产生丢失修改、不可重复读和读“脏”数据的数据不一致问题。用封锁的方法能避免这些不一致的情况。15答.封锁是使事务对它要操作的数据有一定的控制能力。封锁具有三个环节.第一个环节是申请加锁.第二个环节是获得锁;第三个环节是释放锁。16答.基本的封锁类型有两种:排它锁(简称X锁)和共享锁(简称S锁)。排它锁也称为独占或写锁、一旦事务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锁。M级封锁协议不但能够防止丢失修改,还可进一步防止读“脏”数据。三级封锁协议:是事务T在读取数据之前必须先对其加S锁.在要修改数据之前必须先对其加X锁.直到事务结束后才释放所有锁、由于三级封锁协议强调即使事务读完数据A之后也不释放S锁从而使得别的事务无法更改数据A、三级封锁协议不但防止了丢失修改和不读“脏”数据,而且防止了不可重复的队19答:一级封锁协议可有效地防止丢失修改,并能够保证事务T的可恢复性。一级封锁由于没有对数据进行加锁,所以不能保证可重复读和不读“脏’数据。二级封锁协议不但能够防止丢失修改.还可进一步防u读“脏”数据。由于三级封锁协议强调即使事务读完数据A之后也不释放S锁,从而使别的事务无法更改数据A。三级封锁协议不但防止了丢失修改和不读“胜数据.而且防u了不可重复读。20答;在多个事务请求对同一数据封锁时,总是使某一用户等待的情况称为活锁;多事务交错等待的僵持局面称为死锁。21答;活锁是封锁的无序造成的、解决方法是采用先来先服务的方法,即对要求封锁数据的事务排队.使前面的事务先获得数据的封锁权。22答:预防死锁通常有以下两种方法;①一次封锁法.就是要求每个事务必须一次将所有要使用的数据全部加锁.否则该事务不能继续执行.②顺序封锁法.是预先对数据对象规定一个封锁顺序.所有事务都按这个顺序实行封锁。23答:检测死锁发生的一种方法是选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有锁.使其他事务得以继续运行下去。解除死锁问题有两类方法:一类方法是采用一定措施来预防死锁的发生.另一类方法是允许发生死锁.然后采用一定手段定期诊断系统中有无死锁.若有则解除之。24答.如果一个事务运行过程中没有其他事务同时运行,即没有受到其他事务的干扰,那么就可以认为该事务的运行结果是正常的,可串行性是井发事务正确性的准则为了保证并发操作的正确性.DBMS的并发控制机制必须提供一定的手段来保证调度是可串行化的。25答:所谓两段锁协议是指所有事务必须分两个阶段对数据项进行加锁和解锁.①在对任何数据进行读、写操作之前.首先要申请并获得对该数据的封锁.②在释放一个封锁之后,事务不再申请并获得对该数据的封锁。即每个事务分成两个阶段,第一阶段是申请和获得封锁,也称为扩展阶段。在这阶段.事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。第二阶段是释放到锁.也称为收缩阶段。在这阶段,事务可以释放任何数据项上的任何类型的锁。但是不能再申请任何锁。26答: 事务T要对关系RI加X锁时,系统只需检查根结点数据库和关系RI是否已加了不相容的锁.而不再需要搜索和检查RI中的每一个元组是否加了X锁.对任一元组加锁.必须先对它所在的关系加意向锁。意向锁的含义是.如果对一个结点加意向锁。则说明该给点的下层结点正在被加销:对任何一结加锁时.必须先对它的上层结点加意向锁。27答:①封锁.封锁是使事务对它要操作的数据有一定的控制能力。③活锁:这种在多个事务请求对同一数据封锁时.总是使某一用户等待的情况称为活锁。③死锁.这种多事务交错等待的僵持局面称为死锁。④排它锁.排名锁也称为独占或写锁、一旦事务T对数据对象A加上排它锁,则只允许T读取和修改A.其他任何事务既不能读取和修改A.也不能再对A加任何类型的锁.直到T释放A上的锁为止。⑤共享锁:共享锁又称读锁、如果事务T对数据对象A加上共享锁.其他事务只能再对A加S锁.不能加X锁.知道事务T释放A上的S锁为上。③井发事务的调度.多个事务并发执行调度策略称为并发事务的调度。①可串行化的调度:如果多个事务并发执行的结果与按串行执行的结果相同这种调度策略称为可串行化的调度。③两段锁协议.所谓两段锁协议是指所有事务必须分两个阶段对数据项进行加锁和解锁。习题九解答1答.对象:对象是现实世界中实体的模型化,它与记录、元组相似.但远比它们复杂。对象标识:每一个对象有一个惟一的标识。封装:每一个对象是其状态与行为的封装。类:共享同一属性和方法集合的所有对象组合在一起构成了一个对象类。类层次.一个系统中所有类级成的一个有根的有向无环图称为类层次。2答:现实世界的任一实体都被统一地模型化为一个对象,每一个对象有一个唯一的标识.称为对象标识。关系模型中的“码”也称关键宇。它能够推一标识一个实体.3答:例如,职工是个实体集,技术人员、于部也是实体集,但是技术人员、干部均是职工的子集。我们把职工称为超类.技术人员、干部称为职工的子类。4答:如果一个子类只能继承一个超类的特性(包括属性、方法和消息).这种继承称为单继承.如果一个子类能继承多个超类的特性.这种继承称为多重继承。继承性有两个优点:①继承性是建模的有力工具,提供了对现实世界简明而精确的描述;②继承性提供了信息重用机制.5答:在同一作用域中允许多个事务使用同一操作的措施被称为操作的重载。于类可以定义自己特殊的属性、方法和消息,但是当子类定义的方法与父类中的方法相同时,即发生同其冲突时,应用程序中的同名操作渡执行哪种操作呢?究竟是执行父类中的操作还是子类中的操作呢?面向对象的数据库管理系统将采用滞后联编技术来解决这种冲突。6答:并行数据库系统是指在并行机上运行的具有并行处理能力的数据库系统。并行数据库系统既能发挥多处理机结构的优势.同时又能够采用先进的并行查询技术和并行数据管理技术.可以提供一个高性能、高可用性、高扩展性的数据库管理系统,它是数据库技术与井行计算技术相结合的产物。7答:根据处理器以及内存的相互关系,可以将井行计算机分为三种基本结构;共享内存结构(SM)、共享磁盘结构(SD)和共享资源结构(SN)。H种并行结构的特点为: ①SN结构在可扩充性与可用性方面优于其他两种结构.对于结点数目较多的配置,SN结构能够比较好地适应高伸缩性的要求.②在负载均衡和设计的简单性等方面,SM结构的优点比较突出一些、对于中小型系统的配置.SM结构由于其设计简单和负载易于均衡就更合适一些。③SD结构的优点介于两者之间。也有一些系统采用了混合的结构.即整个系统是SN结构而每个结点是SM结构、这种结构综合了两种结构的优点。8答:①水平并行化也称为独立并行化,它是相互独立的多个操作或者一个操作内的多个子操作分别由不同的处理机并行执行的形式。②垂直并行化也称为流水线并行化.它是存在流水线方式依赖关系的操作分别由不同处理机井行执行的形式。9答:将分散在各处的数据库系统通过网络通信技术连接起来形成的系统称为分布式数据库系统。分布式数据库系统具有体系结构灵活、能适应分布式的管理和控制机构、经济性能好。可靠性高、可用性好、在一定条件下响应速度快以及可扩充性好等优点。分布式数据库具有数据的物理分布性、数据的逻辑相关性、区域自治性、各个计算机之间的联系通过网络进行的特点。10答:分布式数据库系统由数据库、数据库管理系统、数据库管理员、分布式数据库管理系统、网络数据库字典和网络存取进程六部分组成。11答:分布式数据库的结构从整体上分.可以分为两大部分;集中式数据库原有的体系结构和分布式数据库增加的结构。分布式数据库增加的结构又可以分成以下4级.①全局外模式、全局外模式是全局应用的用户视图是全局概念模式的于集。②全局概念模式、它定义了分布式数据库中所有数据的逻辑结构。③分片模式、它定义了片段以及全局关系与片段之间的映象。④分布模式。分布模式根据数据分布策略的选择定义片段的存放场地。12答.分布透明性是指用户不比关心数据的逻辑分片,不比关心数据物理位置的分布细节以及局部场地上的数据库的逻辑模型。分布独立性包括;分片透明性、位置透明性和局部数据模型透明性。13答:①分布式数据库与并行数据库系统的应用目的不同。并行数据库系统的目的是充分发挥并行计算机的优势.必须用系统中各个处理机结点并行地完成数据库任务。提高数据库的整体性能、分布式数据库系统主要目的在于实现各个场地自治和数据的全局透明共享.而不要求必须用网络中的各个结点来提高系统的整体性能。②分布式数据库与并行数据库系统的实现方式不同。在并行数据库中为了充分发挥各个结点的处理能力,各结点采用高速通信网络互联.结点间数据与代价相对较低。当负载不均衡时可以将工作负载过大的结点上的任务通过高速通信网络给空闲的结点来处理.从而实现负载平衡。在分布式数据库中,签结点间一般通过局域网和广域网进行互联.网络的带宽比较低,各场地之间的通信开销较大.因此。在查询处理时一般应尽量减少结点间的数据传输量。③分布式数据库与并行数据库系统中各结点的地位不同。在并行数据库中,各结点之间不存在全局应用和局部应用的概念。各个结点协同作用,共同处理.而不可能局部应用:而在分布式数据库系统中,各结点除了能通过网络协同完成全局事务外,还有自己结点场地的自治性。14答.事务处理环境不适宜决策支持系统应用,主要原因是不能解决下列问题;①事务处理和分析处理的性能特性不同 ②数据集成问题.1③数据的动态集成问题;④历史数据问题:⑤数据的综合问题。以上种种问题表明,在事务开支环境中直接构造分析型就用是不合适的、建立在事务处理环境上的分析系统并不能有效地进行决策分析。要提高分析和决策的效率,就必须将分析型处理及其数据与操作型处理及其数据分离开来.必须把分析数据从事务处理环境中提取出来.按照处理的需要重新组织数据,建立单独的分析处理环境。数据仓库技术正是为了构造这种分析处理环境而产生的一种数据存储和数据组织技术。15答.数据挖掘是从超大型数据库或数据仓库中发现并提取隐藏在内部信息的一种新技术,其目的是帮助决策者寻找数据间潜在的关联,发现被经营者忽略的要素,而这些要对预测趋势。决策行为可能是非常有用的信息。16答:A,B,C,D17答.C  '