数据库期末考试部分试题(3)

2019-01-05 11:08

商品号

销售 聘用 聘期 N 商品 N 职工 商品名 规格 单价 职工编号 姓名 性别 业绩 图5.1

(2)这个ER图可转换4个关系模式: 商店(商店编号,商店名,地址) 职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪) 商品(商品号,商品名,规格,单价) 销售(商店编号,商品号,月销售量)

题目2: 设某商业集团数据库中有三个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。

公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资两个属性。

试画出ER图,并在图上注明属性、联系的类型。再转换成关系模式集,并指出每个关系模式的主键和外键。 答案:①ER图如图5.2所示 公司名 公司编号 地址

公司

1

隶属

仓库编号

②这个ER图可转换3个关系模式:

公司(公司编号,公司名,地址)

仓库(仓库编号,仓库名,地址,公司编号)

职工(职工编号,姓名,性别,仓库编号,聘期,工资)

题目3: 设某商业集团数据库有3个实体集。一是“商品”实体集,属性有商品号、商品名、规格、单价等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“供应商”实体集,属性有供应商编号、供应商名、地址等。

供应商与商品之间存在“供应”联系,每个供应商可供应多种商品,每种商品可向多个供应商订购,供应商供应商品有一个月供应量属性;商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品可在多个商店销售,商店销售商品有一个月计划数属性。

试画出ER图,并在图上注明属性、联系的类型。再转换成关系模式集,并指出每个关系模式的主键和外键。 答案:①ER图如图5.3所示。

供应商编号 供应商名 地址 商店号 商店名 地址

供应商 商店 M M 月计划数 月供应量 供应 销售 N 仓库 仓库名 地址 1 聘用 聘期 工资 N 职工 职工编号 姓名 性别 图5.2

N 商品 N 商品号 商品名 规格 单价 图5.3 第5.15题的ER图实例

②这个ER图可转换5个关系模式:

供应商(供应商编号,供应商名,地址) 商店(商店号,商店名,地址)

商品(商品号,商品名,规格,单价) 供应(供应商编号,商品号,月供应量) 销售(商店号,商品号,月计划数)

题型:SQL语句

题目3.1:设教学数据库中有4个关系: 教师关系 T(T#,TNAME,TITLE) 课程关系 C(C#,CNAME,T#)

学生关系 S(S#,SNAME,AGE,SEX) 选课关系 SC(S#,C#,SCORE) 试用SQL查询语句表示下列查询。

①检索年龄小于17岁女生的学号和姓名。 ②检索男生所学课程的课程号和课程名。

③检索男生所学课程的任课老师的工号和姓名。

④检索至少选修两门课程的学生学号。

⑤检索至少有学号为S2和S4学生选修的课程的课程号。 ⑥检索WANG同学不学的课程的课程号。

⑦检索全部学生都选修的课程的课程号与课程名。

⑧检索选修课程包含LIU老师所授全部课程的学生学号。

答案:①SELECT S#,SNAME FROM S

WHERE AGE<17 AND SEX=’F’;

②SELECT C.C#,CNAME FROM S,SC,C

WHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX=’M’; ③SELECT T.T#’,TNAME FROM S,SC,C,T

WHERE S.S#=SC.S# AND SC.C#=C.C# AND C.T#=T.T# AND SEX=’M’; ④SELECT DISTINCT X.S# FROM SC AS X,SC AS Y

WHERE X.S#=Y.S# AND X.C#!=Y.C#; ⑤SELECT DISTINCT X.C# FROM SC AS X,SC AS Y

WHERE X.S#=S2 AND Y.S#=S4 AND X.C#=Y.C#; ⑥SELECT C# FROM C

WHERE NOT EXISTS(SELECT * FROM S,SC

WHERE S.S#=SC.S# AND SC.C#=C.C# AND SNAME=’WANG’);

⑦SELECT C#,CNAME FROM C

WHERE NOT EXISTS(SELECT *

FROM S

WHERE NOT EXISTS(SELECT *

FROM SC

WHERE S#=S.S# AND C#=C.C#));

⑧SELECT DISTINCT S# FROM SC AS X

WHERE NOT EXISTS(SELECT *

FROM C,T

WHERE C.T#=T.T# AND TNAME=’LIU’

AND NOT EXISTS(SELECT *

FROM SC AS Y WHERE Y.S#=X.S# AND

Y.C#=C.C#))

题目:3.2 用CASE操作在下列更新语句中完成的SC表中的元组更新:

① 若课程号为C5则增加6分,若课程号为C8则增加10分,其他一律增

加5分。

② 若C4课程的成绩低于该门课的平均成绩,则提高5%,否则提高4%。 答案:

① UPDATE SC

SET SCORE=SCORE+CASE

WHEN C#=’C5’THEN 6 WHEN C#=’C8’THEN 10 ELSE 5 END;

② UPDATE SC

SET SCORE=SCORE*CASE

WHEN SCORE<(SELECT AVG(SCORE)

FROM SC

WHERE C#=’C4’)

THEN 1.05 ELSE 1.04 END WHERE C#=’C4’;

题目3.3:设教学数据库中有4个关系: 教师关系 T(T#,TNAME,TITLE) 课程关系 C(C#,CNAME,T#)

学生关系 S(S#,SNAME,AGE,SEX) 选课关系 SC(S#,C#,SCORE)

试用SQL查询语句表示下列更新操作:

① 往关系C中插入一个课程元组(‘C8‘,‘VC++’,‘T6’)。

② 检查所授每门课程的平均成绩大于80分的教师姓名,并把检索到的值送到另一个已存在的表FACULTY(TNAME)中。 ③ 在SC中删除尚无成绩的选课元组。

④ 把选修LIU老师的课程的女同学选课元虚全部删去。 ⑤ 把MATHS课不及格的成绩全改为60分。

⑥ 把低于所有课程总平均成绩的女同学成绩提高5%。

⑦ 在表SC中修改C4课程的成绩,当成绩小于70分时提高5%,若成绩大于70分时提高4%(用两种方法实现,一种方法是用两个UPDATE语句实现,另一种方法是用带CASE操所得UPDATE语句实现)。 ⑧ 在表SC中,当成绩低于全部课程的平均成绩时,提高5%。

答案:

①insert into C values(’C8’, ’VC++’, ’T6’) ②insert into FACULTY(TNAME)

select distinct TNAME

from(select TNAME,C.C#,AVG(SCORE) from T,C,SC

where T.T#=C.T# and C.C# = SC.C# group by C.C#,TNAME)

as result(TNAME,C#,AVG_SCORE) as x where 80<=ALL(select AVG_SCORE from result as y

where y.TNAME=x.TNAME)

③delete from SC where SCORE is null ④delete from SC

where S# in(select S# from S


数据库期末考试部分试题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:会计学原理课后习题及答案070611 (1)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: