数据库原理及应用(MySQL版-李月军)-习题参考答案

news2025/1/1 12:14:22

数据库原理及应用(MySQL版)-微课视频版


习题参考答案


习 题一

一.选择题

1、D 2、C 3、C 4、B 5、D

6、B 7、A 8、B 9、C 10、A

11、B 12、C 13、①A②B③C 14、①E②B 15、①B②C③B

16、B 17、A 18、D

二.填空题

1、文件系统 操作系统 2、转换 3、概念 逻辑

4、数据 5、外模式 内模式 模式

三.简答题

1.这4种模型的特点和区别如下表所示。

模型

反映何种观点的何种结构

独立性

使用者

范例

概念模型

反映了用户观点的数据库整体逻辑结构

硬件独立软件独立

企业管理人员数据库设计者

E-R模型

逻辑模型

反映了计算机实现观点的数据库整体逻辑结构

硬件独立软件依赖

数据库设计者DBA

层次、网状、关系模型

外部模型

反映了用户具体使用观点的数据库局部逻辑结构

硬件独立软件依赖

用户

与用户有关

内部模型

反映了计算机实现观点的数据库物理结构

硬件依赖软件依赖

数据库设计者DBA

与硬件、DBMS有关

2.DB的三级模式结构描述了数据库的数据结构。数据结构分成3个级别。由于三级结构之间有差异,因此存在着两级映射。这5个概念描述了如下内容。

① 外模式:描述用户的局部逻辑结构。

② 外模式/模式映射:描述外模式和概念模式间数据结构的对应性。

③ 概念模式:描述DB的整体逻辑结构。

④ 模式/内模式映射:描述概念模式和内模式间数据结构的对应性。

⑤ 内模式:描述DB的物理结构。

3.在用户访问数据的过程中,DBMS起着核心的作用,实现“数据三级结构转换”的工作。

4.在数据库的三级模式结构中,数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中,而概念模式提供了连接这两级的相对稳定的中间观点,而且两级中任何一级的改变都不受另一级的牵制。

5.物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是独立的。物理独立性通过模式/内模式映射来实现的。

逻辑独立性是指用户的应用程序与逻辑结构是相互独立的。逻辑独立性是通过外模式/模式映射来实现的。

习 题二

一.选择题

1、C 2、C 3、C 4、B 5、D

6、D 7、D 8、C 9、C 10、D

11、B 12、C 13、A 14、C 15、B

二.设计题

1.解答:

(1)SELECT  E#,ENAME  FROM   EMP
     WHERE  AGE>50  AND  SEX='M';
(2)SELECT  E#,COUNT(*)  NUM,SUM(SALARY) SUM_SALARY  FROM   WORKS
     GROUP  BY   E#;
(3)SELECT  A.E#,ENAME
     FROM  EMP  A,WORKS  B,COMP  C
     WHERE  A.E#=B.E#  AND B.C#=C.C#  AND  CNAME='联华公司'
      AND  SALARY<(SELECT  AVG(SALARY) FROM  WORKS,COMP
                      WHERE  WORKS.C#=COMP.C#  AND  CNAME='联华公司');
(4)SELECT  C.C#,CNAME  FROM  WORKS  B,COMP  C
     WHERE  B.C#=C.C#
     GROUP  BY  C.C#,CNAME
      HAVING  COUNT(*)>=ALL(SELECT  SUM(SALARY) FROM  WORKS GROUP  BY  C#);
(5)SELECT  C.C#,CNAME  FROM  WORKS  B,COMP  C
     WHERE  B.C#=C.C#
     GROUP  BY  C.C#,CNAME
      HAVING  AVG(SALARY)>(SELECT  AVG(SALARY) FROM  WORKS  B,COMP  C
                                WHERE  B.C#=C.C#  AND CNAME='联华公司');
(6)UPDATE  WORKS  SET   SALARY=SALARY*1.05
     WHERE  C#  IN (SELECT  C#  FROM  COMP
                      WHERE  CNAME='联华公司');
(7)DELETE  FROM  WORKS
     WHERE  E#  IN  (SELECT  E#  FROM  EMP  WHERE  AGE>60);
(8)CREATE  VIEW  emp_woman
     AS  SELECT  A.E#,ENAME,C.C#,CNAME,SALARY
          FROM   EMP  A,WORKS  B,COMP  C
          WHERE  A.E#=B.E#  AND  B.C#=C.C#  AND  SEX='F';

     SELECT  E#,SUM(SALARY) FROM  emp_woman
     GROUP  BY  E#;

2.解答:

(1)此问题考查的是查询效率的问题。在涉及相关查询的某些情形中,构造临时关系可以提高查询效率。

① 对于外层的职工关系E中的每一个元组,都要对内层的整个职工关系M进行检索,因此查询效率不高。

② 解答方法一(先把每个部门最高工资的数据存入临时表,再对临时表进行查询):

CREATE  TABLE   temp
  AS  SELECT  部门号,MAX(月工资)  最高工资  FROM  职工  GROUP  BY  部门号;

  SELECT  职工号  FROM  职工,temp
   WHERE  职工.部门号=temp.部门号  AND 月工资=最高工资 ;

解答方法二(直接在FROM子句中使用临时表结构)

SELECT  职工号
  FROM  职工,( SELECT  MAX(月工资) 最高工资,部门号
                FROM   职工
                GROUP  BY  部门号)  AS  depMax
  WHERE  月工资=最高工资  AND  职工.部门号=depMax.部门号

(2)此问主要考察在查询中注意WHERE子句中使用索引的问题,既可以完成相同功能又可以提高查询效率的SQL语句如下:

(SELECT  姓名,年龄,月工资  FROM  职工   WHERE  年龄>45)
  UNION
  (SELECT  姓名,年龄,月工资  FROM  职工   WHERE  工资<1000)
习 题 三

一.选择题

1、C 2、A 3、C 4、C 5、B 6、C

7、D 8、B 9、B 10、C 11、C 12、C

二.简答题

1、存储过程和函数在本质上都是存储程序。函数只能通过return语句返回单个值;而存储过程不允许执行return,但是可以通过out参数返回多个值。函数可以嵌入在SQL语句中使用,可以在SELECT语句中作为查询语句的一个部分调用;而存储过程一般是作为一个独立的部分来执行。

2、目前,MySQL还不提供对已存在的存储过程代码的修改,如果必须要修改存储过程,必须使用DROP语句删除之后,再重新编写代码,或者创建一个新的存储过程。

3、存储过程是包含用户定义的SQL语句集合,可以使用CALL语句调用存储过程,当然在存储过程中也可以使用CALL语句调用其他存储过程,但是不能使用DROP语句删除其它存储过程。

习 题 四

一.选择题
1、A 2、C 3、C 4、D 5、C
6、B 7、A 8、①C②B
9、①C②A 10、A
11、D 12、D 13、A 14、①B②C③D④A⑤D
15、①C ②B 16、D 17、B 18、C
二.填空题
1、数据查询 2、表 记录 字段 3、关系中主键值不允许重复
4、主键 外键 5、∪、-、×、∏、e
在这里插入图片描述

三.查询题

image-20240912190620880

image-20240912190651610

1、
(1)∏S#,SNAME(eage<17∧sex=’女’(S))
(2)∏C#,CNAME(esex=’男’(S ∞ SC ∞ C))
(3)∏T#,TNAME(esex=’男’(S ∞ SC ∞ C ∞ T))
(4)∏1(e1=4∧2≠5(SC×SC))
(5)∏2(e1=‘S2’∧4=’S4’∧2=5(SC×SC))
   或∏S#,C#(SC)÷{’S2’,’S4’}
(6)∏C#(C)-∏C#(esname=’WANG’(S ∞ SC))
(7)∏C#,CNAME(C ∞ (∏S#,C#(SC) ÷∏S#(S)))
(8)∏S#,C#(SC) ÷∏C#( eTname=’LIU’(C ∞ T))
2、
(1){t|(u)(SC(u) ∧u[2]=‘k5’ ∧t[1]=u[1] ∧t[2]=u[2])}
(2){t|(u)(v) (S(u) ∧ SC(v) ∧ v[2]=‘k8’ ∧u[1]=v[1] ∧t[1]=u[1] ∧t[2]=u[2])}
(3){t|(u)(v)(w) (S(u) ∧ SC(v) ∧C(w) ∧ w[2]=‘C语言’ ∧u[1]=v[1] ∧v[2]= w[1] ∧ t[1]=u[1] ∧t[2]=u[2])}
(4){t|(u)(SC(u) ∧ (u[2]=‘k1’ ∨u2=‘k5’)∧ t[1]=u[1] )}
(5){t|(u)(v)(w)(S(u) ∧C(v) ∧ SC(w) ∧ (u[1]=w[1] ∧w[2]=v[1] ∧ t[1]=u[2] )}

四.操作题

【问题一】

 PRIMARY   KEY
   FOREIGN   KEY(负责人代码)  REFERENCES  职工
   PRIMARY   KEY
   FOREIGN   KEY(部门号)  REFERENCES  部门
   月工资   BETWEEN   500  AND   5000
   COUNT(*),SUM(月工资),AVG(月工资)
   GROUP   BY   部门号

【问题二】

(1)和(2)都不能执行,因为使用分组和聚集函数定义的视图是不可更新的。

(3)、(4)、(5)可以执行,因为给出的SQL语句与定义D_S视图的SQL语句合并起来验证有效。

习 题 五

一.选择题

1、A 2、A 3、B 4、B 5、C

二.填空题

1安全性 2用户标识与鉴别、存取控制、视图机制、数据加密、审计

3 CREATE USER 4 角色 5 GRNAT、REVOKE

三.简答题

1.

(1)CREATE USER test_user@localhost IDENTIFIED BY 'test';
(2)GRANT SELECT ON TABLE scott.dept TO test_user@localhost;
(3)GRANT INSERT,DELETE,UPDATE(loc) ON TABLE scott.dept
 		TO test_user@localhost;
(4)GRANT ALL PRIVILEGES ON TABLE scott.dept
 		TO test_user@localhost
 		WITH GRANT OPTION;
(5)REVOKE ALL PRIVILEGES,GRANT OPTION FROM test_user@localhost;
(6)CREATE VIEW scott.view1
AS SELECT * FROM dept	 WHERE deptno=10;
   
GRANT SELECT ON TABLE scott.view1 TO test_user@localhost;
(7)CREATE ROLE role1;

GRANT ALL PRIVILEGES ON scott.*  TO test_user@localhost;
(8)GRANT role1 TO test_user@localhost;
(9)REVOKE role1 FROM test_user@localhost;
(10)DROP ROLE role1;

2.

(1)

① PRIMARY  KEY(仓库号) 

② PRIMARY  KEY 

③ CHAR(4)

④ FOREIGN  KEY(仓库号) REFERENCES  仓库(仓库号)

(2) 	

① 原材料  、

② GROUP  BY  仓库号

  HAVING  SUM(数量)>=ALL(SELECT  SUM(数量)  FROM  原材料

?               GROUP BY 仓库号)

(3)	

① *  

② INSERT,DELETE,UPDATE

③ raws_in_wh01、

④ SELECT  

⑤ 原材料
习 题 六

一.选择题

1、①D②C 2、C 3、A 4、B 5、C

6、D 7、CB 8.D 9、D 10、B

二.填空题

1.原子性、隔离性 2.ROLLBACK、COMMIT 3.丢失更新、读脏数据

4.活锁、饿死、死锁

三.操作题

1)出现问题:有一个存款值会丢失,造成数据不一致。

2)代码程序:Xlock(b),R(b),b=b+x,W(b),Unlock(b)

3)不能实现。因为程序中的隔离级别设置为READ UNCOMMITTED,未实现加锁控制,不能达到串行化调度。

