数据库系统概论练习3

article/2025/11/6 5:42:47

一、填空题

 

  1. 能够唯一标识实体的属性或属性组称为____实体的码______。
  2. 如果两个关系没有公共属性,则其自然联接操作与____笛卡尔积_____操作等价。
  3. SQL中聚合函数“COUNT(*)”的功能是___统计元组个数________。
  4. 关系模式如果为1NF,则在对数据操作时存在的问题包括____插入异常______、删除异常、修改异常。
  5. 视图是一个虚表,它一经定义就可以和基本表一样被查询,但 _更新______ 操作将有一定的限制。
  6. 在SQL的授权语句中的关键字PUBLIC表示__全体用户_______。
  7. 若要求分解保持函数依赖,那么模式分解可以达到的范式级别是__3NF________。
  8. 数据库设计分为以下六个设计阶段:需求分析阶段、概念结构设计阶段、___逻辑结构设计阶段________、数据库物理设计阶段、数据库实施阶段、数据库运行和维护阶段。
  9. 当数据库被破坏后,如果事先保存了数据库副本和 __日志文件______ ,就有可能恢复数据库。
  10. 多个事务执行的次序称为___调度______。

二、单项选择题

 

1.数据库的存储设备和存取方法变化不影响整体逻辑结构的特点,称为数据库的( B  )

A.实体独立性 B.物理数据独立性

C.客观独立性 D.逻辑数据独立性

2.以下活动中,一般情况下不属于DBA任务的是   ( C  )

A.在系统运行过程中,对数据库的空间增长情况进行监控

B.在系统运行过程中,对数据库系统各时段CPU和内存使用情况进行监控

C.建立关系表以后编写系统应用程序

D.定期进行数据备份

3.R为4元关系R(A,B,C,D),S为3元关系S(B,C,D),则R∞ S构成的结果集为______元关系。 (  D )

A.4 B.2

C.7 D.6

4.学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是 ( B  )

A.多对多 B.一对多

C.多对一 D.一对一

5.一个关系中的候选关键字 ( B  )

A.至多一个 B.可多个

C.必须多个 D.至少 3 个

6.下列哪些属性不适合建立索引 ( D  )

A.经常出现在GROUP BY字句中的属性

B.经常参与连接操作的属性

C.经常出现在WHERE字句中的属性

D.经常需要进行更新操作的属性

7.SQL语言具有数据操作功能,SQL语言的一次查询的结果是一个 (  D )

A.数据项 B.记录

C.元组 D.表

8.在SQL语言中,用于测试列值非空的语句是 ( B  )

A.IS NOT EMPTY B.IS NOT NULL

C.NOT UNIQUE D.NOT EXISTS

9.在SQL中,与“NOT IN”等价的操作符是 (  A )

A.<>ALL B.<>SOME

C.=SOME D.=ALL

10.下列SQL语句中,能够实现“将查询SC表的权限授予用户U1,并允许该用户将此权限授予其他用户”这一功能的是 (  D )

A.GRANT SELECT TO SC ON U1 WITH PUBLIC

B.GRANT SELECT ON SC TO U1 WITH PUBLIC

C.GRANT SELECT TO SC ON U1 WITH GRANT OPTION

D.GRANT SELECT ON SC TO U1 WITH GRANT OPTION

11.被命名的一组与数据库操作有关的权限称为 ( C  )

A.用户组 B.用户

C.角色 D.模式

12.下面给出的关系表r(A,B,C,D)满足下述哪个函数依赖 (  B )

 

A.A→B

B.B→D
C.D→C

D.A→D

 解析:根据函数依赖的定义:关系R上不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,从表中看来只有B→D,所以本题的答案为B

13.某供应商关系模式为

Provider(PID,Pname,Tel,GoodsID,GoodsClassID,GoodsName,GoodsPrice)

该关系模式应满足如下函数依赖:

PID→Pname,PID→TEL,GoodsID →GoodsClassID,

GoodsID→GoodsName,GoodsName→GoodsPrice

则这个关系模式的主码为 ( C  )

A.(PID,GoodsName) B.(PID,GoodsClassID)

C.(PID,GoodsID) D.(PID,GoodsPrice)

14.在关系数据库中,从关系规范化的意义看,如果关系R中的非主属性对码有传递函数依赖,那么R至多是 ( B  )

A.1NF B.2NF

C.3NF D.BCNF

