第二章 关系数据库
一、选择题
1. 下面的选项不是关系数据库基本特征的是(A)。
A.不同的列应有不同的数据类型 B.不同的列应有不同的列名
C.与行的次序无关 D.与列的次序无关
2. 一个关系只有一个(D)。
A.候选码 B. 外码 C. 超码 D. 主码
3. 关系模型中,一个码是(C)。
A.可以由多个任意属性组成
B.至多由一个属性组成
C.可有多个或者一个其值能够唯一表示该关系模式中任何元组的属性组成
D.以上都不是
4. 现有如下关系:
患者(患者编号,患者姓名,性别,出生日起,所在单位)
医疗(患者编号,患者姓名,医生编号,医生姓名,诊断日期,诊断结果)
其中,医疗关系中的外码是(A)。
A. 患者编号 B. 患者姓名
C. 患者编号和患者姓名 D. 医生编号和患者编号
5. 现有一个关系:借阅(书号,书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对一种书借多本,则该关系模式的外码是(D)。
A. 书号 B. 读者号C. 书号+读者号 D. 书号+读者号+借期
6. 关系模型中实现实体间 N:M 联系是通过增加一个(A)。
A.关系实现B. 属性实现 C. 关系或一个属性实现 D.关系和一个属性实现
7. 关系代数运算是以(C)为基础的运算。
A. 关系运算 B. 谓词演算 C. 集合运算 D. 代数运算
8. 关系数据库管理系统应能实现的专门关系运算包括(B)。
A. 排序、索引、统计 B. 选择、投影、连接
C. 关联、更新、排序 D. 显示、打印、制表
9. 五种基本关系代数运算是(A)。
A.∪- × σ π B.∪- σ πC.∪ ∩ × σ π D.∪ ∩ σ π
10. 关系代数表达式的优化策略中,首先要做的是(B)。
A.对文件进行预处理 B.尽早执行选择运算
C.执行笛卡尔积运算 D.投影运算
11. 关系数据库中的投影操作是指从关系中(B)。
A.抽出特定记录 B. 抽出特定字段
C.建立相应的影像 D. 建立相应的图形
12. 从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是(C)操作。
A.投影 B. 联接 C. 选择 D. 复制
13. 关系代数中的联接操作是由(B)操作组合而成。
A.选择和投影 B. 选择和笛卡尔积
C.投影、选择、笛卡尔积 D. 投影和笛卡尔积
14. 自然联接是构成新关系的有效方法。一般情况下,当对关系R和S是用自然联接时,要求R和S含有一个或者多个共有的(C)。
A.记录 B. 行 C. 属性 D. 元组
15. 假设有关系R和S,在下列的关系运算中,(D)运算不要求:“R和S具有相同的元数,且它们的对应属性的数据类型也相同” 。
A.R∩S B.R∪S C. R-S D. R×S
16. 假设有关系R和S,关系代数表达式R-(R-S)表示的是(A)。
A.R∩S B. R∪S C. R-S D. R×S
17. 下面列出的关系代数表达是中,那些式子能够成立(C)。
ⅰ. σf1 ( σf2 (E)) = σf1∧f2 (E) ⅱ. E1∞E2 = E2∞E1
ⅲ. (E1∞E2)∞E3 = E1∞(E2∞E3)ⅳ. σf1 ( σf2 (E)) =σf2 ( σf1(E))
A.全部 B. ⅱ和ⅲC. 没有 D. ⅰ和ⅳ
18. 下面四个关系表达式是等价的,是判别它们的执行效率(A)。
E1 =πA (σ B=C ∧ D=E′ (R×S) )E2 =πA (σ B=C (R× σD=E′ (S) )
E3 =πA (R∞B=CσD=E′(S) ) E4 =πA (σD=E′ (R∞B=C S) )
A. E3最快 B. E2最快 C. E4最快 D.E1最快
19. 有关系SC(S_ID,C_ID,AGE,SCORE),查找年龄大于22岁的学生的学号和分数,正确的关系代数表达式是(D)。
ⅰ. πS_ID,SCORE (σ age>22 (SC) )
ⅱ. σage>22 (πS_ID,SCORE (SC) )
ⅲ. πS_ID,SCORE (σ age>22 (πS_ID,SCORE,AGE (SC) ) )
A.ⅰ和ⅱ B. 只有ⅱ正确 C. 只有ⅰ正确 D. ⅰ和ⅲ正确
二、简答题
1. 试述关系模型的三个组成部分。
答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2. 试述关系数据语言的特点和分类。
答:关系数据语言可以分为三类:
关系代数语言。
关系演算语言:元祖关系演算语言和域关系演算语言。
SQL:具有关系代数和关系演算双重特点的语言。
这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
3.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:
S( SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
试用关系代数完成如下查询:
(1)求供应工程J1零件的供应商号码SNO;
πSNO (σSNO = ‘J1’(SPJ))
(2)求供应工程J1零件P1的供应商号码SNO;
πSNO (σSNO = ‘J1’∧ PNO = ‘P1’(SPJ))
(3)求供应工程J1零件为红色的供应商号码SNO;
πSNO (σSNO= ‘J1’(σCOLOR = ‘红色’(P∞ SPJ))
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
πJNO (SPJ) – πJNO (σCITY = ‘天津’∧COLOR = ‘红色’(S ∞SPJ ∞ P))
(5)求至少用了供应商S1所供应的全部零件的工程号JNO。
πJNO, PNO(SPJ) ÷πPNO(σSNO = ‘S1’(SPJ))
4. 定义并理解下列术语,说明它们之间的联系与区别:
(1)域,笛卡尔积,关系,元组,属性
(2)主码,候选码,外码
(3)关系模式,关系,关系数据库
答:(1)域:一组具有相同数据类型的值的集合。
笛卡尔积:建立在一组域D1,D2,...... ,Dn的笛卡尔积为:
D1 x D2 x ... x Dn={(d1, d2, ... , dn) |di ∈Di, I = 1, ... ,n}
关系:笛卡尔积D1 x D2 x ... x Dn的有限子集;
元组:笛卡尔积的每个元素(d1, d2, …, dn)称作一个n-元组(n – tuple), 简称元组(Tuple);
属性:关系的每一列对应一个域,给每列起一个名字,称为属性。
(2)主码:若关系中的某一属性组的值能够唯一地标识一个元组,则称为该属性组为候选码(Candidate Key),主码是从候选码中选定的一个码(PrimaryKey);
外部码:F是关系R的一组属性,但不是关系R的码,如果F与关系S的主码K相对应,则称F是关系R 的外部码(Foreign Key).
(3)关系模式:是对关系的型的描述,说明关系由哪些属性组成,这些属性来自于哪些域,以及属性与域的映像。形式化表示为:R(U, D,dom, F),简记为:R(U);
关系:关系可以理解为关系模式在某一时刻的状态或内容。
关系数据库:关系数据库即实体关系和实体之间联系的关系的集合。
5. 试述关系模型的完整性规则。在参照完整性中,为什么外码属性的值有时也可以为空?什么情况下才可以为空?
答:关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。
关系的实体完整性规则为:若属性A是基本关系R的主属性,则属性A的值不能为空值。关系的参照完整性规则为:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对干R中每个元组在F上的值必须取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
由于外码在被参考关系A中,是非主属性,其值为空,不影响关系的实体完整性。当外码值不清楚或不确定时,可以设为空值,此时参照表中没有对应的记录与之匹配。
6. 试述等值连接与自然连接的区别和联系。
答:连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组。
自然连接时一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
7. 关系代数的基本运算有哪些?
答:并(U)、差(-)、笛卡尔积(X)、投影(π)、选择(σ)5种运算为基本的运算。其他3中国运算,即交、连接和除,均可以使用这5种基本运算来表达。
8. 试用关系代数的基本运算来表示其他运算。
R∩S = R - (R – S)R ∞ S=σAθB(R×S) R÷S=πx(πx(R)×S-R)