修改方法:改为SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

习 题 七

一.选择题

1、D 2、A 3、A 4、D 5、A 6、C 7、D 8、A 9、B 10、B

二.填空题

1.事务故障、系统故障、介质故障 2.后备数据库、日志文件

3.错误、查询、二进制、慢查询

三.简答题

  1. (1)需要重做的事务:T1、T2、T3,需要回滚的事务:T4。

(2)需要重做的事务:T1、T2,需要回滚的事务:T3。

(3)需要重做的事务:T1,需要回滚的事务:T2、T3。

(4)需要重做的事务:T1,需要回滚的事务:T2。

  1. (1)A=8 B=7 C=11

(2)A=10 B=0 C=11

(3)A=10 B=0 C=11

(4)A=10 B=0 C=11

(5)A=10 B=0 C=11

(6)A=0 B=0 C=0

习 题 八

(1)运动队局部E-R图

image-20240912184327634

运动会局部E-R图

image-20240912184415543

(2)

image-20240912185144327

(3)命名冲突:运动队局部E-R图中的属性项目和运动会局部E-R图中的属性项目名异名同义,统一命名为项目名。

结构冲突:项目在两个局部E-R图中,一个作属性,一个作实体,合并统一为实体。

习 题 九

一.选择题

1、C 2、C 3、C 4、B 5、A

