【作者的心里话】
刷题这件事,需要大量积累。实践才能出真知,光听课很难真的学懂。
所以客官,不妨进来,拿下这套题!
试题来源:数据库系统概论 (ruc.edu.cn)
还有,刷题这件事,没必要从第一章开始。就像你背单词,不用总被abandon。
第二章 关系数据库 选择题
1. 一个关系只有一个( ) 。
候选码
外码
超码
主码
解释:
在数据库设计中,主码(Primary Key)和候选码(Candidate Key)虽然都承担着唯一标识表中每一条记录的角色,但它们之间是有区别的。
-
候选码:在一个关系中,能够唯一标识元组(即表中的每一行)的一个属性或属性组称为候选码。一个关系可以有多个候选码。
-
主码:从候选码中选取一个作为主码,用来唯一标识表中的每一行。一个关系只能有一个主码
2. 关系模型中,一个码是( )。
可以由多个任意属性组成
至多由一个属性组成
由一个或多个属性组成,其值能够惟一标识关系中一个元组
以上都不是
码可以认为是候选码的简称。如果理解为主码,本题答案也不变,只是作者推测码的解释更应该理解为候选码。
候选码(candidate key)
关系模式中的某一个属性或一组属性的值能唯一地标识一个元组,而它的真子集不能唯一地标识一个元组,则称该属性或属性组为候选码为候选码
简单的情况:候选码只包含一个属性
全码(all-key)
最极端的情况:关系模式的所有属性是这个关系模式的候选码,称为全码(all-key)
3. 现有如下关系: 患者(患者编号,患者姓名,性别,出生日期,所在单位) 医疗(患者编号,医生编号,医生姓名,诊断日期,诊断结果) 其中,医疗关系中的外码是( )。
患者编号
患者姓名
患者编号和患者姓名
医生编号和患者编号
【解析】
方法一:去代入抽象的定义,理解之
医疗关系是参照关系时,患者关系是被参照关系,患者编号是医疗关系中的外码。
根据下面的知识点,有
设F(患者编号)是基本关系R(医疗关系)的一个或一组属性,但不是关系R(医疗关系)的码(因为患者编号、医生编号、诊断日期和诊断结果一起构成关系R的码),Ks(患者编号)是基本关系S(患者关系)的主码。如果F与Ks相对应,则称F是R(医疗关系)的外码
方法二:使用大白话解释
如果某个关系中的码,不是这个关系的主码,但是,哎,这个关系又是别的关系的码。那么这个码就是这个关系中的外码。所谓外码,你可以理解为外联部、外交部或者什么微信QQ的沟通工具,用来找别的信息的时候,你就会用到这个。因为你看,外码是别的关系的码,那从别的关系里面找元组就极其的方便。同时外码又不是自身关系的码,那么就会违反参照完整性了。(完整性你不懂?没事,复习到后面你肯定就会了,不要纠结于细枝末节,大踏步前进)
外码的定义是它必须引用另一个表的主码,这是关系数据库中定义参照完整性的基础。如果外码是自身关系的主码,那么它将无法引用另一个表,这与外码的定义相矛盾。

【知识点】
设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码
基本关系R称为参照关系(referencing relation)
基本关系S称为被参照关系(referenced relation)
或目标关系(target relation)
【补充例2.1】
“学生”关系的“主修专业”属性与“专业”关系的主码“专业名”相对应
“主修专业”属性是学生关系的外码
“专业”关系是被参照关系,“学生”关系为参照关系

