第2部分 关系模型与关系代数
复习习题与讲解资料<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
【主讲教师:钱哨】
一.考试大纲考点要求
1
掌握
关系、关系性质、候选键、外部键、主属性、非主属性、关系模型完整性、关系模式、关系数据库等基本概念。
2
掌握
关系代数及其运算:并、差、交、笛卡尔积、投影、选择、自然连接、 θ 连接等。
3
了解
元组关系演算和域关系演算。
二.单项选择题(第一部分)
1. 下面的选项不是关系数据库基本特征的是( )。
A.不同的列应有不同的数据类型
B.不同的列应有不同的列名
C.与行的次序无关
D.与列的次序无关
2. 一个关系只有一个( ) 。
A.候选码 B. 外码 C. 超码 D. 主码
3. 关系模型中,一个码是( )。
A.可以由多个任意属性组成
B.至多由一个属性组成
C.可有多个或者一个其值能够唯一表示该关系模式中任何元组的属性组成
D.以上都不是
4. 现有如下关系:
患者(患者编号,患者姓名,性别,出生日起,所在单位)
医疗(患者编号,患者姓名,医生编号,医生姓名,诊断日期,诊断结果)
其中,医疗关系中的外码是()。
A. 患者编号 B. 患者姓名
C. 患者编号和患者姓名 D. 医生编号和患者编号
5. 现有一个关系:借阅(书号,书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对一种书借多本,则该关系模式的外码是( )。
A. 书号 B. 读者号 C. 书号+读者号 D. 书号+读者号+借期
6. 关系模型中实现实体间 N:M 联系是通过增加一个( )。
A.关系实现 B. 属性实现 C. 关系或一个属性实现 D. 关系和一个属性实现
7. 关系代数运算是以( )为基础的运算 。
A. 关系运算 B. 谓词演算 C. 集合运算 D. 代数运算
8. 关系数据库管理系统应能实现的专门关系运算包括( )。
A. 排序、索引、统计 B. 选择、投影、连接
C. 关联、更新、排序 D. 显示、打印、制表
9. 五种基本关系代数运算是( )。
A.∪ - × σ π
B.∪ - σ π
C.∪ ∩ × σ π
D.∪ ∩ σ π
10. 关系代数表达式的优化策略中,首先要做的是( ) 。
A.对文件进行预处理
B.尽早执行选择运算
C.执行笛卡尔积运算
D.投影运算
11. 关系数据库中的投影操作是指从关系中( ) 。
A.抽出特定记录 B. 抽出特定字段
C.建立相应的影像 D. 建立相应的图形
12. 从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是( )操作 。
A.投影 B. 联接 C. 选择 D. 复制
13. 关系代数中的联接操作是由( )操作组合而成 。
A.选择和投影 B. 选择和笛卡尔积
C.投影、选择、笛卡尔积 D. 投影和笛卡尔积
14. 自然联接是构成新关系的有效方法。一般情况下,当对关系R和S是用自然联接时,要求R和S含有一个或者多个共有的( ) 。
A.记录 B. 行 C. 属性 D. 元组
15. 假设有关系R和S,在下列的关系运算中,( )运算不要求:“R和S具有相同的元数,且它们的对应属性的数据类型也相同” 。
A.R∩S B. R∪S C. R-S D. R×S
16. 假设有关系R和S,关系代数表达式R-(R-S)表示的是( )。
A.R∩S B. R∪S C. R-S D. R×S
17. 下面列出的关系代数表达是中,那些式子能够成立( ) 。
ⅰ. σ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. 下面四个关系表达式是等价的,是判别它们的执行效率( ) 。
E1 =πA (σ B=C ∧ D=E′ (R×S) )
E2 =πA (σ B=C (R× σD=E′ (S) )
E3 =πA (R∞B=CσD=E′(S) )
E3 =πA (σD=E′ (R∞B=C S) )
A. E3最快 B. E2最快 C. E4最快 D. E1最快
19. 有关系SC(S_ID,C_ID,AGE,SCORE),查找年龄大于22岁的学生的学号和分数,正确的关系代数表达式是( ) 。
ⅰ. π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) A (2) D (3) C (4) A (5) D
(6) A (7) C (8) B (9) A (10) B
(11) B (12) C (13) B (14) C (15) D
(16) A (17) C (18) A (19) D
三. 简答题
1. 试述关系模型的三个组成部分。
2. 试述关系数据语言的特点和分类。
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;
(2) 求供应工程J1零件P1的供应商号码SNO;
(3) 求供应工程J1零件为红色的供应商号码SNO;
(4) 求没有使用天津供应商生产的红色零件的工程号JNO;
(5) 求至少用了供应商S1所供应的全部零件的工程号JNO。
4. 定义并理解下列术语,说明它们之间的联系与区别:
(1)域,笛卡尔积,关系,元组,属性
(2)主码,候选码,外码
(3)关系模式,关系,关系数据库
5. 试述关系模型的完整性规则。在参照完整性中,为什么外码属性的值有时也可以为空?什么情况下才可以为空?
6. 试述等值连接与自然连接的区别和联系。
7. 关系代数的基本运算有哪些?
8. 试用关系代数的基本运算来表示其他运算。
四. 填空题及问答题
1 .关系模型的三个组成部分是________,________,________。
2 .关系数据模型中,二维表的列称为________,二维表的行称为________。
3 . 试述关系数据语言的特点和分类。 (填空题)
4 .用户选作元组标识的一个候选码为________,其属性不能取________。
5 .定义并理解下列术语,说明它们之间的联系与区别:
(1) 域,笛卡尔积,关系,元组,属性
(2)主码,候选码,外部码
(3)关系模式,关系,关系数据库
6 .关系代数运算中,传统的集合运算有_____,_____,_____,_____。
7 .试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?
8 .关系代数运算中,基本的运算是________,________,________,________,________。
9 . 等值连接与自然连接的区别是什么?
10 .关系代数运算中,专门的关系运算有________,________,________。
11 . 代数的基本运算有哪些?如何用这些基本运算来表示其他的关系基本运算?
12 .关系数据库中基于数学上的两类运算是________和________。
13 .关系代数中,从两个关系中找出相同元组的运算称为________运算。
14 .R×S表示R与S的________。
15 .设有学生关系:S(XH,XM,XB,NL,DP)。在这个关系中,XH表示学号,XM表示姓名,XB表示性别,NL表示年龄,DP表示系部。查询学生姓名和所在系的投影操作的关系运算式是________________。 (问答题)
16 .在“学生-选课-课程”数据库中的3个关系如下:S(S#,SNAME,SEX,AGE);SC(S#,C#,GRADE); C(C#,CNAME,TEACHER),查找选修“数据库技术”这门课程学生的学生名和成绩,若用关系代数表达式来表示为________________。 (问答题)
17 .已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是________,系关系的外码是________,学生关系的主码是________,学生关系的外码是________。 (问答题)
五、综合题
1.对下列关系模式分别用关系代数、元组关系演算和SQL实现下列查询:
⑴查询学生95001的所有信息
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
select *
from Student
where Sno=’<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />95001’
⑵查询学生95001的姓名和所在系
select Sname,Sdept
from Student
where Sno=’95001’
⑶查询选修了1号课的学生的学号
select Sno
from SC
where Cno=’1’
⑷查询选修了1号课的学生的姓名
select Sname
from Student,SC
where Student.Sno=SC.Sno and Cno=’1’
⑸查询至少选修了1号课和3号课的学生的学号
select Sno
from SC X , SC Y
where X.Sno=Y.Sno and X.Cno=’1’ and Y.Cno=’3’
⑹查询至少选修了一门其直接先行课为5号课的学生学号
select *
from SC,Course
where Course.Cno=SC.Cno and Cpno=’5’
⑺查询没有选修1号课程的学生姓名
select Sname
from Student ,SC
where not exists
(select *
from SC
where SC.Sno=Student.Sno and SC.Cno=’1’)
⑻查询选修了全部课程的学生的学号和姓名
select Sno,Sname
from Student
where not exists
(select *
from Course
where not exists
(select *
from SC
where SC.Sno=Student.Sno and SC.Cno=C.Cno))
)
⑼查询最少选修了95002学生所选课程的学生学号
select Sno
from SC X
where not exists
(select *
from SC Y
where Sno=’95002’ and not exists
(select *
from SC Z
where Z.Sno=X.Sno and Z.Cno=Y.Cno))
)
⑽查询每门课的平均成绩(只要求SQL)
select Cno,avg(Grade)
from SC
group by Sno
(11)查询每个学生的平均成绩(只要求SQL)
select Sno,avg(Grade)
from SC
group by Sno
2.对学生-课程数据库有如下查询:select Cname from Student,Course,SC where Student.Sno=SC.Sno and SC.Cno=Course.Cno and Student.Sdept=’IS’,试画出用关系代数表示的语法树,并进行优化,画出优化后的标准语法树。
转载于:https://blog.51cto.com/qianshao/255558