15.最小函数依赖集Fm要求所有函数依赖的右部 (   )

A.最多有一个属性 B.最少有一个属性

C.可以有多个属性 D.属性个数无要求

解析:F中任一函数依赖的右部仅含有一个属性。

16.并发事务的交叉执行破坏了事务的 ( B  )

A.原子性 B.隔离性

C.一致性 D.永久性

17.要求事务在读取数据前先加共享锁,且读完数据后即可释放S锁,这种封锁协议是

( B  )

A.一级封锁协议 B.二级封锁协议

C.三级封锁协议 D.四级封锁协议

18.以下哪一个将用来记录对数据库中数据进行的每一次更新操作  (  C )

A.数据字典 B.后援副本

C.日志文件 D.数据库

19.设有事务T1和T2,其并发操作顺序如下表所示。该并发操作带来的问题是(C   )

 

T1

T2

READ(A)

 

A=A*2

 

WRITE(A)

 

 

READ(A)

ROLLBACK

 

A.丢失了修改 B.不能重复读

C.读脏数据 D.写错误

20.已知事务T1的封锁序列为:

LOCK (A)…LOCK (B)…LOCK (C)…UNLOCK(B) …UNLOCK (A) …UNLOCK (C)

事务T2的封锁序列为:

LOCK (A) …UNLOCK (A) …LOCK (B)…LOCK (C) …UNLOCK (C) …UNLOCK (B)

则遵守两段封锁协议的事务是 ( A  )

A.T1 B.T2

C.T1和T2 D.没有

 

三、简答题

 

四、应用题

 

假设有如下三个关系模式:

  • 商场表:M(MNO,MNAME,CITY) 各属性含义依次为商场编号、商场名和商场所在城市;主键为商场编号。
  • 商品表:P(PNO,PNAME,CITY,COLOR) 各属性含义依次为商品编号、商品名、产地和商品颜色;主键为商品编号。
  • 销售表:S(MNO,PNO,QTY) 各属性含义依次为商场编号、商品编号和销售数量;主键为(商场编号,商品编号)

基于以上关系模式

使用关系代数实现以下查询

1.查询销售了’红色’商品的商场编号、商品名称和销售数量。

2.查询能销售所有商品的商场编号。

  1. ∏mno,pname,qty (σ color=’红色’ (P∞S∞M) )

【条件color=’红色’,查询结果为MNO,PNAME,QTY分别用到了P表和S表】

∏mno,pname,qty (σ color=’红色’ (P∞S) )

  1. ∏mno,pno (S)÷∏pno(P)

【能销售所有商品(pno),说明用除法,结果为商场编号(mno),用销售表的pno,mno除商品表的商品编号便得到能销售所有商场编号。一般包括最多,包括什么什么在内的条件,一般都用除法。】

使用SQL语句实现以下操作

  1. 查询能够在’北京’市购买到的商品的商品编号和商品名称。

【city=’北京’,商场编号(mno),商品名称(MNAME)】

4.查询只在本地供货的商品的商品编号和商品名称。

5.建立视图ACC,要求包含商品编号PNO和销售总数量ACNT。

6.查询销量最好的商品名称(可以使用视图ACC)。

  1. 将没有产地信息的商品记录更新其产地为’中国’。

3.Select distinct pno,pname from m,p,s where m.mno=s.mno and p.pno=s.pno and m.city=’北京’;
    Select pno,pname from p where pno in ( select distinct pno from m,s where m.mno=s.mno and m.city=’北京’);
    Select pno,pname from p where exists(select * from m,s where p.pno=s.pno and m.mno=s.mno and m.city=’北京’)

4.Select pno,pname from p where not exists(select * from m,s where p.pno=s.pno and m.mno=s.mno and m.city<>p.city);【题目问的感觉有点问题,只在本地,SQL语句的查询结果是M表的city和P表的city是一样的,也就是商场和商品的销售城市是一样的,令也可以将not去掉,然后不等式换成等式】

5.Create view acc as select pno,sum(qty) acnt from s group by pno

【商品编号PNO和销售总数量ACNT,求pno,并且需要求和并重命名acnt】

  1. Select pname from p where pno in (select pno from acc where acnt=(select max(acnt) from acc)); //大小写对应更正!

   【求PNAME,在商品表中(P),然后根据销售表找到销量最好的产品号(pno),where销量最好】select pname from p where pno in(select pno from ACC where acnt=(select max(acnt) from ACC));  //因为聚集函数只能在select和having中,故使用视图ACC会方便一些,另一种方法就是不使用ACC,使用having,group by语句找到最大的商品的pno,然后进行嵌套查询,可以自己尝试。

  1. Update p set city=’中国’

 where p.city is null; //注意,这里不能用等号!

 

