资讯详情

数据库全册简答题

第一章 绪论

1.试用数据、数据库、数据库系统、数据库管理系统的概念。

正确答案: 数据: 描述事物的符号记录称为数据。数据有文字、图形、图像、声音、文本等。数据离不开它的语义。 *解析: 在现代计算机系统中,数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是传统数学中的数据,如整数、实数、浮点等。目前,计算机可以存储和处理广泛的对象,表示这些对象 数据也越来越复杂。 数据离不开它的语义。这个数字可以说明一件物品的价格是500元,也可以说一个学术会议有500人参加。一袋奶粉一袋奶粉重500克。 数据库: 数据库是期存储在计算机中,有组织,可共享。数据库中的数据组织、描述和存储在一定的数据模型中,具有较小的冗余性、较高的数据独立性和可扩展性,并可以与各种用户共享。 *解析: 简单地说,数据库数据具有三个特点:永久存储、组织和共享。 数据模型是数据库的核心概念。每个数据库中的数据都是个数据库中的数据。 数据库系统: 数据库系统(DBS)是指在计算机系统中引入数据库后的系统组成。数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员组成。 *解析: 数据库系统和数据库是两个概念。数据库系统是一个人统,数据库是数据库系统的一部分。但在日常工作中,人们常把数据库系统简称为数据库。希望读者能从人们讲话或文章的上下文中区分数据库系统和数据库。 不要引起混淆。 数据库管理系统: 数据库管理系统(DBMS)它是用户与操作系统之间的一层数据管理软件。用于科学地组织和存储数据,有效地获取和维护数据。DBMS主要功能包括数据定义、数据操作、数据库运行管理、数据库建立和维护。 *解析: DBMS是一个大型复杂的软件系统。是计算机中的基本软件。目前,专门开发DBMS制造商及其开发DBMS产品很多。有美国的名字IBM公司的DB2关系数据库管理系统,IMS层次数据库管理系统;美国ORACLE公司的ORACLE关系数据库管理系统;SYBASE公司的SYBASE关系数据库管理系统;美国微软公司的SQL SERVER关系数据库管理系统等。

2.使用数据库系统有什么好处?

正确答案: 使用数据库系统的优点取决于数据库管理系统的特点或优点。 使用数据库系统有很多好处,比如可以大大提高应用开发的效率,方便用户使用,减轻数据库系统管理人员维护的负担。 为什么会有这些好处,可以结合第五题来回答。 使用数据库系统可以大大提高应用开发的效率。由于在数据库系统中的应用程序不需要考虑数据定义、存储和数据访问的具体路径,这些工作是由DBMS来完成。用通俗的比喻,用DBMS就像有一个好的顾问和好的助手一样,这个助手完成了许多具体的技术工作。开发人员可以专注于应用逻辑的设计,而不用担心管理数据的许多复杂细节。 还有,当应用逻辑改变,数据的逻辑结构需要改变时,由于数据库系统提供了数据与程序之间的独立性。数据逻辑结构的变化是DBA开发人员不需要修改应用程序,也不需要修改很少的应用程序。简化了应用程序的编制,大大降低了应用程序的维护和修改。 使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为DBMS统一管理和控制数据库,包括数据的完整性和安全性、多用户并发控制、故障恢复等。DBMS执行。 简而言之,使用数据库系统有许多优点,不仅便于数据集中管理,控制数据冗余,而且有利于应用程序的开发和维护。读者可以结合具体应用,认真体验和总结自己未来的工作。

3.试用文件系统与数据库系统的区别和联系。