6、D 7、B 8、A 9、①A②D 10、B

11、B 12、B 13、D 14、B 15、①C ②C ③A ④B

二.填空题

1、函数 多值 2、插入异常 删除异常 更新异常 3、全码 非主属性

4、函数 多值 5、一个 两个或两个以上 6、范式

7、2NF 8、3NF 9、BCNF

10、无损连接 保持FD

三.简答题

1、(1)R的候选键是AB, R属于BCNF。

(2)R的候选键是AB,R属于BCNF。

(3)R的候选键是AB和BD,R最高属于3NF。

2、至少有(a1,b1,c2) (a1,b1,c3) (a1,b2,c1)

(a1,b2,c3) (a1,b3,c1) (a1,b3,c2)

成立。

3、(1)CE为R的候选关键字。

(2)分解后的模式具有无损连接性,但不能保持原来的函数依赖。

四.设计题

(1)部门 主键:(部门代码,办公室) 外键:无

F1={部门代码→(部门名,起始年月,终止年月),办公室→办公电话}

等级 主键:(等级代码,年月) 外键:无

F2={等级代码→等级名,(等级代码,年月)→小时工资}

项目 主键:项目代码 外键:部门代码、项目主管

F3={项目代码→(项目名,部门代码,起始年月日,结束年月日,项目主管)}

工作计划 主键:(项目代码,职员代码,年月) 外键:项目代码、职员代码

(2)修改后的关系模式如下:

职务(职务代码,职务名,等级代码)

其主键为(职务代码,等级代码) 外键为等级代码

(3)设计的“工作业绩”关系模式如下:

工作业绩(项目代码,职员代码,年月日,工作时间)

其主键为(项目代码,职员代码,年月日)

(4)部门关系模式不属于2NF,只能是1NF。该关系模式存在冗余问题,因为某部门有多少个办公室,则部门代码、部门名、起始年月、终止年月就要重复多少次。

为了解决这个问题,可将模式分解,分解后的关系模式为:

部门_A(部门代码,部门名,起始年月,终止年月)

其主键为部门代码

部门_B(部门代码,办公室,办公电话)

其主键为(部门代码,办公室) 外键为(部门代码)

(5)SQL语句如下:

SELECT 职员代码,职员名,年月,工作时间*小时工资 AS 月工资

FROM 职员,职务,等级,月工作业绩

WHERE 职员.职务代码=职务.职务代码 AND 职务.等级代码=等级.等级代码

AND 等级.年月=月工作业绩.年月 AND 职员.职员代码=月工作业绩.职员代码;

习 题 十

一、选择题

1、B 2、C 3、B 4、D 5、C 6、A 7、B 8、C 9、D 10、B

11、C 12、C 13、A 14、D 15、D

二、填空题

1.系统调查、可行性分析 2.自顶向下逐步细化、自底向上逐步综合

3.把概念模式转换成DBMS能处理的模式 4.DBA

5.DB的转储和恢复、DB的重组织和重构造

三、设计题

image-20240912185543969

image-20240912185604340

image-20240912185640905

