2018 年上半年数据库系统工程师考试

基础知识

● 计算机运行过程中,遇到突发事件,要求 CPU 暂时停止正在运行的程序,转去为突发事件服务,服务完毕,再自动返回原程序继续执行,这个过程称为__(1),其处理过程中保存现场的目的是(2)__。

(1)A.阻塞 B.中断 C.动态绑定 D.静态绑定

(2)A.防止丢失数据 B.防止对其他部件造成影啊 C.返回去继续执行原程序 D.为中断处理程序提供数据

参考答案:(1)B (2)C

● 流水线的吞吐率是指单位时间流水线处理的任务数,如果各段流水的操作时间不同,则流水线的吞吐率是__(3)__的倒数。

(3)A.最短流水段操作时间 B.各段流水的操作时间总和 C.最长流水段操作时间 D.流水段数乘以最长流水段操作时间

参考答案:(3)C

吞吐率是指单位时间内流水线处理机流出的结果数。对指令而言,就是单位时间内执行的指令数。如果流水线的子过程所用时间不一样,则吞吐率p应为最长子过程的倒数,即

\[p=1/max\{Δt1,Δt2,...Δtm\} \]

● 计算机中机械硬盘的性能指标不包括__(4)__。

(4)A.磁盘转速及容量 B.盘片数及磁道数 C.容量及平均寻道时间 D.磁盘转速及平均寻道时间

参考答案:(4)B

硬盘的性能指标主要包括磁盘转速、容量、平均寻道时间

● 算术表达式采用后缀式表示时不需要使用括号,使用__(5)__就可以方便地进行求值。a-b*(c+d )(其中,-、+、*表示二元算术运算减、加、乘)的后缓式为(6),与该表达式等价的语法树为(7)

(5)A.队列 B.数组 C.栈 D.广义表

(6)A.a b c d -*+ B. a b c d*+ - C.ab-c*d+ D.a b c d+*-

(7)

A.img

B.img

C.img

D.img

参考答案:(5)C (6)D(7)D

● 设有 n 阶三对角矩阵 A,即非零元素都位于主对角线以及与主对角线平行且紧邻的两条对角线上,现对该矩阵进行按行压缩存储,若其压储空间用数组 B 表示,A 的元素下标从 0 开始,B 的元素下标从 1 开始。已知 A[0,0]存储在 B[1],A[n-1,n-1]存储在 B[3n-2],那么非零元素 A[i,j](0≤ i<n,0≤ j<n,│i-j│≤1)存储在 B(8)

(8)A. 2i+j-1 B. 2i+j C. 2i+j+1 D. 3i-j+I

参考答案:(8)C

直接带入

● 用哈希表存储元素时,需要进行冲突(碰撞)处理,冲突是指__(9)__。

(9)A.关键字被依次映射到地址编号连续的存储位置 B.关键字不同的元素被映射到相同的存储位置

C.关键字相同的元素被映射到不同的存储位置 D.关键字被映射到哈希表之外的位置

参考答案:(9)B

● 对有 n 个结点、e 条边且采用数组表示法(即邻接矩阵存储)的无向图进行深度优先遍历,时间复杂度为__(10)__。

(10)A. O(n^2) B. O(e^2) C. O(n+e) D. O(n*e)

参考答案:(10)A

采用邻接矩阵存储时,对于每个顶点,都需要扫描矩阵的一个行向量,以确定其邻接顶点有哪些

● 数字信封技术能够__(11)__。

(11)A.保证数据在传输过程中的安全性 B.隐藏发送者的真实身份

C.对发送者和接收者的身份进行认证证 D.防止交易中的抵赖发生

参考答案:(11)A

数字信封,又称数字加密,用密码技术的手段保证只有规定的信息接收者才能获取信息的安全技术。可以保证发生信息的保密性,但不能确认发送者的身份。

● 在安全通信中,S 将所发送的信息使用(12) 进行数字签名,T 收到该消息后可利用__(13)__验证该消息的真实性。

(12)A. S 的公钥 B. S 的私钥 C. T 的公钥 D. T 的私钥

(13)A. S 的公钥 B. S 的私钥 C. T 的公钥 D. T 的私钥

参考答案:(12)B (13)A

公钥加密,私钥解密;私钥签名,公钥验证

● 在网络安全管理中,加强内防内控可采取的策略有__(14)__

①控制终端接入数量

②终端访问授权,防止合法终端越权访问

③加强终端的安全检查与策略管理

④加强员工上网行为管理与违规审计

(14)A.②③ B.②④ C.①②③④ D.②③④

参考答案:(14)D

终端接入数量与网络的规模、数据交换性能、出口带宽的相关性较大,不是内防内控关注的重点。

● 攻击者通过发送一个目的主机已经接收过的报文来达到攻击目的,这种攻击方式属于__(15)__攻击。

(15)A.重放 B.拒绝服务 C.数据截获 D.数据流分析

参考答案:(15)A

重放,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性

● 以下关于计算机软件著作权的叙述中,正确的是__(16)__。

(16)

A.非法进行拷贝、发布或更改软件的人被称为软件盗版者

B.《计算机软件保护条例》是国家知识产权局颁布的,用来保护软件著作权人的权益

C.软件著作权属于软件开发者,软件著作权自软件开发完成之日起产生

D.用户购购买了具有版权的软件,则具有对该软件的使用权和复制权

参考答案:(16)C

