软件技术基础总复习题及参考答案 联系客服

发布时间 : 星期一 文章软件技术基础总复习题及参考答案更新完毕开始阅读71408392fe4733687f21aa38

库存关系中的仓库号、商品号为外键; 销售关系中的商店号、商品号均为外键;

供应关系中的仓库号、商店号、商品号均为外键

2、设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、 车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机” 实体集,属性有司机编号、姓名、电话等。

设车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机 只能应聘于一个车队,车队聘用司机有个聘期;车队与车辆之间存在“拥有”联系, 每个车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在着“使 用”联系,司机使用车辆有使用日期和公里数两个属性,每个司机可使用多辆汽车, 每辆汽车可被多个司机使用。 (1)试画出 ER 图,并在图上注明属性、联系类型; (2)将 ER 图转换成关系模型;

(3)说明转换结果中的主键和外键。

参考答案:

(1)ER 图如图所示。

车队号 车队名

车队

1 1 聘期 拥有 聘用 N N N 司机 车辆 M 使用 司机编号 厂家 出厂日期 姓名 牌照号 使用日期 公里数 (2)转换成的关系模型应具有 4 个关系模式: 车队(车

队号,车队名) 车辆(牌照号,厂家,生产日期,车队号) 司机(司机编号,姓名,电话,车队号,聘期)

使用(司机编号,牌照号,使用日期,公里数)

(3) 关系模式中的主键如图所示

电话 车辆关系中的车队号为外键; 司机关系中的车队号为外键; 使用关系中的司机编号、牌照号均为外键

3、如果每一名学生可以选修多门课程;每一门课程可能有多个学生选修。

完成以下 任务:

1)建立概念模型,画出 E-R 图; 2)将概念模型转换成关系模型; 3) 用 SQL 命令(语言)定义各关系(表)的结构。

参考答案:

(4 分)

转换成 3 个关系: 课程(课程号,课程名称,

学时,性质) 学生(学号,姓名,性别,专业) 选课(学号,课程号,分数) 用 SQL 语言定义课程表的结构:

CREATE TABLE 课程

(课程号 CHAR(4)NOT NULL, 课程名称 CHAR(12)NOT NULL, 学时 SMALLINT, 性质 CHAR(4),

PRIMARY KEY(课程号));

用 SQL 语言定义学生表的结构:·

CREATE TABLE 学生

(学号 CHAR(6)NOT NULL, 姓名 CHAR(8) NOT NULL, 性别 CHAR(2), 专业 CHAR(10),

PRIMARY KEY(学号));

用 SQL 语言定义成绩表的结构:

CREATE TABLE 成绩

(学号 CHAR(6)NOT NULL, 课程号 CHAR(4)NOT NULL, 分数 DECIMAL(4,1),

PRIMARY KEY(学号,课程号),

FOREIGN KEY(学号)REFERENCES 学生, FOREIGN KEY(课程号)REFERENCES 课程);

4、有关工厂生产产品的数据库,涉及如下数据: 工厂号、

工厂名称、地址; 产品号、产品名称、成本; 某工厂生产某产品的数量和日期。 1)设计 E/R 图; 2)转换成关系模型;

参考答案:

2)工厂(工厂号,工厂名,地址) 产品(产品号,产品名,单价)

生产(工厂号,产品号,数量,日期)

5、已知学生表 S 和选课表 SC : S sno s1 s2 s3 s4 s5

SC

cn score 程序设计 92 微机原理 85 数据库 程80 序设计 编90 88 译原理 sn 赵亦 钱尔 孙珊 李思 周武 sd sex 计算机 女 信息 男 信息 女 自动化 男 计算机 男 age 17 18 20 21 19 用 SQL 语言完成如下的操作:

sno s1 s1 s2 s3 s4

(1)将一个新学生(学号: s6 ,姓名:吴丽,所在系:自动化,性别:女,年龄: 20 )的纪录插入到学生表中。

(2)将学号为 s1 的学生的年龄由 17 岁改为 18 岁。

(3)建立计算机系学生的视图,视图名为 computer_student 。

(4)按分数降序排列,输出选修了“程序设计”课程的学生的姓名和分数。 (5)求学号为 s1 的学生的总分和平均分。

参考答案:

( 1 ) insert into S values(“s6” , ” 吴丽 ”,” 自动化 ” , ” 女 ” , 20) (2 ) update S set age=18 where sno='s1'

(3) creat view computer_student (sno,sname,sex, age) as select sno,sname,sex,age from s where sd=' 计算机 '

(4) select sname , score from S,SC where S.sno=SC.sno and SC.cn=' 程序设计 ' order by score dec (5) select sum(score),avg(score ) from S,SC where S.sno=SC.sno and S.sno='s1' group by S.sno