正确答案: 文件系统与数据库系统的区别: 文件系统面向某一应用程序,共享性差,冗余性大,独立性差,记录结构,整体无结构,应用程序自行控制。 数据库系统面向现实世界,共享性高,冗余性小,物理独立性高,逻辑独立性强,整体结构化。数据库管理系统以数据模型描述,提供数据安全性、完整性、并发控制和恢复能力。 读者可以参考《概论》书中的表1.1 相关内容。 文件系统与数据库系统的联系是: 计算机系统中管理数据的软件是文件系统和数据库系统。 *解析: 文件系统是操作系统的重要组成部分DBMS是独立于操作系统的软件。但是DBMS在操作系统的基础上实现。数据库中数据的组织和存储是通过操作系统中文件系统来实现的。 读者可参考《数据库管理系统》第十一章。或者,读者进一步学习数据库管理系统实现的相关课程(第十一章只是DBMS实现技术概述后,可以对这个问题有深入的了解和全面的回答。因为DBMS实现与操作系统中的文件系统密切相关。例如,实现数据库的基础是文件,最终将数据库的任何操作转化为文件操作。所以在DBMS实现数据库物理组织的基本问题是如何使用或选择操作系统提供的基本文件组织方法。这里我们就不具体展开了。

4.举出适合文件系统而不是数据库系统的例子;然后举出适合数据库系统的应用例子。

正确答案: ?应用例子适用于文件系统而不是数据库系统 软件或应用程序使用过程中的数据备份、临时数据存储一般更合适。 早期功能简单、固定的应用系统也适用于文件系统。 ?适用于数据库系统而库系统而不是文件系统 目前,几乎所有企业或部门的信息系统都基于数据库系统。例如,工厂管理信息系统(包括库存管理系统、材料采购系统、运行调度系统、设备管理系统、人事管理系统等多个子系统),以及学校学生管理系统、人事管理系统、图书馆图书管理系统等。适用于数据库系统。

5.测试数据库系统的特点。

正确答案: 数据库系统的主要特点是: 一、数据结构化 这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。 *分析:注意整体这个词。在数据库系统中,数据不再针对某个应用程序,而是整个组织,具有整体结构化。不仅数据是结构化的,而且数据访问单位即一次访问数据的大小也非常灵活。从某个数据项(如学生姓名)到一组记录(数千名学生记录)。在文件系统中,只有一个数据访问单元:记录。如学生的完整记录。 二、数据共享性高,冗余度低,容易扩展 数据库的数据不再面向某个应用程序,而是面向整个系统,因此可以由多个用户、多个应用程序和不同语言共享。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。 *解析: 数据共享可以大大降低数据冗余,节省存储空间,避免数据之间的不相容性和不一致性。 所谓数据面向某个应用,是指数据结构是为某个应用程序设计的,仅用于该应用程序或应用系统。可以说,数据是某个应用程序的私有资源。 所谓的弹性是指系统容易扩展和收缩,即当应用程序增加或减少时,不需要修改整个数据库的结构,或很少修改。 我们可以在不同的应用系统中使用整体数据的各种子集。当应用程序需求发生变化或增加时,只需重新选择不同的子集或添加部分数据即可满足新的需求。 三、数据独立性高 数据独立性包括数据的物理独立性和数据的逻辑独立性。 数据库管理系统的模式结构和二次图像功能保证了数据库中的数据具有较高的物理和逻辑独立性。 *解析: 所谓独立,就是互不依赖。数据独立性是指数据和程序不相互依赖。也就是说,当数据的逻辑结构或物理结构发生变化时,程序不会发生变化。数据和程序的独立性将数据的定义从程序中分离出来,数据的访问由DBMS负责了应用程序的编制,大大降低了应用程序的维护和修改。 四、数据由DBMS统一管理和控制 数据库共享是并发共享,即多个用户可以同时访问数据库中的数据,甚至同时访问数据库中的同一数据。为此,DBMS必须提供统一的数据控制功能,包括数据安全保护、数据完整性检查、并发控制和数据库恢复。 *解析: DBMS数据控制功能包括四个方面: 数据安全保护:保护数据,防止因非法使用而泄露和损坏数据; 数据完整性检查:将数据控制在有效范围内或确保数据之间的关系; 并发控制:控制和协调多用户的并发操作,保证并发操作的正确性; 数据库恢复:当计算机系统出现硬件故障、软件故障或操作员故意损坏影响数据库中数据的正确性,甚至导致数据库部分或全部数据丢失时,数据库可以从错误状态恢复到已知的正确状态(也称为完整状态或一致状态)。 以下是什么是数据库的定义: 数据库是长期存储在计算机中的大量共享数据集。 以下是什么是数据库的定义: 数据库是长期存储在计算机中的大量有组织的共享数据集。它可以由各种用户共享,具有最小的冗余和更高的数据独立性。DBMS在数据库建立、应用和维护过程中,统一控制数据库,确保数据的完整性和安全性,并在多用户同时使用数据库时并发控制系统。 数据库系统的出现使信息系统从以处理数据程序为中心转向以共享数据库为中心的新阶段。

6.数据库管理系统的主要功能是什么?

正确答案: ① 数据库定义功能; ② 数据存取功能; ③ 数据库运行管理; ④ 建立和维护数据库的功能。

7.定义并解释以下术语:DDL、DML

正确答案: DDL:定义数据语言。定义数据库模式、外模式和内模式的语言。 DML:数据操作语言。用于查询、插入、删除和修改数据库中的数据的句子。

8.数据和程序的物理独立性是什么?数据和程序的逻辑独立性是什么? 为什么数据库系统具有数据和程序的独立性?

正确答案: 数据和程序的逻辑独立性:当模式发生变化(如增加新关系、新属性、改变属性的数据类型等)时,数据库管理员会相应地改变每个外部模式/模式的图像,以保持外部模式不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。 数据和程序的物理独立性:当数据库的存储结构发生变化时,数据库管理员会相应地改变模式/内部模式图像,以保持模式不变,因此应用程序不需要改变。它保证了数据和程序的物理独立性,简称数据的物理独立性。 三级模式中数据库管理系统提供的两层图像保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性。

9.测试数据库系统的组成。

正确答案: 数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户组成。

10.尝试数据模型的概念、数据模型的作用和三个要素。

正确答案: 数据模型是数据库中抽象现实世界的工具库中用于提供信息表示和操作手段的形式构架。 一般地讲,数据模型是严格定义的概念的集合。这些概念精确地描述系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。 ① 数据结构:是所研究的对象类型的集合,是对系统的静态特性的描述。 ② 数据操作:是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。 ③ 数据的约束条件:是完整性规则的集合,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。 *解析: 数据模型是数据库系统中最重要的概念之一。同学们必须通过《概论》的学习真正掌握 数据模型的概念和作用。 数据模型是数据库系统的基础。任何一个DBMS都以某一个数据模型为基础,或者说支持某一个数据模型。 数据库系统中模型有不同的层次。根据模型应用的不同目的,可以将模型分成两类或说两个层次:一是概念模型,是按用户的观点来对数据和信息建模,用于信息世界的建模,强调语义表达能力,概念简单清晰;另一是数据模型,是按计算机系统的观点对数据建模,用于机器世界,人们可以用它定义、操纵数据库中的数据。一般需要有严格的形式化定义和一组严格定义了语法和语义的语言,并有一些规定和限制,便于在机器上实现。

11.试述概念模型的作用。

正确答案: 概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。

12.定义并解释概念模型中以下术语: 实体,实体型,实体集,属性,码,实体联系图(E-R图)

正确答案: 实体:客观存在并可以相互区分的事物叫实体。 实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体称为实体型。 实体集:同型实体的集合称为实体集。 属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。 码:唯一标识实体的属性集称为码。 实体联系图:E-R图提供了表示实体型、属性和联系的方法: • 实体型:用矩形表示,矩形框内写明实体名。 • 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。 •联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。

13.试述网状、层次数据库的优缺点。

正确答案: 层次模型的优点主要有: 1)模型简单,对具有一对多的层次关系的部门描述非常自然、直观,容易理解,这是层次数据库的突出优点; 2) 用层次模型的应用系统性能好,特别是对于那些实体间联系是固定的预先定义好的应用,采用层次模型来实现,其性能优于关系模型; 3) 次数据模型提供了良好的完整性支持。 层次模型的缺点主要有: 1) 现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等,层次模型不能自然地表示这类联系。只能通过引入冗余数据或引入虚拟结点来解决。 2 )对插入和删除操作的限制比较多。 3)查询子女结点必须通过双亲结点。 网状模型: 网状数据模型的优点主要有: 1) 能够更为直接地描述现实世界,如一个结点可以有多个双亲。 2)具有良好的性能,存取效率较高。 网状数据模型的缺点主要有: 1) 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。 2)其DDL,DML语言复杂,用户不容易使用。 由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径。因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。

14.试述关系模型的概念,定义并解释以下术语: (1)关系 (2)属性 (3)域 (4)元组 (5)主码 (6)分量 (7)关系模式

