第一范文网 - 专业文章范例文档资料分享平台

《数据库原理与系统》习题解答

来源:用户分享 时间:2025/8/19 10:22:54 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

A、1NF B、2NF C、3NF D、4NF({商品编码,数量,日期}多值依赖于{订单号},但是{订单号}不是候选码)

8.设有关系模式R(A,B,C,D).F是R上的函数依赖集,F={D→A,D→B},R的候选码是

A、AD B、BC C、BD D、CD

9.设有关系模式R(A,B,C,D,M,N),R上的函数依赖集F={ M→D,C→B,B→A,(C,M)→N},则R最高达到//推出{C,M}为候选码,推出(C,M)→D,推出M→D为部分函数依赖

A、1NF B、2NF C、3NF D、4NF 二、综合设计题 解题步骤:

1)分析问题中包含的基本概念(即实体)

2)假设一个实体对应一个关系模式,确定每个关系模式的主码 3)由上述基本关系模式的主码合并成一个超码

4)剔除超码中的部分属性,得到给定关系模式的候选码

5)由每个关系模式的主码、给定关系模式的候选码识别出属性间的基本函数依赖关系 6)识别出部分依赖关系、传递依赖关系

1.假设某商业集团数据库中有一个关系模式: R(商店编号,商品编号,数量,部门编号,负责人) 如果规定:

(1)每个商店的每种商品只在一个部门销售; (2)每个商店的每个部门只有一个负责人; (3)每个商店的每种商品只有一个库存数量。 试回答下列问题:

①根据上述规定写出R的基本函数依赖; ②找出R的候选码;

③试问R最高达到第几范式?为什么?

④如果R不属于3NF,请将分解成3NF模式集。 答案:R中包含三个基本概念:商店,商品,部门

①R的基本函数依赖包括:{商店编号,商品编号→数量},{商店编号,商品编号→部门编号},{商店编号,商品编号→负责人}//传递依赖,{部门编号→负责人} ②R的候选码为{商店编号,商品编号}

③R最高达到2范式。因为非主属性都完全函数依赖于候选码,但存在传递函数依赖{商店编号,商品编号→负责人}

④可将R分解为两个关系模式:

商店商品(商店编号,商品编号,数量,部门编号) 部门(部门编号,负责人)

2.假设当前使用一个手工操作的学生文档,其文档的格式如图5.13所示 假设规定:

(1)一名学生可以选修多门课程,且一门课程有多人选修; (2)一门课程仅有一个教师讲授,—名教师可以讲多门课程; (3)学生学习一门课程有一个分数;

(4)每一名教师有一个办公室,一个办公室有多么教师; 如果依据上述文档和规定,设计一个关系模式R:

R(学号,学生姓名,课程号,课程名,分数,教师姓名,教师办公室) 试:

①找出R的候选码;

②写出关系R的基本函数依赖集,并画出函数依赖图; ③判断R最高达到第几范式,说明理由; ④如果有必要,将R分解成3NF模式集。

答案:R中包含三个基本概念:学生,课程,教师

