首页 新闻 会员 周边

人类管理数据方式的四次重大进化:逻辑模型有层次模型,网状模型,关系模型和面向对象模型

0
[已关闭问题] 关闭于 2026-03-22 19:42
  • 全球财富 500 强的核心系统(银行转账、航空订票、电信计费):99% 运行在关系型数据库上。
  • 原因:只有关系模型能提供严格的 ACID 事务(原子性、一致性、隔离性、持久性),保证钱不会算错,票不会超卖。面向对象模型和文档模型在强一致性事务处理上,天然不如关系模型成熟。
*Tesla*的主页 *Tesla* | 小虾三级 | 园豆:1560
提问于:2026-03-22 19:41
< >
分享
所有回答(1)
0
我们可以把它们看作数据库发展的“四代王朝”:

1. 👴 第一代:层次模型 (Hierarchical Model)

  • 诞生时间:1960年代末 (代表:IBM 的 IMS 系统)。
  • 核心结构:树形结构 (Tree)。
    • 就像公司的组织架构图或电脑里的文件夹目录。
    • 特点:
      • 有且仅有一个根节点 (Root)。
      • 除了根节点,每个节点有且仅有一个父节点 (1:N 关系)。
      • 子节点可以有多个子节点。
  • 优点:结构简单,查询路径固定时效率极高。
  • 缺点:
    • 太死板:只能表示“一对多”,很难表示“多对多”(比如一个学生选多门课,一门课有多个学生)。
    • 冗余大:如果要表示多对多,必须重复存储数据。
    • 导航复杂:查数据必须从根节点一层层往下找,像走迷宫。
  • 现状:基本淘汰,但在某些遗留系统(如银行老核心系统)中还能看到影子。

2. 🕸️ 第二代:网状模型 (Network Model)

  • 诞生时间:1970年代初 (代表:CODASYL DBTG 标准)。
  • 核心结构:网状结构 (Graph/Network)。
    • 就像一张蜘蛛网或交通路线图。
    • 特点:
      • 允许一个节点有多个父节点。
      • 可以直接表示“多对多”关系。
  • 优点:比层次模型灵活,能更直接地描述现实世界的复杂关系。
  • 缺点:
    • 极其复杂:结构太乱,程序员必须清楚知道数据之间的每一条连线(指针)才能写代码。
    • 维护困难:一旦数据结构变动,所有程序都要重写。
    • 用户不友好:只有专家能用,普通业务人员根本搞不懂。
  • 现状:已淘汰。因为它太复杂,被后来的关系模型彻底取代。

3. 🏆 第三代:关系模型 (Relational Model) —— 【当今霸主】

  • 诞生时间:1970年 (E.F. Codd 提出),1980年代爆发。
  • 核心结构:二维表 (Table)。
    • 就像 Excel 表格。
    • 特点:
      • 数据存在行和列中。
      • 表与表之间通过公共字段(外键)关联,而不是物理指针。
      • 基于严格的数学理论(集合论、关系代数)。
  • 优点:
    • 简单直观:谁都能看懂表格。
    • 独立性强:逻辑结构和物理存储分离,改结构不影响程序。
    • 语言强大:发明了 SQL 语言,非程序员也能查数据。
    • 灵活:轻松处理各种复杂关系。
  • 缺点:在处理超大规模非结构化数据或极高性能要求的场景下,有时需要牺牲一点灵活性(需要范式设计)。
  • 现状:绝对统治地位。
    • 代表产品:MySQL, Oracle, SQL Server, PostgreSQL, SQLite。
    • 你目前学的、工作中用的,90% 以上都是关系型数据库。

4. 🧱 第四代:面向对象模型 (Object-Oriented Model)

  • 诞生时间:1980年代末 - 1990年代。
  • 核心结构:对象 (Object)。
    • 就像编程语言(Java, C++)里的类 (Class) 和 对象。
    • 特点:
      • 数据 + 操作(方法)封装在一起。
      • 支持继承、多态、复杂数据类型(如直接存一个“图片对象”或“地图对象”)。
  • 优点:
    • 无缝衔接:和面向对象编程语言完美匹配,没有“阻抗失配”问题(不用把对象拆成表,也不用把表组装成对象)。
    • 适合复杂数据:非常适合 CAD(计算机辅助设计)、GIS(地理信息)、多媒体应用。
  • 缺点:
    • 门槛高:理论复杂,查询语言不统一。
    • 生态弱:没有像 SQL 那样统一的通用语言,工具链不如关系型成熟。
  • 现状:小众但在特定领域活跃。
    • 纯面向对象数据库(如 db4o, ObjectDB)用得不多。
    • 但是! 它的思想被融合了:
      • 对象 - 关系数据库 (ORDB):如 PostgreSQL, Oracle,在关系型基础上支持对象特性。
      • 文档数据库 (NoSQL):如 MongoDB,其实可以看作是面向对象思想的现代变种(存的是 JSON 文档,类似对象)。

为什么关系模型能赢?

你可能会问:“网状模型明明更灵活,面向对象模型明明更符合编程习惯,为什么最后是看起来最简单的‘表格’(关系模型)赢了?”
答案是:“简单”就是最大的力量。
  1. 数学之美:关系模型有坚实的数学基础,保证了数据的正确性。
  2. 数据独立性:它把“怎么存”(物理)和“怎么看”(逻辑)分开了。改底层存储不用改代码。
  3. SQL 的诞生:让用户只需要说“我要找姓张的人”,而不需要告诉电脑“先去A房间,再走左边通道找B房间”。

🔮 现在的趋势是什么?

虽然关系模型是霸主,但现在的世界是混合模式:
  • 核心交易(如转账、订单):依然用 关系模型 (MySQL/Oracle),因为要保命(数据一致性)。
  • 海量日志、社交动态、推荐系统:开始用 文档模型/宽表模型 (MongoDB, HBase, Cassandra),这些其实是面向对象模型思想的延伸(NoSQL运动)。
  • 知识图谱、社交网络分析:重新启用了 图模型 (Neo4j),这其实是网状模型的现代复活版(但好用多了)。
*Tesla* | 园豆:1560 (小虾三级) | 2026-03-22 19:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册