易君召
易君召
发布于 2026-07-24 / 0 阅读
0
0

SQL 语言对应的常用数据模型

SQL 是关系型数据库的标准查询语言,核心配套数据模型以关系模型为核心,同时衍生、配套多种落地 / 扩展数据模型,分基础核心模型、扩展衍生模型两类说明:

一、核心基础:关系模型(Relational Model)

所有标准 SQL(MySQL/Oracle/SQL Server/PostgreSQL)底层原生使用的数据模型,由 E.F.Codd 提出,是 SQL 的本源模型。

核心特征

  1. 数据存储在二维表(关系) 中:行 = 记录,列 = 字段;

  2. 表之间通过主键、外键建立关联;

  3. 严格遵循三大范式,减少数据冗余;

  4. 支持标准 SQL:DDL/DML/DCL,事务 ACID;

适用场景

传统业务系统、财务、ERP、订单、用户管理等强一致性场景。

二、SQL 体系下可兼容 / 扩展的衍生数据模型

很多现代数据库(PostgreSQL、MySQL 8.x、SQL Server)支持混合存储,一套 SQL 语法操作多种模型:

1. 文档模型(Document Model)

代表:PostgreSQL JSONB、MySQL JSON、SQL Server JSON

  • 数据以 JSON/JSONB 文档存储,单条记录嵌套对象、数组;

  • 兼容 SQL 查询,同时支持 JSON 专属函数;

  • 适合结构灵活、频繁变更字段的业务(商品属性、用户标签)。

2. 键值模型(Key-Value Model)

代表:PostgreSQL hstore、SQL Server 内存 KV 表

  • 极简结构:唯一 Key 对应 Value;

  • SQL 可完成增删改查,查询性能极高;

  • 缓存、简单配置数据专用。

3. 图模型(Graph Model)

代表:PostgreSQL Apache AGE、SQL Server Graph Database

  • 核心元素:顶点(实体)、边(实体关系)

  • 支持标准 SQL + 图查询语法(Cypher 兼容);

  • 社交关系、供应链、风控链路、知识图谱场景。

4. 时序模型(Time-Series Model)

代表:TimescaleDB(PostgreSQL 插件)、InfluxDB SQL 版

  • 数据以时间戳为主索引,按时间分区存储;

  • 原生 SQL 聚合函数(按小时 / 天统计);

  • 物联网设备指标、服务器监控、传感器数据。

5. 多维分析模型(星型 / 雪花模型,数据仓库专用 SQL 模型)

面向 OLAP 数据仓库(Hive SQL、Spark SQL、Redshift),属于关系模型的业务分层范式:

  1. 星型模型:1 张事实表 + 多张维度表,维度表不拆分,结构简单,查询快;

  2. 雪花模型:星型模型扩展,维度表进一步拆分子维度,冗余更低,结构复杂;

    适用:大数据报表、经营分析、数据看板。

三、补充区分:易混淆知识点

  1. SQL ≠ 仅关系模型

    传统狭义 SQL 只对应关系模型;现代 SQL(ANSI SQL 2016+)规范已纳入文档、图、时序等扩展类型,一套 SQL 操作多模型。

  2. 非 SQL 数据库(NoSQL)

    纯 NoSQL 原生不支持 SQL:MongoDB(纯文档)、Redis(纯 KV)、Neo4j(纯图);但如今大部分 NoSQL 也推出 SQL 兼容层(Mongo SQL、Redis SQL)。

总结

  1. 基础必背:关系模型(SQL 标准原生模型);

  2. OLAP 数仓专用:星型模型、雪花模型;

  3. 现代数据库扩展模型(SQL 兼容):文档模型、键值模型、图模型、时序模型。


评论