历史脉络:从网状模型到云原生

kp-028 · 工程实践与历史脉络入门约 20 分钟已校对

前置知识点

前置:

相关知识点

相关:

学习进度:

一句话定义

数据库六十余年的主线是三次范式转移:1960s 导航式(网状/层次)→ 1970s Codd 关系革命 → 2000s NoSQL 运动 → 2010s 起的 NewSQL/云原生合流,每一代都是对上一代「痛点 + 硬件变化」的回应。

为什么重要

前置知识

kp-001(DBMS 基本概念)。

核心概念

原理与机制

每次转移的驱动公式是「负载 × 硬件 → 架构」。导航式模型对应内存稀缺、磁盘昂贵的年代——程序员手工导航以榨取性能,代价是应用与物理结构焊死。Codd 的洞察是「数据独立性可以外包给优化器」:声明式查询让系统按统计信息自选路径,硬件进步(大内存、缓存)使这一开销可接受,关系模型因此在 1980s 商业上全面胜出——Stonebraker 后来把这段总结为「市场奖励了正确抽象」。NoSQL 运动的驱动是 Web 规模:单机垂直扩展到达极限,Bigtable/Dynamo 用分区 + 弱一致换取水平扩展,暂时搁置了 SQL 与事务。随后 Spanner 用 GPS 原子钟 + Paxos 证明「扩展与强一致可以兼得」,行业重新拥抱 SQL——轮子转回来的原因不是怀旧,而是声明式查询与事务语义仍是人类管理数据的最优抽象。

实例或案例

三代系统的同一需求对比:「查询余额大于 1000 的客户」。IMS/CODASYL:程序员写导航代码,从客户根沿指针逐条访问,改存储结构代码作废。SQL:SELECT name FROM customers WHERE balance > 1000,索引有无、扫描方式全部交给优化器。Dynamo 风格 KV:甚至无法直接表达该查询,需维护二级索引或全量扫描——这解释了为什么 NoSQL 浪潮在分析需求面前撞墙、又转回 SQL。

常见误区

自测题

  1. 关系模型战胜网状模型的决定性优势是什么? 答:数据独立性——声明式查询 + 优化器把物理决策从应用剥离,应用不再随存储结构变化而重写。
  2. NoSQL 运动与 NewSQL 回潮各自回应了什么矛盾? 答:NoSQL 回应「单机到不了 Web 规模」,牺牲一致性与查询力换扩展;NewSQL 回应「扩展不该以放弃事务与 SQL 为代价」。

公式或模型

本节不适用:本知识点是思想史,定量模型属于各技术专题。

图示

1966IMS 层次 1970Codd 关系模型 1980s关系库商业胜利 2006-07Bigtable / Dynamo 2012Spanner 2020s云原生 / Serverless
数据库历史时间轴:每次转折都是「负载与硬件变化 → 架构回应」

直观类比

数据库演化像城市交通变迁:导航式模型是「背下每条小巷」的年代;关系模型是「画出地图 + 导航软件」——你只要说去哪,路线交给算法;NoSQL 像为外卖骑手专修的快速路(只优化一种走法);NewSQL 则是把导航算法装回快速路网。

与其他知识点的关系

kp-027 是本时间轴末段(NoSQL→NewSQL)的机制展开;kp-002、kp-013 分别对应 Codd 关系模型与 System R 优化器的遗产;kp-030 的选型观(按负载特化)正是历史给出的元结论。

延伸阅读