数据库系统教程_课后答案(施伯乐)(第三版)

更新时间:2023-04-10 06:55:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1章数据库概论

1.1 基本内容分析

1.1.1 本章的重要概念

(1)DB、DBMS和DBS的定义

(2)数据管理技术的发展阶段

人工管理阶段、文件系统阶段、数据库系统阶段和高级数据库技术阶段等各阶段的特点。

(3)数据描述

概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述(1:1,1:N,M:N)。

(4)数据模型

数据模型的定义,两类数据模型,逻辑模型的形式定义,ER模型,层次模型、网状模型、关系模型和面向对象模型的数据结构以及联系的实现方式。

(5)DB的体系结构

三级结构,两级映像,两级数据独立性,体系结构各个层次中记录的联系。

(6)DBMS

DBMS的工作模式、主要功能和模块组成。

(7)DBS

DBS的组成,DBA,DBS的全局结构,DBS结构的分类。

1.1.2本章的重点篇幅

(1)教材P23的图1.24(四种逻辑数据模型的比较)。

(2)教材P25的图1.27(DB的体系结构)。

(3)教材P28的图1.29(DBMS的工作模式)。

(4)教材P33的图1.31(DBS的全局结构)。

1.2 教材中习题1的解答

1.1 名词解释

·逻辑数据:指程序员或用户用以操作的数据形式。

·物理数据:指存储设备上存储的数据。

·联系的元数:与一个联系有关的实体集个数,称为联系的元数。

·1:1联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么E1和E2的联系称为“1:1联系”。

·1:N联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中一个实体有联系,那么E1和E2的联系是“1:N联系”。

·M:N联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1和E2的联系称为“M:N联系”。

·数据模型:能表示实体类型及实体间联系的模型称为“数据模型”。

·概念数据模型:独立于计算机系统、完全不涉及信息在计算机中的表示、反映企业组织所关心的信息结构的数据模型。

·结构数据模型(或逻辑数据模型):与DBMS有关的,直接面向DB的逻辑结构、从计算机观点对数据建模的数据模型。

·层次模型:用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型。

·网状模型:用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。

·关系模型:用二维表格表达实体集的数据模型。

·外模式:是用户用到的那部分数据的描述。

·概念模式:数据库中全部数据的整体逻辑结构的描述。

·内模式:DB在物理存储方面的描述。

·外模式/模式映象:用于定义外模式和概念模式之间数据结构的对应性。

(2003/9/21)(GJ-DA)(共2页)目录--1

·模式/内模式映象:用于定义概念模式和内模式之间数据结构的对应性。

·数据独立性:应用程序和DB的数据结构之间相互独立,不受影响。

·物理数据独立性:在DB的物理结构改变时,尽量不影响应用程序。

·逻辑数据独立性:在DB的逻辑结构改变时,尽量不影响应用程序。

·主语言:编写应用程序的语言(如C一类高级程序设计语言),称为主语言。

·DDL:定义DB三级结构的语言,称为DDL。

·DML:对DB进行查询和更新操作的语言,称为DML。

·过程性语言:用户编程时,不仅需要指出“做什么”,还需要指出“怎么做”的语言。

·非过程性语言:用户编程时,只需指出“做什么”,不需要指出“怎么做”的语言。

·DD(数据字典):存放三级结构定义的DB,称为DD。

·DD系统:管理DD的软件系统,称为DD系统。

1.2 试解释DB、DBMS和DBS三个概念。

答:DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。

DBMS是位于用户与OS之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法。

DBS是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即采用数据库技术的计算机系统。

1.3 人工管理阶段和文件系统阶段的数据管理各有哪些特点?

答:人工管理阶段主要有四个特点:数据不保存在计算机内;没有专用的软件对数据进行管理;只有程序的概念,没有文件的概念;数据面向程序。

文件系统阶段主要有五个特点:数据以“文件”形式长期保存;数据的逻辑结构与物理结构有了区别;文件组织已多样化;数据面向应用;对数据的操作以记录为单位。

1.4 文件系统阶段的数据管理有些什么缺陷?试举例说明。

答:主要有三个缺陷:数据冗余;数据不一致性;数据联系弱。

例如学校里教务处、财务处、保健处建立的文件中都有学生详细资料,譬如联系电话,家庭住址等。这就是“数据”冗余;如果某个学生搬家,就要修改三个部门文件中的数据,否则会引起同一数据在三个部门中不一致;产生上述问题的原因是这三个部门的文件中数据没有联系。

1.5 数据管理的数据库阶段产生的标志是哪三件事情?

答:进入数据库阶段的标志是20世纪60年代末发生的三件事件:

·1968年IBM公司研制的IMS系统是一个典型的层次DBS;

·1969年美国CODASYL组织DBTG报告,提出网状DBS的概念;

·1970年美国IBM公司的E.F.Codd发表论文,提出关系模型的思想。

1.6 数据库阶段的数据管理有哪些特点?

答:主要有五个特点:

采用数据模型表示复杂的数据结构;有较高的数据独立性;为用户提供了方便的用户接口;提供了四个方面的数据控制功能;对数据的操作以数据项为单位,增加了系统的灵活性。

1.7 与“文件”结构相比,“数据库”结构有些什么不同?

答:与文件结构相比,数据库结构主要有下面三点不同:

·数据的结构化。文件由记录组成,但各文件之间缺乏联系。数据库中数据在磁盘中仍以文件形式组织,但这些文件之间有着广泛的联系。数据库的逻辑结构用数据模型来描述,整体结构化。数据模型不仅描述数据本身的特点,还要描述数据之间的联系。

·数据独立性。文件只有设备独立性,而数据库还具有逻辑独立性和物理独立性。

·访问数据的单位。访问文件中的数据,以记录为单位。访问数据库中的数据,以数据项(字段)为单位,增加了系统的灵活性。

1.8 什么是数据独立性?在数据库中有哪两级独立性?

(2003/9/21)(GJ-DA)(共2页)目录--2

答:数据独立性是指应用程序与DB的数据结构之间相互独立。在物理结构改变时,尽量不影响应用程序,称为物理数据独立性;在逻辑结构改变时,尽量不影响应用程序,称为逻辑数据独立性。

1.9 分布式数据库系统和面向对象数据库系统各有哪些特点?

答:DDBS主要有三个特点:

·数据物理上分布在各地,但逻辑上是一个整体;

·每个场地既可以执行局部应用,也可以执行全局应用;

·各地的计算机由数据通信网络相连接。

面向对象数据系统主要有两个特点:

·面向对象数据模型能完整地描述现实世界的数据结构,能表达数据间嵌套、递归的联系。

·具有面向对象技术的封装性和继承性的特点,提高了软件的可重用性。

1.10 逻辑记录与物理记录,逻辑文件与物理文件有些什么联系和区别?

答:逻辑数据是用户用以操作的数据形式,是抽象的概念化数据。物理数据是实际存放在存储设备上的数据。

逻辑数据与物理数据在结构上可以差别很大,需通过两级映象来进行数据传输和格式转换。

从以上的解释可以看出,逻辑记录和逻辑文件是用户在程序中使用的记录和文件,而物理记录和物理文件是指磁盘上的记录和文件。逻辑记录、文件与物理记录、文件在结构、组成上有很大的差异,而数据管理软件就是通过三级结构两级映象来实现逻辑数据与物理数据之间的转换。