软件盗版行为是指任何未经软件著作权人许可,擅自对软件进行复制、传播,或以其他方式超出许可范围传播、销售和使用的行为,软件盗版者不仅仅是非法拷贝、发布的人,还有传播等其他盗版行为的人也被称为软件盗版者。同时,更改软件的人也不能称之为盗版者。

《计算机软件保护条例》是国务院颁布的

《计算机软件保护条例》第九条明确规定“软件著作权属于软件开发者”,即以软件开发的事实来确定著作权的归属,谁完成了计算机软件的开发工作,软件的著作权就归谁享有。根据著作权法和《计算机软件保护条例》的规定,计算机软件著作权的权利自软件开发完成之日起产生,保护期为50年。保护期满,除开发者身份权以外,其他权利终止。一旦计算机软件著作权超出保护期,软件就进入公有领域。

用户购购买了具有版权的软件,只有对该软件的使用权,而无复制权

● 王某是某公司的软件设计师,完成某项软件开发后按公司规定进行软件归档,以下关于该软件的著作权的叙述中,正确的是__(17)__。

(17)A.著作权应由公司和王某共同享有

B.著作权应由公司享有

C.著作权应由王某享有

D.除署名权以外,著作权的其他权利由王某享有

参考答案:(17)B

王某开发的软件属于职务软件作品,即在公司任职期间为执行本公司工作任务所开发的计算机软件作品

● 假设铁路自动售票系统有 n 个售票终端,该系统为每个售票终端创建一个进程 Pi(i=1,2,…,n)管理车票销售过程。假设 Tj(j=1,2,…,m)単元存放某日某趟车的车票剩余票数,Temp 为 Pi 进程的临时工作单元,x 为某用户户的购票张数。P 进程的工作流程如下下图所示,用 P 操作和 V 操作实现进程间的同步与互斥。初始化时系统应将信号量 S 赋值为__(18)__。图中(a)、(b)和(c)处应分别 (19)

img

(18)A.n-1 B.0 C.1 D.2

(19)A.V(S)、P(S)和 P(S)

B. P(S)、P(S)和 V(S)

C. V(S)、V(S)和 P(S)

D. P(S)、V(S)和 V(S)

参考答案:(18)C (19)D

因为公共数据单元Tj是一个临界资源,最多允许1个终端进程使用,因此需要设置一个互斥信号量S,初值等于1。

进入临界区时执行P操作,退出临界区时执行V操作。

● 若系统正在将__(20)__文件修改的结果写回磁盘时系统发生崩溃,则对系统的影响相对较大。

(20)A.目录 B.空闲块 C.用户程序 D.用户数据

参考答案:(20)A

影响文件系统可靠性因素之一是文件系统的一致性问题。很多文件系统是先读取磁盘块到主存,在主存进行修改,修改完毕再写回磁盘。如果读取某磁盘块进行修改后再将信息写回磁盘前系统崩溃,则文件系统就可能会出现不一致状态。如果这些未被写回的磁盘块是索引节点块、目录块或空闲块,特别是系统目录文件那么对系统的影响相对较大,且后果也是不堪设想的。通常解决方案是采用文件系统的一致性检查,一致性检查包括块的一致性检査和文件的一致性检查。

● I/O 设备管理软件一般分为 4 个层次,如下图所示。图中①②③分别对应(21)

img

(21)A.设备驱动程序、虚设备管理、与设备无关的系统软件

B.设备驱动程序、与设备无关的系统软件、虚设备管理

C.与设备无关的系统软件、中断处理程序、设备驱动程序

D.与设备无关的系统软件、设备驱动程序、中断处理程序

参考答案:(21)A

I/O 设备管理软件一般分为 4 个层次,自下至上分别是:中断处理程序、设备驱动程序、与设备无关的系统软件和用户级软件。

● 在互联网中,各种电子媒体按照超链接的方式组织,通常使用用__(22)__来描述超链接信息。

(22)A. HTML B. XML C. SGML D. VRML

参考答案:(22)A

● 在下列机制中,__(23)是指过程调用和响应调用所需执行的代码在运行时加以结合;而(24)__是过程调用和响应调用所需执行的代码在编译时加以结合。

(23)A.消息传递 B.类型检查 C.静态绑定 D.动态绑定

(24)A.消息传递 B.类型检查 C.静态绑定 D.动态绑定

参考答案:(23)D (24)C

● 耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦合程度不取决于(25)

(25)A.调用模块的方式 B.各个模块之间接接口的复杂程度 C.通过接口的信息类型 D.模块提供的功能数

参考答案:(25)D

耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口。内聚是模块功能强度(模块内部各个元素彼结合的紧密程度)的度量。一个模块的内部的各个元素之间的联系越紧密,则它的内聚性就越高,相对地,它与其他模块之间的耦合性就会降低,而模块独立性就越强。因此,模块独立性比较强的模块应是高度内聚,松散耦合的模块。

● 以下关于软件可靠性测试的叙述中,错误的是(26)

(26)A.软件可靠性测试的目的是评估软件系统的可靠性

B.软件可靠性测试前应先确定软件可靠性的目标

C.应平衡地考虑对软件开发进度和成本的影响

D.应选用适用于所有软件的标准的可靠性测试模型

参考答案:(26)D

不存在标准的统一的可靠性测试模型

● 某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续天数,则完成该项目的最少时间为(27)天。活动 EH 和 IJ 的松弛时间分别为(28) 天。

img

(27)A. 17 B. 19 C. 20 D. 22

(28)A. 3 和 3 B. 3 和 6 C. 5 和 3 D. 5 和 6

参考答案:(27)D (28)C

