系统架构设计师备考第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在数据交换中的优劣(考题趋势)。
相关推荐
cookqq11 小时前
MySQL 5.7 大表删除部分数据:.ibd 文件会变小吗?磁盘会释放吗?
数据结构·数据库·mysql
IT 行者11 小时前
告别硬编码!Spring Boot 优雅实现 Controller 路径前缀统一管理
数据库·spring boot·python
曹牧11 小时前
Oracle 大表数据分区存储
数据库·oracle
win x12 小时前
Redis 持久化
数据库·redis·缓存
程序猿202312 小时前
MySQL的锁(行锁)
数据库·mysql
乐鑫科技 Espressif12 小时前
基于 ESP-ZeroCode 的 RED-DA 合规 Matter 设备
物联网·安全·乐鑫科技
W001hhh12 小时前
数据库实训Day005下午
数据库
lechcat12 小时前
多角色协同巡检流程设计技术教程
大数据·数据库·数据挖掘
小沈同学呀12 小时前
基于时间片划分的提醒算法设计与实现
服务器·数据库·算法
曹牧12 小时前
Oracle:单一索引和联合索引
数据库·oracle