← 返回专题目录DR.01 · 2026-09-07公开资料研究 · 不构成投资建议
一级市场投资复盘 · 行业深度研究 · 数据的基础设施系列 01/8

一切从记账开始:数据库的前世

企业是怎么开始跟数据打交道的?从纸质台账到关系型数据库,讲清「数据库」这个所有后续故事的起点:为什么它从不记错账,以及为什么它天生只擅长处理一笔。

系列 数据的基础设施(第四专题) 发布 自媒体公开版 研究方法 公开财报 + 厂商案例库 + 行业对比

第一篇 · 一切从记账开始

在讲 Snowflake、Databricks、向量数据库这些名词之前,我们必须回到最原始的问题:一家企业,是怎么开始跟数据打交道的?这一篇从纸质台账讲到关系型数据库,解释一个多数人日用而不知的东西——数据库到底是什么、它解决了什么问题、以及为什么全世界的程序员都在用同一种语言跟它说话。

本篇要回答的问题

1. 数据库到底是个什么东西?它比 Excel 强在哪?
2. 「关系型数据库」这个词为什么听起来玄,实际却是最符合人类直觉的发明之一?
3. 什么叫 OLTP(业务数据库)?为什么说它是「超市收银台」?
4. 数据为什么会「堆积」,堆积之后的第一缕麻烦是什么?

本篇速览

1数据的原始形态是账本,账本最大的敌人不是丢,而是——改一笔,前后页就都对不上了。
2计算机接管记账后,最先出现的问题是「两个人同时改一个格子怎么办」——Excel 永远解决不了这个。
31970 年一位 IBM 研究员提出「把数据组织成一张张表格」,这个看似平淡的想法统治了行业五十年。
4关系型数据库靠三条铁律立身:数据不丢(持久)、账目不乱(一致)、多人同时用不出错(并发)——行话叫 ACID,你只需记住「它从不记错账」。
5全行业用一种语言(SQL)跟所有数据库说话,这造就了 Oracle 的霸权和后来开源(MySQL)的起义。
6但业务数据库天生只擅长「处理一笔」,不擅长「回看一亿笔」——数据越堆越多,一个全新的问题开始发芽,那是第二篇的主角。

一、账本时代:数据最原始的形态

想象 1985 年的一家百货商店。每一笔销售记录在一张纸质单据上:商品、数量、单价、金额、售货员。晚上关门后,会计把这些单据汇成日报表,月底再汇成月报表。进货同样有账:库存台账记着每个商品的进出。

这套体系运转了人类商业几百年,它有两个与生俱来的特点。第一,「记」和「查」是分开的:写账很快(往本子上记一笔),但查账很慢(想知道「王师傅这个月卖了多少」要翻遍整个月的单据)。第二,改账是大事件:记错了一笔,不能直接擦掉,而是用红笔划掉重写,旁边签名——因为账本是一条证据链,任何无痕的修改都会让整本账的可信度崩塌。

这两个特点——写入快、查询慢;改动必须可追溯——几乎是刻在商业数据骨子里的基因。你后面会看到,五十年后所有的数据技术,本质上都在处理这两个问题的现代版本。

二、计算机接管记账:文件时代的天真尝试

1980 年代末,个人计算机进入企业。第一反应非常自然:把账本变成电子表格。每笔销售存成一个文件,库存一个文件,客户名单一个文件。这比纸质账本快得多,也好查得多——按 Ctrl+F 就能找到「王师傅」。

但生意一大,电子文件立刻暴露出纸质账本没有的新问题,而且一个比一个致命:

文件时代的四大灾难

灾难一:两个人同时改一个文件。销售部小李更新了客户电话,财务部老王同时也在编辑同一个文件保存——老王保存的瞬间,小李的修改被覆盖没了。文件系统对此毫无办法。

灾难二:同一个事实存了好几份。客户的地址在销售文件里存一份,在发货文件里存一份,在售后文件里又存一份。客户搬家了,改了销售那份,另外两份忘了改——从此公司里流传着三个不同版本的这个客户地址,没人知道哪个是真的。

灾难三:改格式牵一发动全身。销售文件里「手机号」字段是 11 位,现在要加国际区号,改成 15 位——所有读这个文件的程序(财务系统、报表程序)全都要跟着改代码,改漏一个就崩溃。

灾难四:断电了怎么办。写到一半断电,这个文件可能只有半条记录——账本记一半,比不记还糟糕。

这四个灾难的本质是同一句话:当多个人、多个程序同时共享同一份数据时,需要一个公正的中间人来管理。这个中间人,就是数据库。

三、1970 年的那篇论文:把数据组织成表格

中间人的设计蓝图,来自 1970 年 IBM 研究员埃德加·科德(Edgar Codd)的一篇论文。他提出的思想朴实到令人意外:把所有数据组织成一张一张的二维表格——每一行是一条记录,每一列是一个属性,表与表之间用公共字段相互引用。

你可能觉得这不是废话吗?Excel 不就是表格?但科德的表格和 Excel 的表格有本质区别,恰恰对应文件时代的四大灾难:

表:Excel 表格 vs 关系型数据库——四个灾难的解法
文件时代的灾难关系型数据库的解法
两人同时改一个文件数据库内置「锁」机制:小李改这条记录时自动加锁,老王排队——每个人看到的永远是完整一致的数据
同一事实存多份「客户地址」只存在一张「客户表」里,其他表只存客户编号(外键)——地址只此一份,改一处全局生效
改格式牵一发动全身数据(表)与程序分离——程序通过统一的语言(SQL)向数据库要数据,不关心数据怎么存;改表结构不影响程序逻辑
断电写一半事务日志:每笔操作先写日志再改数据,断电重启后按日志恢复——要么整笔完成,要么当作没发生

