软考之旅再进京, 二度北上赴考程(二)
/ 12 min read
27 数据库:三级模式二级映像
28 关系模型
看错了:B
29 SQL
授权权限
收回权限
视图
索引
30 关系模式
候选码
C是冗余的!把其去掉还能得到,D去掉得不到2推4!
范式
C,满足BC范式
1NF A,选错了
无损链接
31 数据库设计
52选C,属于符合属性
54选择B,确实就诊
| 阶段 | 主要任务与活动 | 作用与目的 | 核心输出物 |
|---|---|---|---|
| 需求分析 | 1. 收集用户需求(功能、性能、安全等) 2. 定义业务规则与流程 3. 确定系统边界与用户角色 4. 识别数据范围与约束 | 1. 明确需求边界,确保与用户共识 2. 为后续设计提供无歧义的输入 3. 降低后期返工风险 | 需求说明文档(SRS) 数据流图(DFD) 数据字典(初步版) 用户角色矩阵 |
| 概念设计 | 1. 创建实体关系(ER)图 2. 定义实体、属性、联系 3. 抽象业务逻辑剔除技术依赖 4. 验证一致性 | 1. 将需求转化为通用概念模型 2. 确保设计与业务对齐 3. 规划数据库逻辑框架 | ER模型图 业务规则说明书 数据分类清单 |
| 逻辑设计 | 1. 转换为关系模型 2. 定义约束(主键、外键、唯一性等) 3. 数据标准化消除冗余 | 1. 将概念模型具体化为逻辑结构 2. 确保数据完整性与一致性 3. 独立于具体数据库系统 | 数据字典(最终版) 关系模型图(含约束定义) |
| 物理设计 | 1. 选择存储结构(索引、分区、表空间) 2. 优化查询性能 3. 配置硬件资源与负载均衡 | 1. 根据DBMS特点适配设计 2. 提升性能与资源利用效率 3. 确保物理部署可行性 | 索引方案文档 分区策略方案 存储配置文档 |
| 实施阶段 | 1. 编写DDL创建表结构 2. 导入初始数据 3. 功能与性能测试 | 1. 将设计转化为可运行的数据库实例 2. 验证设计的可行性与兼容性 | DDL脚本文件 测试报告 数据导入日志 实际数据库实例 |
| 运行与维护 | 1. 监控性能/优化 2. 管理数据备份与恢复 3. 动态调整设计与修复 | 1. 保障系统长期稳定运行 2. 根据业务变化迭代设计 3. 确保数据安全与灾备能力 | 性能优化记录 备份策略文档 系统升级日志 数据异常修复记录 |
共享锁只能加共享锁、排它什么都不能加!
分布式数据库:
32 面向对象
类的分类与总结
| 类别 | 对象表示 | 主要任务与特点 |
|---|---|---|
| 实体类 | 现实世界中的真实实体(人、物) | - 存储数据,以属性为核心 - 行为较少,通常仅含 getter/setter - 无业务逻辑或极简逻辑 - 对应数据库实体或业务领域对象 |
| 接口类(边界类) | 用户或系统交互的接口 | - 提供用户或系统与系统交互的界面 - 处理输入/输出并转换格式 - 分为“人接口”和“系统接口”两类 |
| 控制类 | 协调系统活动流程 | - 管理活动流,协调其他类协作 - 不包含数据或界面逻辑 - 遵循控制类设计模式(如指挥者模式、控制器模式) |
方法重载
封装
继承、覆盖
多态
静态绑定 动态绑定
面向对象原则(背)
面向对象分析
附上说明:
| 活动名称 | 描述 | 输入/输出 | 示例 |
|---|---|---|---|
| 1. 认定对象 | 从需求、用例或场景中识别系统的核心对象(即需要建模的实体或概念)。 | 输入:用例、用户需求 输出:候选对象清单 | 例如:分析电商系统时,认定“客户”“订单”“商品”为关键对象。 |
| 2. 组织对象 | 通过类间关系(如继承、聚合、组合、关联)将对象组织成合理的层级或结构。 | 输入:候选对象 输出:类图或关系图 | 将“VIP客户”设计为“客户”的子类,体现继承关系;“订单”和“商品”通过关联关系连接。 |
| 3. 描述对象间的相互作用 | 描述对象之间如何协作完成系统功能(如调用方法、传递消息)。 | 输入:类关系 输出:交互图(如顺序图) | “订单”对象调用“支付系统”对象的“完成支付”方法,触发事务处理。 |
| 4. 确定对象的操作 | 定义每个对象对外暴露的方法或行为(例如,“登录”“删除”等操作)。 | 输入:用例/需求 输出:操作列表 | 定义“账户”类的操作:存款()、取款()、查询余额()等。 |
| 5. 定义对象的内部信息 | 确定对象的数据属性(即对象的状态信息或存储的数据)。 | 输入:用例/需求 输出:属性列表 | 定义“客户”类的属性:客户ID、姓名、联系方式等 |
33 UML
41选B 关联关系包括聚合组合
选A
多对多
类图
| 特征 | 重载(Overloading) | 覆盖(Overriding) |
|---|---|---|
| 存在范围 | 同一个类内部。 | 发生在继承关系的父子类之间(子类覆盖父类的方法)。 |
| 目的 | 提供多种参数形式,调用同一逻辑的不同变体。 | 子类提供父类方法的特定实现(多态性)。 |
43选D
对象图
用例图
| 对比项 | 包含关系(Include) | 扩展关系(Extend) |
|---|---|---|
| 定义 | 主用例必须包含被包含用例的行为,必须在执行时完成。 | 扩展用例可选附加在基础用例上,仅在满足特定条件时触发。 |
| 符号 | 箭头(主用例 → 被包含用例),标注 <<include>> 或 <<include>>: [条件]。 | 箭头(扩展用例 → 基础用例),标注 <<extend>> 并附带条件,如 <<extend>>: [条件]。 |
| 方向 | 主用例 → 被包含用例。 | 扩展用例 → 基础用例。 |
| 执行条件 | 强制执行,被包含用例是主用例的必要步骤。 | 条件执行,扩展用例仅在满足条件时触发。 |
| 触发时机 | 在主用例的固定位置插入行为(如步骤中间或结尾)。 | 在基础用例的某个点插入行为,需明确触发条件。 |
| 语义 | 表示必需的部分-整体关系,强调必要性。 | 表示可选的增强关系,强调灵活性。 |
| 适用场景 | 身份验证、数据校验等核心流程中不可或缺的功能。 | 登录后提示“忘记密码”、购物车使用优惠券、权限检查等可选功能。 |
| 关系类型 | 主用例/基础用例 | 从用例 | 条件/描述 |
|---|---|---|---|
| 包含关系 | 登录系统 | 身份验证 | 用户登录时必须执行身份验证,否则登录失败。 |
| 订单支付 | 输入支付密码 | 支付过程中必须输入并校验支付密码。 | |
| 扩展关系 | 购买商品 | 应用优惠券 | 当用户选择优惠券时,在支付前触发优惠券抵扣。 |
| 查看个人信息 | 修改密码 | 当用户选择“修改密码”选项时,在个人信息页面触发密码修改流程。 |
序列图(顺序图)
正确选项:B;应该是找箭头指向的落点!!!
通信图
状态图
活动图
构件图
43 D
部署图
分类
34 设计模式
设计模式分类
工厂模式
抽象工厂
生成器模式
原型模式
单例模式
适配器模式
桥接模式
假设我们正在开发一个绘图程序,需要支持不同的形状(如圆形、矩形)和不同的颜色(如红色、蓝色)。如果直接通过继承来实现,比如创建 RedCircle、BlueCircle、RedRectangle、BlueRectangle 等类,会导致类数量爆炸(形状和颜色的组合数量),并且难以扩展(新增一种颜色或形状需要创建多个新类)。
桥接模式可以解决这个问题:将形状(抽象)和颜色(实现)分离,通过组合的方式实现灵活的扩展。
45选A
组合模式
装饰器模式
外观模式
享元模式
代理模式
责任链模式
命令模式
解释器模式
迭代器模式
中介模式
备忘录模式
观察者模式
状态模式
策略模式
模板方法
访问者模式
35 计网
层
| 层次 | 功能 | 主要she’bei |
|---|---|---|
| 应用层 | 网关 | |
| 网络层 (Layer 3) | 负责数据包路由和转发,处理 IP 地址,决定数据路径 | 路由器 |
| 数据链路层 (Layer 2) | 在相邻节点间传输数据帧,提供错误检测和纠正,处理 MAC 地址 | 交换机 (Switch)、网桥 (Bridge)、网卡 (NIC) |
| 物理层 (Layer 1) | 传输原始比特流,定义物理连接的电气和机械特性(如电压、连接器) | 集线器 (Hub)、中继器 (Repeater)、电缆、光纤 |
协议簇
25 时间、空间复杂度