4. 关系代数运算是以( )为基础的运算 。
关系运算
谓词演算
集合运算
代数运算
5. 关系数据库管理系统应能实现的专门关系运算包括( )。
排序、索引、统计
选择、投影、连接
关联、更新、排序
显示、打印、制表
解析:
在关系数据库管理系统中,专门的关系运算主要包括以下几种:
选择(Selection):从关系中选取满足特定条件的元组。
投影(Projection):从关系中选取指定的属性列组成新的关系。
连接(Join):将两个关系中的元组按照一定的条件拼接成一个新的关系。
大白话:行操作、列操作、多表缩一表操作
6. 五种基本关系代数运算是( )。
∪ - × σ π
∪ - σ π
∪ ∩ × σ π
∪ ∩ σ π
解说:+ - x 行操作 列操作
x是笛卡尔积
笛卡尔积的定义如下,对于两个集合A,B
A笛卡尔积B={(a,b)|a∈A,b∈B}
定义看不懂?没事,看个例子。
例子 1:城市与交通工具的笛卡尔积
假设有两个集合:
- A = {北京, 上海}
- B = {自行车, 汽车}
集合 A 和 B 的笛卡尔积 A×B 是:
- A×B = {(北京, 自行车), (北京, 汽车), (上海, 自行车), (上海, 汽车)}
这个例子展示了每个城市与每种交通工具的所有可能组合。
例子 2:水果与颜色的笛卡尔积
假设有两个集合:
- A = {苹果, 橙子}
- B = {红色, 绿色, 黄色}
集合 A 和 B 的笛卡尔积 A×B 是:
- A×B = {(苹果, 红色), (苹果, 绿色), (苹果, 黄色), (橙子, 红色), (橙子, 绿色), (橙子, 黄色)}
这个例子展示了每种水果与每种颜色的所有可能组合。虽然现实中我们可能不会看到红色的橙子或绿色的苹果,但在数学上,这些组合都是有效的。
7. 关系数据库中的投影操作是指从关系中( ) 。
抽出特定记录
抽出特定字段
建立相应的影像
建立相应的图形
解析:π(或者/pi) 列操作
8. 从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是( )操作 。
投影
连接
选择
复制
解析:σ(或者/sigma) 行操作
9. 关系代数中的连接操作是由( )操作组合而成 。
选择和投影
选择和笛卡尔积
投影、选择、笛卡尔积
投影和笛卡尔积
解说:先用笛卡尔积列出所有情况,而后利用选择得到满足条件(比如student表中的.sno=sc表中的sno)的情况,而后去除重复的组(包含选择操作),得到的就是连接
10. 一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的( ) 。
记录
行
属性
元组
解析:自然连接=等值连接+去除重复列
11. 假设有关系R和S,关系代数表达式R-(R-S)表示的是( )。
R∩S
R∪S
R-S
R×S
解析:
方法一:代数证明
提示,利用:R-S ={a|a∈R且a不∈S}
方法二:集合几何视角证明
韦恩图即解。证完之后我们也可以看出第6题不选交运算的原因。
-
首先,绘制两个重叠的圆圈,一个代表关系 R,另一个代表关系 S。重叠的部分表示 R 和 S 的交集。
-
然后,在代表关系 R 的圆圈中,但是不在代表关系 S 的圆圈中的部分,用阴影或不同颜色表示,这部分代表 R - S。
-
最后,从代表关系 R 的圆圈中去掉步骤 2 中标记的部分,剩下的就是 R - (R - S) 的结果


12. 下面的选项不是关系数据库基本特征的是( )。
不同的列应有不同的数据类型
不同的列应有不同的列名
与行的次序无关
与列的次序无关
答案:A
第二章 关系数据库 填空题
太简单了,实在是没有必要写解析。
1-7题
1.关系数据模型中,二维表的列称为________,二维表的行称为________。
答案:属性;元组(或记录)
2.用户选作元组标识的一个候选码为________,其属性不能取________。
答案:主码;空值
3.关系代数运算中,传统的集合运算有_____,_____,_____,_____。
答案:交、并、、差、笛卡尔积补
4.关系代数运算中,基本的运算是________,________,________,________,________。
答案:并、差、笛卡尔积、选择、投影
5.关系代数运算中,专门的关系运算有________,________,________。
答案:选择、投影、连接
6.关系数据库中基于数学上的两类运算是________和________。
答案:关系代数;关系演算
7.关系代数中,从两个关系中找出相同元组的运算称为________运算。
答案:交
8.
表示R与S的________。
答案:自然连接