这四条解法合在一起,就是行话里的 ACID:原子性(一笔操作要么全成要么没发生)、一致性(任何时刻账目自洽)、隔离性(多人同时操作互不干扰)、持久性(确认成功就绝不丢)。翻译成人话就一句:它从不记错账。

科德的另一个深远贡献是 SQL(Structured Query Language,结构化查询语言)。你向数据库要数据,说的是这样一句话:

SELECT 姓名, SUM(金额) FROM 销售记录 WHERE 售货员='王师傅' AND 月份='1月' GROUP BY 姓名;

翻译成人话:「从销售记录表里,把王师傅 1 月的销售额加总告诉我。」注意这句话的妙处:你只描述你要什么,不描述怎么找——翻哪些页、用什么索引、内存怎么调度,全是数据库自己的事。这门语言后来成了全行业的通用语:Oracle、DB2、SQL Server、MySQL、PostgreSQL,乃至五十年后的 Snowflake 和 Databricks,全都说 SQL。一门语言统治一个行业五十年,这让数据库成为人类商业世界里标准化的最大成功案例之一。

四、OLTP:业务数据库的日常

有了关系型数据库,企业数字化开始铺开:销售系统、库存系统、财务系统、人事系统……每个系统背后都是一个数据库。这一类数据库的工作模式,行话叫 OLTP(Online Transaction Processing,联机事务处理)——名字唬人,实质就是「处理一笔一笔的业务」:收银台扫一笔码记一笔账,客服改一个地址,仓库出入一件货。

OLTP 的特征决定了它的设计取向:单次处理的数据量很小(一笔订单几十个字段),但要求极快、极高并发、绝对可靠——超市收银台一次处理 3 秒可以接受,卡死 30 秒就是事故;双十一零点每一秒都是几千笔下单,一秒都不能乱。为这些目标优化的数据库(Oracle、DB2、MySQL、PostgreSQL)在过去的五十年里支撑了全世界的商业运转。

这里有一个对后文极其重要的观察:OLTP 数据库是「活在当下」的。它记的是此刻发生的业务,为了保持速度,它往往只保留最近的热数据(几年前的历史订单会被归档移走);它的表格结构为「快速写一笔」设计,而不为「扫描全部历史找规律」设计。换句话说——数据的「账本」和「档案室」天生应该是两个房间。但绝大多数企业起步时并不知道这一点,他们把档案室和收银台设在了同一个房间。麻烦,就是从这里开始的。

五、Oracle 的霸权与开源的起义

1990 年代到 2000 年代,数据库市场是 Oracle 的天下。它的商业模式在那个年代无懈可击:软件按 CPU 数量收授权费,大型企业一套系统授权费加服务费动辄数百万美元,还要每年付 22% 的维护费。全球的银行、电信、政府都跑在 Oracle 上——它稳定、强大,而且你已经离不开它(所有业务系统都建在它上面,换数据库等于心脏移植)。

这种「稳」与「锁」并存的格局,催生了两个历史性的变量。第一个是开源:MySQL(1995)和 PostgreSQL(1996 年以今天形态发布)以免费授权、功能够用的姿态,吃下了互联网时代的大部分新增市场——你今天用的每一个 App,背后的业务数据库大概率是这两者之一。第二个变量来自 Google:2000 年代初,Google 面对的「数据」已经不是 OLTP 能理解的东西了——全网网页的索引、全球用户的搜索日志,规模以 TB、PB 计,且不需要「事务」这种东西(网页索引记错了刷新一遍就好,不存在「账目对不上」)。Google 为此发明了一套全新的技术路线,并在 2003–2006 年间发表了三篇论文(俗称「三驾马车」)。

这三篇论文的影响极其深远——它们直接催生了 Hadoop,开启了「大数据」这个概念,也埋下了数据湖的种子。但那是第二篇和第三篇的内容。

在本篇收尾之前,请记住这个时间线上微妙的错位:当 OLTP 世界已经百花齐放时,「分析」这个需求还挤在业务数据库的角落里艰难生长。分析师想要一张「过去五年每个城市每个品类的销售趋势」报表,只能在业务库上跑一个长查询——查询跑起来,整张表被锁住,收银台跟着卡顿。于是企业的妥协方案是:让分析师在夜里跑报表(业务低峰期),或者把数据导出到 Excel 里自己算。

数据还在堆积,而且是以指数速度堆积。收银台房间里的档案已经堆到了天花板——一个专门给「分析」盖的房间,呼之欲出。

本篇小结:三个带走的概念

数据库 = 管多人共用数据的公正中间人:它的核心价值是 ACID(从不记错账),不是「存得快」。
SQL 是数据世界的通用语:你描述要什么,不描述怎么找——这个抽象让数据库五十年换了好几代,上层业务几乎无感。
OLTP 数据库「活在当下」:它为「快速处理一笔」而生,天生不擅长「回看一亿笔」——分析需要自己的房间,这是下一篇的主题。

数据来源与口径说明

本篇历史事实(科德 1970 论文、ACID、Oracle 商业模式、MySQL/PostgreSQL 发布时间、Google 三驾马车论文时间)为数据库行业公认史实,可在 Wikipedia「Relational database」「SQL」词条及 Oracle 公司公开资料交叉验证。类比(收银台/财务分析部、账本红线规则)为本文原创科普表达。

系列下一篇 · 《数据仓库:分析的觉醒》——为什么企业宁可把数据搬一次家,也要给分析单独盖一个房间?Teradata 一体机凭什么卖到百万美元级?以及「数据孤岛」这个所有故事的起源。

本文首发:2026-09-07 | 期号 DR.01 | 版权归 头哥投研(touge.com.cn)所有
本文首发:2026-09-07 | 期号 DR.01 | 版权归 头哥投研(touge.com.cn)所有