软考中级数据库系统工程师历年经典真题及解析part19文档格式.docx
《软考中级数据库系统工程师历年经典真题及解析part19文档格式.docx》由会员分享,可在线阅读,更多相关《软考中级数据库系统工程师历年经典真题及解析part19文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
第3题
从时间、地区和商品种类三个维度来分析某电器商品销售数据属于()。
A.ETL
B.联机事务处理(OLTP)
C.联机分析处理(OLAP)
D.数据挖掘
ETL,Extraction-Transformation-Loading的缩写,中文名称为数据提取、转换和加载。
ETL负责将分散的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
OLTP,一般用于事务型数据库,OLTP数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务。
OLAP,联机分析处理是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术。
它通过对信息的多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入观察。
决策数据是多维数据,多维数据就是决策的主要内容。
数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性(属于Associationrulelearning)的信息的过程。
题干中通过从时间、地区和商品种类三个维度来分析某电器商品销售数据,应属于OLAP,通过对数据的观察为决策提供依据。
第4题
耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。
耦合程度不取决于()
A.调用模块的方式
B.各个模块之间接口的复杂程度
C.通过接口的信息类型
D.模块提供的功能数
D。
选项ABC都是取决模块间耦合度高低的因素。
P450。
第5题
关于聚类算法K-Means和DBSCAN的叙述中,不正确的是()。
A.K-Means和DBSCAN的聚类结果与输入参数有很大的关系
B.K-Means基于距离的概念而DBSCAN基于密度的概念进行聚类分析
C.K-Means很难处理非球形的簇和不同大小的簇,DBSCAN可以处理不同大小和不同形状的簇
D.当簇的密度变化较大时,DBSCAN不能很好的处理,而K-Means则可以
本题考查数据挖掘的基础知识。
K-Means和DBSCAN是两个经典的聚类算法,将相似的数据对象归类一组,不相似的数据对象分开。
K-means算法基于对象之间的聚类进行聚类,需要输入聚类的个数。
DBSCAN算法基于密度进行聚类,需要确定阈值,两者的聚类结果均与输入参数关系很大。
DBSCAN可以处理不同大小和不同形状的簇,而K-means算法则不适合。
若数据分布密度变化大,则这两种算法都不适用。
第6题
分布式数据库系统除了包含集中式数据库系统的模式结构之外,还增加了几个模式级别,其中()定义分布式数据库中数据的整体逻辑结构,使得数据如同没有分布一样。
A.全局外模式
B.全局概念模式
C.分片
D.分布
B。
全局概念模式:
描述分布式数据库全局数据的逻辑结构,是分布式数据库的全局概念视图。
与集中式数据库的概念视图的定义相似,全局概念模式应包含模式名、属性名以及每种属性的数据类型的定义和长度。
分片模式:
描述全局数据逻辑划分的视图,它是全局数据的逻辑结构根据某种条件的划分,每一个逻辑划分就是一个片段或称为分片。
分配模式:
描述局部逻辑的局部物理结构是划分后的片段(或分片)的物理分配视图。
与集中式数据库物理存储结构的概念不同,这种分配模式是全局概念层的内容。
第7题
以下关于面向对象数据模型的叙述中,错误的是()。
A.一个对象对应着E-R模型中的一个实体
B.对象类是一系列相似对象的集合
C.对象中的属性和方法对外界是不可见的
D.对象之间的相互作用通过消息来实现
本题考查面向对象数据库的基础知识。
面向对象数据库系统是以面向对象数据模型为基础的,一系列面向对象的概念构成了面向对象数据模型的基础。
如一个对象对应着E-R模型中的一个实体。
对象是由封装的属性和方法构成的,封装的属性和方法对外界是不可见的,但对象可以定义对外界可见的属性和方法。
对象之间的相互作用要通过消息来实现。
在面向对象数据库中,类是一系列对象的集合。
第8题
案例题
阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。
【说明】
某抢红包软件规定发红包人可以一次抛出多个红包,由多个人来抢。
要求每个抢红包的人最多只能抢到同一批次中的一个红包,且存在多个人同时抢同一红包的情况。
给定的红包关系模式如下:
Red(ID,BatchID,SenderID,Money,ReceiverID)
其中ID唯一标识每一个红包;
BatchID为发红包的批次,一个BatchID值可以对应多个ID值;
SenderID为发红包人的标识;
Money为红包中的钱数;
ReceiverID记录抢到红包的人的标识。
发红包人一次抛出多个红包,即向红包表中插入多条记录,每条记录表示一个红包,其ReceiverID值为空值。
抢某个红包时,需要判定该红包记录的ReceiverID值是否为空,不为空时表示该红包己被抢走,不能再抢,为空时抢红包人将自己的标识写入到ReceiverID宇段中,即为抢到红包。
【问题1】(9分)
引入两个伪指令a=R(X)和W(b,X)。
其中a=R(X)表示读取当前红包记录的ReceiverID字段(记为数据项X)到变量a中,W(b,X)表示将抢红包人的唯一标识b的值写入到当前红包记录的ReceiverID字段(数据项X)中,变量a为空值时才会执行W(b,X)操作。
假设有多个人同时抢同一红包(即同时对同一记录进行操作),用和表示系统依次响应的第i个人的抢红包操作。
假设当前数据项X为空值,同时有三个人抢同一红包,则
(1)如下的调度执行序列:
抢到红包的是第几人?
并说明理由。
(2)引入共享锁指令、独占锁指令和解锁指令,其中下标i表示第i个抢红包人的指令。
如下的调度执行序列:
是否会产生死锁?
(3)为了保证系统第一个响应的抢红包人为最终抢到红包的人,请使用上述。
)中引入的锁指令,对上述
(1)中的调度执行序列进行修改,在满足2PL协议的前提下,给出一个不产生死锁的完整的调度执行序列。
【问题2】(6分)
下面是用SQL实现的抢红包程序的一部分,请补全空缺处的代码
CREATEPROCEDUREScrambleRed(INBatchNoVARCHAR(20),--红包批号
(INRecvrNoVARCHAR(20))一接收红包者
BEGIN
--是否已抢过此批红包
ifexists(SELECT*FROMRed
WHEREBatchID=BatchNoANDReceiverID=RecvrNo)thm
return-1;
endif;
---读取此批派发红包中未领取的红包记录ID
DECLARENonRecvedNoVARCHAR(30);
DECLARENonRecvedNoCURSORFOR
SELECTID
FROMRed
WHEREBatchID=BatchNoANDReceiverIDISNULL;
-打开游标
OPENNonRecvedRed;
FETCHNonRecvedRedINTONonRecvedNo;
whilenoterror
一抢红包事务
BEGINTRANSACTION;
//写入红包记录
UPDATEREDSTERECDIVERID=RecvrNo
WHEREID=nonRECVEDAND(a)
//执行状态判定
If<修改的记录数>=1THEN
COMMIT;
(b);
Return1;
Else
ROLLBACK;
Endif;
(c);
Endwhile
--关闭游标
CLOSENonRecvedRD
Return0;
END
【问题1】
(9分)
(1)第2人,并发操作出现了丢失更新的问题,第2个的更新覆盖了第1个的更新,原因是破坏了事物的隔离性。
(2)会产生死锁,由于数据X同时被1和2加锁了S锁,再对方没有释放的时候,都无法加成功X锁,导致1和2一直都处于等待的状态。
(3)XLock(X)a=R(X)W(b,X)UNLock(X)
【问题2】
(6分)
(a)BatchID=BatchNo
(b)CLOSENonRecvedRed
(c)ENDTRANSACTION。
(1)由于调度出现了丢失更新,第2个事务的更新覆盖了第1个事务的更新,而第3个及以后的,是在第2个更新后再操作,不能更新。
所以应该为第2个人抢到红包。
(2)会产生死锁,由于数据X同时被1和2加锁了S锁,再对方没有释放的时候,都无法加成功X锁,导致1和2一直都处于等待的状态,从而产生死锁。
(a)处作为WHERE子句的条件约束部分应该是去确定是哪个批次的哪一个ID的红包,所以(a)应该为:
BatchID=BatchNo
(b)处后是Return1语句,也就是直接返回了,不在执行后续的语句,所以(b)处应该执行游标关闭操作即CLOSENonRecvedRed
(c)应该对应事物定义BEGINTRANSACTION——ENDTRANSACTION;
中的结束语句:
ENDTRANSACTION
第9题
关于分布式数据库,下列描述正确的是()。
A.客户机是分布在不同场地的
B.多个数据库服务器间的数据交互通过客户端程序来实现
C.数据的物理存储分布在不同的服务器上,而用户只关心访问的逻辑结构
D.每个服务器上必须运行相同的DBMS
本题考查考生对分布式数据库相关概念的掌握。
分布式数据库将整个数据库分布于不同的服务器上(场地),数据的管理通过分布式数据库管理系统(DDBMS)来管理,用户不需要知道所操作的数据具体存储于哪个场地,只需要知道要访问的数据库逻辑结构,即数据库中的各关系模式。
分布式数据库允许不同场地使用不同的DBMS。
第10题
以下关于面向对象数据库的叙述中,不正确的是()。
A.类是一组具有相同或相似性质的对象的抽象。
一个对象是某一类的一个实例
B.类的属性可以是基本类,如整数、字符串等,也可以是包含属性和方法的一般类
C.类的某个属性的定义可以是该类自身
D.一个对象通常对应实际领域的一个