一、数据库设计与类的设计融合
核心要点
-
类与数据模型的关系
- 类对应实体,类属性映射数据表字段,类关系(继承/组合/关联)决定表间关系设计。
- 正确识别类间关系是数据模型关键,需通过业务场景分析提炼核心实体及其交互。
-
建模的艺术性
- 无唯一"正确"模型,但存在"好模型"标准:
✅ 全生命周期成本最小化 (开发+维护+演化成本)
✅ 可扩展性 (适应业务变化,如字段增减、关系调整)
❌ 避免仅聚焦开发成本,忽视长期维护代价。
- 无唯一"正确"模型,但存在"好模型"标准:
-
设计方法论
- 迭代识别法:通过用例驱动识别候选类 → 筛选核心类 → 定义类关系 → 映射数据表结构。
- 模式复用:采用设计模式(如工厂模式)解耦业务逻辑与数据访问逻辑。
二、数据库设计与XML设计融合
XML文档分类与存储策略
| 类型 | 特点 | 适用场景 | 存储方式 |
|---|---|---|---|
| 数据为中心 | 结构规则、内容同质 | 电商订单、传感器数据 | 数据库存储(字段拆分) |
| 文档为中心 | 结构不规则、内容混合 | 产品说明书、邮件内容 | 文件存储(BLOB/CLOB) |
XML存储方案对比
-
文件存储
- 缺点:无法查询内部数据、管理困难、性能低下(全文检索效率低)。
- 适用:内容无需结构化查询的文档(如合同存档)。
-
数据库存储
- 优点:支持结构化查询、事务管理、并发控制(如Oracle XML DB)。
- 挑战 :XML嵌套结构需映射为关系表(通过
XMLSchema定义约束)。
XML作为数据库的局限
- 适用场景:小数据量、低并发需求(如配置管理)。
- 不适用场景:高并发交易系统(缺事务隔离、索引优化弱)。
- XML数据库定义:持久化XML文档集合,需符合Schema校验,支持XQuery查询。
三、物联网层次架构设计
四层核心架构
-
感知层
- 终端设备(传感器/RFID)采集数据 → 边缘计算初步处理。
- 设计重点:低功耗通信(ZigBee/LoRa)、设备轻量化协议(MQTT-SN)。
-
网络层
- 数据传输通道(4G/5G/NB-IoT) → 网关协议转换(MQTT→HTTP)。
- 安全挑战:设备认证(DTLS)、数据加密(TLS 1.3)。
-
平台层
- 设备管理(接入控制)、数据存储(时序数据库InfluxDB)、分析引擎(Spark Streaming)。
- 关键技术:规则引擎(动态响应设备事件)、API网关(开放能力)。
-
应用层
- 行业解决方案(如智能家居、工业监控) → 提供用户交互界面。
- 案例:电子小票系统通过RFID自动生成消费记录。
四、层次式架构案例分析
案例1:PetShop电商系统
- 分层设计 :
表现层 :ASP.NET MVC动态生成页面
业务层 :订单处理工作流(状态机模式)
数据层:工厂模式封装SQL Server/Oracle差异 - 亮点 :
- UIP(用户界面处理)模式统一Web/WinForm交互逻辑
- 连接池管理降低数据库开销
案例2:电子小票服务系统
- 物联网架构落地 :
- 感知层:POS机扫码/RFID标签
- 平台层:Kafka消峰处理交易流水
- 应用层:大数据分析消费行为(关联Lambda架构)
- 价值:减少纸质小票成本,实现精准营销。
考点聚焦与真题示例
-
高频考点
- 类图到数据库表的映射规则(如继承→单表/多表策略)
- XML存储选型依据(结构化程度 vs 查询需求)
- 物联网层次职责划分(感知层≠数据传输)
-
典型试题
Q: 某系统需存储不规则医疗报告(含图文混合),请选择存储方案并说明原因。
A: 选择文件存储(如MongoDB GridFS),因内容结构松散且无需深度查询,数据库存储会导致字段冗余。 -
论文写作提示
- 结合项目说明分层架构如何解决性能瓶颈(如数据库连接池优化)。
- 对比XML与JSON在数据交换中的优劣(考题趋势)。