系统架构设计师备考第55天——数据库设计融合&物联网层次架构&案例分析

一、数据库设计与类的设计融合

核心要点
  1. 类与数据模型的关系

    • 类对应实体,类属性映射数据表字段,类关系(继承/组合/关联)决定表间关系设计。
    • 正确识别类间关系是数据模型关键,需通过业务场景分析提炼核心实体及其交互。
  2. 建模的艺术性

    • 无唯一"正确"模型,但存在"好模型"标准:
      全生命周期成本最小化 (开发+维护+演化成本)
      可扩展性 (适应业务变化,如字段增减、关系调整)
      ❌ 避免仅聚焦开发成本,忽视长期维护代价。
  3. 设计方法论

    • 迭代识别法:通过用例驱动识别候选类 → 筛选核心类 → 定义类关系 → 映射数据表结构。
    • 模式复用:采用设计模式(如工厂模式)解耦业务逻辑与数据访问逻辑。

二、数据库设计与XML设计融合

XML文档分类与存储策略
类型 特点 适用场景 存储方式
数据为中心 结构规则、内容同质 电商订单、传感器数据 数据库存储(字段拆分)
文档为中心 结构不规则、内容混合 产品说明书、邮件内容 文件存储(BLOB/CLOB)
XML存储方案对比
  • 文件存储

    • 缺点:无法查询内部数据、管理困难、性能低下(全文检索效率低)。
    • 适用:内容无需结构化查询的文档(如合同存档)。
  • 数据库存储

    • 优点:支持结构化查询、事务管理、并发控制(如Oracle XML DB)。
    • 挑战 :XML嵌套结构需映射为关系表(通过XMLSchema定义约束)。
XML作为数据库的局限
  • 适用场景:小数据量、低并发需求(如配置管理)。
  • 不适用场景:高并发交易系统(缺事务隔离、索引优化弱)。
  • XML数据库定义:持久化XML文档集合,需符合Schema校验,支持XQuery查询。

三、物联网层次架构设计

四层核心架构
  1. 感知层

    • 终端设备(传感器/RFID)采集数据 → 边缘计算初步处理。
    • 设计重点:低功耗通信(ZigBee/LoRa)、设备轻量化协议(MQTT-SN)。
  2. 网络层

    • 数据传输通道(4G/5G/NB-IoT) → 网关协议转换(MQTT→HTTP)。
    • 安全挑战:设备认证(DTLS)、数据加密(TLS 1.3)。
  3. 平台层

    • 设备管理(接入控制)、数据存储(时序数据库InfluxDB)、分析引擎(Spark Streaming)。
    • 关键技术:规则引擎(动态响应设备事件)、API网关(开放能力)。
  4. 应用层

    • 行业解决方案(如智能家居、工业监控) → 提供用户交互界面。
    • 案例:电子小票系统通过RFID自动生成消费记录。

四、层次式架构案例分析

案例1:PetShop电商系统
  • 分层设计
    表现层ASP.NET MVC动态生成页面
    业务层 :订单处理工作流(状态机模式)
    数据层:工厂模式封装SQL Server/Oracle差异
  • 亮点
    • UIP(用户界面处理)模式统一Web/WinForm交互逻辑
    • 连接池管理降低数据库开销
案例2:电子小票服务系统
  • 物联网架构落地
    • 感知层:POS机扫码/RFID标签
    • 平台层:Kafka消峰处理交易流水
    • 应用层:大数据分析消费行为(关联Lambda架构)
  • 价值:减少纸质小票成本,实现精准营销。

考点聚焦与真题示例

  1. 高频考点

    • 类图到数据库表的映射规则(如继承→单表/多表策略)
    • XML存储选型依据(结构化程度 vs 查询需求)
    • 物联网层次职责划分(感知层≠数据传输)
  2. 典型试题

    Q: 某系统需存储不规则医疗报告(含图文混合),请选择存储方案并说明原因。
    A: 选择文件存储(如MongoDB GridFS),因内容结构松散且无需深度查询,数据库存储会导致字段冗余。

  3. 论文写作提示

    • 结合项目说明分层架构如何解决性能瓶颈(如数据库连接池优化)。
    • 对比XML与JSON在数据交换中的优劣(考题趋势)。
相关推荐
WX-bisheyuange1 天前
基于Spring Boot的智慧校园管理系统设计与实现
java·大数据·数据库·毕业设计
JavaGuide1 天前
对标MinIO!全新一代分布式文件系统诞生!
数据库·后端
喵个咪1 天前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:基于 Ent 从零实现新服务
后端·go·orm
快乐非自愿1 天前
数据库如何处理大量的交易流水记录
数据库·oracle
IvorySQL1 天前
瀚高硬核助力 PG 社区:Postgres 19 迎来并行 TID 范围扫描,速度提升 3 倍
数据库·postgresql·开源
ServBay1 天前
MongoDB 的文档模型与 CRUD 实战
数据库·后端·mongodb
ITMr.罗1 天前
深入理解EF Core更新机制(开发中因为省事遇到的问题)
服务器·数据库·c#·.net
梁萌1 天前
MySQL索引的使用技巧
数据库·mysql·索引·b+tree
x10n91 天前
OceanBase 参数对比工具 附源码
数据库·vscode·oceanbase·腾讯云ai代码助手
RestCloud1 天前
如何用ETL做实时风控?从交易日志到告警系统的实现
数据库·数据仓库·kafka·数据安全·etl·数据处理·数据集成