正确答案: 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 (1) 关系:一个关系对应通常说的一张表。 (2) 属性:表中的一列即为一个属性; (3) 域:属性的取值范围; (4) 元组:表中的一行即为一个元组; (5) 码:表中的某个属性组,它可以唯一确定一个元组; (6) 分量:元组中的一个属性值; (7) 关系模式:对关系的描述,一般表示为         关系名(属性1,属性2,•••,属性n)。

15.试述关系数据库的特点。

正确答案: 关系数据模型具有下列优点: • 关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。 • 关系模型的概念单一。无论实体还是实体之间的联系都用关系表示。操作的对象和操作的结果都是关系。所以其数据结构简单、清晰,用户易懂易用。 • 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。 当然,关系数据模型也有缺点,其中最主要的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统软件的难度。

16.试述数据库系统三级模式结构,这种结构的优点是什么?

正确答案: 数据库系统的三级模式结构由外模式、模式和内模式组成。(参见书上图1.29) 外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特性的描述,是所有用户的 公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部的逻辑结构,通常是模式的子集。 内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存 储方式的描述。 数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。 为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映象:外模式/模式映象和模式/内模式映象。正是这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

17.DBA的职责是什么?

正确答案: 负责全面地管理和控制数据库系统。具体职责包括: ① 决定数据库的信息内容和结构; ② 决定数据库的存储结构和存取策略; ③ 定义数据的安全性要求和完整性约束条件; ④ 监督和控制数据库的试用和运行; ⑤ 数据库系统的改进和重组。

18.系统分析员、数据库设计人员、应用程序员的职责是什么?

正确答案: 系统分析员负责应用系统的需求分析和规范说明,系统分析员要和用户及DBA相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。 数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计人员就由数据库管理员担任。 应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。

19.数据库数据具有__________、__________和__________三个基本特点。

正确答案: 永久存储 有组织 可共享

20.数据库管理系统是数据库系统的一个重要组成部分,它的功能包括__________ 、_________。

正确答案: 数据定义功能 数据操纵功能 数据库的运行管理 数据库的建立和维护功能

21.数据库系统是指在计算机系统中引入数据库后的系统,一般由__________、__________、__________和__________构成。

正确答案: 数据库 数据库管理系统(及其开发工具) 应用系统 数据库管理员

22.数据库管理技术的发展是与计算机技术及其应用的发展联系在一起的,它经历了三个阶段:__________阶段,__________阶段和__________阶段。

正确答案: 人工管理 文件系统 数据库系统

23.数据库具有数据结构化、最小的__________、较高的__________等特点 。

正确答案: 冗余度 数据独立性

24.DBMS还必须提供__________保护__________检查、__________、__________等数据控制功能。

正确答案: 数据的安全性 数据的完整性 并发控制 数据库恢复

25.模式(Schema)是数据库中全体数据的__________和__________的描述,它仅仅涉及到__________的描述,不涉及到具体的值。

正确答案: 逻辑结构 特征 型

26.三级模式之间的两层映象保证了数据库系统中的数据能够具有较高的__________和__________。

正确答案: 逻辑独立性 物理独立性

27.根据模型应用的不同目的,可以将这些模型划分为两类,它们分别属于两个不同的层次。第一类是__________,第二类是__________。

正确答案: 概念模型 数据模型

28.数据模型的三要素是指__________,。实际数据库系统中所支持的主要数据模型是__________,

正确答案: 数据结构 数据操作 完整性约束 关系模型 层次模型 网状模型

29.数据模型中的__________是对数据系统的静态特征描述,包括数据结构和数据间联系的描述,__________是对数据库系统的动态特征描述,是一组定义在数据上的操作,包括操作的涵义、操作符、运算规则及其语言等。

正确答案: 数据结构 数据操作

30.用树型结构表示实体类型及实体间联系的数据模型称为__________模型,上一层的父结点和下一层的子结点之间的联系是 的联系。

正确答案: 层次 一对多

31.用有向图结构表示实体类型及实体间联系的数据模型称为__________模型,数据之间的联系通常通过__________实现。

正确答案: 网状 指针

32.

正确答案: 关系模型 关系数据库系统

33.关系的完整性约束条件包括三大类:__________、

正确答案: 实体完整性 参照完整性 用户定义的完整性

第二章 关系数据库

1.关系数据模型中,二维表的列称为________,二维表的行称为________。

正确答案: 属性 记录或元组

2.用户选作元组标识的一个候选码为________,其属性不能取________。

正确答案: 主码 空值

3.关系代数运算中,传统的集合运算有_____,,_____。

正确答案: 笛卡尔积 并 交 差

4.关系代数运算中,基本的运算是________,

正确答案: 并 差 笛卡尔积 选择 投影

5.关系代数运算中,专门的关系运算有________,

正确答案: 选择 投影 连接

6.关系数据库中基于数学上的两类运算是________和________。

正确答案: 关系代数 关系演算

7.关系代数中,从两个关系中找出相同元组的运算称为________运算。

正确答案: 交

8.R S表示R与S的________。

正确答案: 自然连接

9.设有学生关系:S(XH,XM,XB,NL,DP)。在这个关系中,XH表示学号,XM表示姓名,XB表示性别,NL表示年龄,DP表示系部。查询学生姓名和所在系的投影操作的关系运算式是________________。

正确答案: π2,5(S) 或 πXM,DP(S)

10.在“学生-选课-课程”数据库中的3个关系如下:S(S#,SNAME,SEX,AGE);SC(S#,C#,GRADE); C(C#,CNAME,TEACHER),查找选修“数据库技术”这门课程学生的学生名和成绩,若用关系代数表达式来表示为________________。

正确答案: πSNAME,GRADE(S(SC(σCNAME=’数据库技术’©)))

11.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是________,系关系的外码是________,学生关系的主码是________,学生关系的外码是________。

正确答案: 系编号 没有 学号 系编号

  1. 试述关系模型的三个组成部分。

正确答案: 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

  1. 试述关系数据语言的特点和分类。

正确答案: 关系数据语言可以分为三类: 关系代数语言,例如ISBL 关系演算语言,包括:元组关系演算语言,例如APLHA,QUEL 域关系演算语言,例如QBE 具有关系代数和关系演算双重特点的语言 例如SQL 这些关系数据语言的共同特点是,具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。

14.定义并理解下列术语,说明它们之间的联系与区别: (1) 域,笛卡尔积,关系,元组,属性 (2)主码,候选码,外部码 (3)关系模式,关系,关系数据库

正确答案: 域:域是一组具有相同数据类型的值的集合。 笛卡尔积: 给定一组域D1,D2,…,Dn,这些域中可以有相同的。这组域的笛卡尔积为: D1×D2×…×Dn={ (d1,d2,…,dn)|diDi,i=1,2,…,n } 其中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)。 元素中的每一个值di叫作一个分量(Component)。 关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为 R(D1,D2,…,Dn) 元组:关系中的每个元素是关系中的元组。 属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可 以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。 主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)。 外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码(Foreign key),简称外码。 基本关系R称为参照关系(Referencing relation),基本关系S称为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S可以是相同的关系。 关系模式:关系的描述称为关系模式(Relation Schema)。它可以形式化地表示为: R(U,D,dom,F) 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。 关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为 R(D1,D2,…,Dn) 关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。 关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