● 下列网络互连设备中,属于物理层的是__(29)__

(29)A.交换机 B.中继器 C.路由器 D.网桥

参考答案:(29)B

中继器(RP repeater)是工作在物理层上的连接设备。适用于完全相同的两类网络的互连,主要功能是通过对数据信号的重新发送或者转发,来扩大网络传输的距离。中继器是对信号进行再生和还原的网络设备,是OSI模型的物理层设备。

物理设备 OSI模型 传输的数据单位 主要功能
中继器 物理层 位(比特流) 实现局域网网段互连的,用于扩展局域网网段的长度
集线器 物理层 位(比特流) 多路中继器
网桥 数据链路层 连接两个不同的网段,对帧进行过滤与转发
二层交换机 数据链路层 多端口网桥,按物理地址对帧进行数据转发
三层交换机 数据链路层/网络层 帧/数据包 在二层交换机的基础上增加了部分网络层的功能
路由器 网络层 数据包 连接不同的子网,根据IP地址进行路由选择与数据的分组交换
网关 应用层 报文 进行协议转换,可以使不同类型的网络系统之间进行通信

● 在地址 http: //www.dailynews.com.cn/channel/welcome.html 中 , www.dailynews.com.cn 表示__(30), welcome.htm 表示(31)__。

(30)A.协议类型 B.主机 C.网页文件名 D.路径

(31)A.协议类型 B.主机域名 C.网页文件名 D.路径

参考答案:(30)B (31)C

基本URL包含模式(或协议)、服务器名称(IP地址)、路径和文件名

● 主域名服务器在接收到域名请求后,首先查询的是 (32)

(32)A.本地 hosts 文件 B.转发域名服务器 C.本地缓存 D.授权域名服务器

参考答案:(32)C

主域名服务器在接收到域名请求后,査询顺序是本地缓存、本地hosts文件、本地数据库、转发域名服务器。

● __(33)__是按用户的观点对数据和信息建模,强调其语义表达功能,易于用户理解。

(33)A.关系模型 B.概念数据模型 C.网状模型 D.面向对象模型

参考答案:(33)B

概念数据模型是按照用户的观点对数据和信息进行建模的方法。它是从现实世界到信息世界的第一层抽象,强调语义表达功能,以便于用户理解。概念数据模型用作用户和数据库设计人员之间交流的语言,主要用于数据库设计。实体-联系模型是最常用的概念数据模型。

● 假设某企业信息管理系统中的 5 个实体:部门(部门号,部门名,主管,电话),员工(员工号,姓名,岗位号,电话),项目(项目号,名称,负责人),岗位(岗位号,基本工资),亲属(员工号,与员工关系,亲属姓名,联系方式)。该企业有若干个部门,每个部门有若干名员工;每个员工承担的岗位不同其基本工资也不同;每个员工可有多名亲属(如:父亲、母亲等);一个员工可以参加多个项目,每个项目可由多名员工参与。下面__(34)__属于弱实体对强实体的依赖联系。

(34)A.部门与员工的“所属”联系

B.员工与岗位的“担任”联系

C.员工与亲属的“属于”联系

D.员工与项目的“属于”联系

参考答案:(34)C

本题考查E-R图相关知识。某些实体对于另一些实体有很强的依赖关系,即一个实体的存在必须以另一实体的存在为前提。前者就称为“弱实体”,后者称为“强实体”。显然,亲属之所以在系统中存在,是因为有员工实体,没有员工也就没有亲属

● DBMS 提供的 DDL 功能不包含__(35)__。

(35)A.安全保密定义功能

B.检索、插入、修改和删除功能

C.数据库的完整性定义功能

D.外模式、模式和和内模式的定义功能

参考答案:(35)B

B是DML的范畴

● 以下关系模型的描述不正确的是__(36)__。

(36)A.与网状模型和层次模型相比,关系模型更复杂

B.关系模型是由若干个关系模式组成的集合

C.关系是一个实例,对应于程序设计语言中变量的概念

D.关系模型是采用表格结构来表达实体集以及实体集之间的联系

参考答案:(36)A

● 给定关系 R(A,B,C,D)和关系 S(A,C,D,E,F),对其进行自然连接运算 R▷◁S 后的属性列为(37)个;与σR.C>S.F(R▷◁S)等价的关系代数表达式为(38)

(37)A.4 B.5 C.6 D.9

(38)A. σ3>9(RxS)

B. π1,2,3,4,8,9(σ1=5∧3=6∧4=7∧3>9(R×S))

C. σ'3'>'9'(R×S)

D. π1,2,3,4,8,9(σ1=5∧3=6∧4=7∧'3'>'9'(R×S))

参考答案:(37)C(38)B

● 给定教师关系 Teacher(T_no, T name, Dept name, Tel),其中属性 T_no、T_name、Dept_name 和 Tel 的含义分别为教师号、教师姓名、学院名和电话。用 SQL 创建一个“给定学院名求该学院的教师数”的函数如下:

Create function Dept count(Dept name varchar(20))

(39)

Begin
(40)
select count(*) into d count
from Teacher
where Teacher. Dept_name= Dept_name
return d count
end

(39)A. returns integer B. returns d_count integer C. declare integer D. declare d_count integer

(40)A. returns integer B.returns d_count integer C.declare integer D.declare d_count integer

参考答案:(39)A(40)D

● 给定关系 R(A,B,C,D,E)与 S(B,C,F,G),那么与表达式π2,4,6,7(σ2<7(R▷◁S))等价的 SQL 语句如下:

SELECT (41) FROM R,S WHERE (42);

(41)

A. R.B, D, F,G

B. R.B, E, S.C, F, G

C. R.B, R.D, S.C, F

D. R.B, R.C, S.C, F

(42)

A. R.B=S.B OR OR R.C=S.C OR R.B< S.G

B. R.B=S.B OR OR R.C=S.C OR R.B< S.C

C. R.B=S.B AND R.C=S.C AND R.B<S.G

D. R.B=S.B AND R.C=S.C AND R.B<S.C

参考答案:(41)A(42)C

● 若将 Workers 表的插入权限赋予用户 User1,并允许其将该权限授予他人,那么对应的SQL 语句为“GRANT(43) TABLE Workers TO User1__(44)__;”。

(43)A. INSERT B. INSERT ON C. UPDATE D. UPDATE ON

(44)A. FOR ALL B. PUBLIC C. WITH CHECK OPTION D. WITH GRANT OPTION

参考答案:(44)B(44)D

● 在 SQL 中,通过使用 COMMIT 和和 ROLLBACK 语句可以结束事务。以下说法正确的是__(45)__。

(45)A.某事务执行了 ROLLBACK 语句,表示事务正确地执行完毕

B.某事务执行了 ROLLBACK 语句,可将其对数据库的更新写入数据库

C.某事务执行了 ROLLBACK 语句,可将其对数据库的更新撤消

D.某事务执行了 COMIMIIT 语句,其影响可用 ROLLBACK 语句来撤销

参考答案:(45)C

● 将满足 3NF 的关系系(46)后,可将其规范化为 BCNF。

(46)A.消除非主属性对码的部分函数依赖

B.消除非主属性对码的传递函数依赖

C.消除主属性对码的部分和传递函数依赖

D.消除非平凡且非函数依赖的多值依赖

参考答案:(46)C

BCNF是在3NF的基础上,消除主属性对码的部分和传递函数依赖。

● 设学生关系模型 Stu(学号,姓名,性别,学院)的主码是学号,成绩关系模型 SC(学号,课程号,成绩)的主码为(学号,课程号),若关系模型 R(学号,姓名,性别,学院,课程号,成绩)的主码为(学号,课程号),则 R 满足__(47)__。

(47)A. 1NF B. 2NF C. 3NF D. BCNE

参考答案:(47)A

因为学号→(姓名,性别,学院),因此关系模型R中的属性姓名,性别,学院对主码(学号,课程号)存在部分依赖,不满足二范式。

● 关系模型 SC(学号,姓名,学院,学院领导,课程号,课程名,成绩),函数依赖集 F ={学号→(姓名,学院,学院领导),学院→学院领导,课程号→课程名,(学号,课程号)→成绩},则关系系 SC 中__(48),要满足第二范式,应将 SC 分解为(49)__。

(48)A.只存在部分依赖 B.只存在传递依赖 C.只存在多值依赖 D.存在部分依赖和传递依赖

(49)A. S(学号,姓名,学院,学院领导),C(课程号,课程名,成绩)

B. S(学号,姓名),D(学院,学院领导),C(课程号,课程名,成绩)

C. S(学号,姓名),D(学院,学院领导),C(课程号,课程名),SC(学号,课程名,成绩)

D.S(学号,姓名,学院,学院领导),C(课程号,课程名),SC(学号,课程号,成绩)

参考答案:(48)D(49)D

● 下列关于函数依赖的叙述中,错误的是__(50)__

(50)A.若 A→B,B→C,则 A→C

B.若 A→B,B→C,则 A→BC

C.若 A→BC,则 A→B,A→C

D.若 A→BC,则 A→B,B→C

参考答案:(50)D

● 数据库的并发操作可能带来的问题包括__(51)__

(51)A.增强数据独立性 B.非授权访问 C.丢失修改 D.增加数据冗余度

参考答案:(51)C

● 在数据库事务的四种隔离级别中,不能避免脏读的是__(52)__。

(52)A. Serializable B. Repeatable read C. Read committed D. Read uncommitted

参考答案:(52)D

四种隔离级别

① Read uncommitted (读未提交):最低级别,可避免丢失修改。

② Read committed (读已提交):可避免脏读的发生。

③ Repeatable read (可重复读):可避免丢失修改、脏读、不可重复读的发生。

④ Serializable (串行化):可避免丢失修改、脏读、不可重复读、幻读的发生。

● 以下对存储过程的叙述中,不正确的是__(53)__。

(53)A.存储过程可以定义变量

B.存储过程是一组为了完成特定功能的 SQL 语句组成的程序

C.存储过程不能嵌套调用

D.存储过程可以一次编译,多次执行

参考答案:(53)C

● 下表中两个事务的调度带来的问题是__(54)__。

img

(54)A.丢失修改 B.读脏数据 C.没有问题 D.不可重复读

参考答案:(54)D

● 为了防止一个事务的执行影响其他事务,应该采取__(55)__。

(55)A.索引机制 B.故障恢复 C.并发控制 D.完整性约束

参考答案:(55)C

● 解决并发操作带来的数据不一致性一般采用__(56)__

(56)A.封锁 B.恢复 C.授权 D.协商

参考答案:(56)A

● 设员工表(员工号,姓名,级别,工资)中,级别增加一级,工资增加 500 元,实现该约束的可行方案是__(57)__。

(57)A.在员工表上定义插入和修改作的触发器

B.在员工表上定义一个函数

C.在员工表上定义一个视图

D.在员工表上定义一个索引

