2025年计算机等级考试《三级数据库技术》真题及答案解析_第1页
2025年计算机等级考试《三级数据库技术》真题及答案解析_第2页
2025年计算机等级考试《三级数据库技术》真题及答案解析_第3页
2025年计算机等级考试《三级数据库技术》真题及答案解析_第4页
2025年计算机等级考试《三级数据库技术》真题及答案解析_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

2025年计算机等级考试《三级数据库技术》真题及答案解析一、单项选择题(每小题1分,共40分)1.在计算机体系结构中,流水线技术是通过提高______来改善处理器性能的。A.时钟频率B.指令级并行度C.数据总线宽度D.存储容量【答案】B【解析】流水线技术的主要思想是将指令的执行过程分解为若干个子过程,每个子过程由专门的功能部件来实现。虽然它并不直接改变单条指令的执行时间,但通过允许多条指令在不同阶段同时执行,从而提高了指令的吞吐率,即提高了指令级并行度(ILP)。选项A主要靠硬件工艺提升,C和D是扩展资源,并非流水线技术的核心原理。2.操作系统中的Spooling技术是为了解决______问题。A.进程互斥B.进程通信C.设备独占与慢速设备利用率D.内存不足【答案】C【解析】Spooling(SimultaneousPeripheralOperationsOnLine)技术,即外围设备联机并行操作技术。它将独占设备改造为共享设备,利用磁盘作为缓冲,将低速的输入/输出操作与高速的CPU处理并行起来,主要解决独占设备利用率低的问题。3.在分页存储管理系统中,若页面大小为4KB,逻辑地址为十六进制1A2FH,则页号和页内地址分别是______。A.1,A2FHB.1,62FHC.6,2FHD.1,2AFH【答案】A【解析】页面大小4KB=4096字节=字节。因此,页内地址占低12位,页号占高位。逻辑地址1A2FH转换为二进制,低12位对应十六进制的后3位(因为12/1A2FH的低12位(十六进制)为A2FH。剩余高位为1H。故页号为1,页内地址为A2FH。4.设有一个栈,输入序列为1,2,3,4,5,则不可能得到的输出序列是______。A.2,3,4,1,5B.5,4,3,2,1C.2,1,5,3,4D.1,3,2,5,4【答案】C【解析】栈遵循“后进先出”(LIFO)原则。选项A:1进,2进,2出,3进,3出,4进,4出,1出,5进,5出。可行。选项B:1,2,3,4,5依次进,然后依次出。可行。选项C:要得到2,1,5,3,4。首先1进,2进,2出,1出。此时栈空。接着5进,5出。此时栈空。接着3进,3出。此时栈空。接着4进,4出。输出序列应为2,1,5,3,4。但是注意,在3出栈后,4才能进栈并出栈,这在逻辑上是可行的。重新检查选项C:输入1,2,3,4,5。1进,2进->出2,出1。(栈空)3进,4进,5进->出5。(栈内3,4)此时要出3,但栈顶是4,无法直接出3。故C不可行。选项D:1进,1出,2进,3进,3出,2出,4进,5进,5出,4出。可行。5.在二叉树中,若度为2的结点有15个,度为1的结点有10个,则叶子结点(度为0)的个数为______。A.15B.16C.25D.26【答案】B【解析】对于任何一棵非空二叉树,如果其叶子结点数为,度为2的结点数为,则满足关系:=+1。该性质与度为1的结点数量无关。题目中=15,故=6.希尔排序(ShellSort)的时间复杂度取决于______。A.待排序记录的初始排列B.待排序记录的数量C.增量序列的选择D.待排序记录的关键字分布【答案】C【解析】希尔排序是插入排序的改进版。它的基本思想是先将整个待排序记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。希尔排序的效率在很大程度上依赖于增量序列(GapSequence)的选择。不同的增量序列会导致不同的时间复杂度。7.在数据库系统中,数据独立性是指______。A.数据之间的互不干扰B.数据结构与应用程序的分离C.数据存储位置的改变不影响应用D.数据逻辑结构的变化不影响物理存储【答案】B【解析】数据独立性包括物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的;逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。简而言之,就是数据的定义和组织(结构)与应用程序分离,当结构改变时,尽量不修改应用程序。8.关系模型中,实体完整性约束是指______。A.不允许引用不存在的元组B.不允许主键值为空C.不允许外键值为空D.属性值必须是原子值【答案】B【解析】实体完整性规则:若属性(或属性组)A是基本关系R的主属性,则A不能取空值。这里的“空值”不是0,也不是空字符串,而是“不知道”或“无意义”的值。主键是唯一标识元组的,若为空则无法标识。9.设有关系R(A,B,C)和S(B,C,D),则与R⋈S等价的SQL语句是______。A.SELECT*FROMR,SWHERER.B=S.BB.SELECT*FROMR,SWHERER.B=S.BANDR.C=S.CC.SELECT*FROMRINNERJOINSONR.B=S.BD.SELECT*FROMRINNERJOINSONR.B=S.BANDR.C=S.C【答案】D【解析】自然连接(⋈)会自动比较两个关系中所有相同名称的属性(这里是B和C),并且要求这些属性值相等,同时在结果中去掉重复的属性列。选项A和B是笛卡尔积加筛选。A只筛选B,不完整;B筛选了B和C,但未去重(SELECT*会包含S.B和S.C,虽然值相同,但列名需处理,且SQL通常显式列出)。选项C只连接了B属性。选项D明确指定了连接条件为B相等且C相等,INNERJOIN效果接近自然连接(虽然SQL中自然连接通常用NATURALJOIN关键字,但INNERJOIN...ON...是手动实现自然连接逻辑的标准方式,且最符合等价描述)。10.若事务T对数据对象R加了X锁(排他锁),则其他事务对R______。A.可以加S锁,不能加X锁B.可以加X锁,不能加S锁C.不能加S锁,也不能加X锁D.可以加S锁,也可以加X锁【答案】C【解析】X锁是排他锁(写锁)。一旦事务T对对象R加了X锁,其他事务就不能对R加任何类型的锁(既不能加S锁也不能加X锁),直到T释放R上的X锁。这是为了保证数据修改期间的隔离性。11.数据库恢复的基础是利用转储的冗余数据。这些冗余数据主要指______。A.数据字典和应用程序B.日志文件和数据库后备副本C.审计数据和用户权限D.事务控制块和锁表【答案】B【解析】数据库恢复机制的核心是建立冗余数据。主要的冗余数据包括:1.后备副本:定期对整个数据库进行转储(备份)生成的静态副本。2.日志文件:记录事务对数据库的更新操作。利用这两者,可以将数据库恢复到故障前的正确状态。12.在E-R图中,联系的类型通常不包括______。A.1:1B.1:NC.M:ND.N:1【答案】D【解析】实体集之间的联系有一对一(1:1)、一对多(1:N)和多对多(M:N)。N:1在本质上就是1:N,只是方向描述不同,通常归类于1:N。在标准E-R图联系类型分类中,通常只列出前三种基本类型。13.下列关于函数依赖的叙述中,正确的是______。A.若X→YB.若X→Y,YC.若X→Y,WD.若XY→Z,则【答案】B【解析】选项A错误,函数依赖不具有对称性。选项B正确,这是Armstrong公理中的传递律。选项C错误,虽然合并律成立(若X→Y且X→Z,则X→YZ),但这里是X选项D错误,分解律是X→YZ⇒X14.关系模式R(U,F)中,若XA.平凡函数依赖B.非平凡函数依赖C.完全函数依赖D.传递函数依赖【答案】A【解析】若Y⊂eqX(即Y是X的子集),则X→15.数据库设计中,需求分析阶段常用的工具是______。A.E-R图B.数据流图(DFD)C.判定表D.数据字典(DD)【答案】B【解析】在需求分析阶段,主要任务是调查和分析用户的需求。常用的工具有:1.数据流图(DFD):用于表达数据和处理过程的关系。2.数据字典(DD):用于定义数据流图中的数据元素。虽然E-R图也在设计阶段使用,但它主要用于概念结构设计阶段,而非需求分析阶段的自顶向下的业务流程分析。DFD是描述系统逻辑功能和数据流向的核心工具。16.SQL语言中,实现“收回权限”的语句是______。A.GRANTB.REVOKEC.DENYD.REMOVE【答案】B【解析】GRANT用于授予权限。REVOKE用于收回权限。DENY是某些特定数据库系统(如SQLServer)中的拒绝权限语句,标准SQL主要使用GRANT和REVOKE。17.索引文件中,若采用B+树结构,其主要优点是______。A.支持范围查询B.节省存储空间C.减少I/O次数D.动态平衡【答案】A【解析】B+树是B树的变体。相比于B树,B+树的所有数据记录都存储在叶子节点,非叶子节点只存储索引关键字。这使得B+树非常适合范围查询:找到起始点后,可以顺着叶子节点的链表顺序遍历。虽然B+树也是动态平衡的(D选项),但相比于B树,其对于磁盘存储和范围查询的优化(A选项)是其被数据库广泛采用的最显著特征。另外,B+树通常比B树更“矮胖”,也能减少I/O次数(C选项),但A选项是其区别于B树在查询功能上的核心优势。18.在数据库并发控制中,若两个事务不能同时获得对方持有的锁,从而导致互相等待,这种现象称为______。A.活锁B.死锁C.丢失更新D.不可重复读【答案】B【解析】死锁是指两个或两个以上的事务在执行过程中,因争夺锁资源而造成的一种互相等待的现象。若无外力作用,它们都将无法推进下去。19.下列关于视图的描述中,错误的是______。A.视图是虚表B.视图可以定义在基本表上C.视图可以定义在视图上D.对视图的更新会直接映射到物理存储【答案】D【解析】视图是从一个或几个基本表(或视图)导出的表。它是一个虚表,在数据库中只存储视图的定义,不存储对应的数据。对视图的更新操作(增、删、改)最终都要转换为对基本表的更新。但是,并不是所有的视图都是可更新的。如果视图定义中包含聚合函数、DISTINCT、GROUPBY等,则该视图不可更新。因此,D选项说“直接映射到物理存储”是不准确的,它是映射到基本表,且受限。20.分布式数据库系统中,分片透明性位于______。A.全局外模式与全局概念模式之间B.全局概念模式与分片模式之间C.分片模式与分配模式之间D.分配模式与局部概念模式之间【答案】B【解析】分布式数据库系统的模式结构:全局外模式全局概念模式分片模式(FragmentationSchema)——位于全局概念模式与分片模式之间的是分片透明性。分配模式(AllocationSchema)局部概念模式分片透明性是最高级别的透明性,用户或应用程序只关心全局关系,不需要关心关系是如何分片的。21.在数据仓库技术中,OLAP(联机分析处理)的核心操作是______。A.增删改B.事务处理C.维度分析(钻取、切片、切块)D.数据挖掘【答案】C【解析】OLAP是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术。它通过对数据的多种观察角度(维度)进行操作,包括切片、切块、钻取和旋转等,帮助分析人员、管理人员或执行人员从多角度观察数据,从而支持决策。22.设哈希表长为m=14,哈希函数H(k)=k%11。表中已有4个结点,地址分别为1,3,5,6。当插入关键字23时,若采用线性探测再散列解决冲突,则插入地址是______。A.2B.7C.8D.9【答案】A【解析】计算H(23)=23%11=1。地址1处已有结点。线性探测:探测下一个位置(1+1)%14=2。地址2处为空(题目只给了1,3,5,6有结点)。故插入地址为2。23.快速排序在最坏情况下的时间复杂度为______。A.OB.OC.OD.O【答案】C【解析】快速排序的平均时间复杂度为O(nlon24.下列关于数据库三级模式结构的叙述中,正确的是______。A.内模式只有一个,概念模式和外模式可以有多个B.内模式可以有多个,概念模式和外模式只有一个C.外模式可以有多个,内模式和概念模式只有一个D.三个模式都只有一个【答案】C【解析】外模式:用户模式,一个数据库可以有多个外模式,对应不同用户的视图。概念模式:逻辑模式,描述整个数据库的逻辑结构,只有一个。内模式:物理模式,描述物理存储结构,只有一个。因此,外模式多个,内模式和概念模式各一个。25.关系代数中,σ(选择)操作的对象是______。A.关系B.元组C.属性D.域【答案】A【解析】在关系代数中,选择(σ)和投影(π)等运算的操作对象都是关系(Relation),运算结果也是一个新的关系。26.若关系R中有100个元组,关系S中有50个元组,则R×A.50B.100C.150D.5000【答案】D【解析】R×S表示笛卡尔积。笛卡尔积的结果包含R和S中所有元组的组合。元组数=27.在关系数据库规范化理论中,若关系模式属于2NF,则必然属于______。A.1NFB.3NFC.BCNFD.4NF【答案】A【解析】规范化过程是:1NF⊃2NF⊃3NF⊃BCNF⊃4NF。即若满足2NF,则必然满足1NF。2NF消除了非主属性对码的部分函数依赖。28.事务的原子性是指______。A.事务中所有操作要么全做,要么全不做B.事务一旦提交,对数据库的修改是永久的C.多个事务并发执行的结果与串行执行一致D.事务执行前后数据库保持一致性状态【答案】A【解析】原子性:事务是不可分割的整体,要么全部成功提交,要么全部失败回滚。一致性:事务执行前后,数据库从一个一致性状态变到另一个一致性状态。隔离性:并发执行的事务互不干扰。持久性:事务一旦提交,其修改永久生效。29.SQL的SELECT语句中,对应“关系代数投影”操作的子句是______。A.SELECTB.FROMC.WHERED.GROUPBY【答案】A【解析】SELECT子句用于指定查询结果中包含的哪些属性(列),这对应关系代数中的投影(π)操作。FROM对应笛卡尔积或连接。WHERE对应选择(σ)。30.设F=A→A.{A}B.{A,B}C.{A,B,C}D.{A,C}【答案】C【解析】1.初始化=A2.查找F中函数依赖的左部是子集的依赖。A→B满足,将B加入。此时=3.继续查找。B→C满足(因为B⊂eq4.没有新的属性可加,结束。故=A31.下列关于两阶段锁协议(2PL)的叙述中,正确的是______。A.2PL可以防止死锁B.2PL可以保证调度是可串行化的C.2PL要求事务在读数据前必须加排他锁D.2PL要求事务在释放锁后还能申请锁【答案】B【解析】两阶段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁:1.增长阶段:事务可以获得锁,但不能释放锁。2.缩减阶段:事务可以释放锁,但不能获得新锁。若所有事务都遵守2PL,则它们的并发调度一定是可串行化的(冲突可串行化)。2PL并不能防止死锁,反而可能因为循环等待导致死锁(A错误)。读数据前加共享锁(S锁),写数据前加排他锁(X锁)(C错误)。增长阶段结束后进入缩减阶段,不能再申请锁(D错误)。32.在数据库故障恢复中,REDO操作的作用是______。A.恢复未完成事务对数据库的修改B.撤销已提交事务对数据库的修改C.重做已提交事务对数据库的修改D.恢复系统到检查点状态【答案】C【解析】REDO(重做):对于已提交的事务,其修改可能还在缓冲区未写入磁盘,或者在系统故障后需要重新写入日志中记录的修改,以确保持久性。UNDO(撤销):对于未完成的事务,其对数据库的修改必须撤销,以恢复到事务执行前的状态,确保原子性。33.数据库物理设计阶段,主要的任务是______。A.确定数据库的表结构B.确定索引和存取路径C.绘制E-R图D.编写SQL代码【答案】B【解析】物理设计阶段的主要任务是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。这涉及到确定存取方法(如索引、HASH等)、存储结构(如聚簇、顺序等)以及数据存放位置等。确定表结构是逻辑设计阶段的任务。34.对象-关系数据库系统(ORDBMS)的主要特点是在关系模型基础上引入了______。A.数据独立性B.面向对象特性C.数据安全性D.数据完整性【答案】B【解析】ORDBMS结合了关系数据库和面向对象数据库的特点。它在传统关系模型的基础上,扩展了面向对象的特性,如用户自定义类型(UDT)、方法、继承性、引用类型等,以处理更复杂的数据结构。35.在大数据处理环境中,NoSQL数据库主要用于解决______问题。A.数据一致性B.复杂事务处理C.海量数据的高并发存取D.复杂的多表关联查询【答案】C【解析】NoSQL(NotOnlySQL)数据库是为了应对大规模数据集合和高并发读写需求而产生的。它们通常牺牲了强一致性(CAP理论)和复杂的关联查询能力,以换取高性能的水平扩展和高可用性。36.下列不属于数据库安全性控制措施的是______。A.用户标识与鉴别B.存取控制C.审计D.视图消解【答案】D【解析】数据库安全性措施包括:1.用户标识与鉴别(身份认证)。2.存取控制(自主存取控制DAC、强制存取控制MAC)。3.审计(追踪用户行为)。4.数据加密。视图消解是查询处理中将视图查询转换为基本表查询的过程,属于查询优化或实现范畴,不属于安全性控制措施(虽然视图可以用来隐藏数据,属于安全性手段,但“视图消解”本身是技术实现过程)。37.若关系模式R属于3NF,则R______。A.消除了插入和删除异常B.必然属于BCNFC.消除了非主属性对码的传递依赖D.消除了所有依赖【答案】C【解析】3NF的定义:若R∈3NF并不能完全消除插入和删除异常(BCNF或更高范式才能更好地解决,有时需要分解到4NF)。3NF不一定属于BCNF(BCNF要求所有属性,包括主属性,都不部分且不传递依赖于码)。38.在并发控制中,若采用“先加锁后操作”的策略,这属于______。A.乐观并发控制B.悲观并发控制C.时标控制D.版本控制【答案】B【解析】悲观并发控制:假设冲突经常发生,因此在操作数据前先加锁。乐观并发控制:假设冲突很少发生,事务执行时不加锁,提交时检查是否冲突。题目描述属于悲观并发控制。39.设关系模式R(U,F),U={A,B,C,D},F={A→B,B→C,D→B}。R的候选码为______。A.AB.DC.ADD.AB【答案】C【解析】计算属性闭包:1.=A2.=D3.(AD=A,D。由A→B得B;由故(A检查AD的真子集:A和D都不能单独决定U。故AD是候选码。40.数据库的“脏读”是指______。A.读取了未提交的数据B.读取了已提交但过期的数据C.读取了重复的数据D.读取了幻影数据【答案】A【解析】脏读是指一个事务读到了另一个未提交事务修改过的数据。如果那个事务回滚了,读到的数据就是无效的(脏的)。二、填空题(每空2分,共20分)41.在计算机网络的OSI七层模型中,负责端到端可靠传输的层是______层。【答案】传输【解析】传输层(TransportLayer)负责端到端的通信,确保数据可靠、顺序、无差错地传输(如TCP协议)。42.设有一个循环队列Q,其头指针为front,尾指针为rear,容量为MaxSize。则队列中元素个数的计算公式为______。【答案】(【解析】循环队列元素个数计算需考虑循环特性。当rear>=front时,个数为rear-front;当rear<front时,个数为rear-front+MaxSize。合并公式即为(r43.在二叉树的遍历中,若先序序列为ABC,后序序列为CBA,则该二叉树的形态可能有______种。【答案】4【解析】先序:根、左、右后序:左、右、根先序ABC,后序CBA。A是根。剩下先序BC,后序CB。此时左子树和右子树的节点分配情况可能为:1.左子树为空,右子树有B,C。此时B是右子树的根,C是B的孩子(先序BC,后序CB)。2.左子树有B,C,右子树为空。3.左子树有B,右子树有C。4.左子树有C,右子树有B。实际上,对于n个节点,若先序和后序刚好相反(即先序ABC...,后序...CBA),通常意味着每个节点最多只有一个孩子,但这里先序是ABC,后序是CBA。分析:根A。剩余:先序BC,后序CB。情况1:左子树含B,右子树含C。(B是左孩子,C是右孩子)。情况2:左子树含B,C。B是左孩子,C是B的右孩子。情况3:右子树含B,C。B是右孩子,C是B的右孩子。情况4:左子树含C,右子树含B。C是左孩子,B是右孩子。注意:如果先序是AB,后序是BA,则可以是A左B或A右B,共2种。本题是3个节点,具体分析如下:根A确定。剩余B和C。(1)B为左子,C为右子。(2)B为左子,C为B的右子。(3)B为右子,C为B的右子。(4)C为左子,B为右子。(5)C为左子,B为C的右子。(此时先序应为ACB,不符)。(6)C为右子,B为C的右子。(此时先序应为ACB,不符)。故符合条件的形态有4种。44.数据库管理系统(DBMS)位于______和用户之间。【答案】操作系统【解析】DBMS是建立在操作系统之上的,用于管理、控制和检索数据库数据的软件系统。它位于操作系统与用户应用程序之间。45.在SQL中,使用______语句可以删除表中的所有数据,但保留表结构。【答案】TRUNCATETABLE或DELETE【解析】TRUNCATETABLE表名用于快速删除表中所有行,且不记录单个行删除日志,重置标识列,保留表结构。DELETE语句不带WHERE条件时也可以,但TRUNCATE更符合“清空数据保留结构”的特定描述且效率更高。填TRUNCATE或DELETE均可。46.若关系R中有5个属性,则R上的候选码最多可能有______个。【答案】−【解析】候选码是能唯一标识元组的属性集。R共有5个属性,所有非空子集都有可能是候选码。5个属性的非空子集总数为−147.在数据库并发控制中,若事务T对数据对象R加了S锁,则其他事务对R可以加______锁,但不能加X锁。【答案】S【解析】S锁是共享锁(读锁)。允许多个事务同时读取同一数据,故其他事务可以加S锁。但为了保证数据在读期间不被修改,其他事务不能加X锁(排他锁)。48.在关系代数中,从两个关系中取出满足条件的元组的操作称为______。【答案】连接或θ-连接【解析】连接操作是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。49.数据库设计通常分为六个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、实施和______。【答案】运行和维护【解析】这是数据库设计的标准生命周期六个阶段。50.在数据挖掘中,______算法是一种典型的分类算法。【答案】ID3或C4.5或决策树【解析】决策树及其算法(如ID3,C4.5)是经典的分类算法。三、简答题与应用题(共40分)51.(10分)设某大学教务系统中有如下关系模式:学生(学号,姓名,性别,年龄,系名)课程(课号,课名,学分)选课(学号,课号,成绩)请用SQL语句完成下列查询:(1)查询选修了“数据库”课程的所有学生的学号和姓名。(2)查询每个学生的平均成绩,要求显示学号、姓名和平均成绩,并按平均成绩降序排列。(3)查询没有选修任何课程的学生的姓名。【答案与解析】(1)```sqlSELECT学生.学号,姓名FROM学生,选课,课程WHERE学生.学号=选课.学号AND选课.课号=课程.课号AND课名='数据库';```或者使用连接方式:```sqlSELECTS.学号,S.姓名FROM学生SJOIN选课SCONS.学号=SC.学号JOIN课程CONSC.课号=C.课号WHEREC.课名='数据库';```(2)```sqlSELECT学生.学号,姓名,AVG(成绩)AS平均成绩FROM学生,选课WHERE学生.学号=选课.学号GROUPBY学生.学号,姓名ORDERBY平均成绩DESC;```注意:在标准SQL中,SELECT子句中出现的非聚合列必须出现在GROUPBY子句中。(3)```sqlSELECT姓名FROM学生WHERE学号NOTIN(SELECT学号FROM选课);```或者使用EXISTS:```sqlSELECT姓名FROM学生SWHERENOTEXISTS(SELECT*FROM选课SCWHERESC.学号=S.学号);```52.(10分)设有关系模式R(U,F),其中U=F=(1)求R的候选码。(2)判断R最高属于第几范式(1NF,2NF,3NF,BCNF),并说明理由。(3)若R不属于3NF,请将R分解为3NF。【答案与解析】(1)求候选码:计算:AABCD因为=U检查其他属性:B,C,D,E都在A的闭包中,且都在函数依赖右边(左边只有A,B,C,D),故不存在其他候选码。所以候选码为A。(2)范式判断:R属于1NF(题目隐含)。判断2NF:由于存在非主属性对码的部分函数依赖吗?码是A,不存在部分依赖(因为码是单属性)。故R属于2NF。判断3NF:是否存在非主属性传递依赖于码?A→B,B→C,且B不包含码(同理,B→D,因此,R不属于3NF。最高属于2NF。(3)分解为3NF:根据3NF定义,需要消除非主属性对码的传递依赖。方法:对于每个非平凡函数依赖X→A,若X不是超码,则分解出子模式或者更简单的分解策略:保持函数依赖和无损连接的分解。基于F:(A,B(B,C(C,D(D,E检查候选码A:A包含在中。分解结果ρ=此时每个子模式的码分别为A,B,C,D,不存在非主属性(每个子模式中,右边属性只依赖于码),故均为3NF。53.(10分)某银行数据库系统,设有事务T1和T2,包含如下操作:T1:读(A);A=A-100;写(A);读(B);B=B+100;写(B);T2:读(A);A=A-200;写(A);读(B);B=B+200;写(B);设A和B的初值均为1000。(1)若这两个事务并发执行,请给出一个可能的并发调度,使得最终数据库中A+B的值不等于2000(即产生不一致性),并说明原因。(2)请说明如何使用两阶段锁协议(2PL)保证调度的一致性。【答案与解析】(1)产生丢失更新问题的调度:假设T1和T2交替执行:步骤1:T1:读(A)(值为1000)步骤2:T2:读(A)(值为1000)步骤3:T1:A=1000-100=900;写(A)(A变为900)步骤4:T2:A=1000-200=800;写(A)(A变为800)——T1的更新被T2覆盖步骤5:T1:读(B)(值为1000)步骤6:T2:读(B)(值为1000)步骤7:T1:B=1000+100=1100;写(B)(B变为1100)步骤8:T2:B=1000+200=1200;写(B)(B变为1200)——T1的更新被T2覆盖最终结果:A=800,B=1200。此时A+等等,这个结果居然是2000。让我重新构造一个导致不一致的。通常丢失更新导致A+B可能不变,但内部状态不对。如果要A+B不等于2000,通常发生在转账事务的中途被读取,或者只有部分更新成功。题目要求A+B不等于2000。考虑T1转账100,T2转账200。总和应该不变。要让总和变,必须是一个事务读到了另一个事务修改后的中间值,且基于此计算。例如:T1:R(A),W(A)T2:R(A)[读到T1修改后的A],W(A)T1:R(B),W(B)T2:R(B),W(B)调度:1.T1:R(A)=10002.T1:A=900,W(A)=9003.T2:R(A)=900(读到T1的结果)4.T2:A=700,W(A)=7005.T1:R(B)=10006.T1:B=1100,W(B)=11007.T2:R(B)=1100(读到T1的结果)8.T2:B=1300,W(B)=1300结果:A=700,B=1300。A+B=2000。看来对于这种简单的加减法事务,只要两个事务都完整执行完,A+B总是守恒的。除非:T1执行了A-100,但还没执行B+100时,系统崩溃或被查询。但题目问的是“这两个事务并发执行”,通常指都提交。如果必须A+B!=2000,可能需要特定的逻辑,比如T1是A=A-100,T2是A=A*2。但题目给定了T1和T2的操作。仔细看题:T1:A-100,B+100;T2:A-200,B+200。无论怎么交错,只要两个事务都完成,A的减少总量和B的增加总量必然匹配。ΔAΔB所以最终A+B一定等于2000。修正思路:题目可能隐含的是检查是否会出现“脏读”导致基于脏数据的计算,或者仅仅是考察“丢失更新”这种并发异常,虽然数值和可能不变,但数据逻辑是错误的(比如A的减少量不等于B的增加量,但在上述特定数学运算中,它们总是匹配的)。然而,如果T1是A=A-100,B=B+100,T2是A=A+100,B=B-100(反向转账),则交错可能导致A+B不变,但中间状态不对。或者,如果题目意图是“产生不一致的状态”,例如T1读到T2未提交的数据(脏读),然后T2回滚。但在真题中,如果必须给出A+B!=不等于初值的例子,通常题目会有设定。既然在纯数学上无法产生A+B!=2000(假设两个事务都Commit),那我们分析一下是否有陷阱。也许T1和T2是对同一账户操作?不,是A和B。让我们重新审视题目,也许我误解了操作。T1:A=A-100;B=B+100;T2:A=A-200;B=B+200;这两个都是转账操作。如果T1和T2并发,可能出现“不可重复读”或“脏读”。但若要A+B!=2000,唯一的可能是:T1:R(A),W(A)T2:R(A),W(A)T1:R(B)...(此时T1的B计算是基于旧的B)T2:R(B)...假设:1.T1:R(A)=10002.T2:R(A)=10003.T1:W(A)=9004.T2:W(A)=800(T1更新丢失)5.T1:R(B)=10006.T1:W(B)=11007.T2:R(B)=1100(T2读到了T1更新的B,但A是基于旧的)8.T2:W(B)=1300结果:A=800,B=1300.Sum=2000.看来无论怎么算,Sum都是2000。特殊情况:如果题目意思是“导致数据库处于不一致的状态”,而不是特指Sum。或者,如果T1的操作是A=A-100;B=B+50;(手续费?)那么Sum会变。但题目写的是B=B+100。结论:在给定的T1和T2操作下,若两事务均正常提交,A+B必然等于2000。题目可能存在逻辑陷阱,或者意在考察“丢失更新”这一现象本身,尽管数值和不变。

温馨提示

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

评论

0/150

提交评论