15.试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?

正确答案: 关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。 1) 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。 2) 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必 须为: • 或者取空值(F的每个属性值均为空值); • 或者等于S中某个元组的主码值。 3) 用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。    在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定。但前提条件是该外部码属性不是其所在关系的主属性。 例如,在下面的“学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空。其语义是,该学生的专业尚未确定。 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空。因为关系模型必须满足实体完整性。 课程(课程号,课程名,学分) 选修(学号,课程号,成绩)

  1. 等值连接与自然连接的区别是什么?

正确答案: 连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equi-join),另一种是自然连接(Natural join)。 Θ为“=”的连接运算称为等值连接。 它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。即等值连接为: R A=B S = { tr ts| tr∈R ∧ ts∈S ∧ tr[A] = ts[B] }   自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作: R S = { tr ts| tr∈R ∧ ts∈S ∧ tr[B] = ts[B] }

  1. 代数的基本运算有哪些?如何用这些基本运算来表示其他的关系基本运算?

正确答案: 在八种关系代数运算中,并、差、笛卡尔积、投影和选择五种运算为基本的运算。其他三种运算,即交、连接和除,均可以用五种基本运算来表达。 交运算: R  S = R-(R-S) 连接运算 R S = AB(RS) AB 除运算:R(X,Y) S(Y,Z) = X® - X ( X®  Y(S) R ) X、Y、Z 为属性组,R中的Y和S中的Y可以有不同的属性名,但必须出自相同的域集。

第三章 关系数据库标准语言SQL

1.SQL的中文全称是________________。

正确答案: 结构化查询语言

2.SQL语言除了具有数据查询和数据操纵功能之外,还具有________和________的功能,它是一个综合性的功能强大的语言。

正确答案: 数据定义 数据控制

3.在关系数据库标准语言SQL中,实现数据检索的语句命令是________。

正确答案: SELECT

4.在SQL语言的结构中,________有对应的物理存储,而________没有对应的物理存储。

正确答案: 基本表 视图

5.关系R(A,B,C)和S(A,D,E,F),R和S有相同属性A,若将关系代数表达式:πR.A,R.B,S.D,S.F(R∞ S)用SQL语言的查询语句表示,则为: SELECT R.A,R.B,S.D,S.F FROM R,S WHERE________________。

正确答案: R.A=S.A

6.视图是从________中导出的表,数据库中实际存放的是视图的________。

正确答案: 基本表或视图 定义

7.关系数据操作语言(DML)的特点是:操作对象与结果均为关系、操作的________、语言一体化并且是建立在数学理论基础之上。

正确答案: 非过程性强

8.设有如下关系表R、S、T: R(BH,XM,XB,DWH) S(DWH,DWM) T(BH,XM,XB,DWH) (1) 实现R∪T的SQL语句是__。 (2) 实现σ DWH=’100’ ® 的SQL语句是__。 (3) 实现πXM,XB ® 的SQL语句是__。 (4) 实现πXM,DWH (σ XB=’女’ ®) 的SQL语句是__。 (5) 实现R∞S的SQL语句是__。 (6) 实现πXM,XB,DWH (σ XB=’男’ (R∞S)) 的SQL语句是__。

正确答案: (1) SELECT * FROM R UNION SELECT * FROM T (2) SELECT * FROM R WHERE DWH=’100’ (3) SELECT XM , XB FROM R (4) SELECT XM,DWH FROM R WHERE XB=’女’ (5) SELECT R.BH , R.XM , R.XB , R.DWH , S.DWM FROM R , S WHERE R.DWH=S.DWH (6) SELECT R.XM , R.XB , S.DWH FROM R , S WHERE R.DWH=S.DWH AND R.XB=’男’

9.设有如下关系表R:R(NO,NAME,SEX,AGE,CLASS),主码是NO (1) 插入一个记录(25,“李明”,“男”,21,“95031”);。 (3) 将学号为10的学生姓名改为“王华”;。 (5) 删除学号为20的学生记录;

正确答案: (1) INSERT INTO R VALUES(25,“李明”,“男”,21,“95031”) (2) INSERT INTO R(NO,NAME,CLASS) VALUES(30,“郑和”,“95031”) (3) UPDATE R SET NAME=“王华” WHERE NO=10 (4) UPDATE R SET CLASS=“95091” WHERE CLASS=“95101” (5) DELETE FROM R WHERE NO=20 (6) DELETE FROM R WHERE NAME LIKE “王%

10.试述SQL语言的特点。

正确答案: (1)综合统一。 SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。 (2)高度非过程化。用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。 (3)面向集合的操作方式。SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。 (4)以同一种语法结构提供两种使用方式。SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用。 (5)语言简捷,易学易用。

11.试述SQL的定义功能。

正确答案: SQL的数据定义功能包括定义表、定义视图和定义索引。 SQL语言使用CREATE TABLE语句建立基本表,ALTER TABLE语句修改基本表定义,DROP TABLE语句删除基本表; 使用CREATE INDEX语句建立索引, DROP INDEX语句删除索引; 使用CREATE VIEW命令建立视图,DROP VIEW语句删除视图。

12.用SQL语句建立第2章习题5中的四个表。

