(完整版)07-08(1)数据库原理期末考试试卷A_参考答案_第1页
(完整版)07-08(1)数据库原理期末考试试卷A_参考答案_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库原理试卷 A 参考答案及评分标准 一、 单项选择题(本大题共 12 小题,每题 2 分,共 24 分) 在每小题列出的四个备选项中只有一个是符合题目要求的,错选、多选或未选均无分。 (1-5) BCCAD (6-10) DCBAD ( 11-12) DA 二、 填空(每空格 1 分,共 20 分) 1数据库系统 2、 数据操作 完整性约束(顺序可调) 3、 (商店号,商品号) 商店号,商品号 4、 兀组关系演算 域关系演算(顺序可调) 5、 disti net 6、 自主存取控制 强制存取控制(顺序不可调) 7、 Foreign Key References 8 deleted inse

2、rted (顺序不可调) 9、 用户定义 10、 数据定义 数据控制(顺序可调) 11一致性 隔离性(顺序可调) 12、存在回路 三、 判断题(本大题共 10 小题,每题 1 分,共 10 分) 1 V 2、X 3、X 4、 5、X 6、X 7、X 8、“ 9、X 10、V 四、 简答题(本大题共 2 小题,共 16 分) 1、 (1)不对,属于“丢失修改”的错误,即把甲写回的数据丢失了。 - 3 分 ( 2)两种,甲乙或者乙甲,调度的结果均为 20。 - 3 分 2、 (1) R (职工名,项目名,工资,部门号,部门名,部门经理)不是一个好的关系模式,因为: 通过图中关系依赖图可以发现其码为

3、(职工号,项目名) 插入异常 假设职工号为 07102,部门号为 S1 的职工还未参加项目,因项目名是主属性,因此该学 生的信息无法插入 R。 删除异常 假定某个职工本来只参加了项目名为 “三建”的一个工程。现在因某种原因,他连“三建” 工程也不参加了。因项目名是主属性,此操作将导致该学生信息的整个元组都要删除。 数据冗余度大 如果一个职工参加了 10 个工程,那么他的部门名称和部门经理的值就要重复存储了 10 次。 修改复杂 例如由于某种原因,某职工要改变所参与的项目,在修改此职工元组的项目名的同时,还 可能需要修改其部门号,部门名称和部门经理。如果这个职工参加了 K 个工程,则必须无遗 漏

4、地修改 K 个元组中全部部门号,部门名称和部门经理信息。 -共 5 分,可以分开介绍,也可以集中介绍,可以只分析其中的一点或几点。 (2)职工名,项目名,工资,部门号,部门名,部门经理 由于部门名,部门经理部分函数依赖于码,因此该模式只满足第一范式,所以采用投影分解 法将一个 1NF 的关系分解为多个 2NF 的关系,即:SLC 分解为两个关系模式,以消除这些部 分函数依赖 R1 (职工名,项目名,工资) 2NF R2 (项目名,部门号,部门名,部门经理) 2NF 但是 2NF 关系模式 R2 中,部门名和部门经理传递函数依赖于项目名, 即 R2 中存在非主属性 对码的传递函数依赖。所以进一步

5、把 SL 分解为两个关系模式,以消除传递函数依赖: R2 (项目名,部门号) 3NF R3 (部门号,部门名,部门经理) 3NF 五、 设计题(本大题共 2 小题,共 30 分) 1、试用 SQL 语句完成下列操作:(共 16 分,其中(1) - (4)每题 3 分,(5)小题 4 分) (1) 查找供应商 S3 的名称和所在城市。 n Sname,City ( snc= S3 (S) - 3 分 (2) 找出使用名为“精益”的供应商所供零件的工程号码。 Select distinet Jno from SPJ where sno in (select sno from S where sna

6、me=精益) 3 分 (3) 求由供应商 S1 所供应的工程的预算总额。 Select sum(budget) from J where Jno in (select jno from spj where sno=s1) 3 分 (4) 由 S5 供给 J4 的零件 P6 改为由 S3 供应,请作必要的修改。 Update spj set sno=S3 where sno=S5 and Jno=J4 and Pno=P6 3 分 (5) 找出北京的任何供应商都不供应的零件的零件号。 Select distinct Pno from spj where not exists (select *

7、from S where sno=spj.sno and city=北京) 4 分 2、(共 14 分) 要统计数据库原理课程的学生的成绩分布, 因此先建立表 Rank,其中第一列 division 显 示成绩分段划分,第二列 number 显示的是成绩在该分数段的学生人数。 1) 建立 Rank 表。 CREATE TABLE Rank( division CHAR(20), number INT); ( 2 分) 2) 编写存储过程。 CREATE PROCEDURE statistic_mark(name CHAR(50) -存储过程带有一个字符型参数值,便于统计不同科目的分数分布情况

8、AS DECLARE less60 INT , b60a70 INT , b70a80 INT, b80a90 INT, more90 INT, curcno CHAR(4);-设字符型变量 cure no 存放对应于 n ame 的课程号 (3 分) -并置初始值为 0 set less60=0 set b60a70=0 set b70a80=0 set b80a90=0 set more90=0 set curcno= SELECT curcno=cno FROM Course WHERE cname =name; -根据课程名称在 Course 表中查询查询该课程号 IF curcno

9、is null -如果不存在用户输入的课程名称,返回错误信息 RAISE EXCEPTION 输入错误,没有该课程 ; raiserror(输入错误,没有该课程,16,1) else begin SELECT less60=count(*) FROM sc WHERE cno = curcno AND grade = 60 AND grade = 70 AND grade = 80 AND grade = 90; 5 分) - 向表 Rank 中插入五条记录,显示成绩分布情况 INSERT INTO Rank VALUES(0,60),less60); INSERT INTO Rank VALUES(60,70),b60a70); INSERT INTO Rank VALUES(70,80),b70a80); INSERT INTO Rank VALUES(80,90),b80a9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论