五、综合题

 

有运动员参加比赛的关系模式R(运动员号码,比赛项目,成绩,项目类别,比赛主管),如果规定:每个运动员参加一个比赛项目只有一个比赛成绩,每个比赛项目属于一个项目类别,每个项目类别只有一个比赛主管

1.根据上述规定,写出模式R的基本FD和关键码。

2.R最高为第几范式?

3.将R规范为3NF。

解:1、模式R的函数依赖关系

由规定中每个运动员参加一个比赛项目只有一个比赛成绩,可得出:  (运动员号码,比赛项目)->成绩

由每个比赛项目只属于一个项目类别,可得出:比赛项目->项目类别【注意:这里不能写反,意思是一个比赛项目能唯一确定一个类别,类别能确定一个项目或多个项目并没有说明!】

由每个项目类别只有一个比赛主管,可得出:项目类别->比赛主管

如果设关系模式R(运动员号码,比赛项目,成绩,项目类别,比赛主管)为R(A,B,C,D,E),则上述函数依赖可描述为F={AB->C,B->D,D->E}  【全写中文个人感觉也问题不大。】

因为所有函数依赖的右边化为单一属性;A+={A},B+={D,E}说明C对A没有依赖对B也没有依赖,那么C就是完全函数依赖于AB,所有函数依赖左边的没有冗余属性,且没有冗余的函数依赖,所以关系模式R的最小函数依赖FD={(运动员号码,比赛项目)->成绩,比赛项目->项目类别,项目类别->比赛主管}。

设AB为候选码,求AB的闭包(AB)+ F={C,D,E,A,B} =U,所以R的关键码为AB,即(运动员号码,比赛项目)

【有点多,上面的意思就是求关键码,文字叙述有点多。其实就是求一个序列能够确定所有元素。因为元素比较少,可以一眼看出AB的闭包能确定所有元素,故AB就是关键码。】

2、关系模式R中的主属性为A、B,非主属性C、D、E,因为非主属性D对主属性AB是部分函数依赖,所以R达不到2NF,只是属于1NF。

3、分解R:(1) 先对F极小化:F已是最小依赖集F={AB->C,B->D,D->E}

     (2) 分离无关属性:所有属性均出现,无需分离。

     (3) 判是否需分解:需要。

     (4) 分解:按左部相同的原则分组,则 r ={ R1(A,B,C), R2(B,D),R3(D,E) },

即R1(运动员号码,比赛项目,成绩);R2(比赛项目,项目类别);R3(项目类别,比赛主管)为一个保持函数依赖且达到3NF 的分解。

六、数据库设计题

某汽车维修厂的维修工单如下表所示:

维修工单号:2011008          下达日期:××××××      完工日期:××××××

故障说明:××××××××××

机动车牌照号:××××××        机动车型号:××××      

更换

零件

零件号

零件名称

规格

单价

更换数量

 

LJ002

×××

××

××

××

LJ517

×××

××

××

××

LJ441

×××

××

××

××

LJ086

×××

××

××

××

维修工编号:×××       维修工姓名:×××      

(1)试为某汽车维修厂设计一个优化的ER模型,要求标注联系类型。(5分)

(2)将ER模型转换为关系模型,标注每个关系模式的主键和外键(如果存在)。(5分)

(1)

 

有点东西,设计ER图,首先根据题意分析所具有的实体,属性,关系。

实体:实体一般都是名词,整好表格给的比较巧,一层是一个实体,第一层维修工单,第二层(更换零件,但是这个是动词,不能当实体)所以选零件为实体。第三层是维修工的属性,所以选维修工为实体。补充:第一层还有一个机动车的属性,因为它和维修工单不是所属关系,所以单独做一个实体。

属性:【维修工单号,下达日期,完工日期,故障说明】---维修工单

  【机动车牌照号,机动车型号】--机动车  //注意:属性尽量不要缩写

【零件号,零件名称,规格,单价】--零件,注意:更换数量为动词,动词一般为关系,所以把该属性暂时保留到关系中。

【维修工编号,维修工姓名】--维修工