正确答案: 对于S表:S( SNO,SNAME,STATUS,CITY); 建S表 CREATE TABLE S (SNO CHAR(3), SNAME CHAR(10), STATUS CHAR(2), CITY CHAR(10)); P(PNO,PNAME,COLOR,WEIGHT); 建P表 CREATE TABLE P (PNO CHAR(3), PNAME CHAR(10), COLOR CHAR(4), WEIGHT INT); J(JNO,JNAME,CITY); 建J表 CREATE TABLE J (JNO CHAR(3), JNAME CHAR(10), CITY CHAR(10)); SPJ(SNO,PNO,JNO,QTY); 建SPJ表 CREATE TABLE SPJ (SNO CHAR(3), PNO CHAR(3), JNO CHAR(3), QTY INT);

13.针对上题中建立的四个表试用SQL语言完成第2章习题5中的查询。

正确答案: (1) 求供应工程J1零件的供应商号码SNO; SELECT SNO FROM SPJ WHERE JNO=‘J1’; (2) 求供应工程J1零件P1的供应商号码SNO; SELECT SNO FROM SPJ WHERE JNO=‘J1’ AND PNO=‘P1’; (3) 求供应工程J1零件为红色的供应商号码SNO; SELECT SNO /这是嵌套查询/ FROM SPJ WHERE JNO=‘J1’ AND PNO IN /*找出红色的零件的零件号码PNO */ (SELECT PNO FROM P /从P表中找/ WHERE COLOR=‘红’); 或 SELECT SNO FROM SPJ,P /这是两表连接查询/ WHERE JNO=‘J1’ /这是复合条件连接查询/ AND SPJ.PNO=P.PNO AND COLOR=‘红’; (4) 求没有使用天津供应商生产的红色零件的工程号JNO; *解析: 读者可以对比第2章习题5中用ALPHA语言来完成该查询的解答。如果大家理解了有关该题的解析说明,那么本题的解答可以看成是把关系演算用SQL来表示的过程。 GET W (J.JNO): SPJX( SPJX .JNO=J.JNO  SX ( SX.SNO=SPJX .SNO  SX .CITY=‘天津’  PX(PX .PNO=SPJX .PNO  PX .COLOR=’ 红’ )) 这里的第一种解法是使用多重嵌套查询,第二种方法的子查询是一个多表连接。 注意:从J表入手,以包含那些尚未使用任何零件的工程号。 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ.JNO=J.JNO AND SNO IN /天津供应商的SNO/ (SELECT SNO FROM S WHERE CITY=‘天津’) AND PNO IN /红色零件的PNO/ (SELECT PNO FROM P WHERE COLOR=‘红’)); 或 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ, S, P WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO AND S.CITY=‘天津’ AND P. COLOR=‘红’); //删除: 本例中父查询和子查询均引用了Student表,可以像自身连接那样用别名将父查询中的Student表与子查询中的Student表区分开:// (5) 求至少用了供应商S1所供应的全部零件的工程号JNO (类似于P113例44)。 *解析: 本查询的解析可以参考第二章第5题,用ALPHA语言的逻辑蕴函来表达。 上述查询可以抽象为: 要求这样的工程x,使 (y) p  q为真。 即: 对于所有的零件y,满足逻辑蕴函 p  q: P表示谓词:“供应商S1供应了零件y” q表示谓词:“工程x选用了零件y” 即 只要“供应商S1供应了零件y”为真,则“工程x选用了零件y”为真。 逻辑蕴函可以转换为等价形式: (y)p  q≡  (y ((p  q ))≡ (y (( p∨ q)≡ y(p∧q) 它所表达的语义为:不存在这样的零件y,供应商S1供应了y,而工程x没有选用y。 用SQL语言表示如下: SELECT DISTINCT JNO FROM SPJ SPJZ WHERE NOT EXISTS /*这是一个相关子查询 */ (SELECT * /父查询和子查询均引用了SPJ表/ FROM SPJ SPJX /用别名将父查询与子查询中的SPJ表区分开/ WHERE SNO=‘S1’ AND NOT EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY.PNO=SPJX.PNO AND SPJY.JNO=SPJZ.JNO AND SPJY.SNO=’S1’));

14.针对习题3中的四个表试用SQL语言完成以下各项操作: (1) 找出所有供应商的姓名和所在城市。 (2) 找出所有零件的名称、颜色、重量。 (3) 找出使用供应商S1所供应零件的工程号码。 (4) 找出工程项目J2使用的各种零件的名称及其数量。 (5) 找出上海厂商供应的所有零件号码。 (6) 找出使用上海产的零件的工程名称。 (7) 找出没有使用天津产的零件的工程号码。 (8) 把全部红色零件的颜色改成蓝色。 (9) 由S5供给J4的零件P6改为由S3供应,请作必要的修改。

正确答案: (1) 找出所有供应商的姓名和所在城市。 SELECT SNAME, CITY FROM S; (2) 找出所有零件的名称、颜色、重量。 SELECT PNAME, COLOR, WEIGHT FROM P; (3) 找出使用供应商S1所供应零件的工程号码。 SELECT JNO FROM SPJ WHERE SNO=‘S1’; (4) 找出工程项目J2使用的各种零件的名称及其数量。 SELECT P.PNAME, SPJ.QTY FROM P, SPJ WHERE P.PNO=SPJ.PNO AND SPJ.JNO=‘J2’; (5) 找出上海厂商供应的所有零件号码。 SELECT DISTINCT PNO FROM SPJ WHERE SNO IN (SELECT SNO FROM S WHERE CITY=‘上海’); (6) 找出使用上海产的零件的工程名称。 SELECT JNAME FROM J, SPJ, S WHERE J. JNO=SPJ. JNO AND SPJ. SNO=S.SNO AND S.CITY=‘上海’; 或 SELECT JNAME FROM J WHERE JNO IN (SELECT JNO FROM SPJ, S WHERE SPJ. SNO=S.SNO AND S.CITY=‘上海’); (7) 找出没有使用天津产的零件的工程号码。 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ.JNO=J.JNO AND SNO IN (SELECT SNO FROM S WHERE CITY=‘天津’)); 或 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ, S WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND S.CITY=‘天津’); (8) 把全部红色零件的颜色改成蓝色。 UPDATE P SET COLOR=‘蓝’ WHERE COLOR=‘红’ ; (9) 由S5供给J4的零件P6改为由S3供应,请作必要的修改。 UPDATE SPJ SET SNO=‘S3’ WHERE SNO=‘S5’ AND JNO=‘J4’ AND PNO=‘P6’; (10) 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。 DELETE FROM SPJ WHERE SNO=‘S2’; DELETE FROM S WHERE SNO=‘S2’; *解析:注意删除顺序,应该先从SPJ表中删除供应商S2所供应零件的记录,然后从从S表中删除S2。(11) 请将 (S2,J6,P4,200) 插入供应情况关系。 INSERT INTO SPJ(SNO, JNO, PNO, QTY) /INTO子句中指明列名/ VALUES (S2,J6,P4,200); /插入的属性值与指明列要对应/ 或 INSERT INTO SPJ /INTO子句中没有指明列名/ VALUES (S2,P4,J6,200); /插入的记录在每个属性列上有值/ /并且属性列要和表定义中的次序对应/