参考答案:(57)A

● 以下对数据转储的叙述中,不正确的是__(58)__

(58)A.静态转储在转储期间不允许对数据库进行更新

B.动态转储在转储期间允许对数据库进行读取,但不允许更新

C.海量转储是指每次转储全部数据

D.增量转储是指每次只转储上次转储后更新过的数据

参考答案:(58)B

● 设置日志文件的目的不包括__(59)__

(59)

A.事务故障恢复

B.系统故障恢复

C.介质故障恢复

D.删除计算机病毒

参考答案:(59)D

● 以下对触发器的叙述中,不正确的是__(60)__。

(60)

A.触发器可以传递参数

B.触发器是 SQL 语句的集合

C.用户不能调用触发器

D.可以通过触发器来强制实现数据的完整性和一致性

参考答案:(60)A

● 需求分析阶段生成的文档中,用来描述企业中各项业务流程的是__(61)__。

(61)

A.数据字典 B.数据流图 C.E-R 图 D.关系图

参考答案:(61)B

● 下图所示的扩展 E-R 图中,属性“电话”属于(62),在逻辑结构设计中,该图中的(63)属性将不会被转换到关系模式中。

img

(62)A.组合属性 B.派生属性 C.多值属性 D.单值属性

(63)A.性别 B.电话 C.年龄 D.工号

参考答案:(62)C (63)C

双椭圆表示多值属性,虚线椭圆表示派生属性,派生属性年龄可由出生日期计算得出。

● 下列列描述的因素中,不属于数据库物理设计应该考虑的是__(64)__

(64)A.事务的执行频度 B.使用频繁的查询操作 C.视图设计 D.索引设计

参考答案:(64)C

视图设计属于逻辑设计的内容

● 某数据库应用系统在运行过程中,发现随着数据量的不断增加,有部分查询业务和数据更新业务执行耗时越来越长。经分析,这些业务都与表 Table1 有关。假设 Table1 有 30 多个字段,分别为(Key,A1,A2,...Am,B1,B2,...Bn)。执行频度较高的查询业务都只用到 A1,A2,...Am 中的大部分属性,因此,DBA 决定将表 Table1 分解为 Table2(Key,A1,A2,...Am)和 Table3(Key,B1,B2,...Bn)。为了使所有对 Table1 的查询程序不必修改,应该__(65)__;为了使对 Table1 的更新业务能正确执行,应该 (66);这样实现了(67)

(65)A.修改所有对 Tabel1 的查询程序

B.创建视图 Table1,为 Ttable2 和 Table3 的自然连接

C.只修改使用 A1,A2,...Am 中属性的程序

D.只修改使用 B1,B2,...Bn 中属性的程序

(66)A.修改所有对 Table1 更新的事务程序

B.创建视图 Table1,为 Table2 和 Table3 的自然连接

C.只修改对 A1,A2,...Am 中属性更新的事务程序

D.只修改对 B1,B2,...Bn 中属性更新的事务程序

(67)A.数据的逻辑独立性

B.数据的物理独立性

C.程序的逻辑独立性

D.程序的物理独立性

参考答案:(65)B (66)A (67)A

● __(68)__不是分布式数据库管理系统应该遵循的准则。

(68)A.本地自治 B.依赖中心结点 C.分片透明 D.位置透明

参考答案:(68)B

● E-R 图中的实体集 A、B 之前为 1:*联系,转换为关系模型时,在 B 实体集中增加 A 实体集的标识符作外码;而在面向对象数据模型中,(69)

(69)A.在 B 对象中增加一个引用属性外,对 A 对象不作任何处理

​ B. 在 B 对象中增加一个引用属性外,在 A 对象中增加一组引用属性

​ C. 在 A 对象中增加一组引用属性外,对 B 对象不作任何处理

​ D. 在 A 对象中增加一组引用属性外,在 B 对象中增加一组引用属性

参考答案:(69)B

在 1:*联系中的1方对象要增加一组引用,分别指向它相关联的多个*方的对象,而*方的对象增加一个引用属性指向一个1方对象

● Redis 是一种 NoSQL 数据库,具体地说,是__(70)__存储数据库。

(70)A.键-值 B.文档 C.图形 D.XML

参考答案:(70)A

● A transaction is an action, or a series of actions, carried out by a single user or (71), that accesses or changes the contents of the database. A transaction should possess the four basic or so-called ACID properties: Atomicity. The “all or nothing” property. A transaction is an (72) unit that is either performed in its entirety or is not performed at all. Consistency. A transaction must transform the database from one consistent state to another consistent state. Isolation. Transactions execute independently of one another. In other words, the partial effects of (73) transactions should not be visible to other transactions. Durability. The effects of a successfully completed (committed)transaction are permanently recorded in the database and must not be lost because of a subsequent failure. The four properties above, only (74) property is the responsibility of the concurrency control subsystem to ensure. It is the responsibility of both the (75) and the application developers to ensure consistency. To guarantee the Atomicity and Durability properties after a failure, a log file is needed.

(71)A. application developer B. all users C. application program D. DBMS

(72)A. Indivisible B. permanent C. infrequent D. infinite

(73)A. completed B. incomplete C. aborted D. committed

(74)A. atomicity B. consistency C.isolation D.durability

(75)A. DBMS B. DBA C. end user D. DBS

参考答案:(71)C (72)A (73)B (74)C(75)A

事务是由单个用户或应用程序执行的访问或更改数据库内容的一系列操作的总称。