9.设有学生关系:S(XH,XM,XB,NL,DP)。在这个关系中,XH表示学号,XM表示姓名,XB表示性别,NL表示年龄,DP表示系部。查询学生姓名和所在系的投影操作的关系运算式是________________。
解析:投影xm dp(S)
正确答案: π2,5(S) 或 πXM,DP(S)
10.在“学生-选课-课程”数据库中的3个关系如下:S(S#,SNAME,SEX,AGE);SC(S#,C#,GRADE); C(C#,CNAME,TEACHER),查找选修“数据库技术”这门课程学生的学生名和成绩,若用关系代数表达式来表示为________________。
解析:投影 SNAME,GRADE{【选择CNAM=”数据库技术”(在C关系表格中) 】自然连接 SC 自然连接S }
正确答案:πSNAME,GRADE(S自然连接(SC自然连接(σCNAME=’数据库技术’)))
11.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是________,系关系的外码是________,学生关系的主码是________,学生关系的外码是________。
解析:系编号是系的主码,根据前面的选择题可以看出,外码必须不是该关系的主码。
答案:系编号;(没有);学号;系编号
12. 试述关系模型的三个组成部分。
正确答案: 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
--关系数据结构:
关系数据结构是关系模型的基础,它定义了数据的组织方式。在关系模型中,所有数据都被组织成二维表的形式,这些表被称为关系。
每个关系都有一个唯一的名字,并且由若干列(属性)组成,每一列有一个唯一的列名。列定义了数据类型和可能的值域。
行(元组)代表数据记录,每一行对应表中的一个实体实例,每一列的值代表实体的一个属性值。
关系模型通过表格的形式直观地表示实体及其相互之间的关系,使得数据的存储和访问变得结构化和规范化。
--关系操作集合:
关系操作集合定义了可以施加于关系数据结构上的一组操作。这些操作包括但不限于:
选择(Selection):从关系中选取满足特定条件的元组。
投影(Projection):从关系中选取指定的属性列。
连接(Join):将两个或多个关系合并成一个关系。
除(Division):类似于数学中的除法,用于确定一个关系在另一个关系中的所有可能组合。
并(Union)、交(Intersection)和差(Difference):这些操作允许合并、相交或相减两个关系。
这些操作提供了处理和查询数据的能力,是数据库管理系统(DBMS)的核心功能之一。
--关系完整性约束:
关系完整性约束是一组规则,用于确保数据库中数据的准确性和一致性。这些约束包括:
实体完整性:确保关系中的每个主键值都是唯一的,并且不为空。
参照完整性:确保外键值要么与被参照关系中某个主键值相对应,要么为空。
用户定义的完整性:用户根据具体应用需求定义的约束,如数据类型、值域、业务规则等。
完整性约束是数据库设计的重要组成部分,它们帮助维护数据库的一致性和可靠性,防止数据错误和不一致。
*13. 试述关系数据语言的特点和分类。
正确答案: 关系数据语言可以分为三类: ①关系代数语言,例如ISBL ②关系演算语言,包括:②-1- 元组关系演算语言,例如APLHA,QUEL ②-2- 域关系演算语言,例如QBE
这些关系数据语言的共同特点是,具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
具有关系代数和关系演算双重特点的语言 例如SQL

关系数据语言
1.关系代数语言
2.关系演算语言
①元组关系演算语言 ALPHA
②域关系演算语言 QBE
14.定义并理解下列术语,说明它们之间的联系与区别: (1) 域,笛卡尔积,关系,元组,属性 (2)主码,候选码,外部码 (3)关系模式,关系,关系数据库
(1)域,笛卡尔积,关系,元组,属性
①域:域是一组具有相同数据类型的值的集合
例:
整数
实数
介于某个取值范围的整数
长度小于25B的变长字符串集合
{男,女}
……
②笛卡尔积:从做运算的两个集合中各选一个元素组成一个有序对,所有可能组成的有序对的合集称为两个集合的笛卡尔积
给定一组域D1,D2,…,Dn,允许其中某些域是相同的。
D1,D2,…,Dn的笛卡儿积为:
D1×D2×…×Dn =
{(d1,d2,…,dn)|diÎDi,i=1,2,…,n}
所有域的所有取值的一个组合
不能重复
③关系:一个二维的表。若干元组的集合。表的每行对应一个元组,表的每列对应一个域
④元组:关系中的一行
⑤属性:关系中的一列
(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.试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?
答案:关系模型的完整性有3条
①内容完整 实体完整
②外值完整 参照完整
③自定义完整 用户定义的完整
参考答案: 关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。
1) 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。
2) 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必 须为: • 或者取空值(F的每个属性值均为空值); • 或者等于S中某个元组的主码值。
3) 用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。
在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定。但前提条件是该外部码属性不是其所在关系的主属性。 例如,在下面的“学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空。其语义是,该学生的专业尚未确定。 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空。因为关系模型必须满足实体完整性。 课程(课程号,课程名,学分) 选修(学号,课程号,
16. 等值连接与自然连接的区别是什么?



正确答案: 连接运算中有两种最为重要也最为常用的连接,一种是等值连接(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] }
答案:自然连接=等值连接+去除重复列
17. 代数的基本运算有哪些?如何用这些基本运算来表示其他的关系基本运算?
答案:并,差,笛卡尔积,选择,投影
正确答案: 在八种关系代数运算中,并、差、笛卡尔积、投影和选择五种运算为基本的运算。其他三种运算,即交、连接和除,均可以用五种基本运算来表达。 交运算: R∩S = R-(R-S)
R连接S,
选择满足条件t_r[A] \theta t_s[B]的 RxS
故只需使用笛卡尔积和选择。
至于自然连接,只需要再利用投影即可

