第二章 关系数据库
- 格式:doc
- 大小:70.00 KB
- 文档页数:5
第二章关系数据库一、填空题1.关系操作的特点是操作。
【解答】集合2.若一个关系有多个候选码,选定其中的一个称为。
【解答】主码3.关系代数中,从两个关系中找出相同元组的运算称为运算。
【解答】交4.设F是关系R的一个或一组属性,但不是关系R的码,如果F与关系S的主码Ks相对应,则称F是关系R的。
【解答】外部码5.在关系模型中,字段称为。
【解答】属性6.如有两个关系S和SC,其中S#是关系S的主键,相应的属性S#在关系SC中也出现,此时S#就是关系SC的。
【解答】外键7.在关系运算中,从关系中取出满足条件的元组的运算称__ _____运算【解答】选择8.现有如下关系:患者(患者编号,患者姓名,性别,出生日期,所在单位),医疗(患者编号,医生编号,医生姓名,诊断日期,诊断结果)。
其中,医疗关系中的外码是(患者编号)。
9.一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的(属性)。
10 .设有学生关系:S(XH,XM,XB,NL,DP)。
在这个关系中,XH表示学号,XM表示姓名,XB表示性别,NL表示年龄,DP表示系部。
查询学生姓名和所在系的投影操作的关系运算式是________________11. 在“学生-选课-课程”数据库中的3个关系如下:S(S#,SNAME,SEX,AGE);SC(S#,C#,GRADE); C(C#,CNAME,TEACHER),查找选修“数据库技术”这门课程学生的学生名和成绩,若用关系代数表达式来表示为________________。
12 .已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是________,系关系的外码是________,学生关系的主码是________,学生关系的外码是________。
二、选择题1.关系运算中花费时间可能最长的运算是____。
A.投影B.选择C.笛卡尔积D.除【解答】C2.FoxBASE、FoxPro属于________。
A.表式系统B.最小关系系统C.关系完备的系统D.全关系系统【解答】B3.取出关系中的某些列,并消去重复的元组的关系运算称为________。
A.取列运算B.投影运算C.连接运算D.选择运算【解答】C4.对于学生基本信息表来说,下列________ 作为其主键最合适。
A. 学号B. 学号及姓名C. 系号和学号D. 系和姓名【解答】A5.下面有关主键的叙述正确的是________。
A 不同的记录可以具有重复的主键值或空值B 一个表中的主键可以是一个或多个字段C 在一个表中主键只可以是一个字段D 表中的主键的数据类型必须定义为自动编号或文本【解答】B6.有关系R和S,R∩S的运算等价于________。
A. S-(R-S)B. R-(R-S)C. (R-S)∪SD. R∪(R-S)【解答】B7.定义外键实现的是哪一(些)类完整性? ________A 实体完整性B 参照完整性C 用户定义的完整性D 实体完整性、参照完整性和用户定义的完整性【解答】B8.在下列关系代数的操作中,哪一个不属于专门的关系运算________?A 自然连接B 投影C 广义笛卡尔积D 连接【解答】C三、问答题1.述等值连接与自然连接的区别和联系。
【解答】从两个关系的广义笛卡儿积中选取给定属性间满足一定条件的元组,称为θ连接;当连接符θ为等号时,称为等值连接。
从两个关系的广义笛卡儿积中选取在相同属性列上取值相等的元组,并去掉重复的列,称为自然连接。
自然连接与等值连接的区别:自然连接中相等的分量必须是相同的属性组,并且要在结果中去掉重复的属性,而等值连接则不必。
自然连接与等值连接的联系:自然连接是等值连接的特殊处理,当R与S无相同属性时,R∞S =R×S。
2.关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?【解答】并、差、笛卡尔积、投影和选择5种运算为基本的运算。
其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。
R∩S = R -(R -S)R∞S =σR[A]=S[A](R×S)R÷S =πX (R)-πX(πX(R)×πY(S)-R)3.试述关系模型的三个组成部分。
【解答】关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
5.试述关系数据语言的特点和分类。
【解答】关系数据语言可以分为三类:关系代数语言。
关系演算语言:元组关系演算语言和域关系演算语言。
SQL:具有关系代数和关系演算双重特点的语言。
这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
四、计算题1.现有关系数据库如下:学生(学号,姓名,性别,专业、奖学金)课程(课程号,名称,学分)学习(学号,课程号,分数)用关系代数表达式实现下列问题:(1)检索“国际贸易”专业中获得奖学金的学生信息,包括学号、姓名、课程名和分数;(2)检索学生成绩得过满分(100分)的课程的课程号、名称和学分;(3)检索没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业;(4)检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业;【解答】(1)Π学号,姓名,课程名,分数(σ奖学金>0∧专业=’国际贸易’(学生)∞学习∞课程)(2)Π课程号,名称,学分(σ分数=100(学习)∞课程)(3)Π学号,姓名,专业(σ奖学金<=0∧分数>95(学生∞学习))(4)Π学号,姓名,专业(学生)—Π学号,姓名,专业(σ分数<80(学习) ∞学生) 2.在教学数据库S、SC、C中,用户有一查询语句:检索女同学选修课程的课程名和任课教师名。
(1)试写出该查询的关系代数表达式;(2)试写出查询优化的关系代数表达式。
【解答】(1)πCNAME,TEACHER(σSEX='女'(S)SC C)(2)πCNAME,TEACHER(CπC#(πS#,C#(SC)πS#(σSEX='女'(S))))3.设有三个关系:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)试用关系代数表达式表示下列查询语句。
(1)检索LIU老师所授课程的课程号、课程名。
(2)检索年龄大于23岁的男学生的学号与姓名。
(3)检索学号为S3学生所学课程的课程名与任课教师名。
(4)检索至少选修LIU老师所授课程中一门课程的女学生的姓名。
(5)检索WANG同学不学的课程号。
(6)检索至少选修两门课程的学生学号。
(7)检索全部学生都选修的课程的课程号与课程名。
(8)检索选修课程包含LIU老师所授课程的学生学号。
【解答】(1)πC#,CNAME(σTEACHER='LIU'(C))(2)πS#,SNAME(σAGE>'23'∧SEX='男'(S))(3)πCNAME,TEACHER(σS#='S3'(SC)C)(σSEX='女''(S)SCσTEACHER='LIU(C))(4)π(5)πC#(SC)-πC#(σSNA ME='WANG'(S)SC) (全部课程号减去WANG同学所学的课程号)(6)πS#(σ1=4∧2≠5(SC×SC)) SC自乘之后,再选择(同一个学号中两个课程号不同的元组),投影。
(7)πC#,CNAME(C(πS#,C#(SC)÷πS#(S))) (涉及到全部值时,应用除法,“除数”是"全部")(8)πS#,C#(SC)÷πC#(σTEACHER='LIU'(C))4.设有一个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、重量WETGHT组成。
工程项目表J由工程项目代码JNO、工程项目名JNAME、工程项目所在城市名CITY 组成。
供应情况表SPJ由供应商代码SNO、零件代码PNO、工程项目代码JNO、供应数据QTY组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
试分别用关系代数完成下列操作:⑴求供应工程J1零件的供应商号SNO。
⑵求供应工程J1零件P1的供应商号SNO。
⑶求供应工程J1红色零件的供应商号SNO。
⑷求没有使用天津供应商生产的红色零件的工程号JNO。
⑸求至少用了S1供应商所供应的全部零件的工程号JNO。
【解答】⑴∏SNO(σJNO=‘J1’(SPJ))⑵∏SNO(σJNO=‘J1’∧PNO=‘P1’(SPJ))⑶∏SNO(∏SNO,PNO (σJNO=‘J1’(SPJ))∏PNO(σCOLOR=‘红’(P)))⑷∏JNO(J)-∏JNO(∏SNO(σCITY=‘天津’(S))∏SNO,PNO,JNO(SPJ)∏PNO(σCOLOR=‘红’(P)))【解析】减法运算中减部分是使用了天津供应商生产的红色零件的所有工程号,∏JNO(J)是全部工程的工程号,两者相减就是没有使用天津供应商生产的红色零件的工程号,包括没有使用任何零件的工程号。
⑸∏JNO,PNO(SPJ)÷∏PNO(σSNO=‘S1’(SPJ))【解析】除号前的部分是所有工程与该工程所用的零件,除号后的部分是S1所供应的全部零件号,对于SPJ表中的某一个JNO,若该工程使用的所有零件包含了S1所供应的全部零件号,则该JNO符合本题条件,加入结果集合中。