当前位置:文档之家› 数据库原理及应用 chp2课后习题答案

数据库原理及应用 chp2课后习题答案

第 2 章 关系数据库
2.1 试述关系模型的三个组成部分。 答:关系模型的三个组成部分为关系结构、关系操作和关系完整性约束。 在关系模型中,无论是实体集,还是实体集之间的联系均由单一的关系表示。关系模式
可以形式化地表示为:R(U,D,Dom,F),其中 R 为关系名,U 为组成该关系的属性集 合,D 为属性组 U 中属性所来自的域,Dom 为属性向域的映像的集合,F 为属性间数据的 依赖关系集合。
2.5 假定关系 R 和 S 分别有 n 和 m 个元组,试说明下列运算结果中的最小和最大元组个数:
(1) R U S
(2)R

(3)σ F (R) × S ,其中 F 是条件表达式 (4) Π L (R) − S ,其中 L 是属性集合
答:
(1) R U S 的结果,最大元组个数为 m+n,最小为 m( R ⊇ S )个或者 n( R ⊆ S )
属性)为候选码。当一个关系有多个候选码时,应选定其中的一个候选码为主码;而如果关 系中只有一个候选码,这个惟一的候选码就是主码。
设 F 是基本关系 R 的一个或一组属性,但不是关系 R 的主码(或候选码)。如果 F 与基 本关系 s 的主码 KS 相对应,则称厅是基本关系 R 的外码。
2)给定一组域 D1,D2,…, Dn.这些域中可以有相同的部分,则 D1,D2,…, Dn 的笛卡地积为:D1×D2×…×Dn﹦{(dl,d2,…,dn)∣di∈Di,i=1,2, …,n}。
说明:SC 自乘之后,同一个学号下两个课程号不同的元组 若修改为:检索至少选修一门课的学生学号
πSNO(SC)
(7) 检索全部学生都选修的课程的课程号和课程名;
π (C CNO,CNAME
(πSNO,CNO(SC)÷πSNO(S)))
πSNO,CNO(SC)÷πSNO(S)
π (C) CNO,CNAME
2.7 试述笛卡尔积、F 连接、等值连接与自然连接有什么区别? 答:四种运算都是二元运算,即都是对两个关系所做的合并运算,都可以实现把两个关
系合成一个关系。 假设有关系 R(m 目)与 S(n 目),则 笛卡尔积是用 R 中的每个元组与 S 中每个元组相结合组成一个新的元组,所有这些元
组的集合组成新的关系。新关系的度为 R 与 S 的度之和,元组数为 R 与 S 元组数的乘积。 F 连接又称为θ连接,是从上述所得的笛卡尔积的结果中选取属性间满足一定条件 F 的
d
b
e
e
b
d
S)
D a d a c c a a c c
(5)R÷T 在关系 R 中,A 可能的取值为{a,b,c,d,e} a 的像集为{(b,c),(d,e)}
b 的像集为{(b,c),(d,e)} c 的像集为{(a,b)} d 的像集为{(a,e),(b,e)} e 的像集为{(a,d),(b,d)} T 在(B,C)上的投影为{(b,c),(d,e)} 只有 a,b 的像集包含了 T 在(B,C)属性组上的投影,所以 R÷T={a,b}。
说明:涉及到全部值时,应用除法,“除数”是全部量。
(8)检索选修课程包含 LIU 老师所教授课程的学生学号; 对于本题,有两种理解:一是检索选修了所有 liu 老师所讲授课程的学生学号,另外一 种理解是检索选修了 liu 老师所讲授的课程的学生学号 第一种理解:本题应该改为:检索选修课程包含 LIU 老师所有教授课程的学生学号:则 答案为:
关系操作语言包括关系代数、关系演算和基于映像的语言。关系操作语言灵活方便.表 达能力和功能都非常强大。其主要特点是:关系操作语言操作一体化;关系操作的方式是一 次一集合方式;关系操作语言是高度非过程化的语言。
关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。
2.2 一个关系模式能否没有关键字?为什么? 答:一个好的关系模式必须有关键字。 因为关键字是为了区分现实世界中每一个实体对应的元组。根据关系模式的实体完整性
=v[3])}
(4){t|( ∃ u)( ∃ v)((R(u)∧S(v)∧u[3]=v[4]∧t[1]∧u[1]∧t[2]=v[3])}
2.9 设有三个关系
S(SNO,SNAME,AGE,SEX,SDEPT)
SC(SNO,CNO,GRADE)
C(CNO,CNAME,CDEPT,TNAME)
试用关系代数,ALPHA 语言,QBE 语言完成下列查询:
说明:本题中除了第 1,2 小题之外,将省略 ALPHA 语言与 QBE 的解法:
(1)LIU 老师所教授课程的课程号、课程名;
关系代数:
π (σ (C)) CNO,CNAME
TNAME='LIU'
ALPHA 语言:
Get W(O,AME):C.TNAME=ˊLIU′ QBE 语言:
其中:供应商表 S 由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、 供应商所在城市(CITY)组成;零件表 P 由零件代码(PNO)、零件名(PNAME)、颜色 (COLOR)、重量(WEIGHT)组成;工程项目表 J 由工程项目代码(JNO)、工程项目名 (JNAME)、工程项目所在城市(CITY)组成;供应情况表 SPJ 由供应商代码(SNO)、零 件代码(PNO)、工程项目代码(JNO)、供应数量组成(QTY)组成,表示某供应商供应某 种零件给某工程项目的数量为 QTY。现有具体数据如图 2-21 所示,a、b、c、d 分别代表 S 表、P 表、J 表和 SPJ 表。
D1×D2×…×Dn 的子集称作在域 D1,D2,…, Dn 上的关系,表示为:R(D1,D2,…, Dn)。其中,R 表示关系的名字,n 是关系的目。
笛卡儿积集合中的每一个元素(dl,d2,…,dn)称为一个元组。 关系中的每一列称为一个属性。
域为数据集合,属性值来源于域。 3)关系是留卡儿积的有限子集,所以关系也是一个二维表。 关系的描述称为关系模式。关系模式可以形式化地表示为:R(U,D,Dom,F)。其 中 R 为关系名,它是关系的形式化表示;U 为组成该关系的属性集合;D 为属性组 U 中属 性所来自的域;Dom 为属性向域的映像的集合;F 为属性问数据的依赖关系集合。 在某一应用领域中,所有实体集及实体之间联系所形成关系的集合就构成了一个关系数 据库。
2.4 试述关系模型的完整性规则,在参照完整性中,为什么外部关键字属性的值也可以为 空?什么情况下才可以为空?
答:关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 关系的实体完整性规则为:若属性 A 是基本关系 R 的主属性,则属性 A 的值不能为空 值。关系的参照完整性规则为:若属性(或属性组)F 是基本关系 R 的外码,它与基本关系 S 的主码 Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对干 R 中每个元组在 F 上 的值必须取空值(F 的每个属性值均为空值)或者等于 S 中某个元组的主码值。用户定义的 完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满 足的语义要求。 由于外码在被参考关系 A 中,是非主属性,其值为空,不影响关系的实体完整性。当 外码值不清楚或不确定时,可以设为空值,此时参照表中没有对应的记录与之匹配,但前提 是该外码属性不是其所在关系的主属性。
πCNO(C)-πCNO(σSNAME='WANG'(S
SC)) 或
πCNO(C)-πCNO(σSNAME='WANG'(S)
SC))
π (C)-π (σ (S×SC)) CNO
CNO
SNAME='WANG'∧S.SNO=SC.SNO
(6) 检索至少选修两门课的学生学号;
修改之前的解法:
πSNO(σ1=4∧2≠5(SC×SC))
SNO='S3'∧O=O
(4)检索至少选修 LIU 老师所教授课程中一门课的女学生姓名;
π (σ (S) SNAME
SEX='女'
σ (C) TNAME='LIU'
SC)) 或
π (σ (S SNAME
SEX='女'∧TNAME='LIU'
SC
C))
(5)检索 WANG 同学不学的课程的课程号;
πSNO,CNO(SC) ÷πcno(σTNAME='LIU'(C))
否则,按照第二种理解,本题答案应该为:
π (σ ( SC SNO
TNAME='LIU'
C)) 或
πSNO(SC
σ (C)) TNAME='LIU'
2.10 设有一个 SPJ 数据库,包括 S,P,J,SPJ 四个关系模式: S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNANE,CITY); SPJ(SNO,PNO,JNO,QTY)。
个;
(2)R
S的结果,最大元组个数为 m 或者 n,最小为 0;
(3)σ F (R) × S 的结果,最大元组个数为 m*n,最小为 n;
(4) Π L (R) − S 的结果,最大元组个数为 m,最小为 0。 2.6 设有关系 R、S 和 T,如表 2-20(a)、2-20(b)和表 2-20(c)所示:
表 2-21(a) S 表
SNO S1 S2 S3 S4 S5
SNAME 精益 盛锡 东方红 金叶 为民
STATUS 20 10 30 10 30
CITY 天津 北京 北京 天津 上海
表 2-21(b) P 表
PNO P1 P2 P3 P4 P5 P6
PNAME 螺母 螺栓 螺丝刀 螺丝刀 凸轮 齿轮
的元组表达式。
⑴ ∏A(R) 解答:
相关主题