15.什么是基本表?什么是视图?两者的区别和联系是什么?

正确答案: 基本表是本身独立存在的表,在SQL中一个关系就对应一个表。 视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。

16.试述视图的优点。

正确答案: (1)视图能够简化用户的操作。 (2)视图使用户能以多种角度看待同一数据。 (3)视图对重构数据库提供了一定程度的逻辑独立性。 (4)视图能够对机密数据提供安全保护。

17.所有的视图是否都可以更新?为什么?

正确答案: 不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。如《概论》3.5.1中的视图S_G(学生的学号及他的平均成绩) CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) /设SC表中“成绩”列Grade为数字型/ FROM SC GROUP BY Sno; 要修改平均成绩,必须修改各科成绩,而我们无法知道哪些课程成绩的变化导致了平均成绩的变化。

18.哪类视图是可以更新的,哪类视图是不可更新的? 各举一例说明。

正确答案: 基本表的行列子集视图一般是可更新的。如《概论》3.5.3中的例1。 若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。 如《概论》3.5.3中的S_G视图。

19.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询: (1) 找出三建工程项目使用的各种零件代码及其数量。 (2) 找出供应商S1的供应情况。

正确答案: 建视图: CREATE VIEW V_SPJ AS SELECT SNO, PNO, QTY FROM SPJ WHERE JNO= (SELECT JNO FROM J WHERE JNAME=‘三建’); 对该视图查询: (1) 找出三建工程项目使用的各种零件代码及其数量。 SELECT PNO, QTY FROM V_SPJ; (2) 找出供应商S1的供应情况。 SELECT PNO, QTY /* S1供应三建工程的零件号和对应的数量*/ FROM V_SPJ WHERE SNO=‘S1’;

20.针对习题3建立的表,用SQL语言完成以下各项操作: (1) 把对表S的INSERT权限授予用户张勇,并允许他再将此权限授予其他用户。 (2) 把查询SPJ表和修改QTY属性的权限授给用户李天明。

正确答案: (1) 把对表S的INSERT权限授予用户张勇,并允许他再将此权限授予其他用户。 GRANT INSERT ON TABLE S TO 张勇 WITH GRANT OPTION; (2) 把查询SPJ表和修改QTY属性的权限授给用户李天明。 GRANT SELECT, UPDATE(QTY) ON TABLE SPJ TO 李天明;

21.在嵌入式SQL中是如何区分SQL语句和主语言语句的?

正确答案: 在SQL语句前加上前缀EXEC SQL。SQL语句的结束标志则随主语言的不同而不同。 例如在PL/1和C中以分号(;)结束,在COBOL中以END-EXEC结束。

22.在嵌入式SQL中是如何解决数据库工作单元与源程序工作单元之间通信的?

正确答案: 数据库工作单元与源程序工作单元之间的通信主要包括: (1)SQL通信区SQLCA,用来向主语言传递SQL语句的执行状态信息,使主语言能够根据此信息控制程序流程。 (2)主变量(Host Variable),1)用来实现主语言向SQL语句提供参数。 2)将SQL语句查询数据库的结果交主语言进一步处理 (3)游标(Cursor),解决集合性操作语言与过程性操作语言的不匹配通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。 (详细解释参见《概论》3.7.2 )

23.在嵌入式SQL中是如何协调SQL语言的集合处理方式和主语言的单记录处理方式的?

正确答案: 用游标来协调这两种不同的处理方式。游标区是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。

第四章 关系系统及其查询优化

1.试述查询优化的一般准则。

正确答案: 下面的优化策略一般能提高查询效率: (1)选择运算应尽可能先做。 (2)把投影运算和选择运算同时进行。 (3)把投影同其前或其后的双目运算结合起来执行。 (4)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。 (5)找出公共子表达式。 (6)选取合适的连接算法

2.试述查询优化的一般步骤。

正确答案: 各个关系系统的优化方法不尽相同,大致的步骤可以归纳如下: (1)把查询转换成某种内部表示,通常用的内部表示是语法树。 (2)把语法树转换成标准(优化)形式。 即利用优化算法,把原始的语法树转换成优化的形式。 (3)选择低层的存取路径。 (4)生成查询计划,选择代价最小的。

3.试给出各类关系系统的定义:最小关系系统;关系上完备的系统;全关系型的关系系统。

正确答案: 最小关系系统: 一个系统可定义为最小关系系统,当且仅当它: (1)支持关系数据库(关系数据结构)。 从用户观点看,关系数据库由表构成,并且只有表这一种结构。 (2)支持选择、投影和(自然)连接运算,对这些运算不必要求定义任何物理存取路径。 关系上完备的系统: 这类系统支持关系数据结构和所有的关系代数操作(或者功能上与关系代数等价的操作)。 全关系型的关系系统: 这类系统支持关系模型的所有特征。即不仅是关系上完备的而且支持数据结构中域的概念,支持实体完整性和参照完整性。

4.试述全关系型系统应满足的十二条准则,以及十二条基本准则的实际意义和理论意义。

