数据库习题作业Word格式文档下载.docx
- 文档编号:16437504
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:12
- 大小:33.56KB
数据库习题作业Word格式文档下载.docx
《数据库习题作业Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库习题作业Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
debd
B<
C
计算R⋈S,R⋈S,σA=C(R×
S),S⋉R。
假设关系U和V分别有m个元组和n个元组,给出下列表达式中可能的最小和最大的元组数量:
⑴U∩V⑵U∪V
⑶U⋈V⑷σF(U)×
V(F为某个条件)
⑸πL(U)-V(其中L为某属性集)
操作
最小元组数
最大元组数
⑴U∩V
min(m,n)
⑵U∪V
max(m,n)
m+n
⑶U⋈V
m×
n
⑷σF(U)×
V
⑸πL(U)-V
m
设有三个关系:
T(T#,TNMAE,TITLE)
C(C#,CNAME,T#)
S(S#,SNAME,AGE,SEX)
SC(S#,C#,SCORE)
试用关系代数表达式表示下列查询语句:
①检索年龄小于17岁的女学生的学号和姓名。
②检索男学生所学课程的课程号和课程名。
③检索男学生所学课程的任课教师的工号和姓名。
④检索至少选修两门课的学生学号。
⑤检索至少有学号为S2和S4学生选修的课程的课程号。
⑥检索WANG同学不学的课程的课程号。
⑦检索全部学生都选修的课程的课程号与课程名。
⑧检索选修课程包含LIU老师所授全部课程的学生学号。
⑴πS#,SNAME(σAGE<
’17’∧SEX=’F’(S))
⑵Πc#,CNAME(σSEX='
M'
(S⋈SC⋈C))
⑶ΠT#,TNAME(σSEX='
(S⋈SC⋈C⋈T))
⑷π1(σ1=4∧2≠5(SC×
SC))
⑸π2(σ1=’S2’∧4=’S4’∧2=5(SC×
⑹πC#(C)-πC#(σSNAME='
WANG'
(S⋈SC))
⑺πC#,CNAME(C⋈(πS#,C#(SC)÷
πS#(S)))
⑻πS#,C#(SC)÷
πC#(σTNAME='
LIU'
(C⋈T))
在教学数据库的关系S、SC、C、T中,用户有一查询语句:
检索女同学选修课程的课程名和任课教师名。
①试写出该查询的关系代数表达式。
②画出查询表达式的语法树。
③使用启发式优化算法,对语法树进行优化,并画出优化后的语法树。
【】设教学数据库中有4个关系:
教师关系T(T#,TNAME,TITLE)
课程关系C(C#,CNAME,T#)
学生关系S(S#,SNAME,AGE,SEX)
选课关系SC(S#,C#,SCORE)
试用SQL查询语句表示下列查询。
①检索年龄小于17岁的女学生的学号和姓名。
SELECTS#.SNAME
FROMS
WHEREAGE<
17ANDSEX=’F’
②检索男学生所学课程的课程号和课程名。
SELECTC.C#,CNAME(连接查询方式)
FROMS,SC,C
WHERES.S#=#AND#=#ANDSEX=’M’;
③检索男学生所学课程的任课老师的工号和姓名。
SELECT#,TNAME
FROMS,SC,C,T
WHERE#=#AND#=#AND#=#ANDSEX=’M’;
④检索至少选修两门课程的学生学号。
SELECTDISTINCT#
FROMSCASX,SCASY
WHERE#=#AND#!
=#;
⑤检索至少有学号为S2和S4的学生选修的课程的课程号。
WHERE#=’S2’AND#=’S4’AND#=#;
⑥检索WANG同学不学的课程的课程号。
SELECTC#
FROMC
WHERENOTEXISTS
(SELECT*
FROMS,SC
WHERE#=#AND#=#ANDSNAME=’WANG’);
⑦检索全部学生都选修的课程的课程号与课程名。
SELECTC#,CNAME
(SELECT*
FROMSC
WHERES#=#ANDC#=#));
⑧检索选修课程包含LIU老师所授全部课程的学生学号。
法一:
SELECTDISTINCTS#
FROMSCASX
FROMC,T
WHERE#=#ANDTNAME=’LIU’
ANDNOTEXISTS
(SELECT{
FROMSCASY
WHERE#=#AND#=#));
法二:
FROMSCX
((SELECTC#FROMC,T
WHERE#=#ANDTNAME='
LIU’)
EXCEPT
(SELECTC#FROMSCYWHERE#=#));
【3.7】试用SQL查询语句表达下列对第3.2题中4个基本表T、C、S、SC的查询。
①统计有学生选修的课程门数。
SELECTCOUNT(DISTINCTC#)FROMSC;
②求选修C4课程的女学生的平均年龄。
SELECTAVG(AGE)
FROMS,SC
WHERES.S#=SC.S#ANDC#=’C4’ANDSEX=’F’:
③求LIU老师所授的每门课程的平均成绩。
SELECTC.C#.AVG(SCORE)
FROMSC,C,T
WHERESC.C#=C.C#ANDC.T#=T.T#ANDTNAME=’LIU’
GROUPBYC.C#;
④统计选修每门课程的学生人数(超过l0人的课程才统计)。
要求显示课程号和人数,查询结果按人数降序排列,若人数相同,则按课程号升序排列。
SELECTC#.COUNT(S#)
GROUPBYC#
HAVINGCOUNT(*)>
10
ORDERBY2DESC,1;
⑤检索学号比WANG同学大,而年龄比他小的学生姓名。
SELECTSNAME
WHERES#>
ALL(SELECTS#FROMS
WHERESNAME=’WANG’)
ANDAGE<
ALL(SELECTAGE
WHERESNAME=’WANG);
⑥在表SC中检索成绩为空值的学生的学号和课程号。
SELECTS#,C#
WHERESCOREISNULL;
⑦检索姓名以L开头的所有学生的姓名和年龄。
SELECTSNAME,AGE
WHERESNAMELIKE’L%’;
⑧求年龄大于女同学平均年龄的男学生的姓名和年龄。
WHERESEX=’M’
ANDAGE>
(SELECTAVG(AGE)
WHERESEX=’F’);
⑨求年龄大于所有女同学年龄的男学生的姓名和年龄。
WHERESEX=‘M’
ALL(SELECTAGE
【3.12】
①INSERTINTOC
VALUES(‘C8’,’VC++’,’T6’);
②
INSERTINTOFACULTY(TNAME)
SELECTDISTINCTTNAME
FROM(SELECTTNAME,C.C#,AVG(SCORE)
FROMT,C,SC
WHERET.T#=C.T#ANDC.C#=SC.C#
GROUPBYTNAME,C.C#)
ASRESULT(TNAME,C#,AVG—SCORE)ASX
WHERE80<
=ALL(SELECTAVG—SCORE
FROMRESULTASY
WHEREY.TNAME=X.TNAME);
法二
FROMT,C,SC
WHEREC.C#=SC.C#ANDT.T#=C.T#
ANDT#NOTIN(SELECTT#FROMC
WHEREC#IN
(SELECTC#FROMSC
GROUPBYC#HAVINGAVG(SCORE)<
=80)
)
③DELETEFROMSCWHERESCOREISNULL;
④DELETEFROMSC
WHERES#IN(SELECTS#FROMSWHERESEX=’F’)
ANDC#IN(SELECTC#FROMC,TWHERE#=#ANDTNAME=’LIU’);
⑤UPDATESC
SETSCORE=60
WHERESCORE<
60
ANDC#IN(SELECTC#FROMCWHERECNAME=’MATHS’);
⑥UPDATESC
SETSCORE=SCORE*
WHERES#IN(SELECTS#FROMSWHERESEX='
F’)
ANDSCORE<
(SELECTAVG(SCORE)FROMSC);
⑦用两个UPDATE语句实现:
UPDATESC
SETSCORE=SCORE*
WHEREC#=’C4’ANDSCORE>
70;
WHEREC#=’C4’ANDSCORE<
=70;
这两个UPDATE语句的顺序不能颠倒。
用一个UPDATE语句实现:
SETSCORE=SCORE*CASE
WHENSCORE>
70THEN
ELSE
END
WHEREC#=’C4’;
⑧UPDATESC
(SELECTAVG(SCORE)
FROMSC);
【3.13】设数据库中有3个关系:
职工表EMP(E#,ENAME,AGE,SEX,ECITY),其属性分别表示职工工号、姓名、年龄、性别和籍贯。
工作表WORKS(E#,C#,SALARY),其属性分别表示职工工号、工作的公司编号和工资。
公司表COMP(C#,CNAME,CITY),其属性分别表示公司编号、公司名称和公司所在城市。
试用SQL语句写出下列操作:
①用CREATETABLE语句创建上述3个表,需指出主键和外键。
②检索超过50岁的男职工的工号和姓名。
③假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名。
④假设每个职工可在多个公司工作,检索至少在编号为C4和C8的公司兼职的职工工号
和姓名。
⑤检索在联华公司工作、工资超过1000元的男性职工的工号和姓名。
⑥假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数,显示
(E#,NUM,SUM_SALARY),分别表示工号、公司数目和工资总数。
⑦工号为E6的职工在多个公司工作,试检索至少在E6职工兼职的所有公司工作的职工
工号。
⑧检索联华公司中低于本公司平均工资的职工工号和姓名。
⑨在每一公司中为50岁以上的职工加薪100元(若职工为多个公司工作,可重复加)。
⑩在EMP表和WORKS表中删除年龄大于60岁的职工有关元组。
①CREATETABLEEMP
(E#CHAR(4)NOTNULL,
ENAMECHAR(8)NOTNULL,
AGESMALLINT,
SEXCHAR
(1),
ECITYCHAR(20),
PRIMARYKEY(E#));
CREATETABLECOMP
(C#CHAR(4)NOTNULL,
CNAMECHAR(20)NOTNULL,
CITYCHAR(20),
PRIMARYKEY(C#));
CREATETABLEWORKS
(E#CHAR(4)NOTNULL,
C#CHAR(4)NOTNULL,
SALARYSMALLINT,
PRIMARYKEY(E#,C#),
FOREIGNKEY(E#)REFERENCESEMP(E#),
FOREIGNKEY(C#)REFERENCESCOMP(C#));
②(SELECTE#,ENAME
FROMEMP
WHEREAGE>
50ANDSEX=’M’;
③SELECTEMP.E#,ENAME
FROMEMP,WORKS
WHERE#=WORKS.E#ANDSALARY>
1000ANDSEX=’M’;
④SELECTA.E#,A.ENAME
FROMEMPA,WORKSB,WORKSC
WHEREA.E#=B.E#ANDB.E#=C.E#
ANDB.C#=’C4’ANDC.C#=’C8’;
⑤SELECTA.E#,A.ENAME
FROMEMPA,WORKSB,COMPC
WHEREA.E#=B.E#ANDB.C#=C.#
ANDCNAME=’联华公司’ANDSALARY>
1000ANDSEX='
M’;
⑥SELECTE#,COUNT(C#)ASNUM,SUM(SALARY)ASSUM_SALARY
FROMWORKS
GROUPBYE#;
⑦SELECT#
FROMWORKSX
FROMWORKSY
WHEREE#=’E6’
FROMWORKSZ
WHEREZ.E#=X.E#ANDZ.C#=Y.C#));
⑧SELECTA.E#,A.ENAME
WHEREA.E#=B.E#ANDB.C#=C.C#ANDCNAME=’联华公司’
ANDSALARY<
(SELECTAVG(SALARY)
FROMWORKS.COMPC
WHEREWORKS.C#=COMP.C#ANDCNAME=’联华公司’);
⑨UPDATEWORKS
SETSALARY=SALARY+100
WHEREE#IN(SELECTE#FROMEMPWHEREAGE>
50);
⑩DELETEFROMWORKS
WHEREE#IN(SELECTE#FROMEMPWHEREAGE>
60);
DELETEFROMEMP
60;
设关系模式R(ABCD),F是R上成立的FD集,F={A→B,C→B},则相对于F,试写出关系模式R的关键码。
并说明理由。
R的关键码为ACD。
因为从已知的F,只能推出ACD→ABCD。
设关系模式R(ABCDE)上FD集为F,并且F={AB→C,CD→E,DE→B},试判断AB是R的候选键吗?
ABD呢?
请做出解释。
①从已知的F,可推出AB→ABC,但不能推出AB→ABCDE,因此不是。
②从已知的F,可推出ABD→ABCD,ABD→ABCDE,因此是的。
设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},
1试写出属性集BD的闭包(BD)+。
2试写出所有左部是B的函数依赖(即形为“B→?
”)。
①从已知的F,可推出BD→BCD,所以(BD)+=BCD。
②由于B+=BC,因此左部是B的FD有四个:
B→φ,B→B,B→C,B→BC。
设关系模式R(ABCDE)上FD集为F,并且F={A→BC,CD→E,B→D,E→A}。
①试求R的候选键。
②试求B+的值。
①R的候选键有四个:
A、E、CD和BC。
②B+=BD。
设关系模式R(ABCD),F是R上成立的FD集,F={AB→CD,A→D}。
1试说明R不是2NF模式的理由。
2试把R分解成2NF模式集。
答:
①从已知FD集F,可知R的候选键是AB。
另外,AB→D是一个局部依赖,因此R不是2NF模式。
②此时R应分解成ρ={AD,ABC},ρ是2NF模式集。
设关系模式R(ABC),F是R上成立的FD集,F={C→B,B→A}。
1试说明R不是3NF模式的理由。
2试把R分解成3NF模式集。
①从已知FD集F,可知R的候选键是C。
从C→B和B→A,可知C→A是一个传递依赖,因此R不是3NF模式。
②此时R应分解成ρ={CB,BA},ρ是3NF模式集。
第1章:
作业:
P37
,,,,,
第5章
,,,,,,
第7章
,,,,,
复习范围
、、、
、、
、、、、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 习题 作业