大数据

主题域模型-概念模型-逻辑模型-物理模型的理解

理解数据建模从主题域模型→概念模型→逻辑模型→物理模型的演进过程,可以类比为城市规划的四个阶段。通过这个比喻,结合具体示例,可以轻松掌握各层模型的核心要点。

1. 主题域模型:划分城市功能区

比喻
就像城市规划先划分「商业区」「住宅区」「工业区」等大板块,主题域模型是对企业数据的「高空俯视图」。

关键点

  • 做什么:识别数据的「大分类」
  • 核心输出:用业务语言描述的高层数据分组
  • 示例(以电商为例):

如何理解

  • 用户、订单、商品、支付是电商最核心的「主题域」
  • 不关心具体字段,只明确「订单与用户有关联」这种高层关系

2. 概念模型:设计区域蓝图

比喻
像绘制每个功能区的建筑类型(商场/学校/公园),概念模型定义每个主题域下的「核心实体」及其关系。

关键点

  • 做什么:明确「谁」和「谁」有什么关系
  • 核心输出实体关系图(ERD)
  • 示例

如何理解

  • 用户(USER)可以下多个订单(ORDER)
  • 订单包含多个订单项(ORDER_ITEM)
  • 每个订单项对应一个商品(PRODUCT)

3. 逻辑模型:制定建筑规范

比喻
像规定「住宅楼限高50米」「商场需配200个车位」,逻辑模型定义数据的详细规则,但不管具体用什么材料建造。

关键点

  • 做什么:设计表结构、字段、约束
  • 核心输出数据库无关的表设计
  • 示例(订单逻辑表):
表名字段类型约束
USERuser_id (PK)VARCHAR(20)NOT NULL
ORDERorder_id (PK)BIGINT关联USER.user_id
ORDER_ITEMitem_id (PK)INT关联ORDER.order_id

如何理解

  • 明确user_id是字符串,order_id是数字
  • 定义主外键关系,但不说用MySQL还是Oracle实现

4. 物理模型:施工图纸

比喻
像最终确定「用钢筋混凝土」「空调型号XX」,物理模型是具体的数据库实现方案。

关键点

  • 做什么:优化存储和性能
  • 核心输出带技术参数的DDL语句
  • 示例
CREATE TABLE `order` (
  `order_id` BIGINT PRIMARY KEY,
  `user_id` VARCHAR(20) NOT NULL,
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
  INDEX `idx_user` (`user_id`)  -- 为用户查询添加索引
) ENGINE=InnoDB PARTITION BY RANGE (YEAR(create_time));

如何理解

  • 选择InnoDB引擎、按年分区、为user_id建索引
  • 这些决策会影响实际查询速度

5. 四层模型快速对比

阶段核心问题类比工具示例是否依赖技术选型
主题域模型数据有哪些大类?城市功能区规划思维导图
概念模型实体间如何关联?区域蓝图ER图
逻辑模型数据详细规则是什么?建筑规范Excel表设计
物理模型如何高效存储和查询?施工图纸SQL DDL

6. 实际案例串联(电商系统)

  1. 主题域:确定有「用户」「订单」「商品」三大块
  2. 概念模型:画ER图表示用户可下多个订单
  3. 逻辑模型:设计USER表、ORDER表及其字段
  4. 物理模型:决定ORDER表用MySQL分库分表

记忆口诀

  • 主题域:分大类(What)
  • 概念模型:画关系(Who with Who)
  • 逻辑模型:定规则(How to Define)
  • 物理模型:搞落地(How to Implement)

通过这种分层理解,既能避免过早陷入技术细节,又能确保最终落地可行性。就像城市规划不能直接跳到选建材,数据建模也需要逐层细化。