关系代数综合练习

合集下载

02 4关系代数作业参考答案

02 4关系代数作业参考答案
3. 用关系代数表达式写出,查找“财务科”中 健康状况为“良好”的职工姓名和家庭地址。
1. 用关系代数表达式写出,查找所有女科长 的姓名和家庭地址;
∏姓名,家庭地址(σ 职务=‘科长' ∧ 性别=‘女' (职工))
2. 用关系代数表达式写出,查找“办公室” 的科长姓名和家庭地址;
∏姓名,家庭地址( σ 部门名称=‘办公室' (部 门)∞σ 职务=‘科长' (职工)) 3. 用关系代数表达式写出,查找“财务科” 中健康状况为“良好”的职工姓名和家庭地 址。
现检索仓库名称为“莘庄”的仓库里存储的 商品的编号和名称。试写出相应的关系代数 表达式
∏G#,GNAME(Goods∞SG∞ σ SNAME=‘莘庄' (Store))
已知:一组关系模式: 部门(部门号,部门名称,电话号码) 职工(职工号,姓名,性别,职务,部门号) 工程(项目号,项目名称,经费预算) 施工(职工号,项目号,工时) 工资级别(职务,小时工资率) 根据这组关系模式回答: 1.用关系代数表达式写出职务为“工程师”的 姓名和部门名称。 2.用关系代数表达式写出姓名为“潘小光”的 职工所在的部门名称和电话号码。
部门表 DEPT(D#,DNAME,MGR#),其属性分别 表示部门编号、部门名称和部门经理的职工工号。
试指出每个表的主键和外键。在上面两个基本表 中,写出下列查询的关系代数表达式:
检索每个部门经理的工资,要求显示其部门编号、 部门名称、经理工号、经理姓名和经理工资
∏D#,DNAME,MGR#,ENAME,SALARY(σ E#=MGR# (部门∞职工))
借书的学生姓名和书名”的代数表达式 2、画出该代数表达式的语法树 3、对该语法树进行优化 4、写出优化后的代数表达式

关系代数运算习题

关系代数运算习题

关系代数运算习题一、选择题1关系代数运算可以分为两类:传统的集合运算和专门的关系运算?下面列出的操作符中,属于传统的集合运算是( A )I .n(交)n .u(并)『x(广义笛卡儿积)w?一(差)v.n(投影)w选择)A)I、n、川和w B)川、w、V和wC)I、川、V和w D)都是2、关系数据库管理系统能实现的专门关系操作包括(B)A、显来,打印和制表B、选择,投影和连接C、关联、更新和排序D、排序、索引和统计3、在关系数据基本操作中,从表中选项出满足某种条件的记录的操作称为( A )A、选择B、投影C、连接D、扫描4、元组的集合在关系数据库中称为关系,一般来说,表示元组的属性或者最小属性组称为DA、字段B、索引C、标记D、主键5、在下面3个关系中学生S (SNO , SNAME , SEX, AGE )课程 C (CNO , CNAME , CREDIT )学生选课SC (SNO, CNO , GRADE )要查找选修“数据库”课程的女学生的姓名,将涉及到关系(D)A、SB、C, SCC、S, SC DS, C, SC6、对于关系数据库来讲,下面(C)说法是错误的。

A、每一列的分量是同一种类型数据,来自同一个域B、不同列的数据可以出自同一个域C、行的顺序可以任意交换,但列的顺序不能任意交换关系中的任意两个元组不能完全相同7、关系数据库中有3种基本操作,从表中取出满足条件的属性的操作是(A)A、选择B、投影C、连接D、扫描8、关系数据库在有3种基本操作,将具有共同属性的两个关系中的元组连接到一起,构成新表的操作称为(C )A、选择B、投影C、连接D、扫描9 若D1={a1,a2,a3} , D2={b1,b2,b3},贝U D1*D2 集合中共有元组(C)个A、 6B、8C、9D、12 10下列(C)运算不是专门的关系运算A、选择B、投影C、笛卡尔积D、连接11、如下两个关系R1和R2,它们进行运算后得到R3。