(4)此处的“需求”是“岗位”、“企业”和“人才”3个实体之间的联系,而事实上只有人才被聘用之后三者才产生联系。本系统解决的是人才的求职和企业的岗位需求,人才与企业之间没有直接的联系。

(5)建立企业的登录信息表,包含用户名和密码,记录企业的用户名和密码,将对本企业的基本信息的修改权限赋予企业的用户名,企业工作人员通过输入用户名和密码,经过服务器将其与登录信息表中记录的该企业的用户名和密码进行验证后,合法用户才有权修改企业的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2267542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从家谱的层级结构 - 组合模式(Composite Pattern)

组合模式&#xff08;Composite Pattern&#xff09; 组合模式&#xff08;Composite Pattern&#xff09;组合模式概述组合模式涉及的角色talk is cheap&#xff0c; show you my code总结 组合模式&#xff08;Composite Pattern&#xff09; 组合模式&#xff08;Composite…

路由器刷机TP-Link tp-link-WDR5660 路由器升级宽带速度

何在路由器上设置代理服务器&#xff1f; 如何在路由器上设置代理服务器&#xff1f; 让所有连接到该路由器的设备都能够享受代理服务器的好处是一个不错的选择&#xff0c;特别是当需要访问特定的网站或加速网络连接的时候。下面是一些您可以跟随的步骤&#xff0c;使用路由器…

免费干净!付费软件的平替款!

今天给大家介绍一个非常好用的电脑录屏软件&#xff0c;完全没有广告界面&#xff0c;非常的干净简洁。 电脑录屏 无广告的录屏软件 这个软件不需要安装&#xff0c;打开就能看到界面直接使用了。 软件可以全屏录制&#xff0c;也可以自定义尺寸进行录制。 录制的声音选择也非…

Pandas03

Pandas01 Pandas02 文章目录 内容回顾1 排序和统计函数2 缺失值处理2.1 认识缺失值2.2 缺失值处理- 删除2.3 缺失值处理- 填充非时序数据时序数据 3 Pandas数据类型3.1 数值类型和字符串类型之间的转换3.2 日期时间类型3.3 日期时间索引 4 分组聚合4.1 分组聚合的API使用4.2 分…

vue3使用element-plus,解决 el-table 多选框,选中后翻页再回来选中失效问题

问题&#xff1a;勾选的数据分页再回来回消失 1.在el-table中加 :row-key"getRowKey" const getRowKey (row) > { return row.id; // id必须是唯一的 }; 2.给type为selection的el-table-column添加上reserve-selection属性 <el-tableref"multipleTab…

BUU BRUTE 1

BUU BRUTE 1 启动靶机 让我们输入账户和密码&#xff0c;这里我们什么也不知道就随便输入一个试试 账户adimin密码1234 告诉我们密码错误&#xff0c;为四位数字&#xff0c;在这里没有说账号错误&#xff0c;说明账号就是admin 密码的话爆破一下从0000到9999 这里选择默认的…

Maple软件的安装和使用

文章目录 1.前言说明2.我为什么要学习Maple3.软件的安装4.如何使用4.1基本的赋值语句4.2函数的定义4.3三个类型的书写介质 5.指数运算5.1使用面板5.2自己输入 6.对数的使用 1.前言说明 众所周知&#xff0c;我虽然是一名这个计算机专业的学生&#xff0c;但是我对于数学&#…

vue之axios基本使用

文章目录 1. axios 网络请求库2. axiosvue 1. axios 网络请求库 <body> <input type"button" value"get请求" class"get"> <input type"button" value"post请求" class"post"> <!-- 官网提供…

javaEE-多线程案例-单例模式

目录 啥是设计模式? 一.饿汉式 实现步骤&#xff1a; 二.懒汉式 实现步骤: 三、懒汉式优化1 四.懒汉式优化2 五.懒汉式优化3 总代码: 单例模式是一种设计模式。 啥是设计模式? 设计模式好⽐象棋中的"棋谱".红⽅当头炮,⿊⽅⻢来跳.针对红⽅的⼀些⾛法,⿊…

TCP Analysis Flags 之 TCP Out-Of-Order

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…