1.11 试述ER模型、层次模型、网状模型、关系模型和面向对象模型的主要特点。

答:ER模型直接表示实体类型及实体间联系,与计算机系统无关,充分反映用户的需求,用户容易理解。

层次模型的数据结构为树结构,记录之间联系通过指针实现,查询较快,但DML属于过程化的,操作复杂。

网状模型的数据结构为有向图,记录之间联系通过指针实现,查询较快,并且容易实现M:N联系,但DML属于过程化的语言,编程较复杂。

关系模型的数据结构为二维表格,容易为初学者理解。记录之间联系通过关键码实现。DML属于非过程化语言,编程较简单。

面向对象模型能完整描述现实世界的数据结构,具有丰富的表达能力,能表达嵌套、递归的数据结构。但涉及的知识面较广,用户较难理解,这种模型尚未普及。

1.12 数据之间联系在各种结构数据模型中是怎么实现的?

答:在层次、网状模型中,数据之间的联系通过指针实现的;

在关系模型中,数据之间联系通过外键和主键间联系实现的;

在面向对象模型中,数据之间嵌套、递归联系通过对象标识符(OID)实现的(见第8章)。

1.13 DB的三级模式结构描述了什么问题?试详细解释。

答:DB的三级模式结构是对数据的三个抽象级别,分别从外部(用户)级、概念级和内部级去观察数据库。

外部级是用户使用的局部数据库的逻辑结构,其描述称为外模式。

概念级是DB的整体逻辑结构,其描述称为概念模式。

内部级是DB的物理结构,其描述称为内模式。

1.14 试述概念模式在数据库结构中的重要地位。

答:数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中,而概念模式提供了连接这两级的相对稳定的中间观点,并使得两级的任何一级的改变都不受另一级的牵制。

1.15 试叙述用户、DB的三级模式结构、磁盘上的物理文件之间有些什么联系和不同?

(2003/9/21)(GJ-DA)(共2页)目录--3

答:用户、外模式、概念模式、内模式和物理文件中的记录分别称为用户记录、外部记录、概念记录、内部记录和物理记录。

用户记录与外部记录的结构是一致的,它们之间只是数据传输问题。

而外部记录、概念记录和内部记录之间的结构可能是不一致的,除了数据传输问题,还有格式转换问题。

内部记录与物理记录的结构是一致的,它们之间只是数据传输问题。

1.16 数据独立性与数据联系这两个概念有什么区别?

答:数据独立性是指应用程序和DB的数据之间相互独立,不受影响,对系统的要求是“数据独立性要高”,而数据联系是指记录之间的联系,对系统的要求是“数据联系密切”。

1.17 试述DBMS的工作模式和主要功能。

答:DBMS的工作模式有六点:

·接受应用程序的数据请求和处理请求;

·将用户的数据请求转换成低层指令;

·实现对DB的操作;

·从对DB的操作中接受查询结果;

·对查询结构进行处理;

·将处理结果返回给用户。

DBMS的主要功能有DB的定义、操纵、保护、维护和数据字典等五个功能。

1.18 试叙述DBMS对数据库的维护功能。

答:包括DB的数据载入、转换、转储、DB的改组以及性能监控等功能。这些功能分别由各个实用程序完成。

1.19 从模块结构观察,DBMS由哪些部分组成?

答:DBMS由两大部分组成:查询处理器和存储管理器。(解释略)

1.20 DBS有哪几部分组成?其中DD有什么作用?

答:DBS由DB、硬件、软件和DBA等四个部分组成。(解释略)

在DBS中,DD是存储三级结构描述(即元数据)的DB。DBMS的所有工作都要以DD 中的元数据为依据,也就是所有工作都要通过DD访问DB。

1.21“元数据”与“数据”之间有些什么联系与区别?

答:元数据(metadata)是指“数据的数据”,即数据的描述。DB中的元数据是指三级模式结构的详细描述。

数据(data),一般是指用户使用的具体值。

1.22 什么是DBA?DBA应具有什么素质?DBA的职责是什么?

答:DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护DB结构的责任。

DBA必须具备下列4条素质:熟悉企业全部数据的性质和用途;对所有用户的需求有充分的了解;对系统的性能非常熟悉;兼有系统分析员和运筹学专家的品质和知识。

DBA的主要职责有6点:定义模式;定义内模式;与用户的联络;定义安全性规则;定义完整性规则;DB的转储与恢复。

1.23 试对DBS的全局结构作详细解释。

答:从四个方面解释:

·数据库用户有四类:DBA,专业用户,应用程序员,终端用户。

·DBMS的查询处理器有四个模块:DML编译器,嵌入型DML预编译器,DDL编译器,查询运行核心程序。

·DBMS的存储管理器有四个模块:授权和完整性管理器,事务管理器,文件管理器,缓冲区管理器。

·磁盘存储器中有五种数据结构:数据文件,数据字典,索引文件,统计数据组织和日

(2003/9/21)(GJ-DA)(共2页)目录--4

志。

1.24 使用DBS的用户有哪几类?

答:(略,见习题1.23)

1.25 DBMS的查询处理器和存储管理器各有哪些功能?

答:(略,见习题1.23)

1.26 磁盘存储器中有哪五类主要的数据结构?

答:(略,见习题1.23)

1.27 根据计算机的系统结构,DBS可分成哪四种?各有什么特点?

答:根据计算机的系统结构,DBS可分成集中式、C/S式、并行式和分布式等四种

集中式DBS的特点是单点数据(DB集中在一个场地)单地处理(单个CPU)。

C/S式DBS的特点是计算机的功能分放在客户机和服务器上(即功能的分布)。客户机上专门实现前端处理和用户界面。服务器上完成事务处理和数据访问控制。

并行式DBS的特点是使用多个CPU和多个磁盘进行并行操作。

分布式DBS的特点是多点数据(DB分布在多个场地)多点处理(多个CPU)。数据具有物理分布性和逻辑整体性特点。系统中事务有本地事务(访问本地DB)和全局事务(访问至少两个场地的DB)之分。

1.28 DBS能产生哪些效益?

答:DBS的应用,使计算机应用深入到社会的每个角落。其效益有以下7个方面:灵活性,简易性,面向用户,有效的数据控制,加快应用开发速度,维护方便,标准化。

1.3 自测题

1.3.1 填空题

1.数据管理技术的发展,与__________、__________和__________有密切的联系。

2.文件系统中的数据独立性是指__________独立性。

3.文件系统的缺陷是:_________、_________和__________。

4.就信息处理的方式而言,在文件系统阶段,__________处于主导地位,_________只起着服从程序设计需要的作用;而在数据库方式下,_________占据了中心位置。

5.对现实世界进行第一层抽象的模型,称为__________模型;对现实世界进行第二层抽象的模型,称为__________模型。

6.层次模型的数据结构是__________结构;网状模型的数据结构是__________结构;关系模型的数据结构是__________结构;面向对象模型的数据结构之间可以__________。7.在层次、网状模型中,用__________导航数据;而在关系模型中,用__________导航数据。8.数据库的三级模式结构是对__________的三个抽象级别。

