数据库原理及应用(第3版) - 全部习题new 下载本文

第第22章章 关关系系数数据据库库

一、单项选择题

1、A 2、C 3、B 4、C 5、A 6、B 7、B 8、B 9、C 10、C

1、设关系R和S的属性个数分别为r和s,则(R×S)操作结果的属性个数为( ) A. r+s B. r-s C. r×s D. max(r,s) 2、在基本的关系中,下列说法正确的是( )

A. 行列顺序有关 B. 属性名允许重名 C. 任意两个元组不允许重复 D. 列是非同质的 3、有关系R和S,R∩S的运算等价于( )

A.S-(R-S) B.R-(R-S) C.(R-S)∪S D.R∪(R-S)

4、设关系R(A,B,C)和S(A,D),与自然连接R ∞ S等价的关系代数表达式是( ) A. σR.A=S.A(R×S) B. R S

1=1

C. ∏B,C,S.A,D(σR.A=S.A(R×S)) D. ∏R.A,B,C(R×S) 5、五种基本关系代数运算是( ) A. ∪、-、×、π和σ B. ∪、-、、∏和σ C. ∪、∩、×、π和σ D. ∪、∩、、π和σ 6、关系代数中的θ联接操作由( )操作组合而成。

A.σ和π B.σ和× C.π、σ和× D.π和× 7、在关系数据模型中,把( )称为关系模式。

A.记录 B.记录类型 C.元组 D.元组集

8、对一个关系做投影操作后,新关系的基数个数( )原来关系的基数个数。 A.小于 B.小于或等于 C.等于 D.大于

9、有关系:R(A,B,C)主键=A,S(D,A)主键=D,外键=A,参照R的属性A,系R和S的元组如下:指出关系S中违反关系完整性规则的元组是( )。

R: A B C S: D A 1 2 3 1 2 2 1 3 2 null

3 3

17

数据库原理及应用 4 1

A. (1,2) B. (2,null) C. (3,3) D. (4,1) 10、关系运算中花费时间可能最长的运算是( )。

A.投影 B.选择 C.广义笛卡儿积 D.并

二、填 空

1、关系中主码的取值必须惟一且非空,这条规则是_实体_完整性规则。

2、关系代数中专门的关系运算包括:选择、投影、连接和除法,主要实现_查询_类操作。

3、关系数据库的关系演算语言是以_谓词演算_为基础的DML语言。

4、关系数据库中,关系称为_表__,元组亦称为__行__,属性亦称为_列__。 5、数据库描述语言的作用是_定义数据库_。

6、一个关系模式可以形式化地表示为_R(U,D,dom,F)_。 7、关系数据库操作的特点是__一次一集合_式操作。 8.数据库的所有关系模式的集合构成_关系数据库模型_,所有的关系集合构成_关系数据库_。

9、在关系数据模型中,两个关系R1与R2之间存在1:m的联系,可以通过在一个关系R2中的_外键或外码或外部关键字_在相关联的另一个关系R1中检索相对应的记录。

10、将两个关系中满足一定条件的元组连接到一起构成新表的操作称为_θ-连接_操作。

三、简单、计算或查询

1、试述关系模型的三要素内容。 解:

1)关系模型的数据结构——关系

关系模型的数据结构:非常单一,在用户看来,关系模型中数据的逻辑结构是一张二维表。但关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种联系。

2)关系模型的关系操作:关系模型给出了关系操作的能力,它利用基于数学的方法来表达关系操作,关系模型给出的关系操作往往不针对具体的RDBMS语言来表述。

关系模型中常用的关系操作包括:选择(select)、投影(project)、连接(join)、除(divide)、并(union)、交(intersection)、差(difference)等查询(query)操作和添加(insert)、删除(delete)、修改(update)等更新操作两大部分。查询的表达能力是其中最主要的部分。

早期的关系操作能力通常用代数方式或逻辑方式来表示,分别称为关系代数和关系演算。关系代数是用对关系的运算(即元组的集合运行)来表达查询要求的方式。关系演算是用谓词来表达查询要求的方式。关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达功能上是等价的。

另外还有一种介于关系代数和关系演算之间的语言SQL(Structured Query Language)。SQL不但具有丰富的查询功能,而且具有数据定义、数据操纵和数据控制功能,是集查询、DDL、DML、DCL于一体的关系数据语言。它充分体现了关系数据语言的特点和优点,是关系数据库的国际标准语言。因此,关系数据语言可以分成三类:

(1) 关系代数:用对关系的集合运算表达查询要求,例如 ISBL。

18

(2) 关系演算:用谓词表达查询要求,可分为两类:①元组关系演算:谓词变元的基本对象是元组变量,例如 APLHA、QUEL;②域关系演算:谓词变元的基本对象是域变量,例如QBE。

(3) 关系数据语言,例如SQL。

这些关系数据语言的共同特点是:语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入到高级语言中使用。

3)关系模型的三类完整性约束:关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性、参照完整性和用户自定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。用户自定义的完整性是应用领域特殊要求而需要遵循的约束条件,体现了具体领域中的语义约束。

2、试述关系数据库语言的特点和分类。 解:见上题“2)关系模型的关系操作”。

3、定义并理解下列概念,说明它们间的联系与区别: (1)域、笛卡尔积、关系、元组、属性 (2)主码、候选码、外码

(3)关系模式、关系、关系数据库 解:

(1)域、笛卡尔积、关系、元组、属性

1)域:域是一组具有相同数据类型的值的集合。

2)笛卡尔积:给定一组域D1、D2、?、Dn(这些域中可以包含相同的元素,即可以完全不同,也可以部分或全部相同), D1、D2、?、Dn的笛卡尔积为

D1×D2×?×Dn={(d1,d2,?,dn)|di∈Di,i=1,2,?,n}

3)关系(Relation):D1×D2×?×Dn的任一子集叫作在域D1,D2,?Dn上的关系,用 R(D1,D2,?Dn)表示。

关系是笛卡尔积的子集,反过来说,看到某关系,也要看到该关系背后存在的其所属于的笛卡尔积,关系内容无论如何变都变化不出其所属于的笛卡尔积的,这是笛卡尔积概念的意义所在。

4)表的每行对应一个元组。

5)表的每列起一个唯一的名字,称为属性。 联系:

关系是笛卡尔积的子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个唯一的名字,称为属性。

(2)主码、候选码、外码

1)候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key),关系至少含有一个候选码。

2)主码:一个关系至少有一个候选码,则选定其中一个为主控使用者,称为主码(Primary key)。

3)外码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign key)。

19

数据库原理及应用 联系:

关系的候选码中选定一个称为主码,主码即是候选码;而外码是与另一关系的主码相对应的属性组。

(3)关系模式、关系、关系数据库

关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述,一个关系模式应当是一个5元组。

1)关系模式:关系的描述称为关系模式(Relation Schema)。一个关系模式应当是一个五元组。它可以形式化地表示为:R(U, D, dom, F)。其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域的集合,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。

2)关系:关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。

3)关系数据库:在关系模型中,实体以及实体间的联系都是用关系来表示。在一个给定的现实世界领域中,所有实体及实体之间的联系的关系的集合构成一个关系数据库。

联系:

关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际使用中,常常把关系模式和关系统称为关系,读者可以从上下文中加以区别。

关系的集合构成一个关系数据库,关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,是关系模式的集合。关系数据库的值也称为关系数据库,是关系的集合。关系数据库模式与关系数据库通常统称为关系数据库。

4、关系数据库的完整性规则有哪些?试举例说明。 解:

1)关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。

2)

(1)实体完整性:若属性组(或属性)K是基本关系R的主码(或称主关键字),则所有元组K的取值唯一,并且K中属性不能全部或部分取空值。

例如:在课程关系T中,若“课程名”属性为主码,则“课程名”属性不能取空值,并且课程名要唯一。

(2)参照完整性:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S可能是相同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。

例如,对于“学生(学号,姓名,性别,年龄,系别号)、系别(系别号,系名)”两关系,“系别号”为学生关系的外码。它要满足参照完整性。对于学生关系中的每个元组的“系别号”属性只能取下面两类值:空值,表示尚未给该学生分配系别;非空值,则该值必须是系别关系中某个元组的“系别号”的值,表示该学生不可能分配到一个不存在的系中,即被参照关系“系别”中一定存在一个元组,它的主码值等于该参照关系“学生”中的外码值。

(3)用户定义的完整性:用户定义的完整性就是针对某一具体应用的关系数据库所制定的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

例如,对于学生关系中的年龄,我们可以按需要定义“年龄>8并且年龄<45”的自定义规则。

20