系统架构设计师备考第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在数据交换中的优劣(考题趋势)。
相关推荐
考虑考虑6 小时前
数据库中的EXISTS
运维·数据库·后端
Wang's Blog7 小时前
Java框架快速入门: Spring Security+OAuth2之数据库和实体类的RBAC改造
java·数据库·spring
毅炼7 小时前
Rover-Suite 开源发布:轻量服务注册中心与网关一体化方案
java·后端·系统架构·gateway
梦想平凡8 小时前
百游棋牌源代码开发搭建教程(十):隔离部署、备份恢复与双端验收
java·前端·javascript·数据库·源代码管理
xcLeigh8 小时前
让大模型长出手脚,自己写SQL查数据库(Function Calling初探)
数据库·人工智能·sql·时序数据库·timechoai
yume_sibai9 小时前
06-Rust Web 开发实战(Axum 框架 + 数据库 + JWT 认证 + 中间件 + 部署)
前端·数据库·rust
AugustRed10 小时前
Neo4j 图数据库原理 + 应用场景简单介绍
数据库·neo4j
Gl�ria10 小时前
Redis 高可用架构对比
数据库·redis
IpdataCloud11 小时前
高可用的IP数据接口平台有哪些?从可用性、P99延迟到离线部署的评估框架(含代码)
数据库·tcp/ip·ip
呆萌很11 小时前
MySQL 数据库和表的管理操作(命令行)
数据库·mysql