ARTICLE · 1114474
系统架构师模拟题-综合知识预测-中篇:软件工程、需求与项目管理;计算机系统基础、操作系统、数据库
不用着急在同一个时间内把三篇文章都看完,除非你的精力真的很充沛,可以休息一会再看下面的题目
02
第 21 题
某项目需求在初期不明确、且开发团队对技术方案存在较大不确定性,最适宜采用的开发模型是( )。
A. 瀑布模型
B. 螺旋模型
C. 增量模型
D. V 模型
答案:B
解析:螺旋模型把开发过程组织成多轮螺旋,每一轮都包含四个象限:制定计划、风险分析、实施工程、客户评估,其中风险分析是其区别于其他模型的标志性活动,因此最适合需求不确定、技术风险高的项目,B 正确。瀑布模型要求需求在初期就完全明确并冻结,且不便于回溯。增量模型把系统分成多个增量逐步交付,适合需求可分期明确、希望尽早交付的场景,但其风险控制能力弱于螺旋。V 模型强调测试与开发阶段的对应关系,是瀑布的变体,同样假设需求稳定。题干的两个关键词需求不明确与技术不确定性大,都指向风险,风险驱动即选螺旋。
第 22 题
敏捷开发中,用于在迭代开始前梳理并排序需求列表的活动是( )。
A. 每日站会
B. 迭代计划会议
C. 评审会议
D. 回顾会议
答案:B
解析:敏捷框架的四个仪式各有明确职责:迭代计划会议在迭代开始时召开,产出本次迭代的目标与任务清单,包括对产品待办列表的挑选与排序,B 正确。每日站会用于同步进度与障碍,控制在十五分钟内,不用于排需求。评审会议在迭代末召开,向相关方演示已完成的功能,收集反馈。回顾会议在评审之后召开,检视团队协作过程并提出改进项,关注的是流程而非产品。四者可串成一句话记忆:计划定做什么、站会看进展、评审看结果、回顾改流程。
第 23 题
在需求分析中,系统应在 2 秒内返回查询结果属于( )。
A. 功能需求
B. 非功能需求
C. 业务需求
D. 设计约束
答案:B
解析:需求通常分为业务需求、用户需求、系统需求三类,其中系统需求又分为功能需求与非功能需求。功能需求描述系统做什么,比如支持按订单号查询;非功能需求描述系统做得怎么样,包括性能、可靠性、安全性、可用性、可维护性等质量约束。题干给出的响应时间指标属于性能要求,落在非功能需求,B 正确。设计约束是限制实现方式的硬性规定,例如必须使用国产数据库、必须部署在指定机房,与 2 秒内这类度量指标不同。判断窍门:凡是带数值指标、带率、时间、比例的表述,基本是非功能需求。
第 24 题
在结构化分析方法中,数据流图的基本组成不包括( )。
A. 外部实体
B. 加工
C. 数据存储
D. 控制流
答案:D
解析:数据流图的四种基本元素是外部实体即数据的来源或去向、加工即对数据进行的变换、数据存储即数据的静态存放、数据流即数据在元素之间的流动方向,不包含控制流,D 是错误项。控制流是另一个建模工具的组成元素,出现在状态转换图与程序流程图中,用于表示执行顺序。这个知识点几乎每年都以不包括的形式出现,考的就是别把数据流和控制流混起来。另需注意数据流图的分层规则:父图与子图平衡,即子图的输入输出必须与父图对应加工的输入输出一致,这也常考。
第 25 题
白盒测试中的判定覆盖要求( )。
A. 每个语句至少执行一次
B. 每个判定的真值与假值至少各出现一次
C. 每个判定中的每个条件的真值与假值至少各出现一次
D. 所有可能的执行路径至少走一次
答案:B
解析:白盒覆盖标准由弱到强依次是语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。A 项是语句覆盖的定义;B 项是判定覆盖,又称分支覆盖,要求每个判断的每个分支都至少走一次;C 项是条件覆盖,细化到判定内部的每个原子条件;D 项是路径覆盖,要求覆盖所有可行路径。判定覆盖与条件覆盖的差别是这类题的常考点:判定覆盖看整体结果真假,条件覆盖看内部每个条件的真假。注意条件组合覆盖通常比判定条件覆盖更强,它不是判定与条件各自满足即可。
第 26 题
在环路复杂度计算中,若某程序的流图有 12 条边、10 个结点,则其环路复杂度为( )。
A. 2
B. 3
C. 4
D. 5
答案:C
解析:环路复杂度的两个等价公式是 V 等于 E 减 N 加 2,以及 V 等于 P 加 1,其中 E 为边数、N 为结点数、P 为判定结点数。代入 E 等于 12、N 等于 10,得 V 等于 12 减 10 加 2 等于 4,选 C。该值表示程序中独立路径的数量,也代表为达到基本路径覆盖所需的最少测试用例数,同时用于度量模块的可测试性与复杂度:一般认为该值大于 10 的模块应当拆分。考试中常同时给出两个公式来验证一致性,若题目给的是判定结点数就用 P 加 1,两个公式结果应当相同。
第 27 题
集成测试中,先测试底层模块、再逐层向上组合的测试策略是( )。
A. 自顶向下集成
B. 自底向上集成
C. 三明治集成
D. 大棒集成
答案:B
解析:自底向上集成从最底层模块开始测试,逐层向上组装,需要为被测模块编写驱动模块来提供调用,不需要桩模块,B 正确。自顶向下集成从主控模块开始向下扩展,需要编写桩模块模拟未完成的底层模块,且底层关键模块测试得晚,风险暴露滞后。三明治集成是两者的混合,中间层先测、上下同时推进。大棒集成把所有模块一次性组装后测试,问题定位困难,只在极小系统使用。区分窍门:需要驱动的是自底向上,需要桩的是自顶向下。
第 28 题
软件维护的四种类型中,为适应外部运行环境变化而修改软件的活动属于( )。
A. 改正性维护
B. 适应性维护
C. 完善性维护
D. 预防性维护
答案:B
解析:四类维护的区分点是动机。改正性维护用于修复运行中发现的缺陷;适应性维护用于适应外部环境变化,例如操作系统升级、数据库版本更新、硬件更换、政策法规调整;完善性维护用于满足新增的功能或性能需求,是四类中占比最高的,通常超过一半;预防性维护是把将来可能需要的改进提前实施,以提升可维护性,例如重构与逆向工程。题干明确指向外部运行环境变化,属适应性维护,B 正确。注意完善性维护常被误认为优先级最高,实际占比最高与优先级最高是两回事。
第 29 题
某软件产品的失效强度符合可靠性增长模型,随着测试时间延长失效间隔时间逐渐增大,这属于( )。
A. 可靠性增长
B. 可靠性衰减
C. 可靠性不变
D. 可靠性震荡
答案:A
解析:软件可靠性测试的核心是可靠性增长测试,其假设是随着测试过程中不断发现并修复缺陷,软件的失效强度会持续下降、相邻失效之间的时间间隔会逐渐增大,这一现象称为可靠性增长,A 正确。可靠性衰减是指软件在运行过程中因环境恶化或修改引入新缺陷导致可靠性下降,通常出现在维护阶段。可靠性不变意味着缺陷修复与引入达到平衡,这在增长测试中不是期望状态。可靠性震荡不是标准术语。该题属于概念识记题,抓住失效间隔增大等于故障率下降等于可靠性提高这条判断链即可。
第 30 题
软件配置管理中,用于标识配置项状态变化过程的活动是( )。
A. 配置标识
B. 版本控制
C. 变更控制
D. 配置审计
答案:C
解析:配置管理包含五项基本活动:配置标识,确定哪些是配置项并分配唯一标识;版本控制,记录配置项的历史版本;变更控制,受理、评审、批准并实施变更,跟踪配置项的状态迁移过程;配置审计,验证配置项与文档的一致性、确认变更已正确落实;状态报告,向相关方通报配置状态。题干问标识状态变化过程,对应变更控制,C 正确。易混的是版本控制与变更控制:版本控制关注存了什么版本,变更控制关注变更怎么被审批与落地,题干中的状态变化过程正是变更控制的定义性表述。
第 31 题
在软件过程能力成熟度模型中,过程已定量管理、可用统计方法控制过程性能的成熟度等级是( )。
A. 第 2 级 已管理级
B. 第 3 级 已定义级
C. 第 4 级 定量管理级
D. 第 5 级 优化级
答案:C
解析:五级分别是:初始级,过程无序、依赖个人;已管理级,项目级有基本的管理,能按计划跟踪成本与进度;已定义级,组织级有标准过程,项目基于标准过程裁剪;定量管理级,对过程与产品质量建立量化目标,用统计方法控制过程性能;优化级,持续改进,能主动引入新技术并有缺陷预防机制。题干中定量管理与统计方法控制是第 4 级的标志,C 正确。区分第 3 级与第 4 级的关键词是组织标准过程对量化统计控制;区分第 4 级与第 5 级是控制对持续改进。
第 32 题
某项目关键路径长度为 20 天,活动 A 位于关键路径上、历时 4 天,若 A 的历时压缩为 3 天,则项目工期( )。
A. 缩短 1 天
B. 缩短 2 天
C. 不变
D. 无法判断
答案:D
解析:关键路径上的活动压缩一天,工期通常会缩短一天,但前提是压缩后该路径仍为关键路径。若压缩后原关键路径变为 19 天,而原次关键路径恰为 19 天,则关键路径会发生转移,项目工期由新的关键路径决定,缩短量可能小于 1 天甚至为 0。题干只给了关键路径长度与活动历时,没有给出次关键路径的长度,因此无法判断工期变化的确切数值,选 D。这类题考的是对关键路径动态转移的理解,凡是压缩关键活动必然缩短相应天数这类绝对表述都要警惕。
第 33 题
下列不属于软件质量属性中可修改性范畴的是( )。
A. 可维护性
B. 可扩展性
C. 可移植性
D. 可用性
答案:D
解析:可修改性是变更的代价这一大类属性的统称,包含可维护性即修复缺陷的难易、可扩展性即增加功能的难易、可重组性即重新组织构件的能力、可移植性即迁移到新平台的难易。可用性属于运行期属性,衡量系统正常运行时间的比例,与变更代价无关,因此 D 不属于可修改性范畴。这道题的陷阱在于可用性与可维护性、可移植性字面相近,只差一个字,容易看错。答题时按变更相关还是不间断运行相关归类,能快速排除。质量属性可按运行期与开发期两大类划分:性能、可用性、安全性、易用性属运行期;可修改性、可测试性、可复用性属开发期。
第 34 题
在软件复用中,基于构件的开发最强调的是( )。
A. 从零开始编写全部代码
B. 通过明确定义的接口组装已有构件
C. 复用源代码中的函数片段
D. 复用开发人员的经验
答案:B
解析:基于构件的开发把软件系统看作构件通过接口组装而成,构件是独立部署、可替换、接口明确的单元,复用发生在二进制层面而非源码层面,B 正确。A 项与复用的理念相反。C 项属于源代码复用,是最初级也最容易出问题的复用方式,因为源码复用会带来版本分叉与维护负担。D 项属于知识复用,范围太宽泛,不是该开发方式的技术特征。需要注意的是,构件的接口必须稳定且明确,这是构件可被独立替换与组装的先决条件,也是构件与普通类库的关键区别。
第 35 题
下列关于开发运维一体化的说法,正确的是( )。
A. 它是一套具体的工具软件
B. 它强调开发与运维的协作,通过自动化实现持续交付
C. 它仅适用于互联网企业的大规模系统
D. 它的核心是增加发布前的审批环节
答案:B
解析:开发运维一体化是一种文化与工程实践的组合,核心是打通开发与运维之间的壁垒,通过持续集成、持续交付、自动化测试与基础设施即代码等手段缩短交付周期并提高发布质量,B 正确。A 项错误,工具是支撑手段而非本质,它不是某一款软件。C 项错误,它对中小团队同样适用,实践强度可按规模调整。D 项方向相反,它主张用自动化质量门禁替代人工审批,把审批前移为自动化检查。回答这类题要抓文化加实践的定位,而非工具。
第 36 题
某功能上线后用户反馈操作步骤繁琐,需重新设计人机交互流程,应采用的设计原则是( )。
A. 保持界面元素的一致性
B. 尽量减少用户记忆负担并提供及时反馈
C. 尽可能多地展示功能入口
D. 采用最流行的视觉风格
答案:B
解析:交互设计的核心目标是降低用户的认知与操作成本。题干问题是操作步骤繁琐,属于任务流程与认知负担问题,对应的设计原则是缩短操作路径、减少记忆负担、提供明确反馈,B 正确。A 项一致性是重要原则,但解决的是学习成本与错觉问题,不能直接解决步骤繁琐。C 项功能入口过多会加剧复杂度,与该问题相反。D 项视觉风格属表现层,与流程繁琐无关。人机交互的常见原则还包括界面简洁、及时反馈、出错保护、支持撤销、符合用户经验与习惯,答题时按问题出在哪一层就选哪一层的原则判断。
第 37 题
在软件项目管理中,用于直观展示各任务起止时间与进度的工具是( )。
A. 甘特图
B. 网络图
C. 鱼骨图
D. 帕累托图
答案:A
解析:甘特图以横轴表示时间、纵轴表示任务,用条形直观展示每个任务的起止时间与持续长度,优点是进度一目了然,缺点是不易表达任务之间的依赖关系,A 正确。网络图如单代号、双代号网络图才能清晰表达任务依赖并用于计算关键路径,但它不以直观展示起止时间为特点。C 项鱼骨图用于原因分析,D 项帕累托图用于按重要性排序问题,常与二八法则配合。掌握图的用途对应是这类题的关键:进度看甘特、依赖与关键路径看网络、原因看鱼骨、主次看帕累托。
第 38 题
关于软件文档管理,下列说法正确的是( )。
A. 文档编写应在编码完成后集中进行
B. 文档应随开发进程同步产生,且纳入配置管理
C. 只有交付给用户的文档才需要评审
D. 文档的好坏不影响软件可维护性
答案:B
解析:文档应与开发过程同步产生,并作为配置项纳入配置管理,与代码一同经历版本控制与变更控制,这样才能保证文档与代码的一致性,B 正确。A 项错误,事后补文档会因为记忆缺失而失真,且无法在过程中起到沟通与评审作用。C 项错误,内部使用的需求、设计、测试文档同样需要评审,评审是质量保证活动而非交付流程。D 项错误,文档质量直接影响理解成本,是可维护性的重要组成部分。需要注意文档的同步性是评判文档质量的首要标准,比文档的篇幅与形式更重要。
03
第 39 题
某计算机主频为 2GHz,某程序共执行 100 万条指令,其中六成为单周期指令、四成为两周期指令,则该程序的执行时间约为( )。
A. 0.25 毫秒
B. 0.7 毫秒
C. 1.4 毫秒
D. 2.8 毫秒
答案:B
解析:先算平均周期数,即 CPI:0.6 乘 1 加 0.4 乘 2 等于 0.6 加 0.8 等于 1.4。总时钟周期数为 100 万乘 1.4 等于 140 万个周期。主频 2GHz 表示每秒 20 亿个周期,因此执行时间为 140 万除以 20 亿,约等于 0.0007 秒,即 0.7 毫秒,选 B。这道题的核心公式是执行时间等于指令数乘 CPI 除以主频,三个量中只要给出两个就能求第三个,考试常反向出题,例如给出执行时间与主频求 CPI。单位换算是失误高发点,1GHz 等于 10 的 9 次方赫兹,1 毫秒等于 10 的负 3 次方秒,建议先统一到秒再计算,最后再转成题目要求的单位。
第 40 题
下列关于 CPU 流水线的说法,正确的是( )。
A. 流水线的段数越多,单条指令的执行时间越短
B. 流水线技术缩短了单条指令的执行时间
C. 流水线技术提高了指令吞吐率,但没有减少单条指令的执行时间
D. 流水线不存在任何冲突问题
答案:C
解析:流水线通过让多条指令的不同阶段重叠执行,提高了单位时间内完成的指令数,也就是吞吐率,但单条指令从进入流水线到执行完毕仍需经过全部分段,其延迟并未减少,C 正确。A 项混淆了分段更细与单指令更快:分段细化确实可能缩短每段耗时,但段间寄存器的开销增加,单条指令总延迟通常不变甚至略增。B 项与 C 项互为对立,B 错误。D 项错误,流水线存在结构冲突即硬件资源争用、数据冲突即后续指令依赖前序结果、控制冲突即分支跳转导致预取失效,需要通过插入气泡、转发、分支预测等手段解决,这三类冲突是常考点。
第 41 题
在存储体系层次中,速度最快、容量最小、由 CPU 直接访问的存储器是( )。
A. 寄存器
B. 高速缓存
C. 主存
D. 辅存
答案:A
解析:存储层次自上而下依次为寄存器、高速缓存、主存、辅存。寄存器在 CPU 内部,速度最快、容量最小,由 CPU 直接读写;高速缓存位于 CPU 与主存之间,缓解速度差;主存存放当前运行的程序与数据;辅存容量大、速度慢、断电不丢失。题干中的两个限定条件速度最快与容量最小都指向寄存器,A 正确。需要注意高速缓存也是 CPU 可直接访问的,但它的存取速度低于寄存器且容量大于寄存器,速度最快加容量最小的组合只能落在寄存器。这一层级的排序与容量、速度、成本三者的关系几乎年年考。
第 42 题
某系统采用高速缓存与主存两级存储,高速缓存命中率为百分之九十五,其访问时间为 2 纳秒,主存访问时间为 40 纳秒,采用先访问高速缓存、未命中再访问主存的方式,则平均访问时间约为( )。
A. 2.1 纳秒
B. 3.9 纳秒
C. 4.0 纳秒
D. 6.0 纳秒
答案:C
解析:题干明确先访问高速缓存、未命中再访问主存,此时命中一次需 2 纳秒;未命中的概率为百分之五,需要先花 2 纳秒访问高速缓存失败,再花 40 纳秒访问主存,共 42 纳秒。平均访问时间等于 0.95 乘 2 加 0.05 乘 42,即 1.9 加 2.1 等于 4.0 纳秒,选 C。若按另一种常见约定,即未命中时直接访问主存、不计高速缓存的探查时间,则平均时间为 0.95 乘 2 加 0.05 乘 40 等于 1.9 加 2.0 等于 3.9 纳秒,对应 B 项。本题同时给出 3.9 与 4.0 两个选项,就是考对题干访问顺序的理解,务必逐字读题干的访问顺序描述再计算。
第 43 题
在操作系统中,进程与程序的主要区别是( )。
A. 进程是静态的,程序是动态的
B. 进程是动态的,程序是静态的
C. 一个程序只能对应一个进程
D. 进程和程序都是永久的
答案:B
解析:程序是存放在存储介质上的静态指令集合,是永久的;进程是程序在数据集上的一次执行过程,是动态的、有生命周期的,会经历创建、就绪、运行、阻塞、终止等状态,B 正确、A 相反、D 错误。C 项错误,一个程序可以被多个进程并发执行,例如同一程序打开多个窗口即多个进程,多个进程也可以共享同一段程序代码。理解进程等于程序加数据加执行状态这个组合,能一次解决状态转换、并发执行、资源分配等多类题目。
第 44 题
进程从运行态转为阻塞态的原因可能是( )。
A. 时间片用完
B. 等待输入输出操作完成
C. 被更高优先级进程抢占
D. 进程被创建完成
答案:B
解析:运行态转阻塞态是进程自身主动的行为,原因是等待某个事件,例如申请输入输出、等待信号量、等待资源,B 正确。A 项时间片用完是运行转就绪,属被动剥夺。C 项被更高优先级进程抢占同样是运行转就绪。D 项新建进程是从无到有进入就绪队列。三态转换图有三种运行到其他的出口:转就绪即时间片到或被抢占、转阻塞即等待事件,以及从阻塞转就绪即事件完成后重新排队,注意不存在阻塞直接转运行的边,这几乎每年都考。
第 45 题
在进程同步中,信号量 S 的初值为 3,经过多次 P、V 操作后当前值为 0,此时表示( )。
A. 还有 3 个资源可用
B. 无资源可用,且无进程等待
C. 无资源可用,且有 3 个进程在等待
D. 资源已全部释放,等待队列已清空
答案:B
解析:信号量的值表示当前可用资源数,大于零时代表可用资源个数,等于零时表示资源刚好用完且无进程在等待,小于零时其绝对值表示正在等待的进程数。现在值为 0,说明 3 个资源全部被占用且没有进程排队等待,B 正确。C 项描述的是值为负 3 的情形。D 项错误,值为 0 意味着没有任何空闲资源可供释放,与资源已全部释放的说法相反。记住正数等于可用数、零等于刚好用完、负数绝对值等于等待数这一条,即可通吃该类题。
第 46 题
某系统采用页式存储管理,页面大小为 4KB,逻辑地址为 32 位,则页内偏移位数为( )。
A. 10 位
B. 12 位
C. 20 位
D. 22 位
答案:B
解析:页式管理中,逻辑地址分为页号与页内偏移两部分,页内偏移位数由页面大小决定:4KB 等于 2 的 12 次方字节,因此需要 12 位来编址页内任意字节,B 正确。剩余 32 减 12 等于 20 位为页号,可表示约 100 万个页面,C 项是页号位数而非偏移位数,是常见干扰项。这类换算题的通用做法是:先把页面大小写成 2 的幂,指数就是偏移位数;总位数减去偏移位数即页号位数。注意区分 4KB 与 4K 个记录:前者是 4096 字节,后者需按记录长度换算。
第 47 题
下列页面置换算法中,可能出现 Belady 异常的是( )。
A. 最佳置换算法
B. 先进先出算法
C. 最近最少使用算法
D. 时钟算法
答案:B
解析:Belady 异常指分配的物理块数增加后,缺页次数反而增多的反常现象。这一异常只出现在先进先出算法上,因为它没有考虑页面的近期使用情况,被淘汰的可能是即将访问的页,B 正确。最佳置换与最近最少使用属于栈式算法,其缺页次数随分配块数增加而单调不增,因此不会出现该异常,A 与 C 排除。D 项时钟算法是最近最少使用的近似实现,同样不会出现该异常。这个考点常以哪种算法会出现 Belady 异常或为什么先进先出会出现两种问法出现,答题时记住先进先出独有这个结论与未考虑访问历史这个原因即可。
第 48 题
在关系数据库中,若关系模式 R 属于第三范式,则它必然满足( )。
A. 每个属性都不可再分
B. 每个非主属性完全函数依赖于候选键,且不存在传递依赖
C. 不存在任何函数依赖
D. 所有决定因素都包含候选键
答案:B
解析:第三范式的定义是在满足第二范式即每个非主属性完全函数依赖于候选键的基础上,消除非主属性对候选键的传递依赖,B 正确。A 项是 1NF 的要求,属性不可再分;C 项不存在任何函数依赖的说法不成立,任何关系都必然存在函数依赖;D 项所有决定因素都包含候选键是 BCNF 的定义。范式的层级是逐级递进的:1NF 去重复字段、2NF 去部分依赖、3NF 去传递依赖、BCNF 去主属性对键的部分与传递依赖,答这类题只要把定义与级别一一对应即可。
第 49 题
事务的隔离性可能被破坏,出现一个事务读取了另一个未提交事务修改的数据的现象,这称为( )。
A. 丢失更新
B. 脏读
C. 不可重复读
D. 幻读
答案:B
解析:四类并发问题的定义要分清。脏读是读取了别的事务未提交的修改,若对方回滚则读到的数据无效,B 正确。丢失更新是两个事务同时读同一数据后各自修改并提交,后提交者覆盖前者的结果。不可重复读是同一事务内两次读同一行,因其他事务的修改或删除而结果不同,关注的是同一行的值变了。幻读是同一事务内两次执行范围查询,因其他事务插入或删除而结果集行数不同,关注的是多出或少了几行。记忆要点:脏读看提交、不可重复读看行值、幻读看行数。隔离级别由低到高的四个级别依次解决这些问题。
第 50 题
CAP 定理指出,在分布式系统中( )。
A. 一致性、可用性、分区容错性三者可以同时完全满足
B. 分区容错性无法放弃,一致性与可用性之间需要权衡
C. 分布式系统必须选择放弃可用性
D. CAP 定理只适用于关系型数据库
答案:B
解析:CAP 指一致性、可用性、分区容错性。由于网络分区在分布式系统中不可避免,分区容错性实际上是必须保证的,因此真正的取舍发生在一致性与可用性之间:金融交易倾向于保证一致性,社交与电商列表倾向于保证可用性,B 正确。A 项与定理内容直接矛盾。C 项把需要权衡说成必须放弃某一项固定选择,过于绝对。D 项错误,CAP 是针对所有分布式数据系统的普适结论。常考的延伸是 BASE 理论,即基本可用、软状态、最终一致,它是对可用性优先方向的实践总结,与传统的强一致理念相对。
第 51 题
在关系数据库设计中,为提高查询性能而建立的索引,其代价主要是( )。
A. 降低查询速度
B. 增加插入、更新、删除的开销并占用额外存储
C. 破坏数据的完整性
D. 使事务无法回滚
答案:B
解析:索引的本质是用空间换时间,同时带来写放大的代价:每次插入、更新、删除都要同步维护索引结构,如 B 加 树的节点分裂与合并,因此写操作变慢,并且索引本身占用额外存储空间,B 正确。A 项与索引的目的一致,说法相反。C 项与 D 项都不成立,索引不影响约束与事务机制。延伸考点包括:索引并非越多越好,选择性低的列如性别建索引收益小;覆盖索引可以避免回表;最左前缀原则决定联合索引的可用性;索引失效的常见原因是列上使用函数、隐式类型转换、以通配符开头的模糊匹配。
第 52 题
关于非关系型数据库,下列说法正确的是( )。
A. 它完全不支持类 SQL 语句
B. 它通常放弃强一致性,换取水平扩展能力
C. 它只能存储文档类型数据
D. 它无法保证数据的持久性
答案:B
解析:非关系型数据库的设计取向是放宽一致性要求、用最终一致换取数据分片与水平扩展能力,以支撑海量数据与高并发,B 正确。A 项错误,它的原始含义是不仅限于 SQL,很多产品提供类 SQL 查询接口。C 项错误,它按数据模型分为键值、列族、文档、图四类,文档型只是其中之一。D 项错误,持久性由持久化机制保证,与是否采用关系模型无关。选型考点上,键值型适合缓存与会话,列族型适合海量写入与宽表分析,文档型适合结构多变的内容管理,图型适合关系遍历与社交推荐。