数据库系统概论课后习题答案(第五版 王珊、萨师煊)
第1章绪论1.试述数据、数据库、数据库系统、数据库管理系统的概念。答:(1)数据(Data):描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。 在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。 数据与其语义是不可分的。500这个数字可以表示一件物品的价格是500元,也可以表示一个学术会议参加的人数有500人,还可以表示一袋奶粉重500克。(2)数据库(DataBase,简称DB):数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。(3)数据库系统(DataBaseSytem,简称DBS):数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。 数据库系统和数据库是两个概念。数据库系统是一个人-机系统,数据库是数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。(4)数据库管理系统(DataBaseManagementsytem,简称DBMS):数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。 DBMS是一个大型的复杂的软件系统,是计算机中的基础软件。目前,专门研制DBMS的厂商及其研制的DBMS产品很多。著名的有美国IBM公司的DB2关系数据库管理系统、IMS层次数据库管理系统、美国Oracle公司的Oracle关系数据库管理系统、美国微软公司的SQLServer关系数据库管理系统等。
2.使用数据库系统有什么好处?答: 使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如: 可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由DBMS来完成。用一个通俗的比喻,使用了DBMS就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。 还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是DBA的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为DBMS在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由DBMS执行。总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。
3.试述文件系统与数据库系统的区别和联系。答: 文件系统与数据库系统的区别: 文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。 数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。 文件系统与数据库系统的联系: 文件系统与数据库系统都是计算机系统中管理数据的软件。 文件系统是操作系统的重要组成部分;而DBMS是独立于操作系统的软件。但是DBMS是在操作系统的基础上实现的;数据库中数据的组织和存储是通过操作系统中的文件系统来实现的。
4.举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子。答:(1)数据的备份、软件或应用程序使用过程中的临时数据存储一般使用文件比较合适。早期功能比较简单、比较固定的应用系统也适合用文件系统。(2)目前,几乎所有企业或部门的信息系统都以数据库系统为基础,都使用数据库。例如,一个工厂的管理信息系统会包括许多子系统,如库存管理系统、物资采购系统、作业调度系统、设备管理系统、人事管理系统等;再如学校的学生管理系统、人事管理系统、图书馆的图书管理系统等都适合用数据库系统。
5.试述数据库系统的特点。答: 数据库系统的主要特点有:(1)数据结构化。数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。 注意这里的“整体’两个字。在数据库系统中,数据不再针对某一个应用,而是面向全组织,具有整体的结构化。不仅数据是结构化的,而且数据的存取单位即一次可以存取数据的大小也很灵活,可以小到某一个数据项(如一个学生的姓名),大到一组记录(成千上万个学生记录)。而在文件系统中,数据的存取单位只有一个:记录,如一个学生的完整记录。(2)数据的共享性高,冗余度低,易扩充。数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。数据共享可以大大减少数据冗余,节约存储空间,同时还能够避免数据之间的不相容性与不一致性。 所谓“弹性大”是指系统容易扩充也容易收缩,即应用增加或减少时不必修改整个数据库的结构,只需做很少的改动。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据,便可以满足新的需求。(3)数据独立性高。数据独立性包括数据的物理独立性和数据的逻辑独立性。数据库管理系统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。(4)数据由DBMS统一管理和控制。数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。为此,DBMS必须提供统一的数据控制功能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。 DBMS数据控制功能包括四个方面: 数据的安全性保护:保护数据以防止不合法的使用造成的数据的泄密和破坏; 数据的完整性检查:将数据控制在有效的范围内,或保证数据之间满足一定的关系; 并发控制:对多用户的并发操作加以控制和协调,保证并发操作的正确性; 数据库恢复:当计算机系统发生硬件故障、软件故障,或者由于操作员的失误以及故意的破坏影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失时,能将数据库从错误状态恢复到某一已知的正确状态,亦称为完整状态或一致状态。 数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。
6.数据库管理系统的主要功能有哪些?答:(1)数据库定义功能;(2)数据组织、存储和管理功能;(3)数据操纵功能;(4)数据库的事务管理和运行管理;(5)数据库的建立和维护功能。
7.什么是概念模型?试述概念模型的作用。答: 概念模型是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。
8.定义并解释概念模型中以下术语:实体,实体型,实体集,实体之间的联系。答: 实体:客观存在并可以相互区分的事物叫实体。 实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。 实体集:同型实体的集合称为实体集。 实体之间的联系:通常是指不同实体型的实体集之间的联系,实体之间的联系有一对一、一对多和多对多等多种类型。
9.试述数据模型的概念、数据模型的作用和数据模型的三个要素。答: 数据模型是数据库系统中最重要的概念之一。数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。 一般地讲,数据模型是严格定义的概念的集合。这些概念精确描述了系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。(1)数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。(2)数据操作:是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。(3)数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。 数据模型是数据库系统的基础。任何一个DBMS都以某一个数据模型为基础,或者说支持某一个数据模型。数据库系统中,模型有不同的层次。根据模型应用的不同目的,可以将模型分成两类或者说两个层次:一是概念模型,是按用户的观点来对数据和信息建模,用于信息世界的建模,强调语义表达能力,概念简单清晰;二是数据模型,是按计算机系统的观点对数据建模,用于机器世界,人们可以用它定义、操纵数据库中的数据。
10.试述层次模型的概念,举出三个层次模型的实例。答: 满足下面两个条件的基本层次联系的集合为层次模型。(1)有且只有一个结点没有双亲结点,这个结点称为根结点;(2)根以外的其他结点有且只有一个双亲结点。 层次模型的实例:(1)学校层次数据库模型;(2)行政机构层次数据库模型;(3)行政区域层次数据库模型。
11.试述网状模型的概念,举出三个网状模型的实例。答: 满足下面两个条件的基本层次联系的集合为网状模型。(1)允许一个以上的结点无双亲;(2)一个结点可以有多于一个的双亲。 网状模型的实例略。
12.试述网状、层次数据库的优缺点。答: 层次模型的优点主要有:(1)层次数据库的数据结构比较简单清晰;(2)层次数据库的查询效率高;(3)层次数据模型提供了良好的完整性支持。 层次模型的缺点主要有:(1)现实世界中很多联系是非层次性的,层次数据库不能自然地表示这类联系;(2)对插入和删除操作的限制比较多;(3)查询子女结点必须通过双亲结点。
网状数据模型的优点主要有:(1)能够更为直接地描述现实世界,如一个结点可以有多个双亲;(2)具有良好的性能,存取效率较高。 网状数据模型的缺点主要有:(1)结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;(2)其DDL、DML语言复杂,用户不容易使用。由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径。因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。
13.试述关系模型的概念,定义并解释以下术语:关系,属性,域,元组,码,分量,关系模式答: 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。(1)关系:一个关系对应通常说的一张表;(2)属性:表中的一列即为一个属性;(3)域:属性的取值范围;(4)元组:表中的一行即为一个元组;(5)主码:表中的某个属性组,它可以惟一确定一个元组;(6)分量:元组中的一个属性值;(7)关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n)
14.试述关系数据库的特点。答: 关系数据模型具有下列优点:(1)关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。(2)关系模型的概念单一,无论实体还是实体之间的联系都用关系表示,操作的对象和操作的结果都是关系,所以其数据结构简单、清晰,用户易懂易用。(3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。 当然,关系数据模型也有缺点,其中最主要的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。
15.试述数据库系统三级模式结构,这种结构的优点是什么?答: 数据库系统的三级模式结构由外模式、模式和内模式组成。 外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。 内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。 数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。 为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
16.定义并解释以下术语:模式、外模式、内模式、DDL、DML答: 模式、外模式、内模式的解释参见第15题。 DDL:数据定义语言,用来定义数据库模式、外模式、内模式的语言。 DML:数据操纵语言,用来对数据库中的数据进行查询、插入、删除和修改的语句。
17.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?答: 数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。 数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。 数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
18.试述数据库系统的组成。答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。
19.数据库管理员、系统分析员、数据库设计人员、应用程序员的职责是什么?答: 数据库管理员的职责:(1)决定数据库中的信息内容和结构;(2)决定数据库的存储结构和存取策略;(3)定义数据的安全性要求和完整性约束条件;(4)监控数据库的使用和运行;(5)数据库的改进和重组、重构。 系统分析员负责应用系统的需求分析和规范说明,系统分析员要和用户及DBA相结合,确定系统的硬件、软件配置,并参与数据库系统的概要设计。 数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计人员就由数据库管理员担任。 应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。
第二章关系数据库1.试述关系模型的三个组成部分。答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2.试述关系数据语言的特点和分类。答:关系数据语言可以分为三类:关系代数语言、关系演算语言以及具有关系代数和关系演算双重特点的语言。
3.定义并理解下列术语,说明它们之间的联系与区别:答:
(1)域,笛卡儿积,关系,元组,属性域:域是一组具有相同数据类型的值的集合。笛卡儿积:给定一组域D1,D2,…,Dn,允许其中某些,域是有相同的。这组域的笛卡儿积为 D1xD2x…xDn={(d,d2,…,dn,)Idi属于Di,i=1,2,…,n}关系:在域D1,D2,…,Dn上笛卡儿积D1xD2x…xDn的子集称为关系,表示为 R(D1,D2,…,Dn)。注意,这里是用较为形式化的方法来定义关系。在第1章中则是用通俗的语言来说明什么是关系,是一种不严格的定义。元组:关系中的每个元素是关系中的元组。属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(attribute)。
(2)候选码,主码,外码候选码:若关系中的某一属性组的值能唯地标识一个元组,而其子集不能,则称该属性组为候选码(candidatekey)。主码:若一个关系有多个候选码,则选定其中一个为主码(primarykey)。外码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系R的主码K相对应,则称F是基本关系R的外部码(foreignkey),简称外码。
(3)关系模式,关系,关系数据库关系模式:关系的描述称为关系模式(relationschema)。它可以形式化地表示为 R(U,D,DOM,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。关系:见(1),关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。关系数据库:关系数据库也有型和值之分。关系数据库的型称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。
4.举例说明关系模式和关系的区别。答:关系模式是型;关系是值,是关系模式的实例。例如:Student(Sno,Sname,Sage)是关系模式,下面的表是关系,即某一时刻关系模式的值。
SnoSnameSageS1张俊丽18S1李红钰19S1王敏英195.试述关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值?答: 关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。关系模型的完整性规则是对关系的某种约束条件。 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值); 或者等于S中某个元组的主码值。 用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所设计的数据必须满足的语义要求。 在参照完整性中,如果外码属性不是其所在关系的主属性,则可以取空值,否则不能取空值。
6.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:(剩余题干描述略,本文只给出关系代数表达式)1)求供应工程J1零件的供应商号码SNO:πSno(σJno=‘J1’(SPJ))
2)求供应工程J1零件P1的供应商号码SNO:πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))
3)求供应工程J1零件为红色的供应商号码SNO:πSno(πSno,Pno(σJno=‘J1‘(SPJ))∞πPno(σCOLOR=’红‘(P)))
4)求没有使用天津供应商生产的红色零件的工程号JNO:πJno(SPJ)-πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P)
5)求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))
7.试述等值连接与自然连接的区别和联系。答: 连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组; 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
8.关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?答: 并、差、笛卡尔积、投影和选择5种运算为基本运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。
第三章关系数据库语言SQL1.试述SQL语言的特点。答:(1)综合统一。SQL语言集数据定义语言DDL、数据操纵语言DML和数据控制语言DCL的功能于一体。(2)高度非过程化。用SQL语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及sQL语句的操作过程由系统自动完成。(3)面向集合的操作方式。SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。(4)以同一种语法结构提供两种使用方式。SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。(5)语言简捷,易学易用。
2.说明在DROPTABLE时RESTRICT和CASCADE的区别。答: RESTRICT表示表的删除是有限制条件的。要删除的基本表不能被其他表的约束所引州,不能有视图,不能有触发器,不能有存储过程或函数等。如果存在这些依赖该表的对象,则表不能被删除。 CASCADE表示表的删除没有限制条件,在删除基本表的同时,相关的依赖对象(如视图)都将被删除。
3.有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式:答:(1)select*fromSwhereA=‘10’;(2)selectdistinctA,BfromS;(3)selectA,B,S.C,S.D,E,FfromS,TwhereS.C=T.CandS.D=T.D;(4)select*fromS,TwhereS.C=T.C;(5)select*fromS,TwhereS.AY,但Y不是X的子集,则称X->Y是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。X->Y,但Y是X的子集,则称X->Y是平凡的函数依赖。若X->Y,则X叫做决定因素(Determinant)。若X->Y,Y->X,则记作XY。若Y不函数依赖于X,则记作XY。定义2:在R(U)中,如果X->Y,并且对于X的任何一个真子集X’,都有X’Y,则称Y对X完全函数依赖若X-》Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖定义3:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。定义4:若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF。(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。定义5:关系模式R中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的子集)使得XY,YX,YZ成立,则称R∈3NF。定义6:关系模式R∈1NF。若XY且Y不是X的子集时,X必含有码,则R∈BCNF。定义7:关系模式R∈1NF,如果对于R的每个非平凡多值依赖XY(Y不是X的子集,Z=U-X-Y不为空),X都含有码,则称R∈4NF。
2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系名、系号、系办公地点、人数。学会:学会名、成立年份、办公地点、人数。语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?答:(1)关系模式如下:学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)班级:C(Class,Pname,Dept,Cnum,Cyear)系:D(Dept,Dno,Office,Dnum)学会:M(Mname,Myear,Maddr,Mnum)(2)每个关系模式的最小函数依赖集如下:A、学生S(Sno,Sname,Sbirth,Dept,Class,Rno)的最小函数依赖集如下:SnoSname,SnoSbirth,SnoClass,ClassDept,DEPTRno传递依赖如下:由于SnoDept,而DeptSno,DeptRno(宿舍区)
所以Sno与Rno之间存在着传递函数依赖。由于ClassDept,DeptClass,DeptRno所以Class与Rno之间存在着传递函数依赖。由于SnoClass,ClassSno,ClassDept所以Sno与Dept之间存在着传递函数依赖。B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:ClassPname,ClassCnum,ClassCyear,PnameDept.由于ClassPname,PnameClass,PnameDept所以C1ass与Dept之间存在着传递函数依赖。C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:DeptDno,DnoDept,DnoOffice,DnoDnum根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:MnameMyear,MnameMaddr,MnameMnum该模式不存在传递依赖。(3)各关系模式的候选码、外部码,全码如下:A、学生S候选码:Sno;外部码:Dept、Class;无全码B、班级C候选码:Class;外部码:Dept;无全码C、系D候选码:Dept或Dno;无外部码;无全码D、学会M候选码:Mname;无外部码;无全码
7.下面的结论哪些是正确的?哪些是错误的?对于错误的请给一个反例说明之。答:(1)任何一个二目关系是属于3NF。答:正确。因为关系模式中只有两个属性,所以无传递。(2)任何一个二目关系是属于BCNF.答:正确。按BCNF的定义,若X->Y,且Y不是X的子集时,每个决定因素都包含码,对于二目关系决定因素必然包含码。详细证明如下:(任何二元关系模式必定是BCNF)。证明:设R为一个二目关系R(A1,A2),则属性A1和A2之间可能存在以下几种依赖关系:A、A1->A2,但A2A1,则关系R的码为A1,决定因素都包含码,所以,R是BCNF。B、A1->A2,A2A1,则关系R的码为A2,所以决定因素都包含码,R是BCNF。
第七章数据库设计1.试述数据库设计过程。答:(l)需求分析:准确了解与分析用户需求(包括数据与处理)。(2)概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。(3)逻辑结构设计:将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。(4)数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。(5)数据库实施:设计人员运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。(6)数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。 这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。 设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。
2.试述数据库设计过程中形成的数据库模式。答: 数据库结构设计的不同阶段形成数据库的各级模式,即:(l)在概念设计阶段形成独立于机器特点,独立于各个DBMS产品的概念模式,在本篇中就是E-R图;(2)在逻辑设计阶段将E一R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图(view),形成数据的外模式;(3)在物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
5.什么是数据库的概念结构?试述其特点和设计策略。答: 概念结构是信息世界的结构,即概念模型,其主要特点是:(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型;(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键;(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;(4)易于向关系、网状、层次等各种数据模型转换。
概念结构的设计策略通常有四种:1)自顶向下,即首先定义全局概念结构的框架,然后逐步细化;2)自底向上,即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构;3)逐步扩张,首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构;4)混合策略,即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。
7.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生;每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。请用E-R图画出此学校的概念模型。答:各实体属性为:系:系编号,系名班级:班级号,班级名教研室:教研室号,教研室学生:学号,姓名,学历课程:课程号,课程名教员:职工号,姓名,职称联系的属性:“选修”的属性为“成绩”转换为关系模型如下:系(系编号,系名,学校名)班级(班级号,班级名,系编号)教研室(教研室号,教研室,系编号)学生(学号,姓名,学历,班级号,导师职工号)课程(课程号,课程名)教员(职工号,姓名,职称,教研室号)选修(学号,课程号,成绩)
8.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用E一R图画出此工厂产品、零件、材料、仓库的概念模型。答:各实体属性为:产品:产品号,产品名零件:零件号,零件名原材料:原材料号,原材料名,类别仓库:仓库号,仓库名各联系的属性为:产品组成:使用零件量零件制造:使用原材料量零件存储:存储量材料存放:存储量转换为关系模型如下:产品(产品号,产品名,仓库号)零件:零件号,零件名原材料:原材料号,原材料名,类别,仓库号,存放量)仓库(仓库号,仓库名)产品组成(产品号,零件号,使用零件量)零件组成(零件号,原材料号,使用原材料量)零件储存(零件号,仓库号,存储量)
9.什么是数据库的逻辑结构设计?试述其设计步骤。答: 数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E一R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。设计步骤为:(l)将概念结构转换为一般的关系、网状、层次模型;(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3)对数据模型进行优化。
《数据库系统概论》思维导图点这里奥~
版权声明文章作者:早知晓博文链接:点击此处希望大家都走在开满鲜花的路上,加油鸭~