正确答案: 关系模型的奠基人E.F.Codd具体地给出了全关系型的关系系统应遵循的十二条基本准则。从实际意义上看,这十二条准则可以作为评价或购买关系型产品的标准。从理论意义上看,它是对关系数据模型的具体而又深入的论述,是从理论和实际紧密结合的高度对关系型DBMS的评述。 准则0 一个关系型的DBMS必须能完全通过它的关系能力来管理数据库。 准则1 信息准则。关系型DBMS的所有信息都应在逻辑一级上用一种方法即表中的值显式地表示。 准则2 保证访问准则。依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项(分量值)。 准则3 空值的系统化处理。全关系型的DBMS应支持空值的概念,并用系统化的方式处理空值。 准则4 基于关系模型的动态的联机数据字典。数据库的描述在逻辑级上应该和普通数据采用同样的表示方式,使得授权用户可以使用查询一般数据所用的关系语言来查询数据库的描述信息。 准则5 统一的数据子语言准则。 准则6 视图更新准则。所有理论上可更新的视图也应该允许由系统更新。 准则7 高级的插入、修改和删除操作。 准则8 数据物理独立性。无论数据库的数据在存储表示或存取方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性。 准则9 数据逻辑独立性。当对基本关系进行理论上信息不受损害的任何改变时,应用程序和终端活动都保持逻辑上的不变性。 准则l0 数据完整性的独立性。关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的,而不是在应用程序中加以定义的。 准则11 分布独立性。关系型DBMS具有分布独立性。 准则12 无破坏准则。如果一个关系系统具有一个低级(指一次一个记录)语言,则这个低级语言不能违背或绕过完整性准则。

5.试述查询优化在关系数据库系统中的重要性和可能性。

正确答案: 重要性:关系系统的查询优化既是RDBMS实现的关键技术又是关系系统的优点所在。它减轻了用户选择存取路径的负担。用户只要提出“干什么”,不必指出“怎么干”。 查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化”做得更好。 可能性: 这是因为: (1)优化器可以从数据字典中获取许多统计信息,例如各个关系中的元组数、关系中每个属性值的分布情况、这些属性上是否有索引、是什么索引,B+树索引还是HASH索引?唯一索引?组合索引?等等。优化器可以根据这些信息选择有效的执行计划,而用户程序则难以获得这些信息。 (2)如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适应的执行计划。在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的。 (3)优化器可以考虑数十甚至数百种不同的执行计划,从中选出较优的一个,而程序员一般只能考虑有限的几种可能性。 (4)优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握。系统的自动优化相当于使得所有人都拥有这些优化技术。

第五章 关系数据理论

  1. 在关系模式R(D,E,G)中,存在函数依赖关系{E→D,(D,G)→E},则候选码是__________,关系模式R(D,E,G)属于____________。

正确答案: (E,G),(D,G) 3NF

  1. 理解并给出下列术语的定义: 函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、 外码、全码(All-key)、1NF、2NF、3NF、BCNF、多值依赖、4NF。

正确答案: 函数依赖:设R (U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R (U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同, 而在Y上的属性值不同, 则称“X函数确定Y"或“Y函数依赖于X",记作X→Y。 *解析: 1)函数依赖是最基本的一种数据依赖,也是最重要的一种数据依赖。 2)函数依赖是属性之间的一种联系,体现在属性值是否相等。由上面的定义可以知道,如果X→Y,则r中任意两个元组,若它们在X上的属性值相同,那么在Y上的属性值一定也相同。 3)我们要从属性间实际存在的语义来确定他们之间的函数依赖,即函数依赖反映了(描述了)现实世界的一种语义。 4)函数依赖不是指关系模式R的在某个时刻的关系(值)满足的约束条件,而是指R任何时刻的一切关系均要满足的约束条件。 答: 完全函数依赖、部分函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X,都有X′→Y,则称Y对X完全函数依赖,记作: 若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作: 传递依赖:在R(U)中,如果X →Y,(Y  X),Y →X,Y→Z,则称Z对X传递函数依赖。 候选码、主码: 设K为R中的属性或属性组合,若K → U则K为R的候选码(Candidate key)。若候选码多于一个,则选定其中的一个为主码(Primary key)。 *解析: 1) 这里我们用函数依赖来严格定义码的概念。在第二章中我们只是描述性地定义码(可以复习2.2.1):若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。 2)因为码有了严格定义,同学在学习了《概论》5.3数据依赖的公理系统后就可以从R的函数依赖集F出发,用算法来求候选码。 答: 外码:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码(Foreign key)也称外码。 全码:整个属性组是码,称为全码(All-key)。 答: 1NF:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。 *解析:第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。 答: 2NF:若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF。 3NF:关系模式R 中若不存在这样的码X,属性组Y及非主属性Z(Z  Y)使得X→Y,(Y → X)Y→Z,成立,则称R  3NF。 BCNF:关系模式R 1NF。若X→Y且Y  X时X必含有码,则R  BCNF。 *解析: 同学们要真正理解这些范式的内涵。各种范式之间的联系:5NF 4NF BCNF 3NF 2NF lNF(《概论》上图5.2)。能够理解为什么有这种包含关系。 答: 多值依赖:设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。 4NF:关系模式R  lNF,如果对于R的每个非平凡多值依赖X→→Y(Y  X),X都含有码,则称R  4NF。 *解析: 对于多值依赖的定义有多种。《概论》上定义 5.9后面又给出了一种等价的定义。习题中的第4题是另一种等价的定义。同学们可以对比不同的定义来理解多值依赖。选择自己容易理解的一种定义来掌握多值依赖概念。

  1. 在关系模式R(A,C,D)中,存在函数依赖关系{ A→C,A→D },则候选码是___________ ,关系模式R(A,C,D)最高可以达到_____________ 。

正确答案: A BCNF

4.试由Armolabel公理系统推导出下面三条推理规则: (1) 合并规则:若X→Z,X→Y,则有X→YZ (2) 伪传递规则:由X→Y,WY→Z有XW→Z (3) 分解规则:X→Y,Z Y,有X→Z

正确答案: (1) 已知X→Z,由增广律知XY→YZ,又因为X→Y,可得XX→XY→YZ,最后根据传递律得X→YZ。 (2) 已知X→Y,据增广律得XW→WY,因为WY→Z,所以XW→WY→Z,通过传递律可知XW→Z。 (3) 已知Z Y,根据自反律知Y→Z,又因为X→Y,所以由传递律可得X→Z。

5.关于多值依赖的另一种定义是: 给定一个关系模式R(X,Y,Z),其中X,Y,Z可以是属性或属性组合。 设x∈X,y∈Y,z∈Z,xz在R中的像集为: Yx z = {r.Y | r.X=x ∧ r.Z = z ∧ rR} 定义 R(X,Y,Z)当且仅当Yxz =Yxz′对于每一组(x,z,z′)都成立,则Y对X多值依赖,记作X→→Y。这里,允许Z为空集,在Z为空集时,称为平凡的多值依赖。 请证明这里的定义和《概论》5.2.7节中定义5.9是等价的。