R除S
R连接S,获得T(X,Y,Y,Z)(其实也可以不连接)
从中选择满足x的象集Y_X可以包含(容纳)S在Y上投影的集合
【补充】关于子集的转化
检查R是否是S的子集
首先,我们需要检查R中的每个元素是否都在S中。这可以通过以下步骤实现:
计算R与S的差集(R - S)。
检查差集是否为空。
如果R - S为空,则R中的所有元素都在S中,这意味着R是S的子集。
【补充】象值的获取
在关系代数中,要获得元组在属性集合X上分量值为x的“象值”,我们可以通过以下步骤使用集合的并、差、笛卡尔积、选择、投影这五种基本运算:
假设我们有一个关系R,属性集合X包含在R的属性中,我们要找到所有在属性集合X上分量值为x的元组的“象值”,即其余属性的值。
以下是步骤:
选择(Selection):首先,我们从关系R中选择出那些在属性集合X上分量值为x的元组。
操作:σ_X=x®,其中σ是选择操作,X是属性集合,x是属性X上的目标值。
投影(Projection):然后,我们对这些选出的元组进行投影,以获得其余属性的值。
操作:π_Y(σ_X=x®),其中π是投影操作,Y是除了属性集合X之外的所有属性集合。
综合以上两步,我们可以得到以下关系代数表达式:
π_Y(σ_X=x®)
最后进行投影即可获得满足条件的X分量值
系列文章动手刷题版权说明,之后文章省略。
版权所有 © 2015 信息学院,信息技术与信息管理国家级实验教学示范中心
作者新增解析答案版权归 © 2024 全体中国公民享有
如果这篇文章对您有帮助的话,希望可以得到您的点赞支持!
1285

被折叠的 条评论
为什么被折叠?



