单选题 设关系模式R(U,F),其中R上的属性集U={A,B,C,D,E},R上的函数依赖集F={A→B,DE→B,CB→E,E→A,B→D)。______为关系R的候选关键字。分解______是无损连接,并保持函数依赖的。
单选题
  • A.AB
  • B.DE
  • C.CE
  • D.CB
【正确答案】 C
【答案解析】
单选题
  • A.p={R1(AC),R2(ED),R3(B)}
  • B.p={R1(AC),R2(E),R3(DB)}
  • C.p={R1(AC),R2(ED),R3(AB)}
  • D.p={R1,(ABC),R2(ED),R3(ACE)}
【正确答案】 D
【答案解析】候选关键字使用规范化理论中的图示法进行求解,对R关系模式画图如图所示。
[*]
图中C结点为0度结点,所以它必然被包含在候选关键字中,但仅有C结点并不能遍历全图,所以需要加入其他中间结点。若加入B结点,则BC→E,E→A,B→D,能遍历全图。与此同时,加入A、E都能起到同样的效果。所以关系R有三个候选键:BC、EC,AC。
接下来是判断模式分解过程中的无损连接与保持函数依赖的问题。这个问题相对来说比较复杂。如果逐个判断每个选项的无损连接与保持函数依赖,无疑工作量是很大的。所以我们可以先观察这些选项有什么特点,通过观察发现A与B选项都存在单字段的分解。在进行模式分解时,如果出现单字段,同时该字段未在其他分解的子关系模式中出现,并且函数依赖中有此字段的依赖关系,则说明此分解没有保持函数依赖。原因很简单,关于该字段的那个函数依赖,必然在分解中丢失了。所以A与B选项可以先排除。
然后判断C与D是否为无损连接。
对选项C构造初始的判定表如表所示。
模式分解C选项初始判定表
分解的关系模式 A B C D E
R1(AC) a1 b12 a3 b14 b15
R2(ED) b21 b22 b23 a4 a5
R3(AB) a1 a2 b33 b34 b35
由于A→B,属性A的第1行和第3行相同,可以将第1行b12改为a2;又由于B→D,属性B的第1行和第3行相同,所以需要将属性D第1行b14和第3行b34,改为同一符号,即取行号值最小的b14。修改后的判定表如表所示。
模式分解C选项修改判定表
分解的关系模式 A B C D E
R1(AC) a1 a2 a3 b14 b15
R2(ED) b21 b22 b23 a4 a5
R3(AB) a1 a2 b33 b14 b35
反复检查函数依赖集F,无法修改上表,所以选项C是有损连接的。 对选项D构造初始的判定表如下表所示。
模式分解D选项初始判定表
分解的关系模式 A B C D E
R1(ABC) a1 a2 a3 b14 b15
R2(ED) b21 b22 b23 a4 a5
R3(ACE) a1 b32 a3 b34 a5
由于A→B,属性A的第1行和第3行相同,可以将第3行b32改为a2;E→A,属性E的第2行和第3行相同,可以将属性A第2行b21改为a1;AC→E,属性E的第2行和第3行相同,可以将属性E第1行b15改为a5;B→D,属性B的第1行和第3行相同,所以需要将属性D第1行b14和第3行b34,改为同一符号,即取行号值最小的b14。E→D,属性E的第1~3行相同,可以将属性D第1行b14和第3行b34改为a4。修改后的判定表如表所示。
模式分解D选项修改判定表
分解的关系模式 A B C D E
R1(ABC) a1 a2 a3 a4 a5
R2(ED) a1 b22 b23 a4 a5
R3(ACE) a1 a2 a3 a4 a5
由于表第一行全为a,故分解无损。
所以本空应选D。
单选题 希赛公司欲开发一个软件系统的在线文档帮助系统,用户可以在任何一个查询上下文中输入查询关键字,如果当前查询环境下没有相关内容,则系统会将查询按照一定的顺序转发给其他查询环境。基于上述需求,采用______最为合适。
  • A.责任链模式
  • B.桥接模式
  • C.装饰模式
  • D.适配器模式
【正确答案】 A
【答案解析】本题主要考查设计模式的理解与应用。根据题干描述,在线文档系统需要根据用户的查询需求逐步将查询请求依次传递,对比4个候选项,其中在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。因此责任链模式是能够满足该要求的最好模式。
单选题 下列关于不同软件开发方法所使用的模型的描述中,正确的是______。
  • A.在进行结构化分析时,必须使用数据流图和软件结构图这两种模型
  • B.采用面向对象开发方法时,可以使用状态图和活动图对系统的动态行为进行建模
  • C.实体联系图(E-R图)是在数据库逻辑结构设计时才开始创建的模型
  • D.UML的活动图与程序流程图的表达能力等价
【正确答案】 B
【答案解析】结构化分析方法是一种面向数据流的需求分析方法,其基本思想是自顶向下逐层分解。数据流图是进行结构化分析时所使用的模型,其基本成分包括数据流、加工、数据存储和外部实体。在进行结构化设计时,通过对数据流图进行变换分析和事务分析可以导出程序结构图。 数据库设计可以分为4个主要阶段:①用户需求分析。数据库设计人员采用一定的辅助工具对应用对象的功能、性能、限制等要求所进行的科学分析。②概念设计。概念结构设计是对信息分析和定义,如视图模型化、视图分析和汇总。对应用对象精确地抽象、概括而形成的独立于计算机系统的企业信息模型。描述概念模型的较理想的工具是E—R图。③逻辑设计。将抽象的概念模型转化为与选用的DBMS产品所支持的数据模型相符合的逻辑模型,它是物理设计的基础。包括模式初始设计、子模式设计、应用程序设计、模式评价及模式求精。④物理设计。逻辑模型在计算机中的具体实现方案。 UML是面向对象软件的标准化建模语言,其中状态图、活动图、顺序图和通信图可以用来对系统的动态行为进行建模。活动图展现了在系统内从一个活动到另一个活动的流程。活动图强调对象之间的控制流程。在活动图上可以表示分支和汇合。活动图与传统的程序流程图是不等价的。
单选题 在嵌入式系统设计时,下面几种存储结构中对程序员透明的是______。
  • A.高速缓存
  • B.磁盘存储器
  • C.内存
  • D.flash存储器
【正确答案】 A
【答案解析】四个选项中,高速缓存就是Cache,它处于内存与CPU之间,是为了提高访问内存时的速度而设置的,这个设备对于程序员的程序编写是完全透明的。 磁盘存储器与。flash存储器都属于外设,在存储文件时,需要考虑到该设备的情况,因为需要将文件内容存于相应的设备之上。 内存是程序员写程序时需要考虑的,因为内存的分配与释放是经常要用到的操作。
单选题 软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。以下关于软件架构设计活动的描述,错误的是______。
  • A.在建立软件架构的初期,一般需要选择一个合适的架构风格
  • B.将架构分析阶段已标识的构件映射到架构中,并分析这些构件之间的关系
  • C.软件架构设计活动将已标识构件集成到软件架构中,设计并实现这些构件
  • D.一旦得到了详细的软件架构设计,需要邀请独立于系统开发的外部人员对系统进行评审
【正确答案】 C
【答案解析】软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程,在建立软件架构的初期,一般需要选择一个合适的架构风格,并将架构分析阶段已标识的构件映射到架构中,并分析这些构件之间的关系,一旦得到了详细的软件架构设计,需要邀请独立于系统开发的外部人员对系统进行评审。一般来说,软件架构设计活动将已标识构件集成到软件架构中,设计这些构件,但不予以实现。