发布时间 : 星期一 文章软件技术基础总复习题及参考答案更新完毕开始阅读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