第二章

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

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

2.简述关系数据语言的特点和分类。

关系数据语言可以分为三类:

关系代数语言

关系演算语言:元组关系演算语言和域关系演算语言。

结构化查询语言(SQL): 具有关系代数和关系演算双重特点的语言。

3.定义并理解下列术语,说明它们之间的联系与区别:

1)域,笛卡儿积,关系,元组,属性;

2)主码,全码,候选码,外码,主属、非主属性;

3)关系模式,关系,关系数据库

第一问

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

  • 笛卡儿积:是域上的一种集合运算

  • 关系:D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)

  • 元组:笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)

  • 属性:关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)

第二问

  • 主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)

  • 全码:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)

  • 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码

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

  • 主属性:候选码的诸属性称为主属性(Prime attribute)

  • 非主属性:不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute)或非码属性(Non-key attribute)

第三问

  • 关系模式:关系模式是对关系的描述

  • 关系:D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)

  • 关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库

4.举例说明关系模式和关系的区别。

关系模式是型;关系是值,是关系模式的实例。

5.试述关系模型的完整性约束。在参照完整性中,什么情况下外码属性的值可以为空值?

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

实体完整性规则:是指若属性A 是基本关系R 的主属性,则属性 A 不能取空值。

参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系)

用户定义的完整性:是针对某一具体关系数据库的约束条件。它反映某一具体应用所设计的数据必须满足的语义要求。   

在参照完整性中,如果外码属性不是其所在关系的主属性,则可以取空值,否则不能取空值。 

6.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:

1)求供应工程J1零件的供应商号码SNO

关系代数:πSNO(σJNO=‘J1’(SPJ))

ALPHA语言:

GET W(SPJ.SNO): SPJ.JNO='J1'

2)求供应工程J1零件P1的供应商号码SNO:

关系代数:πSNO(σJNO=‘J1’∧PNO=‘P1‘(SPJ))

ALPHA语言:

GET W(SPJ.SNO):SPJ.JNO='J1'∧SPJ.PNO=‘P1‘

3)求供应工程J1零件为红色的供应商号码SNO:

关系代数:πSNO(πSNO,PNO(σJNO=‘J1‘ (SPJ))πPNO(σCOLOR=’红‘ (P)))

ALPHA语言:

RANGE P PX

GET W(SPJ.SNO) :SPJ.JNO='J]'A3PX(PX.COLOR='红'APX.PNO=SPJ.PNO)

4)求没有使用天津供应商生产的红色零件的工程号JNO:

关系代数:πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (SSPJP)

ALPHA 语言 :

RANGE   SPJ SPJX 
        P PX 
        S SX 
GET W(J.JNO) :¬∃ SPJX(SPJX.JNO=J.JNO ∧
         ∃ SX(SX.SNO=SPJX.SNO ASX.CITY ='天津∧ 
         ∃ PX(PX.PNO=SPJX.PNO APX.COLOR ='红'))

5)求至少用了供应商S1所供应的全部零件的工程号JNO:

关系代数:πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))

ALPHA 语言 :

GET W(J.JNO) :∀ PX(∃ SPJX(SPJX.PNO=PX.PNO ∧ SPJX.SNO='S1)
                =>3SPJY(SPJY.JNO=JJNO ASPJY.PNO=PX.PNO))

7.试述等值连接与自然连接的区别和联系。

连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组;   

自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。

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

并、差、笛卡尔积、投影和选择5种运算为基本运算。

其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。

最后更新于