数据库关系代数运算例题

数据库关系代数运算例题

数据库关系代数运算例题摘要:1.关系代数简介2.数据库关系代数运算例题详解a.并运算b.交运算c.差运算d.笛卡尔积运算e.投影运算f.选择运算g.连接运算3.总结与展望正文:一、关系代数简介关系代数是一种对关系数据库进行操作的数学理论。

它利用基本的集合运算和关系运算对关系数据库中的数据进行查询、插入、更新和删除等操作。

关系代数的基本运算包括并、交、差、笛卡尔积、投影、选择和连接等。

二、数据库关系代数运算例题详解1.并运算例题1:给定关系R和S,求R并S的结果。

解:设R={1, 2, 3, 4}, S={3, 4, 5, 6},则R并S={1, 2, 3, 4, 5, 6}。

2.交运算例题2:给定关系R和S,求R交S的结果。

解:设R={1, 2, 3, 4}, S={3, 4, 5, 6},则R交S={3, 4}。

3.差运算例题3:给定关系R和S,求R差S的结果。

解:设R={1, 2, 3, 4}, S={3, 4, 5, 6},则R差S={1, 2}。

4.笛卡尔积运算例题4:给定关系R和S,求R与S的笛卡尔积。

解:设R={1, 2}, S={a, b},则R与S的笛卡尔积为{(1, a),(1, b),(2, a),(2, b)}。

5.投影运算例题5:给定关系T,求T中属性A的投影。

解:设T={(1, 2, 3),(2, 3, 4),(3, 4, 5)},则T中属性A的投影为{(1,3),(2,3),(3,5)}。

6.选择运算例题6:给定关系T,求满足条件“属性B大于2”的选择结果。

解:设T={(1, 2, 3),(2, 3, 4),(3, 4, 5)},则满足条件“属性B大于2”的选择结果为{(2,3,4),(3,4,5)}。

7.连接运算例题7:给定关系R和S,求R与S的连接结果。

解:设R={(1, 2),(3, 4)},S={(2, 3),(4, 5)},则R与S的连接结果为{(1,2,3),(3,4,5)}。

关系代数习题

关系代数习题

关系代数习题⼩测验1(⼀)单项选择题1.关系模型基本的数据结构是(D)A.树B.图 C.索引 D.关系2.关系数据库的查询语⾔是⼀种(C)A 过程性语⾔ B.第三代语⾔c.⾮过程性语⾔ D.⾼级程序设计语⾔3.关系模型中,实体完整性规则是(B)A.实体不允许是空实体 B.实体的主键值不允许是空值c.实体的外键值不允许是空值 D.实体的属性值不允许是空值4.关系数据库的数据操作分为两类(A)A.查询和更新 B.排序和索引c.插⼊和删除 D.修改和排序5.在关系模型中,下列说法正确的为( D )。

A.关系中存在可分解的属性值B. 关系中允许出现相同的元组C.关系中考虑元组的顺序D.元组中,属性理沦上是⽆序的,但使⽤时按习惯考虑列的顺序6. 在关系模型中,下列说法正确的为(B)A.关系中元组在组成主键的属性上可以有空值B.关系中元组在组成主键的属性上不能有空值C.主键值起不了唯⼀标识元组的作⽤D.关系中可引⽤不存在的实体7.下列为⾮过程语⾔的为( C )。

A.汇编语⾔ B.PASCAL语⾔‘C.关系查询语⾔D.C语⾔8.设关系R、s、w各有10个元组,则这三个关系的笛卡尔积的基数为(C)A.10 B.30 C.1000 D.不确定(与计算结果有关)9.关系代数中,⼀般联接操作由(A)组合⽽成。