9.DBMS为应用程序运行时开辟的DB系统缓冲区,主要用于__________和__________。10.在数据库技术中,编写应用程序的语言仍然是C一类高级语言,这些语言被称为__________语言。

11.在DB的三级模式结构中,数据按__________的描述提供给用户,按__________的描述存储在磁盘中,而__________提供了连接这两级的相对稳定的中间观点,并使得两级中的任何一级的改变都不受另一级的牵制。

12.层次、网状的DML属于________语言,而关系型DML属于_________语言。13.DBS中存放三级结构定义的DB称为__________。

14.从模块结构考察,DBMS由两大部分组成:__________和__________。

15.DBA有两个很重要的工具:__________和__________。

16.DBS是________、_________、_________和_________的集合体。

17.DBS的全局结构体现了其__________结构。

18.在DBS中,DB在磁盘上的基本组织形式是_________,这样可以充分利用OS _________的功能。

(2003/9/21)(GJ-DA)(共2页)目录--5

19.根据计算机的系统结构,DBS可分成四种类型:_______、_______、_______和_______。20.数据独立性使得修改DB结构时尽量不影响已有的__________。

1.3.2 单项选择题(在备选答案中选出一个正确答案)

1.在DBS中,DBMS和OS之间关系是[ ] A.并发运行B.相互调用

C.OS调用DBMS D.DBMS调用OS

2.在数据库方式下,信息处理中占据中心位置的是[ ] A.磁盘 B.程序 C.数据 D.内存

3.DB的三级体系结构是对_________抽象的三个级别。[ ]

A.存储器

B.数据

C.程序

D. 外存

4.DB的三级模式结构中最接近外部存储器的是[ ]

A.子模式

B.外模式

C.概念模式

D.内模式

5.DBS具有“数据独立性”特点的原因是因为在DBS中[ ]

A.采用磁盘作为外存

B.采用三级模式结构

C.使用OS来访问数据

D.用宿主语言编写应用程序

6.在DBS中,“数据独立性”和“数据联系”这两个概念之间联系是[ ] A.没有必然的联系B.同时成立或不成立

C.前者蕴涵后者D.后者蕴涵前者

7.数据独立性是指[ ] A.数据之间相互独立B.应用程序与DB的结构之间相互独立

C.数据的逻辑结构与物理结构相互独立D.数据与磁盘之间相互独立

8.DB中数据导航是指[ ] A.数据之间联系B.数据之间指针联系

C.从已知数据找未知数据的过程D.数据的组合方式

9.用户使用DML语句对数据进行操作,实际上操作的是[ ] A.数据库的记录B.内模式的内部记录

C.外模式的外部记录D.数据库的内部记录值

10.对DB中数据的操作分成两大类:[ ] A.查询和更新B.检索和修改

C.查询和修改D.插入和修改

1.3.3 问答题

1.试对数据管理技术三个发展阶段作一详细的比较。

2.在用户访问数据库中数据的过程中,DBMS起着什么作用?

3.什么是“DB的系统缓冲区”?

4.DBS中有哪些系统软件?

1.4 自测题答案

1.4.1 填空题答案

1.硬件软件计算机应用2.设备

3.数据冗余数据不一致数据联系弱4.程序设计数据数据

5.概念结构(或逻辑)6.树有向图二维表嵌套和递归

7.指针关键码(或外键与主键)8.数据

9.数据的传输格式的转换10.宿主语言(或主语言,host language)

11.外模式内模式概念模式12.过程性非过程性

13.数据字典(DD)14.查询处理器存储管理器

15.一系列实用程序DD系统16.数据库硬件软件DBA

17.模块功能18. 文件管理外存(或文件系统)

(2003/9/21)(GJ-DA)(共2页)目录--6

19.集中式 C/S式并行式分布式20.应用程序

1.4.2 单项选择题答案

1.D 2.C 3.B 4.D 5.B

6.A 7.B 8.C 9.C 10. A

1.4.3 问答题答案

1.答:数据管理技术三个发展阶段的详细比较见图1.1。

人工管理阶段文件系统阶段数据库阶段时间20世纪50年代60年代70年代环外存纸带、卡片、磁带磁盘大容量磁盘

境软件汇编语言3GL、OS DBMS

计算机应用科学计算进入企业管理企业管理

数据的管理者用户(程序员)文件系统DBS

数据的针对者面向某一应用程序面向某一应用面向现实世界

数据的共享程度无共享共享性差、冗余度大共享性高、冗余度小数据独立性无独立性,独立性差,有高度的物理独立性,

数据完全依赖于程序有设备独立性一定的逻辑独立性数据的结构化无结构记录内有结构,整体结构化,

整体结构性差用数据模型描述

图1.1

2.答:在用户访问数据的过程中,DBMS起着核心的作用,实现“数据三级结构转换”的工作。

3.答:在应用程序运行时,DBMS在内存为其开辟一个程序工作区,称为“DB的系统缓冲区”。这个工作区主要用于“数据的传输和格式的转换”。

4.答:DBS应包括DBMS、OS、宿主语言和应用开发支撑软件等四部分系统软件。

DBMS是管理DB的软件系统,但对硬盘的管理是由OS实现的,因此DBS中应包括DBMS 和OS这两个主要的系统软件。

编写应用程序仍然是用C一类高级程序设计语言,这些语言在DBS中称为宿主语言。

为提高应用程序开发效率,需要像Dephi、PowerBuilder一类软件开发工具(即应用开发支撑软件)开发应用程序。这些软件属于4GL范畴,可使应用系统开发生产率提高20~100倍。

(2003/9/21)(GJ-DA)(共2页)目录--7

第2章关系模型和关系运算理论

2.1 基本内容分析

2.1.1 本章重要概念

(1)基本概念

关系模型,关键码(主键和外键),关系的定义和性质,三类完整性规则,ER模型到关系模型的转换规则,过程性语言与非过程性语言。

(2)关系代数

五个基本操作,四个组合操作,七个扩充操作。

(3)关系演算

元组关系演算和域关系演算的原子公式、公式的定义。关系演算的安全性和等价性。

(4)关系代数表达式的优化

关系代数表达式的等价及等价转换规则,启化式优化算法。

(5)关系逻辑

谓词、原子、规则和查询,规则的安全性,用规则模拟关系代数表达式。

2.1.2 本章的重点篇幅

(1)教材中P56的例2.7(关系代数表达式的应用实例)。

(2)教材中P63的例2.19(元组表达式的应用实例)。

(3)教材中P81的例2.36(关系逻辑的规则表示)。

2.1.3 重要内容分析

1.关系代数表达式的运用技巧

(1)一般规则

·对于只涉及到选择、投影、联接的查询可用下列表达式表示:

π…(σ…(R×S))或者π…(σ…(R?S))

·对于否定的操作,一般要用差操作表示,例如“检索不学C2课的学生姓名”。

·对于检索具有“全部”特征的操作,一般要用除法操作表示,例如“检索学习全部课程的学生姓名”。

(2)“检索不学C2课的学生姓名”,决不能用下式表示:

πSNAME,AGE(σC#≠'C2'(S?SC))

一定要用“差”的形式:

πSNAME,AGE(S)-πSNAME,AGE(σC#='C2'(S?SC))

(SC)÷πC#(C)表示,(3)“检索学习全部课程的学生学号”,要用πS#

,C#

而不能写成πS# (SC÷πC#(C))形式。这是因为一个学生学的课程的成绩可能是不一样的。

(4)对于教材P56的例2.7的8个查询语句的关系代数表达式,考生一定要掌握,这是基础。

2.非过程性语言与过程性语言的区别

编程时必须指出“干什么”及“怎么干”的语言,称为过程性语言;编程时只须指出“干什么”,不必指出“怎么干”的语言,称为非过程性语言。

两种语言的主要区别见图2.1。

(2003/9/21)(GJ-DA)(共2页)目录--8

2.2 教材中习题2的解答

2.1名词解释

·关系模型:用二维表格表示实体集,外键和主键表示实体间联系的数据模型,称为关系模型。

·关系模式:是对关系的描述,包括模式名、诸属性名、值域名和模式的主键。

·关系实例:关系模式具体的值,称为关系实例。

·属性:即字段或数据项,与二维表中的列对应。属性个数,称为元数(arity)。

·域:属性的取值范围,称为域。

·元组:即记录,与二维表中的行对应。元组个数,称为基数(cardinality)。

·超键:能惟一标识元组的属性或属性集,称为关系的超键。

·候选键:不含有多余属性的超键,称为候选键。

·主键:正在使用的、用于标识元组的候选键,称为主键。

·外键:属性集F是模式S的主键,在模式R中也出现,那么称F是模式R的外键。

·实体完整性规则:实体的主键值不允许是空值。

·参照完整性规则:依赖关系中的外键值或者为空值,或者是相应参照关系中某个主键码。

·过程性语言:编程时必须给出获得结果的操作步骤,即指出“干什么”及“怎么干”的语言。

·非过程性语言:编程时,只需指出需要什么信息,不必给出具体的操作步骤,即只要指出“干什么”,不必指出“怎么干”的语言。

·无限关系:指元组个数为无穷多个的关系。

·无穷验证:验证公式真假时需要进行无限次验证。

● 2.2 在关系模型中,对关系作了哪些规范性限制?

答:对关系作了一下四个限制:

属性值不可分解;没有重复元组;没有行序;使用时有列序。

2.3 为什么关系中的元组没有先后顺序,且不允许有重复元组?

答:由于关系定义为元组的集合,而集合中的元素是没有顺序的,因此关系中的元组也就没有先后的顺序(对用户而言)。这样既能减少逻辑排序,又便于在关系数据库中引进集合论的理论。

每个关系模式都有一个主键,在关系中主键值是不允许重复的。如果关系中有重复元组,那么其主键值肯定相等,起不了惟一标识作用,因此关系中不允许有重复元组。

● 2.4 外键值何时允许空?何时不允许空?

答:在依赖表中,当外键是主键的组成部分时,外键值不允许空;否则外键值允许空。

2.5 笛卡儿积、等值联接、自然联接三者之间有什么区别?

答:笛卡尔积是一个基本操作,而等值联接和自然联接是组合操作。

设关系R的元数为r,元组个数为m;关系S的元数为s,元组个数为n。

那么,R×S的元数为r+s,元组个数为m×n;

R?S的元数也是r+s,但元组个数小于等于m×n;

iθj

(2003/9/21)(GJ-DA)(共2页)目录--9

(2003/9/21) (GJ-DA ) (共2页) 目录--10

R ?S 的元数小于等于r+s ,元组个数也小于等于m ×n ;

计算R ∪S ,R-S ,R ∩S ,R ×S ,π3,2(S ),σB<’5 S, R S 。 解: R ∪S A B C R -S A B C R ∩S A B C

3 6 7 3 6 7 7 2 3

2 5 7 2 5 7 7 2

3

4 4 3 4 4 3 3 4 5

R ×S R.A R.B R.C S.A S.B S.C π3,2(S )

C B 3 6 7 3 4 5 5 4 3 6 7 7 2 3

3

2

2 5 7

3

4

5 2 5 7 7 2 3 7 2 3 3 4 5 7 2 3 7 2 3 4 4 3 3 4 5 4 4 3 7 2 3

σB<’5’(R )

A B C R ?S R.A R.B R.C S.A S.B S.C

7 2 3

7

2

3

3

4

5

4

4

3

R ?S A B C

7

2

3

● 2.7 设有关系R 和S : ● R A B

S B C ● a b b c ● c b e a ●

d e

b d

● 计算R ? S ,R ? S ,σA=C (R ×S),S ? R 。

● 2.8 假设关系U 和V 分别有m 个元组和n 个元组,给出下列表达式中可能的最小和最大的元组数量:

● ? U ∩V ? U ∪V

● ? U ?V

? σF (U)×V (F 为某个条件)

2<2

B

●?πL(U)-V (其中L为某属性集)

●解:

●操作●最小元组数●最大元组数

●? U∩V ●0 ●min(m,n)

●? U∪V ●max(m,n) ●m+n

●? U?V ●0 ●m×n

●?σF(U)×

V

●0 ●m×n

●?πL(U)-

V

●0 ●m

2.9 如果R是二元关系,那么下列元组表达式的结果是什么?

{t|( ?u)(R(t) ∧R(u) ∧(t[1] ≠u[1]∨t[2] ≠u[2]))}

答:当R的元组数≥2时,R中每个元组都存在与之不相同的元组,因此表达式的结果为关系R;

当R的元组数为0或1时,表达式的结果为空关系。

2.10 假设R和S分别是三元和二元关系,试把表达式π1,5(σ2=4∨3=4(R×S))转换成等价的:①汉语查询句子;②元组表达式;③域表达式。

解:?在关系R和S的笛卡尔积中,选取第2个属性值与第4个属性值相等,或者第3个属性值与第4个属性值相等的那些元组,再取第1列和第5列组成新的关系。

?与(R×S)等价的元组表达式是:

{ t | (?u) (?v) (R(u) ∧S(v) ∧t[1]=u[1] ∧t[2]=u[2] ∧t[3]=u[3] ∧t[4]=v[1]∧t[5]=v[2] )}

与σ2=4

∨3=4

(R×S)等价的元组表达式是:

{ t | (?u) (?v) (R(u) ∧S(v) ∧t[1]=u[1] ∧t[2]=u[2] ∧t[3]=u[3] ∧t[4]=v[1]∧t[5]=v[2] ∧(t[2]=t[4] ∨t[3]=t[4]))}

与π1

,5(σ2=4

∨3=4

(R×S))等价的元组表达式是:

{ w | (?t) (?u) (?v) (R(u) ∧S(v) ∧t[1]=u[1] ∧t[2]=u[2] ∧t[3]=u[3] ∧t[4]=v[1] ∧t[5]=v[2] ∧(t[2]=t[4] ∨t[3]=t[4]) ∧w[1]=t[1] ∧w[2]=t[5])} 再对上述元组表达式化简(消去t)可得:

{ w | (?u) (?v) (R(u) ∧S(v) ∧(u[2]=v[1] ∨u[3]=v[1]) ∧w[1]=u[1] ∧w[2]=v[2])}

在熟练后,可以直接写出上式。

?再转换成域表达式:

{ w1w2| (?u1) (?u2) (?u3) (?v1) (?v2) (R(u1u2u3) ∧S(v1v2) ∧(u2=v1∨u3=v1) ∧w1=u1∧w2=v2)}

再化简(消去u1,v2)可得:

{ w1 w2 | (?u2) (?u3) (?v1) (R(w1u2u3) ∧S(v1w2) ∧(u2=v1∨u3=v1))}

2.11 假设R和S都是二元关系,试把元组表达式{t|R(t) ∧(?u)(S(u) ∧u[1] ≠t[2])}转换成等价的:

(2003/9/21)(GJ-DA)(共2页)目录--11

①汉语查询句子; ②域表达式; ③关系代数表达式。

答:①在关系R中选取第2列的值与关系S中某个元组的第1列值不相等的那些元组,组成新的关系。

②域表达式为:

{ t1t2 | R(t1t2)∧(?u1) (?u2) ( S(u1u2) ∧u1≠t2)}

③关系代数表达式为:

π1,2(σ2≠3(R×S))或π1,2(R?S)

2.12 试把域表达式{ ab | R(ab) ∧R(ba)}转换成等价的:?汉语查询句子;?关系代数表达式;?元组表达式。

解:?在关系R中选取属性值交换后仍是R中元组的那些元组,组成新的关系。

?关系代数表达式为:π1

,2(σ1=4

∧2=3

(R×R))

也可写成:R∩π2

,1

(R)

?元组表达式为:{ t | (?u) (?v) (R(u) ∧R(v) ∧u[1]=v[2] ∧u[2]=v[1] ∧t[1]=u[1]

∧t[2]=u[2])}

或:{ t | (?v) (R(t) ∧R(v) ∧t[1]=v[2] ∧t[2]=v[1])}

2.13 有两个关系R (A, B, C)和是S(D, E, F),试把下列关系代数表达式转换成等价的元组表达式:

①πA(R);②σB=’17’(R);

③R×S;④πA,F(σC=D(R×S)

解:①πA(R):{ t | (?u) ( R(u) ∧t[1]=u[1])}

②σB='17'(R):{ t | R(t) ∧t[2]='17'}

③R×S:{ t | (?u) (?v) ( R(u) ∧S(v) ∧t[1]=u[1] ∧t[2]=u[2] ∧t[3]=u[3]

∧t[4]=v[1] ∧t[5]=v[2] ∧t[6]=v[3])}

④πA

,F

(σC=D(R×S)):{ t | (?u) (?v) ( R(u) ∧S(v) ∧u[3]=v[1] ∧t[1]=u[1] ∧t[2]=v[3])}

● 2.14 设有关系R(A,B,C)和S(A,B,C),试把下列关系代数表达式转换成等价的域表达式:

①πA(R) ②σ2=′17′(R)

③R∪S ④R∩S

⑤R-S ⑥π

π2,3(S)

解:①πA(R): { t1 | (?u2) (?u3) ( R(t1u2u3))}

②σ2=′17′(R): { t1t2t3 | R(t1t2t3) ∧t2='17'}

③R∪S:{ t1t2t3 | R(t1t2t3) ∨S(t1t2t3)}

④R∩S:{ t1t2t3 | R(t1t2t3) ∧S(t1t2t3)}

⑤R-S:{ t1t2t3 | R(t1t2t3) ∧┓S(t1t2t3)}

⑥π1,2(Rπ2,3(S):{ t1t2t3 | (?u3) (?v1) | R(t1t2u3) ∧S(v1t2t3)}

● 2.15 设有关系R(A,B)和S(A,C),试把下列域表达式转换成等价的关系代数表达式:

●① {a |(?b)(R(ab)∧ b=17)}

●② {abc |(R(ab)∧ S(ac))}

2≠1

(2003/9/21)(GJ-DA)(共2页)目录--12

●③ {a |(?b)(R(ab))∨(?c)((?d)(S(dc))?S(ac))}

●④ {a |(?c)(S(ac)∧(?b1)(?b2)(R(ab1)∧R(cb2)∧b1>b2))}

●解:①π1(σ2=′17′(R))

●②R?S

●③π1(R)∪(S÷π2(S))

●④π1(σ1=3 ∧2=5 ∧4>6(S×R×R))

2.16 设两个关系R (A,B )和S (A,C )。用null表示空值,分别写出等价于下列表达式的元组关系演算表达式:

① R S;② R S;③ R S 。

解:① R S:

{ t | (?u) (?v) (R(u) ∧S(v) ∧u[1]=v[1] ∧t[1]=u[1] ∧t[2]=u[2] ∧t[3]=v[2])∨(?v) (?u) (S(v) ∧R(u) ∧v[1]≠u[1] ∧t[1]=null ∧t[2]=v[1] ∧t[3]=v[2])}

② R S:

{ t | (?u) (?v) (R(u) ∧S(v) ∧u[1]=v[1] ∧t[1]=u[1] ∧t[2]=u[2] ∧t[3]=v[2])∨(?u) (?v) (R(u) ∧S(v) ∧u[1]≠v[1] ∧t[1]=u[1] ∧t[2]=u[2] ∧t[3]=null)

∨(?v) (?u) (S(v) ∧R(u) ∧v[1]≠u[1] ∧t[1]=null ∧t[2]=v[1] ∧t[3]=v[2])}

③ R S:

{ t | (?u) (?v) (R(u) ∧S(v) ∧u[1]=v[1] ∧t[1]=u[1] ∧t[2]=u[2] ∧t[3]=v[2]) ∨(?u) (?v) (R(u) ∧S(v) ∧u[1]≠v[1] ∧t[1]=u[1] ∧t[2]=u[2] ∧t[3]=null)

2.17 设有三个关系:

S(S#,SNAME,AGE,SEX)

SC(S#,C#,CNAME)

C(C#,CNAME,TEACHER)

试用关系代数表达式表示下列查询语句:

①检索LIU老师所授课程的课程号和课程名。

②检索年龄大于23岁的男学生的学号和姓名。

③检索学号为S3学生所学课程的课程名与任课教师名。

④检索至少选修LIU老师所授课程中一门课的女学生姓名。

⑤检索WANG同学不学的课程的课程号。

⑥检索至少选修两门课的学生学号。

⑦检索全部学生都选修的课程的课程号与课程名。

⑧检索选修课程包含LIU老师所授全部课程的学生学号。

解:?πC#

,CNAME

(σTNAME='LIU'(C))

?πS#

,SNAME (σAGE

>'23' ∧SEX='M'

(SC))

?πCNAME

,TNAME

(σS#='S3'(SC?C))

?πSNAME(σSEX='F'

∧TNAME='LIU'

(S?SC?C))?πC#(C)-πC#(σSNAME='WANG'(S?SC))

?π1(σ1=4

∧2≠5

(SC×SC))

?πC#

,CNAME (C?(πS#

,C#

(SC)÷πS#(S)))

?πS#

,C#

(SC)÷πC#(σTNAME='LIU'(C))

(2003/9/21)(GJ-DA)(共2页)目录--13

2.18 试用元组表达式表示第2.17题中各个查询语句。

解:?{ t | (?u) (C(u) ∧u[3]='LIU' ∧t[1]=u[1] ∧t[2]=u[2])}

?{ t | (?u) (S(u) ∧u[3]>23 ∧u[4]='M' ∧t[1]=u[1] ∧t[2]=u[2])}

?{ t | (?u) (?v) (SC(u) ∧C(v) ∧u[1]='S3' ∧u[2]=v[1] ∧t[1]=v[2] ∧t[2]=v[3])} (此处自然联接条件u[2]=v[1]不要遗漏)

?{ t | (?u) (?v) (?w) (S(u) ∧SC(v) ∧C(w) ∧w[3]='LIU' ∧u[4]='F' ∧u[1]=v[1] ∧v[2]=w[1] ∧t[1]=u[2])}

(此处自然联接条件u[1]=v[1]和v[2]=w[1]不要遗漏)

?{ t | (?u) (?v) (?w) (C(u) ∧S(v) ∧SC(w) ∧v[2]='WANG' ∧

(w[1]=v[1] => w[2]≠u[1]) ∧t[1]=u[1])}

其意思是:在关系C中存在一门课程,在关系S中存在一个WANG同学,在关系SC中要求不存在WANG同学学这门课程的元组。也就是要求在关系SC中,WANG同学学的课程都不是这门课程(因此在元组表达式中要求全称量词?)。

?{ t | (?u) (?v) (SC(u) ∧SC(v) ∧u[1]=v[1] ∧u[2]≠v[2] ∧t[1]=u[1])}

?{ t | (?u) (?v) (?w) (C(u) ∧S(v) ∧SC(w) ∧w[2]=u[1] ∧w[1]=v[1] ∧t[1]=u[1] ∧t[2]=u[2])}

其意思是:在关系C中找一课程号,对于关系S中每一个学生,都应该学这门课(即在关系SC中存在这个学生选修这门课的元组)。

?{ t | (?u) (SC(u) ∧(?v) (C(v)

∧(v[3]='LIU' => (?w) (SC(w) ∧w[1]=u[1] ∧w[2]=v[1])))∧t[1]=u[1])} 其意思是:在关系SC中找一个学号,对于关系C中LIU老师的每一门课,这个学生都学了(即在关系SC中存在这个学生选修这门课的元组)。

由于在括号中出现“=>”符号(包含有“∨”的语义),因此括号中的量词(?w)就不能随意往左边提了。

2.19 试用域表达式表示第2.17题的各个查询语句。

解:①{ t1 t2 | (?u1 u2 u3) (C(u1 u2 u3) ∧u3='LIU' ∧t1=u1 ∧t2=u2)}

再简化成:{ t1 t2 | C(t1 t2 'LIU')}

此处(?u1 u2 u3)是(?u1) (?u2) (?u3) 的简写,下同。

②{ t1 t2 | (?u1 u2 u3 u4) (S(u1 u2 u3 u4) ∧u3>'23' ∧u4='M' ∧t1=u1∧t2=u2)}

再简化成:{ t1 t2 | (?u3) (S(t1 t2 u3 'M') ∧u3>'23')}(以下各题的化简略)

③{ t1 t2 | (?u1 u2 u3) (?v1 v2 v3) (SC(u1 u2 u3) ∧C(v1 v2 v3) ∧u1='s3' ∧u2= v1

∧t1=v2 ∧t2=v3)}

④{ t1 | (?u1 u2 u3 u4) (?v1 v2 v3) (?w1 w2 w3) (S(u1 u2 u3 u4) ∧SC(v1 v2 v3)

∧C(w1 w2 w3) ∧w3='LIU' ∧u4='F' ∧u1=v1 ∧v2=w1 ∧t2=u2)} (⑤~⑧题的域表达式,读者可以很容易写出,此处略)

2.20 设关系R和S的属性集相同,W是R的属性集的子集,试说明下列等式是否成立,并指出它们的正确表示:

①πW(R-S) =πW(R)-πW(S)

②πW(R∩S) =πW(R)∩πW(S)

③πW(R∪S) =πW(R)∪πW(S)

答:①πW(R-S) =πW(R)-πW(S)是一个错误的式子。

譬如R只有一个元组(1,2,3),S只有一个元组(1,2,4),W为R、S中前两个属性。

(2003/9/21)(GJ-DA)(共2页)目录--14

(2003/9/21) (GJ-DA ) (共2页) 目录--15 显然R 和S 不满足上式。正确的式子应该是πW (R -S) =πW (R)-S 。

② πW (R ∩S) =πW (R)∩πW (S)是一个错误的式子。

譬如R 只有一个元组(1,2,3),S 只有一个元组(1,2,4),W 为R 、S 中前两个属性。显然R 和S 不满足上式。此时不可以把π操作往里移。

③ πW (R ∪S) =πW (R)∪πW (S)是一个正确的式子。

2.21 在教学数据库的关系S 、SC 、C 中,用户有一查询语句:检索女同学选修课程的课程名和任课教师名。

① 试写出该查询的关系代数表达式。

② 画出查询表达式的语法树。

③ 使用启发式优化算法,对语法树进行优化,并画出优化后的语法树。

解:① 关系代数表达式为:

πCNAME ,TEACHER (σSEX=’F ’(S ?SC ?C ))

②上述关系代数表达式的语法树如图2.2所示。

图2.2

③ 上述的关系代数表达式为:

πCNAME ,TEACHER (σSEX=’F ’(πL (σS.S#=SC.S# ∧ SC.C#=C.C#((S ×SC )×C )))) 此处L 为S 、SC 、C 中全部属性(公共属性只取一次)。

设L1=πS#(σSEX='F'(S ))

L2=πS#,C#(SC )

则优化的关系代数表达式为:

πCNAME ,TEACHER (σSC.C#=C.C#(πSC.C#(σS.S#=SC.S#(L1×L2))×C ))

优化后的语法树如图2.3所示。

π

σ ? ? S SC CNAME ,TEACHE

SEX=’F ’

C

(2003/9/21) (GJ-DA ) (共2页) 目录--16

图2.3

● 2.22 为什么要对关系代数表达式进行优化?有哪三条启发式规则?对优化起什么作用?

答:关系代数表达式由关系代数操作组合而成。操作中,以笛卡尔积和联接操作最费时,并生成大量的中间结果。如果直接按表达式书写的顺序执行,必将花费很多时间,并生成大量的中间结果,效率较低。在执行前,由DBMS 的查询子系统先对关系代数表达式进行优化,尽可能先执行选择和投影操作,以便减少中间结果,并节省时间。

优化工作是由DBMS 做的,用户书写时不必关心优化一事,仍以简练的形式书写。

● 三条启发式规则是:尽可能早执行选择操作;尽可能早执行投影操作;把笛卡尔积与附近的一连串选择和投影合并起来做。

● 使用这三条规则,可以使计算时尽可能减少中间关系的数据量。

● 2.23 试解释关系逻辑中的名词:

● ·谓词:在关系逻辑中,每一个谓词符号表示了一个关系,但在规则中谓词符号类似于关系演算中的公式。

● ·外延谓词:其关系存储在数据库中的谓词称为“外延谓词”。

● ·内涵谓词:由逻辑规则定义的谓词称为“内涵谓词”。

·外延数据库:用“外延数据库”的缩写EDB 来引用外延谓词或相应关系。

·内涵数据库:用“内涵数据库”的缩写IDB 来引用内涵谓词或相应关系。

● ·原子:关系逻辑中的基本成分,称为原子。原子有关系原子和算术原子两种。 ● ·关系原子:关系原子是一个谓词符号,带一个参数表,每个参数可以是变量或常量。用大写字母表示谓词符号,用小写字母表示变量,常量用引号括起来。

● ·算术原子:算术原子是算术比较表达式。 π σ × CNAME ,TEACHER SC.C#=C.C# π σ × SC.C# S.S#=SC.S# C π σ S

S# SEX='F' π SC S#,C#

·规则:规则是形为W←P

1∧P

2

∧…∧P

n

的式子,规则有三部分组成:

①一个称为头部(head)的关系原子;

②符号“←”,通常读作“if”;

③包括一个或多个原子的体(body),称为子目标(subgoal),它可能是关系原子,也可能是算术原子。各子目标用“与”运算符∧连接,并且子目标前面可以有“非”运算符┐,也可以没有。

●·查询:关系逻辑中的查询是一个或多个规则的聚集,规则之间的顺序无关紧要。

● 2.24 假设R(A,B,C),S(A,B,C)和T(A,B,C)为三个关系。试对下列关系代数表达式写出关系逻辑的规则或规则集:

●① R∪S ② R∩S ③ R-S ④(R∪S)-T

●⑤(R-S)∩(R-T)⑥πa,b(R)

●解: ① R∪S:W(a,b,c)←R(a,b,c)

●W(a,b,c)←S(a,b,c)

●② R∩S: W(a,b,c)←R(a,b,c) ∧ S(a,b,c)

●③ R-S: W(a,b,c)←R(a,b,c) ∧┐ S(a,b,c)

●④(R∪S)-T: W(a,b,c)←R(a,b,c) ∧┐ T(a,b,c)

● W(a,b,c)←S(a,b,c) ∧┐ T(a,b,c)

●⑤(R-S)∩(R-T): W(a,b,c)←R(a,b,c) ∧┐ S(a,b,c) ∧┐ T(a,b,

c)

●⑥πa,b(R): W(a,b)←R(a,b,c)

● 2.25 假设R(X,Y,Z)为一个关系,试写出下列关系代数表达式σF(R)的关系逻辑

规则。其中F为以下条件:

●① x = y ②x

●④┐(xy)⑤┐((xy) ∧ y

●⑥┐((x

●解: ① F为x = y,此时关系选择规则为:

●W(x,y,z)←R(x,y,z) ∧ x=y

●② F为x

●W(x,y,z)←R(x,y,z) ∧x

●③ F为x

●W(x,y,z)←R(x,y,z) ∧x

●W(x,y,z)←R(x,y,z) ∧y

●④ F为┐(xy),即x≥y ∧ x≤y,也就是x=y,此时关系选择规则为:

●W(x,y,z)←R(x,y,z) ∧ x=y

●⑤ F为┐((xy) ∧ y

●W(x,y,z)←R(x,y,z) ∧ x=y

●W(x,y,z)←R(x,y,z) ∧ y≥z

●⑥ F为┐((x

●W(x,y,z)←R(x,y,z) ∧ x≥y ∧ x≥z

●W(x,y,z)←R(x,y,z) ∧ y≥z

(2003/9/21)(GJ-DA)(共2页)目录--17

● 2.26 假设R(A,B,C),S(B,C,D)和T(D,E)为三个关系。对每个自然联接写出单一的规则:

●① R S ② S T ③(R S) T

●解: ① R S:

●W(a,b,c,d)← R(a,b,c)∧ S(b,c,d)

●② S T:

●W(b,c,d,e)← R(b,c,d)∧ S(d,e)

●③(R S) T

●W(a,b,c,d,e)← R(a,b,c)∧ S(b,c,d)∧ T(d,e)

● 2.27 对下列每个规则,写出关系代数表达式来定义与规则头部相同的关系:

●① W(x,y)← Q(x,z)∧ R(z,y)

●② W(x,y)← Q(x,z)∧ Q(z,y)

●③ W(x,y)← Q(x,z)∧ R(z,y)∧ x

●解: ①π1,4(σ2=3(Q×R))

●②π1,4(σ2=3(Q×Q))

●③π1,4(σ2=3∧1<4(Q×R))

● 2.28 试用关系逻辑的规则来定义第2.17题的各个查询语句。

解: ①检索LIU老师所授课程的课程号和课程名。

W(a,b)← C(a,b,'LIU')

②检索年龄大于23岁的男学生的学号和姓名。

W(a,b)← S(a,b,h,'M')∧h>23

③检索学号为S3学生所学课程的课程名与任课教师名。

W(a,b)← SC('S3',e,f)∧C(e,a,b)

④检索至少选修LIU老师所授课程中一门课的女学生姓名。

W(f)← S(e,f,g,'F')∧SC(e,h,i)∧ C(h,j,'LIU')

⑤检索WANG同学不学的课程的课程号。

W(a)← C(a,b,d)∧ S(e,'WANG',f,g)∧┐SC(e,a,h)

⑥检索至少选修两门课的学生学号。

W(a)← SC(a,e,f)∧ SC(a,g,h)∧ e≠g

⑦检索全部学生都选修的课程的课程号与课程名。

W(a,b)← C(a,b,e)∧┐S(f,g,h,i)∧┐SC(f,a,j)

⑧检索选修课程包含LIU老师所授全部课程的学生学号。

W(a)←SC(a,b,e)∧┐C(f,g,'LIU')∧┐SC(a,f,h)

● 2.29 试撰写短文,对关系运算的三种形式作一评估。

●答:短文应提到以下几点:

●(1)三种关系运算的理论基础。

●(2)三种关系运算的等价性。

●关系代数和关系演算在关系代数的五个基本操作的基础上是等价的。

●关系代数和关系逻辑在表达功能方面不相适应,每个都能表达另一个不能表达的

内容。在作了严格的限制后,才能等价。但关系逻辑比关系代数更富于表现力。

(2003/9/21)(GJ-DA)(共2页)目录--18

(2003/9/21) (GJ-DA ) (共2页) 目录--19 (3)三种关系运算非过程性的强弱不一样。

2.3 自测题

2.3.1 填空题

1.关系中没有行序的原因是___________。

2.

3.关系模型的基本数据结构是___________,其数据库存储时的基本组织方式是___________。

4.实体完整性规则是对___________的约束,参照完整性规则是对___________的约束。

5.关系代数的理论基础是___________,关系演算的理论基础是___________,关系逻辑的理

论基础是___________。

6.关系代数的基本操作是___________。

7.安全运算是指不产生___________和___________的运算。

8.等式

S = R ×S 成立的条件是___________。

9.关系的并、差、交操作,要求两个关系具有___________。

10.一般,在关系代数运算中,当查询涉及到“否定”时,就要用到___________操作;当查

询涉及到“全部值”时,就要用到___________操作。

11.如果关系R 和S 做自然联接时,只把R 中原该舍去的元组放到新关系中,那么这种操作

称为___________操作。

12.等式πL (σF (E ))=σF (πL (E ))成立的条件是___________。

13.等式πL1(πL2(E ))=πL1(E )成立的条件是___________。

14.等式σF (E 1×E 2)= E 1×σF (E 2)成立的条件是___________。

15.等式σF (E 1?E 2)= σF (E 1)?σF (E 2)成立的条件是___________。

16.关系逻辑中,外延谓词是指_______________,内涵谓词是指_______________。

17.关系逻辑中的“安全条件”是指____________________。

18.设有关系R (A ,B ,C ),那么与规则W (c ,a )← R (a ,b ,c )

等价的关系代数操作是____________。

19.设有关系R (A ,B ,C ),那么与规则W (a ,b )← R (a ,b ,'18')∧b ≥'15'

等价的关系代数操作是____________。

20.设有关系R (A ,B ,C )和S (B ,C ,D ),那么与规则

W (a ,d )← R (a ,b ,c )∧ S (b ,c ,d )

等价的关系代数操作是____________。

2.3.2 单项选择题(在备选答案中选出一个正确答案)

1.在关系中,“元数”(arity )是指 [ ]

A .行数

B .元组个数

C .关系个数

D .列数

2.在关系中,“基数”(cardinality )是指 [ ]

A .行数

B .属性个数

C .关系个数

D .列数

3.由系统进行数据导航的语言称为 [ ]

A .第三代语言

B .高级程序设计语言

C .过程性语言

D .非过程性语言

4.设关系R 、S 、W 各有10个元组,那么这三个关系的自然联接的元组个数为 [ ]

A .10

B .30

C .1000

D .不确定(与计算结果有关)

5.设W = R S ,且W 、R 、S 的元组个数分别为p 、m 、n ,那么三者之间满足 [ ] A .p <(m+n ) B .p ≤(m+n ) C .p <(m ×n ) D .p ≤(m ×n )

6.设关系R和S的结构相同,且各有10个元组,那么这两个关系的并操作结果的元组个数为[ ]

A.10 B.小于等于10 C.20 D.小于等于20

7.设关系R和S的属性个数分别为2和3

R

S等价于[ ] A.σ1<2(R×S)B.σ1<4(R×S)

C.σ1<2()D.σ1<4()

8.如果两个关系没有公共属性,那么其自然联接操作[ ] A.转化为笛卡尔积操作B.转化为联接操作

C.转化为外部并操作D.结果为空关系

9.下列式子中,不正确的是[ ] A.R-S=R-(R∩S)B.R=(R-S)∪(R∩S)

C.R∩S=S-(S-R)D.R∩S=S-(R-S)

10.设关系R和S都是二元关系,那么与元组表达式

{ t | (?u) (?v) (R(u) ∧S(v) ∧u[1]=v[1] ∧t[1]=v[1] ∧t[2]=v[2])} 等价的关系代数表达式是[ ]

A.π3,4(R?S)B.π2,3(R?S)

C.π3,4(R?S)D.π3,4(σ1=1(R×S))

11.在元组关系演算中,与公式P1∧P2等价的公式是[ ] A.┐(P1∨P2) B.┐P1∨┐P2

C.┐(┐P1∧┐P2) D.┐(┐P1∨┐P2)

12.在元组关系演算中,与公式(?s)(P1(s))等价的公式是[ ] A.┐(?s)(P1(s)) B.(?s)(┐P1(s))

C.┐(?s)(┐P1(s)) D.┐(?s)(┐P1(s))

13.在元组关系演算中,与公式P1=>P2等价的公式是[ ] A.┐P1∨P2B.┐P2∨P1

C.┐P1∧P2D.┐P2∧P2

14.与域演算表达式{ab | R(ab)∧R(ba)}不等价的关系代数表达式是[ ] A.π1,2(σ1=4∧2=3(R×R))B.π1,2(R ?R)

C.R∩π2,1(R)D.σ1=2(R)

15.设R和S都是二元关系,那么与元组演算表达式

{ t | (?u) (?v) (R(u)∧S(v)∧u[2]=v[2]∧t[1]=u[1]∧t[2]=v[1])}

等价的关系代数表达式是[ ]

A.π1,3(σ2=4(R?S))B.π1,3(σ2=2(R×S))

C.π1,3(R ?S)D.π1,3(R ?S)

16.设有关系R(A,B,C)和S(B,C,D),那么与R?S等价的关系代数表达式是

[ ] A.σ3=5(R?S)B.π1,2,3,6(σ3=5(R ?S))

1=3

1=1

1=2∧2=1

2=4 2=2

2=1 2=1

(2003/9/21)(GJ-DA)(共2页)目录--20

(2003/9/21) (GJ-DA ) (共2页) 目录--21 C .σ3=5∧2=4(R ×S )) D .π1,2,3,6(σ

3=2∧2=1(R ×S )) 17.设R 和S 都是二元关系,那么与元组演算表达式

{ t | R (t )∧ (?u) (S(u) ∧ u[1]≠ t[2])}

不等价的关系代数表达式是

[ ] A .π1,2(σ2≠3(R ×S )) B .π1,2(σ

2≠1(R ×S )) C .π1,2(R ?S ) D .π

3,4(σ1≠4(S ×R ))

18.在关系代数表达式的查询优化中,不正确的叙述是

[ ]

A .尽可能早地执行联接

B .尽可能早地执行选择

C .尽可能早地执行投影

D .把笛卡尔积和随后的选择合并成联接运算

2.3.3 计算题

1.设有关系R 和S :

R A B C S B C D

6 4 2 4 4 9

6 5 3 4 2 5

5 6 8 5 2 6

5 3 8

6 8 4

试计算:R ?S ,R ?S ,R ?S ,R ?S 。 2.设有关系R 和S :

R A B C S D E F

2 4 6

3 6 9

3 2 1 3

4 5

7 4 4 4 4 7

试计算下面四个元组表达式的值:

R1={ t | R (t )∧ t[2]<3 }

R2={ t | (?u) (R(t) ∧ S(u) ∧ t[1]

R3={ t | (?u) (R(t) ∧ S(u) ∧ t[3]

R4={ t | (?u)(?v)(R(u) ∧ S(v) ∧ u[2]=v[2] ∧ t[1]=u[1] ∧ t[2]=v[3])}

3.在第2题的关系R 和S 中,试计算下面四个域表达式的值:

R1={ xyz | (?u)(?v)(R (xyz )∧ S(uzv)) }

R2={ xy | (?u) (?v)(?w) (R(uxv) ∧ S(uwy) ∧ v>w )}

R3={ xyz | (?u)(?v) (R(xyz) ∧ S(uyv) ∧ x

R4={ xyz | (?u)(?v)(?w)(R(xyu) ∧ S(vwz) ∧ u=w)}

4. 在第2题的关系R 和S 中,试计算下面四个规则的值:

规则1:W1(b )← R (a ,b ,c )∧ a >c

规则2:W2(a ,b ,c ,d ,f )← R (a ,b ,c )∧ S (d ,b ,f )

规则3:W3(a ,b ,c )← R (a ,b ,c )∧ S (d ,e ,f )∧ b >d

规则4:W4(a ,b ,c )← R (a ,b ,c )∧ ┐S (c ,e ,f )

2.4 自测题答案

2.4.1 填空题答案

1.关系被定义为一个集合 2.关系中主键值不允许重复

3.关系(或二维表) 文件 4.主键 外键 5.集合

2≠1 2=1 3=2 1>3

本文来源:https://www.bwwdw.com/article/u8al.html

Top