数据库复习题(答案整理版)(3)

2019-01-27 18:42

8. 设零件生产数据库中有3个基本表:

WORK(WNO,WNAME,WGR_NAME),其属性分别是车间编号、车间名称、车间主任名;

PART(PNO,PNAME,WEIGHT,COLOR),其属性分别是零件编号、零件名称、重量、颜色;

PROD(WNO,PNO,QUNTITY),其属性分别是车间编号、零件编号、生产数量。 (1) 现有关系代数表达式:

ΠWNO(WORK)- Π WNO(σ PNAME=‘轴承’(PART PROD)) 试给出此查询语句的语义;

(2) 试给出检索在“紧固件1车间”生产的零件的零件名称的关系代数表达式;

(3) 试用SQL语句定义WORK表,需说明主键;

(4) 试用SQL语句在关系PART中删除零件名称为“弹簧”的元组;

(5) 试用SQL语句定义视图G_PTOTAL(PNO,PROD_T),其中属性分别为零件编号和生产总量。

9. 设关系模式R(ABCDE),F是R上成立的FD集,F={ A→B,CD→E,B→D},

ρ={AB,AD,CDE}是R的一个分解。 (1) 试用Chase过程说明ρ是否是无损分解;

(2) 试求F在ρ的每个模式上的投影,并说明ρ是否保持依赖。

10. 设有关系模式R(演员编号,演员姓名,电影名,出演角色,艺术团名,

团长名),如果规定每个演员编号各不相同,演员姓名可以相同,一个演员可参演多部电影,各出演一个角色;每个演员只能属于一个艺术团;每个艺术团只有一个团长。

(1) 试写出关系模式R的基本FD和主键;

答:FD:演员编号→(演员姓名,艺术团名) (演员编号,电影名)→出演角色 艺术团名→艺术团长

(2) 说明R不是2NF模式的理由,并把R分解成2NF模式集;

答:R不是2NF模式,R分解

关系1(演员编号,电影名)→(演员姓名,艺术团名,出演角色) 关系2 演员编号→(演员姓名,艺术团名) 关系1局部依赖R。不属于2NF

R1(演员编号,演员姓名,艺术团名,艺术团长)R2(电影名,出演角色,演员编号),(R1,R2)是2NF

(3) 进而把R分解成3NF模式集,并说明理由。

答:演员编号 艺术团名 艺术团名 艺术团长

存在传递依赖,分解成3NF是

R11(演员编号,演员姓名,艺术团名) R12(艺术团员,艺术团长)

R2(电影名,演员编号,出版角色)

12. 设体育比赛数据库中有两个实体集。一是“运动员”实体集,属性有运

动员编号、姓名、年龄、性别等;二是“比赛项目”实体集,属性有项目编号、项目名称、级别等。一个运动员可参加多项比赛,一项比赛有多个运动员参加,一个运动员在某个时间参加一项比赛有一个比赛成绩。 (1) 画出ER图,并在图上注明属性、联系类型、实体标识符; (2) 将ER图转换成关系模型,并说明主键和外键。

13. 创建学生表Student (sno, sname, sage, ssex, sdept), 列出与95001同岁

的同学的学号,姓名,年龄。加入课程表Course(cno,cname,credit), 学生选课表SC(sno, cno, grade), 查询选修?C01?课程的学生的学号.姓名。找出年龄最小的学生。

14. 现有一系统,需要一个杂费管理的B/S方式的模块。模块要求后台页面

可以增加删除费用类型(餐饮费,燃油费,保险费,电费,水费??),并根据费用类型按照日期管理各笔费用,记录每笔费用产生原因(例如:对于某笔燃油费,记录原因为“去长春调研”),具有查询,删除,修改,添加功能。试设计数据库表结构并用SQL语句表达“2009年度电费总费用”。

数据库表结构 杂费信息表 字段名 数据类型 说明 杂费编号 字符 主键 杂费类型编号 字符 外键 产生时间 日期 产生原因 字符 费用 数字 杂费类型表 字段名 数据类型 说明 杂费类型编号 字符 主键 杂费名称 字符 SQL语句表达“2009年度电费总费用” select sum(费用) as '2009年电费总费用' from 杂费信息,杂费类型

where year(产生时间)='2009' and 杂费名称='电费' 15. 写出下列每条语句或程序段的功能,假定数据库AAA,包括student和

score两张表。

(1) create procedure xxx1

as

begin

select *

from student x, score y where x.S#=y.S.# End

显示出AAA库中所有学生的记录信息及选课成绩 (2) create procedure xxx2 As Begin

Select x.S#,x.SNAME,count(*) as 门数 Where x.S#=y.S#

Group by x.S#,x.SNAME End

显示出AAA库中每个学生的学号、姓名、专业等信息及选课门数。 (3) ceate procedure xxx3

(@a char(8), @b varchar(10), @c numeric(5,2)) As Begin

Insert into score Values(@a,@b,@c) End

向score表中插入学号为@a的值、课程名为@b的值、成绩为@c的值的学生成绩记录

16.创建存储过程,功能是查询性别为男的学生的学号,姓名,性别 create proc p_1 (

@xb char(2) ) as

select 学号,姓名,性别 from 学生 where 性别=@xb go n

execute p_1 '男'

17.创建存储过程,功能是查询指定学生的学号,姓名,性别和班级,姓名由参数传递

create proc p_2 (

@xm char(8) ) as

select 学号,姓名,性别,班名 from 学生,班级

where 学生.班号=班级.班号and 姓名=@xm go

execute p_2 '王五'

18.创建存储过程,功能是查询某门课程的学生成绩,显示学号,姓名,课程名,成绩,并将成绩转换为等级制。课程名由参数传递。

create proc p_3 (@kcm char(16)) as

select 学生.学号,姓名,课程名, case

when 成绩>=90 then '优秀'

when 成绩>=70 and 成绩<90 then '良好' when 成绩>=60 and 成绩<70 then '一般' when 成绩<60 then '不及格' end

as 成绩

from 选课,课程,学生

where 选课.课程号=课程.课程号and 学生.学号=选课.学号and 课程名=@kcm go

execute p_3 '市场营销'

19.创建存储过程,功能是查询某门课程的总分和平均分,将返回参数。课程名由参数传递。

create proc p_4 (@kcm char(16),

@pjcj int output,@zcj int output) as

select sum(成绩)as总分,avg(成绩)as平均分 from 选课,课程

where 选课.课程号=课程.课程号and 课程名=@kcm go

declare @zcj int,@pj int


数据库复习题(答案整理版)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:水轮机检修高级技师复习题

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

马上注册会员

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