A.笛卡尔积和选择 B.笛卡尔积、选择和投影C.笛卡尔积和投影 D.投影和选择10.设关系R和S的属性个数分别为r和s,那么(R x S)操作结果的属性个数为( A )A.r⼗s B.r-s C.r×s D.max(r,s)11.设关系R和s的结构相同,且各有100个元组,则这两个关系的并操作结果的元组个数为(D)12.关系代数的交操作可以由(B)操作组合⽽成。

A.并和差 B.差C.选择 D.联接13.如果两个关系没有公共属性,那么其⾃然联接操作(A)A.转化为笛卡尔积操作B.转化为联接操作c.转化为外部并操作D.结果为空关系14.设关系R和S的值如下:B)A.1 B.2 C.3 D.415.在14题中,操作结果的元组个数是()。

关系代数习题

关系代数习题

关系代数习题1.设有如图所示的关系R、W和D,计算下列关系代数:(1)R1=(2)R2=(3)R3=(4)R4=(5)R5=2.设关系R、S和S’如图2.1所示,计算:(1)R1=R∪S’;(2)R2=R-S’;(3)R3=R×S;(4)R4=R∞A=CS=σA=C(R×S);(5)R5=R∞S=∏A,B,CσR.B=S.B(R×S)。

3.设有如下关系:学生(学号,姓名,性别,专业,出生日期)教师(教师编号,姓名,所在部门,职称)授课(教师编号,学号,课程编号,课程名称,教材,学分,成绩)1)查找学习“数据库原理”课程且成绩不及格的学生学号和任课教师编号;2)查找学习“英语”课程的“计算机应用”专业学生的学号、姓名和成绩。

(中)4.设有如下关系:S(S#,SNAME,AGE,SEX)/*学生(学号,姓名,年龄,性别)*/ C(C#,CNAME,TEACHER)/*课程(课程号,课程名,任课教师)*/SC(S#,C#,GRADE)/*成绩(学号,课程号,成绩)*/查询:(1)教师“程军”所授课程的课程号和课程名;(2)“李强”同学不学课程的课程号;(3)至少选修了课程号为k1和k5的学生学号;(4)选修课程包含学号为2的学生所修课程的学生学号。

(中-难)5.设有如下关系:图书关系B(图书编号B#,图书名T,作者A,出版社P);读者关系R(借书证号C#,读者名N,读者地址D);借阅关系L(C#,B#,借书日期E,还书标志BZ);BZ=‘1’表示已还;BZ=‘0’表示未还;查询:(1)“工业出版社”出版的图书名;(2)查询99年12月31日以前借书未还的读者名与书名。

答案:1.ABabcbdec bd A B a b de R R A R .B S .B C a b b c a b e a a b b db bc c b e a c b bd de b c d e e a d e b d R A R .B S .Ba b e a c b b c d e b d R A B C a b c a b d c b c cC b d Rea2.3.(1)(2)4.(1)(2)(3)(4)5.(1)(2)。

练习题-关系代数表达式

练习题-关系代数表达式

关系代数表达式练习题
学生管理系统中有学生表、课程表、成绩表、班级表
(1)学生表(学号,姓名,性别,出生年月,住址,电话,班级号)
(2)课程表(课程号,课程名,课时数,学分数)
(3)成绩表(学号,课程号,成绩)
(4)班级表(班级号,班级名,专业名,入学年,人数,班长学号)
写出下列操作的关系代数表达式
1.找出所有被学生选修了的课程号
2.找出班级名为“xxx”班级的女同学的个人基本信息。

3.找出姓李的学生的个人基本信息
4.查询“xxx”班级的班长基本信息
5.查询与李勇在同一班的学生的基本信息
6.查询所有管理类专业(如:工商管理、信息管理、旅游管理、管理科学与工
程等)学生的基本信息。

7.查询选修了课程名“xxx“的学生的学号和姓名
8.查询李勇所在班级的学生人数
9.找出“2007信管“班中没有选修课程“数据库“的学生的学号、姓名
10.列出“xxx“同学所修全部课程的名称和成绩
11.查询全体学生的学习信息,要求按学号排序
12.找出课程名为‘操作系统’的平均成绩、最高分、最低分
13.找出今天(或1月20日)过生日的学生学号、姓名和班级名
14.找出选修了全部课程的学生学号、姓名和班级
15.统计选修了课程名“xxx“的学生人数
16.统计每门课程的选课人数
17.求每个班学生每门课的平均成绩
18.查询选修课程中没有不及格分数的学生学号、姓名和班级
19.查询有3门课程不及格的学生的学号、姓名及所在的班级名
20.求2009信息管理专业学生中已选修过管理信息系统的先修课的学生姓名。

P。

关系代数作业(参考答案)

关系代数作业(参考答案)
4.查询选修了课程号为 C2 或 C4 课程的学生学号;
sno cno 'C 2 'orcno 'C 4 ' SC
5.查询至少选修了课程号为 C2 和 C4 课程的学生学号;
sno cno 'C 2 ' SC sno cno 'C 4 ' SC
8.查询选修课程包含学生 S3 所修课程的学生学号和姓名;
sno , sname S sno ,cno SC cno sno ' S 3 ' SC
9.查询未选修数据库技术的学生的学号、姓名、性别和系别;
sno , sname , sex ,dept S sno , sname , sex ,dept S sno SC cname '数据库技术 ' C
应用实例: 设教学数据库中有三个关系: 学生关系 S(SNO,SNAME,AGE,SEX,DEPT) 选课关系 SC(SNO,CNO,GRADE) 课程关系 C(CNO,CNAME) 试用关系代数表达式描述下列查询: 1.查询选修了课程号为 C2 课程的学生学号与成绩;
sno , grade cno 'C 2 ' 课程的学生学号、姓名和年龄;
sno , sname ,age S sno , sname ,age S sno cno 'C 2 ' SC
7.查询选修了全部课程的学生姓名;
sname sno , sname S sno ,cno SC cno C


10. 查询管理学课程的成绩在 80 至 90 分之间的工商管理系的男生的学号和姓名。

关系代数练习

关系代数练习

一、若关系X、Y、Z如图所示,求:(1)∏A,C(X) (2)σB <'3' (X)(3) X ⋈ Y (4)X ÷ Z(5) X ⋈ ZX.B<Z.BX Y Z答案:(1) (2)(3) (4)(5)A X.BC Z.B C 1 1 1 3 2 1 1 1 2 4 1 2 4 3 2 3 2 4 3 2 4 1 2 3 2 4 1 2 2 4A C1 1 3 4 3 14422AB C 1 1 3 4 1 2 2 11 4 4 2A B C D1 1 4 3 1 3 1 3 1 12 2 1 1 2 2 A 3给定如下关系:S(S#,SN,SA,SD) S#表示学号,SN表示姓名,SA表示年龄,SD表示所在系C(C#,CN,PC#) C#表示课程号,CN表示课程名,PC#表示先修课程号SC(S#,C#,G) S#、C#含义同上,G表示成绩试用关系代数完成如下查询操作:(1)查询修读课程号为C1、成绩为A的所有学生姓名。

(2)查询年龄为23岁的学生所修读的课程名。

(3)查询至少修读一门“数据库原理”课程的学生姓名。

(4)查询修读所有课程的同学姓名。

(5)查询选修了先修课程号PC为6的课程学生学号。

每小题4分(共20分)解:(1) ∏SN(S⋈∏S#(σC#=“C1”∧G=”A”(SC)))(2)∏CN(C⋈∏C#(SC⋈∏S#(σSA=23 (S)))(3)∏SN(S⋈∏S#(SC⋈∏C#(σCN=‘数据库原理’(C))) (4)∏SN(S⋈(∏S#,C#(SC)÷(∏C# (C)))(5)∏S#(SC⋈∏C#(σPC=‘6’(C))解:(1)SELECT S.SNFROM S, SCWHERE SC.C#=’C1’ AND SC.G=’A’ AND SC.S#=S.S#(2) SELECT FROM S,SC,CWHERE S.SA=23 AND S.S#=SC.S# AND SC.C#=C.C#(3)SELECT S.SNFROM S,SC SCX,SC SCYWHERE SCX.S#=’S5’AND SCX.C#=SCY.C# AND SCY.S#=S.S# (4)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

针对教材中的学生—课程数据库,用关系代数完成以下操作:
1、查询“CS”系所有学生的学号和姓名。

П sno,sname (σsdept=’CS’(student))
2、查询年龄超过18岁的男生的姓名及所在系。

П sname,sdept (σssex=’男’∧ sage>18 (student))
3、查询年龄在18至20岁之间的学生信息。

П *(σsage>=18 ∧ sage<=20 (student))
4、查询不在“CS”系也不在“MA”系的学生的所有信息。

П *((σsdept(student))-(σsdept=’CS’(student))- (σsdept=’MA’(student)))
П *( σsdept <> ’CS’∧ sdept <> ’MA’ (student))
5、查询“CS”系所有学生的平均年龄。

ПAvg (sage) (σsdept=’CS’(student))
6、查询没有先行课的课程名。

П cname (σcpno=’NULL’(course))
7、查询先行课为“6”号课程的课程信息。

П * (σcpno=’6’(course))
8、查询间接先行课为“5”号课程的课程号及课程名。

П o,ame( σ b.cpno = 5 (couse (a)⋈couse(b))
9、查询选修了“1”号课程的学生选课信息。

П sno,cno(sc) ÷Пcno=’1’(sc)⋈П sno,cno(sc)
10、查询成绩为90分以上的学生姓名和课程名。

П sname,cname (σgrade>'90'(student ⋈sc ⋈course))
11、对student及sc表做等值连接。

student ⋈student.sno=sc.sno sc
12、对student及sc表做自然连接。

Student ⋈ sc
13、查询“李勇”同学所选课程的平均成绩。

П Avg (grade) (σsname=’李勇(student ⋈sc))
14、查询“操作系统”这门课的最高分及最低分。

П max (grade) ,min (grade) ( σcname=’操作系统’ (course ⋈ sc )) 15、查询被选修了的课程号及课程名。

П cno,cname(course ⋈ sc)
16、查询没有选修课程的学生学号及姓名。

П sno,sname(student)- П sno(sc)
17、查询没有选修“1”号课程的学生姓名。

П sname(student)- πsname(σcno=’1’(sc⋈student)
18、查询既选修了“数据结构”又选修了“操作系统”的学生姓名。

П sname(σcname=’操作系统’∧cname=’数据结构’(sc⋈student⋈course)19、查询既选修了“2”号又选修了“4”号课程的学生学号。

П sname(σcno=2 ∧cno =4(sc⋈student)
20、查询选修了“2”号或“4”号课程的学生学号。

П sno(σcno=2 v cno =4(sc⋈student)
21、查询至少选修了“95002”学生所选课程的学生学号。

П sno,cno(sc)÷П cno(σsno=’95002’(sc))
22、查询至少选修了一门其间接先行课为“7”号课程的学生姓名。

Пsname(П o( σ b.cpno = 7 (couse (a)⋈couse(b)) ⋈sc ⋈П
sno,sname(student))
23、查询选修了所有课程的学生姓名。

П sname( П sno,cno(sc) ÷Пcno(course) ⋈П sno,sname(student)) 24、查询“CS”系的所有学生的学号、姓名、课程名及成绩。

П sno,sname,cname,grade(σsdept=’CS’(student⋈sc⋈course)
25、查询“CS”系选修课程的成绩在90分以上的所有女生的姓名、课程名和成绩。

Пsname,cname,grade(σsdept=’CS’∧grade>90 ∧ ssex='女' (student⋈sc ⋈coure) )。

相关文档
最新文档