事务具有称之为ACID的四个基本属性:原子性,事务是一个不可分割的单元,它所包含的操作要么全部执行,要么一个都不执行。一致性,事务必须将数据库从一个一致状态转换为另一个一致状态。隔离性,事务的执行彼此独立。换言之,为完成事务的部分影响不应对其他事务可见。持久性,成功完成(提交)事务的结果将永久记录在数据库中,并且不能因为数据库随后的失败而丢失。

以上四个属性中,只有隔离性属性才是并发控制子系统的必须具备的责任。DBMS和应用程序开发人员都有责任确保一致性。为了保证失败后的数据库事务的原子性和持久性属性,需要一个日志文件。

应用技术

试题一:阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某医疗护理机构为老年人或有护理需求者提供专业护理,现欲开发一基于Web的医疗管理系统,以改善医疗护理效率。该系统的主要功能如下:
(1)通用信息查询。客户提交通用信息查询请求,查询通用信息表,返回查询结果。
(2)医生聘用。医生提出应聘/辞职申请,交由主管进行聘用/解聘审批,更新医生表,并给医生反馈聘用/解聘结果;删除解聘医生的出诊安排。
(3)预约处理。医生安排出诊时间,存入医生出诊时间表;根据客户提交的预约查询请求,查询在职医生及其出诊时间等预约所需数据并返回;创建预约,提交预约请求,在预约表中新增预约记录,更新所约医生出诊时间并给医生发送预约通知;给客户反馈预约结果。
(4)药品管理。医生提交处方,根据药品名称从药品数据中查询相关药品库存信息,开出药品,更新对应药品的库存以及预约表中的治疗信息;给医生发送“药品已开出”反馈。
(5)报表创建。根据主管提交的报表查询请求(报表类型和时间段),从预约数据、通用信息、药品库存数据、医生以及医生出诊时间中进行查询,生成报表返回给主管。
现采用结构化方法对医疗管理系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。
img
img

【问题1】(3分)
使用说明中的词语,给出图1-1中的实体E1~E3的名称。

参考答案:
E1:客户 E2: 医生 E3:主管

【问题2】(5分)
使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。

参考答案:
D1:通用信息表
D2:预约表
D3:医生表
D4:出诊时间表
D5:药品库存表

【问题3)(4分)
使用说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。

参考答案:
数据流:更新的出诊时间 起点:P3 终点:D4
数据流:删除的医生出诊安排 起点:P2 终点:D4
数据流:药品库存信息 起点:D5 终点:P4
数据流:治疗信息 起点:P4 终点:D2

【问题4】(3分)
使用说明中的词语,说明“预约处理”可以分解为哪些子加工,并说明建模图1-1和图1-2是如何保持数据流图平衡。

参考答案:
预约处理分解为: 安排出诊时间、预约查询、创建预约、预约反馈 。
即保持父图与子图之间的平衡:父图中某个加工的输入输出数据流必须与其子图的输入输出数据流在数量上和名字上相同。父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成的这些数据流的数据项全体正好是父图中的这一个数据流。

● 试题二:阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】
某海外代购公司,为扩展公司业务,需要开发一个信息化管理系统。请根据公司现有业务及需求完成该系统的数据库设计。
【需求描述】
(1)记录公司员工信息。员工信息包括工号、身份证号、姓名、性别和一个手机号,工号唯一标识每位员工,员工分为代购员和配送员。
(2)记录采购的商品信息。商品信息包括商品名称、所在超市名称、采购价格、销售价格和商品介绍,系统内部用商品条码唯一标识每种商品。一种商品只在一家超市代购。
(3)记录顾客信息。顾客信息包括顾客真实姓名、身份证号(清关缴税用)、一个手机号和一个收货地址,系统自动生成唯一的顾客编号
(4)记录托运公司信息。托运公司信息包括托运公司名称、电话和地址,系统自动生成唯一的托运公司编号。
(5)顾客登录系统之后,可以下订单购买商品。订单支付成功后,系统记录唯一的支付凭证编号。顾客需要在订单里指定运送方式:空运或海运。
(6)代购员根据顾客的订单在超市采购对应商品,一份订单所含的多个商品可能由多名代购员从不同超市采购。
(7)采购完的商品交由配送员根据顾客订单组合装箱,然后交给托运公司运送。托运公司按顾客订单核对商品名称和数量,然后按顾客的地址进行运送。
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图(不完整)如图2-1所示

img

图2-1 实体联系图

【逻辑结构设计】
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):

员工(工号,身份号,姓名,性别,手机号)

商品(条码,商品名称,所在超市名称,采购价格,销售价格,商品介绍)

顾客(编号,姓名,身份证号,手机号,收货地址)

托运公司(托运公司编号,托运公司名称,电话,地址)

订单(订单ID,(a),商品数量,运送方式,支付凭证编号)//说明 商品条码,顾客编号下面有下划线

代购(代购ID,代购员工号,(b))//说明, 代购员工号、订单ID下面有下划线

运送(运送ID,配送员工号,托运公司编号,订单ID,发运时间)//说明 配送员工号,托运公司编号,订单ID下面有下划线

【问题1】(3分)

根据问题描述,补充图2-1的实体联系图

参考答案:

【问题2】(6分)
补充逻辑结构设计结果中的(a)、(b)(3)三处空缺。

参考答案:

(a) 顾客编号,商品条码

(b) 订单ID,商品条码

【问题3】(6分)
为方便顾客,允许顾客在系统中保存多组收货地址。请根据此需求,增加“顾客地址”弱实体,对图2-1进行补充,并修改“运送”关系模式。