正确答案: 设Yxz=Yxz’对于每一组(x,z,z′)都成立,现证其能推出定义5.9的条件: 设s、t是关系r中的两个元组,s[X]= t[X],由新定义的条件知对于每一个z值,都对应相同的一组y值。这样一来,对相同的x值,交换y值后所得的元组仍然属于关系r,即定义5.9的条件成立; 如果定义5.9的条件成立,则对相同的x值,交换y值后所得的元组仍然属于关系r,由于任意性及其对称性,可知每个z值对应相同的一组y值,所以Yxz=Yxz’对于每一组(x,z,z′)都成立。 综上可知,新定义和定义5.9的条件是等价的,所以新定义和定义5.9是等价的。

6.试举出三个多值依赖的实例。

正确答案: (1) 关系模式MSC(M,S,C)中,M表示专业,S表示学生,C表示该专业的必修课。假设每个专业有多个学生,有一组必修课。设同专业内所有学生的选修的必修课相同,实例关系如下。按照语义对于M的每一个值M i,S有一个完整的集合与之对应而不问C取何值,所以M→→S。由于C与S的完全对称性,必然有M→→C成立。 (2) 关系模式ISA(I,S,A)中,I表示学生兴趣小组,S表示学生,A表示某兴趣小组的活动项目。假设每个兴趣小组有多个学生,有若干活动项目。每个学生必须参加所 在兴趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生参加。 按照语义有I→→S,I→→A成立。 (3) 关系模式RDP(R,D,P)中,R表示医院的病房,D表示责任医务人员,P表示病人。假设每个病房住有多个病人,有多个责任医务人员负责医治和护理该病房的所有病人。按照语义有R→→D,R→→P成立。

7.试证明《概论》上给出的关于FD和MVD公理系统的A4,A6和A8。

正确答案: A4:若X→→Y,VWU,则XW→→YV 设Z=U-X-Y 已知X→→Y,设r是R上的任一关系,s、t∈r,且t[X]=s[X],则存在元组p、q∈r,使p[X]=q[X]=t[X],而p[Y]=t[Y],p[Z]=s[Z],q[Y]=s[Y],q[Z]=t[Z]。 设t[XW]=s[XW],我们以上构造的元组p和q,是某部分属性在s和t上翻转而成,所以p[W]=q[W],可知p[XW]=q[XW],同理p[YV]=t[YV](由VW知t[V]=s[V]),q[YV]=s[YV],p[U-YV-XW]=sU-YV-XW,q[U-YV-XW]=t[U-YV-XW]。所以XW→→YV。 A6:若X→→Y,Y→→Z则X→→Z-Y 由Y→→Z容易证得Y→→Z-Y。 设R1=U-X-Y,R2=U-Y-Z,R3=U-X-Z+Y。 已知X→→Y,设r是R上的任一关系,s、t∈r,且t[X]=s[X],则存在元组p、q∈r,使p[X]=q[X]=t[X],而p[Y]=t[Y],p[R1]=s[R1],q[Y]=s[Y],q[R1]=t[R1]。 对元组t、p,已知t[Y]=p[Y],t[X]=p[X],由Y→→Z-Y知:存在元组m∈r,使m[Z-Y]=p[Z-Y],m[R2]=t[R2]。因为(Z-Y)R1,又p[R1]=s[R1],所以m[Z-Y]=s[Z-Y]。因为元组p和s在除属性Y之外的属性上值相等,所以m[R2]=t[R2],另外元组m是由元组t和p交换某些属性上的值而产生的,而t和p在属性X上值相等,显然m[X]=t[X],所以m[U-(Z-Y)]=t[U-(Z-Y)],即m[R3]=t[R3]。 对元组s、q,同理可知s[Y]=q[Y],存在元组n,使n[Z-Y]=t[Z-Y],即n[R3]=s[R3]。 综上所述,对t、s∈r,t[X]=s[X],存在元组m、n∈r,使m[X]=n[X]=t[X],而m[Z-Y]=s[Z-Y],m[R3]=t[R3],n[Z-Y]=t[Z-Y],n[R3]=s[R3]。 A8:若X→→Y,W→Z,W∩Y=Φ,ZY,则X→Z。 设r是R上的任一关系,对任意s、t∈r,若t[X]=s[X],设R1=U-X-Y,则根据X→→Y知:存在元组p、q∈r,使p[X]=q[X]=t[X],而p[Y]=t[Y],p[R1]=s[R1],q[Y]=s[Y],q[R1]=t[R1]。因为W∩Y=Φ,所以s[W]=p[W],又W→Z,所以s[Z]=p[Z];因为ZY,且p[Y]=t[Y],所以p[Z]=t[Z];所以可得t[Z]=s[Z],即X→Z。

8.设关系模式为R(U,F),X,Y为属性集,X,YU。证明: (1)XXF+ (2)(XF+)F+=XF+ (3)若XY则XF+YF+ (4)UF+=U

正确答案: (1)因为X→X 所以XXF+ (根据XF+的定义) (2) *解析 1 要证明(XF+)F+=XF+ 只要证明 XF+ (XF+)F+ 并且(XF+)F+  XF+ 而XF+ (XF+)F+ 是显然的,因此只要证明(XF+)F+  XF+ 2 这里的证明要用集合论的基本知识,同学们应该复习一下有关集合论中的有关概念和证明方法。 证明:下面求证(XF+)F+XF+ 任意A∈(XF+)F+,(由题意知)存在B∈XF+,使B→A能由F根据Armlabel公理导出,而从B∈XF+ 可知X→B能由F根据Armlabel公理导出,根据公理中的传递律可知X→A能由F根据Armlabel公理导出,所以A∈XF+,因此(XF+)F+  XF+。 所以(XF+)F+=XF+。 (3)对任意A∈XF+ ,可知X→A能由F根据Armlabel公理导出,因为XY,由自反律可以得Y→X,由传递律得Y→A,所以A∈YF+ 。 XF+YF+ 得证。 (4) *解析 要证明UF+=U 只要证明 U UF+ 并且 UF+ U U UF+ 是显然的; 下面证明UF+ U,即证U由F据Armlabel公理推出

标签: j6d系列矩形电连接器j6w3204tj圆形连接器2004tj1l圆形电连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台