关系:根据表找关系是比较难的,所以还是第一原则,观察和找动词。四个实体之间有什么关系。维修工单,维修工,零件,机动车。如果能找到动词直接写上两个实体之间的关系,没找到动词就根据观察和实际进行书写。

上面都是分析过程,实际书写的时候直接画E-R图即可!!!

(2)

维修工单(工单号机动车牌照号维修工编号,下达日期,完工日期,故障说明) 外键:机动车牌照号,维修工编号

机动车(机动车牌照号,机动车型号) 【主码就是主键,外码就是外键】

维修工(维修工编号,维修工姓名)无外码

零件(零件号,零件名称,规格,单价)无外码

更换(工单号,零件号,更换数量)外键:工单号,零件号


http://chatgpt.dhexx.cn/article/wPA669mi.shtml

相关文章

数据库第七周作业——第三章课后习题

3.有两个关系S&#xff08;A,B,C,D&#xff09;和T&#xff08;C,D,E,F&#xff09;,写出与下列查询等价的SQL表达式&#xff1a; (1&#xff09;σ A10(S&#xff09; SELECT * FROM S WHERE A10;(2&#xff09;π A , B ( S ) SELECT A,B FROM S;(3&#xff09;S ⋈ T SEL…

第三章作业【数据库原理】

第二章作业【数据库原理】 前言推荐第三章作业第3章第1题简答题第3章第2题&#xff08;关系代数->SQL代码&#xff09;第3章第3题&#xff08;创建SPJ数据库中的四张表&#xff09;模拟数据第3章第4题&#xff08;SPJ数据库上完成查询&#xff09;第3章第5题&#xff08;SPJ…