新增一个弱实体顾客地址,新增一个联系客户收货地址,连接顾客实体和顾客地址类型为1:*;弱实体用双矩形。运送关系模式增加顾客地址,该顾客地址为外键。

试题三:阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】
某医院为了更好的为患者服务、提高医院管理水平,拟开发满足自身特点的信息系统。其部分需求及设计如下:
【需求描述】
(1)患者到医院就诊,需提供本人医保卡或身份证,系统根据医保卡或身份证从外部医保信息库获取患者的其他详细信息,包括医保卡号、身份证号、姓名、性别、民族、出生日期等信息。
(2)医生信息包括医生编号、姓名、性别、出生日期、职称等信息。
(3)通过患者自述、化验结果分析等信息,医生对患者的病情进行诊断,开具处方,并填写病例。病例同时包含诊断和处方信息,包括编号、患者姓名、病情描述、诊断结论、主治医生、药品名称、药品数量、服用剂量等,处方中一般会有多种药品。
(4)病人凭医生开具的处方可在医院购买药品。医院记录药品的条码、名称、价格、生产厂商等信息。
【逻辑结构设计】
根据上述需求,设计出如下关系模式
医生(编号,姓名,性别,出生日期,职称)
患者(身份证号,医保卡号,姓名,性别,民族,出生日期)
药品(条码,名称,价格,生产厂商)
病例(编号,药品条码,患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期,服用剂量,药品数 量,购买日期)。补充说明:患者身份证号,主治医生编号是外键。

【问题1】(5分)

对关系“患者”,请回答以下问题:
(1)给出函数依赖集。
(2)给出所有候选码。
(3)判定属于第几范式,并说明理由。

参考答案:
(1)身份证号→(姓名,性别,民族,出生日期,医保卡号),医保卡号→(身份证号,姓名,性别,民族,出生日期), 医保卡号和身份证号相互依赖 。
(2)身份证号、医保卡号。
(3)属于BCNF,不存在非主属性/主属性对码的部分函数依赖和传递函数依赖,每个函数依赖左部都包含码

【问题2】(7分)
对关系“病例”,存在如下的数据依赖:
DD={编号→(患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期),(编号,药品条码)→(服用剂量,药品数量,购买日期),编号 →→(药品条码,服用剂量,药品数量,购买日期) }
请回答以下问题
(1)该关系模式存在哪些问题?
(2)该关系模式是否属于4NF?请给出理由。
(3)如果“病例”不是4NF,请分解,并指出分解后的关系模式所属范式。分解后的关系名依次为:病例1,病例2,...。

参考答案:
(1)由于一个处方中会有多种药品,存在有数据冗余,会造成数据的插入、更新、删除等异常。
(2)不是4NF,存在嵌入的多值依赖,编号 →→(药品条码,服用剂量,药品数量,购买日期)
(3)病例1( 编号 ,患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期)。属于BCNF。
病例2( 编号,药品条码,服用剂量,药品数量,购买日期) 。 属于4NF。

【问题3】(3分)
针对【问题2】的规范化要求,如果设计者分解出的多个关系模式其中之一如下:
购药(病例编号,药品条码,服用剂量,药品数量,购买日期)
如果医院要求统计每名医生(编号和姓名)每天接诊的患者所购买的各个药品的条码和数量。基于上述设计,实现该统计共需哪几个关系?为提高该统计效率,允许对范式条件放宽要求,请修改“购药”关系模式以优化该统计。

参考答案:
实现该统计共需关系有:医生、购药、病例
购药(病例编号,药品条码,服用剂量,药品数量,购买日期,医生编号、医生姓名)

试题四:阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。

【说明】
某汽车租赁公司建立汽车租赁管理系统,其数据库的部分关系模式如下:
用户: USERS( Userid,Name, Balance),各属性分别表示用户编号、姓名、余额;
汽车:CARS(Cid, Ctype, CPrice,CStatus)各属性分别表示汽车编号、型号、价格(日租金)、状态;
租用记录: BORROWS(BRid, Userid,Cid, STime, ETime),各属性分别表示租用编号、用户编号、汽车编号、租用时间、归还时间;
不良记录:BADS(Bid,Userid,BRid,BTime),各属性分别表示不良记录编号、用户编号、租用编号、不良记录时间。

相关关系模式的属性及说明如下:
(1)用户租用汽车时,其用户表中的余额不能小于500,否则不能租用。
(2)汽车状态为待租和已租,待租汽车可以被用户租用,已租汽车不能租用。
(3)用户每租用一次汽车,向租用记录中添加一条租用记录,租用时间默认为系统当前时间,归还时间为空值,并将所租汽车状态变为已租。用户还车时,修改归还时间为系统当前时间,并将该汽车状态改为待租。要求用户不能同时租用两辆及以上汽车。
(4)租金从租用时间起按日自动扣除。
根据以上描述,回答下列问题,将SQL语句的空缺部分补充完整。

【问题1】(4分)

请将下面建立租用记录表的SQL语句补充完整,要求定义主码完整性约束和引用完整性约束。
CREATE TABLE BORROWS(
BRID CHAR(20) (a) ,
UserId CHAR(10) (b) ,
Cld CHAR(10) (c) ,
STime DATETIME (d) ,
ETime DATETIME,
);

参考答案:
(a) PRIMARY KEY
(b) REFERENCES USERS(UserId)
(c) REFERENCES CARS(Cld)
(b) DEFAULT GETDATE()
【问题2】(4分)
当归还时间为空值时,表示用户还未还车,系统每天调用事务程序从用户余额中自动扣除当日租金,每个事务修改一条用户记录中的余额值。由用户表上的触发器实现业务:如用户当日余额不足,不扣除当日租金,自动向不良记录表中加入一条记录,记录中的BId取值由 UserId+系统当前日期构成, Btime采用 GETDATE()函数取系统当前时间。补全创建触发器Bad_TRG的SQL语句。
CREATE TRIGGER Bad_TRG (e) UPDATE of Balance ON USERS
Referencing new row as nrow
For each row
When nrow.Balance< 0
BEGIN
(f) ;
//插入不良记录
INSERT INTO BADS
SELECT CONCAT(BORROWs. UserId, CONVERT(varchar(100), GETDATE(), 10)),
BORROWS.UserId, BRID, (g)
// CONVERT()函数将日期型数据改为字符串型
// CONCAT()函数实现字符串拼接
FROM BORROWS
WHERE (h) AND ETime IS NULL;
END
参考答案:
(e) AFTER
(f) ROLLBACK
(g) GETDATE()
**(h) BORROWS.UserID = nrow.UserID **
【问题3】(4分)
不良记录是按日记录的,因此用户一次租车可能会产生多条不良记录。创建不良记录单视图 BADS_Detail,统计每次租车产生的不良记录租金费用总和大于200的记录,属性有 UserId、Name、BRId、CId、 Stime、 Etime和 total(表示未缴纳租金总和)。补全创建视图 BADS_Detail的SQL语句。
CREATE VIEW (i) AS
SELECT BADS. UserId, USERS. Name, BADS.BRId, CARS. Cld, Stime, Etime, (j) AS total
FROM BORROWS,BADS, CARS, USERS
WHERE BORROWS.BRId=BADS. BRId
AND BORROWS.Cid=CARS. Cld
AND (k) =BADS. UserId
GROUP BY BADS. UserId, USERS. Name, BADS.BRID, CARS. CId, Stime, Etime
HAVING (l);

参考答案:
(i) BADS_Detail(UserId, Name, BRId, CId, Stime, Etime,total)
(j) SUM(CPrice)
**(k) USERS.UserId **
**(l) SUM(CPrice) > 200 **

【问题4】(3分)

查询租用了型号为“A8”且不良记录次数大于等于2的用户,输出用户编号、姓名,并按用户姓名降序排序输出。
SELECT USERS. UserId, Name
FROM USERS,BORROWS, CARS
WHERE USERS. UserId= BORROWS. UserId AND BORROWS.Cid= CARS. CId
AND (m) AND EXISTS(
SELECT * FROM BADS
WHERE BADS. UserId=BORROWS.UserId AND (n)
GROUP BY UserId
HAVING COUNT(*)>= 2)
ORDER BY (O) ;

参考答案:
(m) CARS.Ctype = 'A8'
(n) BADS.BRId=BORROWS.BRId
(o) NAME DESC

试题五:阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某超市销售系统的部分关系模式如下
商品表: Commodity( Ccode, Cname, price,qty),其中属性含义分别为:商品编号、商品名称、价格、库存量,有专门的事务保证库存量足够大,销售时无需检测。

销售表: Sale( Sno,Ccode, amount, Stime),其中属性含义分别为:销售编号,商品编号、数量、时间。

其销售业务规则如下:顾客在超市挑选好商品后,带商品到结算处结算付款,结算处有多名结算员使用多台机器进行结算。结算员负责扫顾客购买商品的条码和数量,由系统后台结算程序计算出顾客购买商品的总金额,修改商品表的商品库存量,并将销售信息写入销售表。
请根据上述描述,回答以下问题。

【问题1】(3分)

假设有两个顾客同时购买同一条码的商品,结算事务修改该商品的库存量(记为数据项X)部分的调度如图5-1所示。

img

​ 图5-1 部分结算事务调度图

如果购买前X的初值为10,则上述调度执行完成后,X的值是多少?属于哪一类不一致性?

参考答案:
X的值为8。属于丢失更新引起的不一致性。

【问题2】(6分)
引入独占锁指令 Xlock()和解锁指令 Unlock(),对【问题1】中的调度进行重写,要求满足两段锁协议,且事务T1、T2首条指令的相对请求时间与【问题1】中的相同。

参考答案:

【问题3】(6分)
下面是用SQL实现的结算程序,请补全空缺处的代码。
要求在保证销售信息不丢失的前提下,达到最大的系统并发度。
CREATE PROCEDURE buy(IN: CommNo VARCHAR(20), IN: AmountBuy INT)
BEGIN
//输入合法性验证
if(: AmountBuy<1) return -1;
SET TRANSACTION ISOLATION LEVEL (a) ;
BEGIN TRANSACTION;
//插入销售记录
INSERT INTO Sale
VALUES(getGUID(),:CommNo, :AmountBuy, getDATETIME());
//函数 getGUID():获取唯一值
//函数 getDATETIME():获取当前系统日期时间
if error ∥error是由DBMS提供的上一句SQL的执行状态
BEGN
ROLLBACK; return -2;
END
//修改库存数量
UPDATE Commodity
SET qty= (b)

​ WHERE Ccode=: CommNo;
if error
BEGIN
​ ROLLBACK; return -3;
END

(c)

END

参考答案:
(a) read uncommitted
(b) qty - :AmountBuy
(c) commit; return 0;

posted @ 2024-05-22 18:23  王陸  阅读(25)  评论(0编辑  收藏  举报