(学号,学生姓名,课程号,课程名,分数,教师姓名,教师办公室 ①R的候选码为{学号,课程号} ②R的基本函数依赖包括:

{学号,课程号→学生姓名},//部分函数依赖 {学号,课程号→课程名},//部分函数依赖 {学号,课程号→分数},

{学号,课程号→教师姓名},//部分函数依赖 {学号,课程号→教师办公室},//传递依赖 {学号→学生姓名}, {课程号→课程名},

{教师姓名→教师办公室}, {课程号→教师姓名}, {课程号→教师办公室}

③R最高达到1范式。因为存在非主属性部分函数依赖于主码,如学号→学生姓名 ④可将R分解为五个关系模式: 学生(学号,学生姓名) 课程(课程号,课程名)

教师(教师姓名,教师办公室) 成绩(学号,课程号,分数) 教师课程(教师姓名,课程号) 函数依赖图略

3.假设公司的订单业务规定:

(1)订单号是惟一的,每一张订单对应一个订单号;

(2)一张订单可以订购多种产品,每一种产品可以在多个订单中出现; (3)一张订单有一个客户,且一个客户可以有多张订单; (4)每一个产品编号对应一种产品的品名和单价; (5)每一个客户有一个确定的名称和电话号码。

根据上述规定设计一个关系模式:

R(订单号,日期,客户名称,电话号码,产品编码,品名,价格,数量) 试:

①找出R的候选码;

②写出关系R的基本函数依赖集,并画出函数依赖图; ③判断R最高达到第几范式,说明理由; ④给出一个可能的3NF模式集。 答案:

①{订单号,客户名称,产品编码}为一个超码,由于“一张订单有一个客户”,所以{订单号,产品编码}为一个候选码

②关系R的基本函数依赖集为{(订单号→日期),(客户名称→电话号码),(产品编码→品名),(产品编码→价格),(订单号,产品编码→数量),(订单号→客户名称),(订单号→电话号码)//传递依赖,(订单号,产品编码→日期)//部分依赖,(订单号,产品编码→客户名称),(订单号,产品编码→电话号码),(订单号,产品编码→品名),(订单号,产品编码→价格),(订单号,产品编码→数量)} 函数依赖图略

③R最高达到第几范式1NF,因为非主属性日期部分函数依赖于主码{订单号,产品编码} ④

一个可能的3NF模式集为:

订单(订单号,客户名称,产品编码,日期,数量),主码为{订单号,产品编码} 客户(客户名称,电话号码),主码为{客户名称} 产品(产品编码,品名,价格),主码为{产品编码}

习题六

一、简答题

1.什么是局部变量和全局变量?

2.局部变量与全局变量的主要区别是什么? 3.在SQL程序设计中,游标的用途是什么? 4.简述SQL程序设计中游标的使用方法。 5.什么是存储过程?其优点是什么? 6.什么是数据库触发器?其作用是什么?

7.INSERTED和DELETED表的用途是什么? 8.简述INSERT触发器的工作原理。 9.简述DELETE触发器的工作原理。 10.简述UPDATE触发器的工作原理。 11.简述INSTEAD OF触发器的工作原理。 12.简述嵌入式SQL的预处理过程。 二、SQL程序设计

1. 编写一个SQL程序,完成将新生信息插入到学生档案表,并将其中一部分信息再插入借书证表、学生贷款、学生医疗表,要求插入之后显示插入的数据。

2. 在学生档案表上创建一个触发器,实现下列任务:当新生信息插入到学生档案表中时,将其中一部分信息再插入借书证表、学生贷款、学生医疗表,要求插入之后显示插入的数据。 CREATE TRIGGER TRIGGER_学生档案表_INSERT ON 学生档案表 FOR INSERT AS BEGIN

insert into 借书证表(学号) select学号from inserted insert into 学生贷款(学号) select学号from inserted insert into 学生医疗表(学号) select学号from inserted select * from inserted END GO

3. 在某出版社数据厍中,有图书关系R(书号,书名,类别,定价)。如果教材类图书的平均定价大于30,则显示“平均价格超过30元”,反之显示“平均价格不超过30元”,并列出所有教材类的书名。编写一个SQL程序完成这个任务。 USE 出版社 GO

IF(SELECT AVG(定价) FROM R WHERE类别=’教材’)>30 PRINT ‘平均价格超过30元’ ELSE BEGIN

PRINT ‘平均价格不超过30元’

SELECT书名FROM R WHERE类别=’教材’

END GO

4. 在某出版社数据厍中,有图书关系R(书号,书名,类别,定价)。如果教材类图书的平均定价大于30,则执行循环,将高于平均值的教材类图书的定价下调1%,直至所有教材类图书的平均定价小于或等于30元为止。编写一个SQL程序完成这个任务。 USE 出版社 GO

DECLARE @PJDJ Float

WHILE (select @PJDJ = AVG(定价) FROM R WHERE类别=’教材’) >30 UPDATE R SET定价=定价*0.99 WHERE类别=’教材’ AND定价> @PJDJ GO

5. 假设有银行账户关系R(账号,客户姓名,余额)。转账业务规定,当一个账户余额大于等于转账金额时,则执行转账业务,并通知客户转账的金额和账面余额;否则不执行转账操作。通知客户不执行转账的理由。试编写转账业务的存储过程,该存储过程有转出账号、转入账号和转账金额3个参数,要求保证事务的原子性。

6. 有学生和成绩关系如下: S(学号,姓名,性别,专业)

R(学号,课程号,课程名称,分数)

搜索更多关于: 《数据库原理与系统》习题解答 的文档
《数据库原理与系统》习题解答.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c69y5b64cco85bn78addp_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top