设有一个工程供应数据库系统,包括如下四个关系模式:S(Sno,Sname, Status,City) ;P(Pno,Pname,Color ,Weight);J(Jno,Jname, Ci

设有一个工程供应数据库系统&#xff0c;包括如下四个关系模式&#xff1a; S(Sno&#xff0c;Sname&#xff0c; Status&#xff0c;City) &#xff1b; P(Pno&#xff0c;Pname&#xff0c;Color &#xff0c;Weight)&#xff1b; J(Jno&#xff0c;Jname&#xff0c; City) …

高通WLAN框架学习(17)-- NIO和PNO

本章详细介绍了preferred network offload (PNO)扫描概述、流、模式和配置文件。 18.1 PNO扫描概述 WLAN STA在通过AP模组连接AP之前,需要偶尔对环境进行扫描。 在WLAN请求程序中对扫描结果进行解析和处理,以确定是否至少有一个目标(附近)AP在附近。 为了偶尔发出扫描,应用…

Wi-Fi PNO扫描流程(Android P)

简介&#xff1a;当手机灭屏情况下&#xff0c;有保存网络时&#xff0c;若已连接&#xff0c;不扫描&#xff0c;否则&#xff0c;PNO扫描&#xff0c;即只扫描已保存的网络。最小间隔min20s&#xff0c;最大间隔max20s*360s PNO 即Preferred Network Offload&#xff0c;用于…

[RK3288][Android6.0] WiFi之PNO功能了解

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 概念: PNO 即Preferred Network Offload,用于系统在休眠的时候连接WiFi 此功能是在Android3.1加入的 缺陷: 在使用PNO时,有潜在泄露个人隐私的风险。这里没明白,意思是说PNO会发送之前的连接过的网络给AP,然…

二值化的方法

1.二值化 图像二值化的目的是最大限度的将图像中感兴趣部分保留下来&#xff0c;在很多情况下&#xff0c;也是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。在这些庞大的图像二值化分类方法中&#xff0c;基于直方图的全局二值算法占有了绝对的市场份额&…

OpenCV-Python学习(10)—— OpenCV 图像二值化处理(cv.threshold)

1. 学习目标 理解图像的分类&#xff0c;不同类型的图像的区别&#xff1b;对图像进行二值化处理&#xff0c;对【 cv.threshold 】函数的理解。 2. 图像分类 2.1 不同类型图像说明 按照颜色对图像进行分类&#xff0c;可以分为二值图像、灰度图像和彩色图像。 二值图像&…

python 图像二值化处理

python 图像二值化处理 import os from PIL import Image import shutilfile_path ./5-crack919/mask/ save_path ./5-crack919/mask01/ if not os.path.exists(save_path):os.makedirs(save_path) ###二值化 for filename in os.listdir(file_path):print(filename)img …

图像处理之二值化图像

图像二值化就是将图像上的像素点的灰度值设置为0或255&#xff0c;也就是将整个图像呈现出明显的黑白效果。将所有灰度大于或等于阈值的像素被判定为属于特定物体&#xff0c;其灰度值为255表示&#xff0c;否则这些像素点被排除在物体区域以外&#xff0c;灰度值为0&#xff0…

二值化之阈值处理

写于开头的废话&#xff1a;哒哒哒.......这应该是马蹄的声音&#xff01;我在告诉你&#xff0c;我又来了&#xff01;不得不说的还是自己的悲伤&#xff0c;经营了那么久的CSDN居然说关就给我关了&#xff0c;过去的还是没法过去&#xff0c;我始终不能从失去的痛苦之中走出来…

图像处理之二值化

图像处理之二值化 二值化方式 二值化算法 二值化方式 二值化方式分为五种&#xff1a; THRESH_BINARY&#xff1a;将大于某一个阈值的变成最大值&#xff0c;其他为0 THRESH_BINARY_INV&#xff1a;和THRESH_BINARY恰好相反 THRESH_TRUNC&#xff1a; trunc就是截断的意思&…

二值化方法

一、全局阈值法 1.固定阈值方法 该方法是对于输入图像中的所有像素点统一使用同一个固定阈值。其基本思想如下: 其中&#xff0c;T为全局阈值。 缺点:很难为不同的输入图像确定最佳阈值。 2.Otsu算法 Otsu算法又称最大类间方差法 先明确两个概念: (1)均值 (2)方差 图像的阈…

图像处理一之-摄像头二值化处理-(什么是二值化)

图像二值化 binary image 什么是二值化&#xff1a; 二值化是图像分割的一种最简单的方法。二值化可以把灰度图像转换成二值图像。把大于某个临界灰度值(阈值)的像素灰度设为灰度极大值(255)&#xff0c;把小于这个值的像素灰度设为灰度极小值&#xff08;0&#xff09;&#…

C#多线程详解(一) Thread.Join()的详解

什么是进程&#xff1f; 当一个程序开始运行时&#xff0c;它就是一个进程&#xff0c;进程包括运行中的程序和程序所使用到的内存和系统资源。 而一个进程又是由多个线程所组成的。 什么是线程&#xff1f; 线程是程序中的一个执行流&#xff0c;每个线程都有自己的专有寄存器…

1.java的协程_虚拟线程

盼过了春天盼秋天&#xff0c;从2017年到今天五年了&#xff0c;终于盼到loom转正了&#xff0c;当看到jdk19预览api的时候心情那个激动。。。期待已久的协程终于来临&#xff0c;再也不羡慕别人家的go孩子&#xff0c;咱终于可以理直气壮的说一句&#xff1a;咱也有&#xff0…

Kotlin协程到底是怎么切换线程的?你是否知晓?

好文推荐&#xff1a; 作者&#xff1a;RicardoMJiang 前言 之前对协程做了一个简单的介绍&#xff0c;回答了协程到底是什么的问题,感兴趣的同学可以了解下&#xff1a;【带着问题学】协程到底是什么? 通过上文&#xff0c;我们了解了以下内容 1.kotlin协程本质上对线程池的…

进程和线程、协程的区别

一、进程 进程是程序一次动态执行的过程&#xff0c;是程序运行的基本单位。每个进程都有自己的独立内存空间&#xff0c;不同进程通过进程间通信来通信。进程占据独立的内存&#xff0c;所以上下文进程间的切换开销&#xff08;栈、寄存器、页表、文件句柄等&#xff09;比较…

进程、线程与协程的比较

进程、线程和协程是三个在多任务处理中常听到的概念&#xff0c;三者各有区别又相互联系。 一、并行和并发 在介绍进程、线程和协程这三个概念之前&#xff0c;有两个操作系统中的相关概念需要简单解释一下&#xff1a;并行和并发。 并行&#xff1a;指多个任务同时执行。 并…

进程、线程、协程

进程、线程、协程 一、概念与区分 1、进程 进程是程序一次动态执行的过程&#xff0c;是程序运行的基本单位。每个进程都有自己的独立内存空间&#xff0c;不同进程通过进程间通信来通信。进程占据独立的内存&#xff0c;所以上下文进程间的切换开销&#xff08;栈、寄存器、…