鸿蒙开发实战之“使用HiLog和HiSysEvent进行日志与系统事件管理”

HiLog和HiSysEvent作为鸿蒙&#xff08;HarmonyOS&#xff09;系统中进行日志记录和系统事件管理的关键组件&#xff0c;为开发者提供了强大的工具来追踪系统行为、调试应用以及监控设备状态。它们不仅简化了日志管理和事件追踪的流程&#xff0c;还提高了开发效率和系统可维护…

机器学习之PCA降维

主成分分析&#xff08;PCA&#xff0c;Principal Component Analysis&#xff09; 主成分分析&#xff08;PCA&#xff09;是一种常见的无监督学习技术&#xff0c;广泛应用于数据降维、数据可视化以及特征提取等任务。PCA的目标是通过线性变换将数据从高维空间映射到低维空间…

【CSS in Depth 2 精译_098】17.3:CSS 动画延迟技术与填充模式设置 + 17.4:通过 CSS 动画传递意图的秘诀

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第五部分 添加动效 ✔️【第 17 章 动画】 ✔️ 17.1 关键帧17.2 3D 变换下的动画设置 17.2.1 添加动画前页面布局的构建17.2.2 为布局添加动画 17.3 动画延迟与填充模式 ✔️17.4 通过动画传递意图…

python+PyMuPDF库:(一)创建pdf文件及内容读取和写入

目录 文档操作 打开文档 获取文档信息 删除页 复制页 移动页 选择重构合并 保存关闭 页对象操作 内容读取 获取页对象的字体样式 插入文本标签 插入文本内容 字体设置 insert_text添加文本 insert_textbox添加文本 插入图片 获取页面注释、链接、表单字段 …

Datawhale AI冬令营 动手学AI Agent

背景——什么是Agent 在人工智能领域&#xff0c;agent可以指一个能够感知环境并作出决策以实现特定目标的系统。比如&#xff0c;一个聊天机器人&#xff08;chatbot&#xff09;就是一个agent&#xff0c;它能够理解用户的输入并给出相应的回复。 学习目标 学会使用百宝箱…

高精度保形滤波器Savitzky-Golay的数学原理、Python实现与工程应用

面向信号处理的特征保持平滑技术 在数据分析领域&#xff0c;信号处理中的噪声问题始终是一个重要议题。无论是实验数据、金融时间序列还是其他形式的信号处理&#xff0c;噪声都会干扰目标模式和趋势的识别。尽管存在多种降噪方法&#xff0c;但在处理短时信号时&#xff0c;…

九点标定+旋转标定

眼在手外方式 1.夹取make点位置要求 机械手夹具夹持一个款标定板或者物料露出make点让视觉定位抓取 高度&#xff1a;与产品识别高度一致 左右位置&#xff1a;在相机视野内可以拍到make点 2.机械手走9个点移动位置要求&#xff08;九点标定&#xff09; 保证make在视野内…

RealityCapture导入视频序列失败

问题原因&#xff1a;如果导入的视频文件存在多余的元数据&#xff0c;那么在这里会发生导入失败。 以本人华为手机拍摄的一段.mp4视频为例&#xff1a; 利用ffmpeg在窗口命令行中检查你的视频—— ffmpeg -i your_video_name.mp4your_video_name是你的视频文件名 如下图所示&…

计算机网络|数据流向剖析与分层模型详解

文章目录 一、网络中的数据流向二、计算机网络通信模型1.OSI 模型2.TCP/IP 模型3.TCP/IP五层模型3.1 分层架构描述3.2各层地址结构3.3UDP数据包报头结构 三、总结 一、网络中的数据流向 在计算机网络中&#xff0c;数据的流向是指数据从发送端到接收端的传输路径。数据流向涉及…

正则表达式(三剑客之awk)

1.awk工具的使用 1.1 截取文档中的某个段 1&#xff09;打印以 : 为分隔的第一个字段 [rootlocalhost ~]# head -n3 /etc/passwd | awk -F : {print $1} 2&#xff09;注意事项 -F&#xff1a;作用是指定分隔符。如果不加分隔符&#xff0c;则以空格或者tab为分隔符 print&…