图灵奖得主埃德加·弗兰克·科德:那个把世界画进表格,再递给AI当早餐的人
您想知道的人工智能干货,第一时间送达


“埃德加·弗兰克·科德(Edgar Frank (Ted) Codd,1923年8月19日——2003年4月18日),出生于英格兰波特兰岛,1981年图灵奖得主,是享誉全球的计算机科学家,他发明的关系模型奠定了现代数据库管理系统的理论基础,被誉为"关系数据库之父",美国国家工程院院士,美国艺术与科学院院士,生前是IBM(国际商业机器公司)研究员。”
01. 人物介绍
在数字还没有名字的年代,他就为AI准备好了“食材”
在很久很久以前——其实也不算太久,大约是二十世纪中叶——世界上还没有“软件”这个词,也没有“数据库”这个概念。
那时候,计算机是庞然大物,塞满整间屋子,嗡嗡作响,比一台冰箱还要笨拙。人们往它肚子里塞打孔卡片,像喂一个挑食的巨人。每一条信息都被锁在复杂的路径迷宫里,你想找到它,得先记住它藏在哪里——就像你记得外婆把老照片放在阁楼第几个铁盒里,而不是照片本身的内容。
那时候,程序员写代码,不是在键盘上敲击,而是在纸上画流程图,然后用打孔机在卡片上打洞。一摞卡片代表一个程序,掉在地上就全乱了——没有“撤销”键,没有“保存”按钮,只有一颗悬着的心。
那时候,数据是一片没有地图的荒野。
每一个公司、每一个实验室都在用自己的方式存放数据。有的像一棵倒挂的树,根在上,叶在下,你要摘一片叶子,得先爬过所有枝杈。有的像一张错综复杂的网,信息与信息之间纠缠在一起,拉一根线,整个网都在颤抖。
人们习惯了这种混乱,他们甚至不知道混乱是可以被治愈的。
后来,有一个当过飞行员的人,从天上落下来,走进了这片荒野。他没有带砍刀,没有带指南针,只带了一样东西——
一张纸,和一支笔。
他在纸上画了一个又一个方方正正的表格。表格有行,有列,行与列交汇的地方,放着一个信息。表格与表格之间,用一根看不见的线轻轻系着。
他抬起头,说:世界可以这样被整理。
没有人相信他。
IBM的高管们摇头,说这玩意儿跑不快。竞争对手们嘲笑,说这是学术书呆子的白日梦。甚至他身边的同事也觉得可惜——这么好的脑子,怎么去研究这么“没用”的东西?
但他没有收起那张纸。
他继续画,画了一年,两年,十年。画到头发白了,画到格子衬衫的袖口磨出了毛边。
他不知道的是,在他画表的那些年里,有人正在另一条路上种下另一颗种子——那颗种子叫“人工智能”。两条路当时隔得很远,远到互相看不见。
很多很多年后,它们会汇合。
而汇合的那座桥,就是他画的那些表格。
——这是关于埃德加·弗兰克·科德的故事。一个为后来所有智能,悄悄打好地基的人。
一、海风、机翼与代码
1. 波特兰岛的男孩

1923年8月19日,英格兰多塞特郡。
波特兰岛是一座狭长的岛屿,像一条搁浅的鲸鱼,趴在英吉利海峡的南端。岛上多石楠,多海风,多石灰岩。采石场从罗马时代就存在了,运出去的石头铺成了白金汉宫的地基。
埃德加·弗兰克·科德出生在这里。父亲是皮革商人,母亲是一名教师。家境不算富裕,但也不窘迫。家里有一本厚厚的数学手册,是父亲年轻时的旧物。科德七岁那年,翻开了那本书。
他看不太懂,但他喜欢那些符号。它们安静、精确、从不模棱两可。一个等号就是等号,一个加号就是加号。不像大人的话——明明说“好”,听起来却像“不好”。
后来他上了小学。老师发现这个孩子对数字有一种奇特的敏感。不是算得快——他算得不算快——而是他能看见数字之间的关系。就像有人天生能分辨音高,他能分辨数学结构。
“这孩子将来会成为一个数学家。”老师说。
科德的母亲听了,笑了笑。她不知道数学家是做什么的,但她觉得,只要是儿子喜欢的事,就是好事。
2. 天空教会他的事

1941年,科德十八岁。
战争像一片乌云,从欧洲大陆飘过来,罩住了整个英国。每天都有空袭警报,每天都有飞机从头顶呼啸而过。年轻的男人们穿上军装,告别家乡,不知道能不能回来。
科德报名参加了英国皇家空军,他被选为飞行员。
飞行训练在加拿大进行。那里天很蓝,地很阔,雪很深。他第一次驾驶教练机升空的时候,手心全是汗。但当他拉平机翼,看见云层在脚下铺展开来,像一片白色的棉田,他忽然不紧张了。
天空教会他一件事:混乱中藏着秩序。
气流看似随机,但有规律可循。云层的形状不是随意的,它告诉你有上升气流还是下降气流。仪表盘上的指针在跳动,但每一个跳动都有意义。你要做的,不是对抗混乱,而是找到混乱背后的那条线,然后顺着它走。
他后来把这种直觉用在了数学上,用在了编程上,用在了数据库上。
战争期间,他执行过多次飞行任务。具体飞过多少次,飞到哪里,做过什么——他晚年很少提起。战争对他而言,不是勋章,不是荣耀,只是一段需要穿越的时间。
但他确实活了下来。
1945年,战争结束。他脱下飞行服,回到牛津大学。坐在安静的图书馆里,闻着旧书的味道,他觉得恍如隔世。
3. 从数学到打孔卡片
牛津大学埃克塞特学院,科德选了数学和化学。
数学是他擅长的,化学是他好奇的。他尤其喜欢结晶学——晶体那种完美的对称结构让他着迷。原子与原子之间按照固定的规则排列,形成六边形、立方体、菱形。从微观到宏观,秩序无处不在。
他想:世界本质上是数学的。
1948年,科德毕业。他面临一个选择:去工业界,还是留在学术界?
这时候,他读到了一篇关于“电子计算机”的文章。文章里说,有一种机器可以用电流模拟数学运算,速度快得惊人。科德觉得这像科幻小说,但又是真的。
他决定去看看。
1949年,他加入了IBM。当时的IBM总部在纽约,主营业务是打孔卡片设备——就是那种把数据打成小孔、存储在卡片上的机器。计算机部门只是公司里一个不起眼的小分支。
科德的工作是“数学程序员”。这个职位名称很新,新到连名片都没有现成的模板。他的工作内容是:为IBM的第一台科学计算机“IBM CPC”写程序。
写程序的方式是这样的:
你先在纸上把算法画出来。然后你用打孔机在卡片上打孔,一行代码一张卡片。打完一摞卡片,抱到计算机面前,塞进读卡器。机器嗡嗡嗡地读,然后吐出结果。如果程序出错,你得检查那一摞卡片,找到打错的那一张,重新打孔,重新塞进去。
枯燥吗?枯燥。但科德不觉得。他觉得这是在和机器对话,用一种非常原始的语言。机器很笨,但很诚实。你给它什么,它就做什么。你错了,它就错了。没有借口,没有情绪。
他喜欢这种诚实。
4. 第一颗种子:多任务处理
在IBM工作的头几年,科德做了一个后来被广泛使用、但很少有人知道是他做的发明——多任务处理。
当时的计算机一次只能运行一个程序。就像一个人一次只能做一件事。如果你想同时运行两个程序,得等第一个完全结束,再开始第二个。这很浪费,因为计算机在做一些慢操作(比如读卡片、打印结果)的时候,处理器其实在空转。
科德想:为什么不能让计算机在等待的时候,去做另一件事?
他设计了一种机制,让计算机可以快速切换任务——保存当前任务的状态,加载下一个任务的状态,执行一会儿,再切换回来,看起来就像在同时做很多事。
这个想法在今天已经普通得不能再普通了。你的手机、电脑、平板,每一台设备都在用这个技术。但在1950年代,这是一个突破。
IBM采纳了这个技术,用在了他们的操作系统里。科德的名字没有出现在任何宣传材料上,他不在意。
他在意的是另一件事。
5. 回到校园
在IBM工作了几年之后,科德发现自己的知识不够用了。
他懂数学,懂编程,但他不懂计算机科学——因为当时还没有“计算机科学”这个学科。他想系统地学习计算机的理论基础,而不是只会写代码。
1965年,他申请了密歇根大学的博士项目,被录取了。他的导师叫阿瑟·伯克斯,是冯·诺依曼的学生,计算机逻辑设计领域的先驱。
科德选的博士研究方向,出乎所有人的意料——细胞自动机。
细胞自动机是一种离散的数学模型。你有一个网格,每个格子是一个“细胞”,每个细胞有几种状态(比如“生”或“死”)。然后你设定几条简单的规则,比如“如果一个细胞周围有3个活细胞,它就活下来;如果有2个,它就维持原状;其他情况它就死掉”。然后你让这个系统自己演化。
规则很简单,但演化出来的行为极其复杂。有些图案会稳定下来,有些会周期性地重复,有些会无限蔓延,有些会自复制——像生命一样。
这就是“康威生命游戏”的前身。也是后来复杂科学、人工生命、甚至人工智能的重要思想来源。
科德的博士论文题目是《细胞自动机》。他在论文里研究了自复制、自组织、从无序中涌现秩序的现象。
你发现了吗?这和后来他做的事情,其实是同一件事——
如何在混沌中找到规律,如何用简单的规则生成复杂的结构。
他的博士导师后来回忆说:“泰德(科德的昵称)是我见过的最有数学直觉的人。他看问题的角度和别人不一样。别人看到的是数据,他看到的是数据之间的关系。”
1965年,科德获得了密歇根大学的计算机科学博士学位。那一年,他42岁。
42岁,博士刚毕业,大多数人已经过了职业生涯的顶峰。科德的顶峰,还远没有到来。
二、一张桌子改变世界
1. 圣何塞的阳光
1967年,科德回到了IBM。这一次,他去的不是纽约总部,而是加州的圣何塞研究实验室。
圣何塞在硅谷的中心。那时候还没有“硅谷”这个名字,只有果园、棕榈树和一条叫El Camino Real的旧公路。斯坦福大学在旁边,弗雷德里克·特曼教授正在鼓励他的学生们创办公司——其中有两个学生叫威廉·休利特和大卫·帕卡德。
科德的办公室不大,有一扇窗,窗外是一棵老橡树。他每天早晨七点到,先泡一杯茶——英国人离不开茶——然后坐到黑板前,拿起粉笔。
他在想一个困扰了他很多年的问题:数据到底应该怎么存放?
2. 迷宫里的数据
当时的数据库主要有两种模型:层次模型和网状模型。
层次模型像一棵倒挂的树。最上面是根,下面是分支,再下面是叶子。每一个节点只有一个父节点,但可以有多个子节点。这个模型很直观——一个公司有多个部门,一个部门有多个员工,一个员工有多个任务。树状结构符合很多现实场景。
但问题在于:树是僵硬的。
如果你想查询的数据不在同一条树枝上,你就得爬完整棵树。比如,你想知道“哪些员工和哪些客户有共同的联系人”,在层次模型里,你可能要遍历好几棵树,然后在内存里手动做匹配。笨拙,而且慢。
网状模型更灵活一些。它允许一个节点有多个父节点,信息之间可以形成网状的连接。你可以从一个节点出发,沿着任意一条连接走到另一个节点。
但问题在于:网状模型太灵活了。
你得事先知道所有的“路径”——就像你在一个陌生的城市里开车,没有导航,没有路牌,你必须记住每一条路怎么走。如果你想走一条新的路,你得修改数据库的结构。
科德觉得,这两种模型都违背了一个基本原则:查询的复杂度不应该由数据的存储方式决定。
他的意思是:你作为用户,只关心“我要什么”,不关心“它在哪里”。就像你去图书馆借书,你只需要告诉图书管理员书名,不需要亲自走进库房、爬上梯子、在一排排书架中间翻找。
但当时的数据库系统,恰恰要求用户知道“怎么找”。
3. 粉笔落在黑板上

1969年的一个下午。圣何塞的天气很好,阳光从窗户斜射进来,照在黑板上,粉笔灰在光柱里缓缓飘落。
科德在黑板上画了一张表。
他把表叫做“关系”。因为数学里,“关系”这个词指的是集合之间的笛卡尔积的子集——简单说,就是把一组值按照某种规则配对。但在科德的用法里,“关系”更接近日常语言中的“表格”。
他画的第一张表是这样的:
他又画了第三张表:
然后他用粉笔在两张表的“部门”列之间画了一条线。
——就这么简单。
如果你想查“张三的经理是谁”,你不用遍历树,不用走网状路径。你只需要:先在员工表里找到张三,读出他的部门“销售”;然后在部门表里找到“销售”,读出经理“赵六”。
两个步骤,没有爬树,没有绕路。
如果你想知道“A座3楼的所有员工”,也只需要两步:先在部门表里找到“A座3楼”对应的部门“销售”;然后在员工表里找到所有部门为“销售”的员工。
这个操作叫“连接”(JOIN)。它是关系模型最核心的操作,也是后来SQL语言最常用的关键词之一。
4. 数学的温柔
科德之所以用“关系”这个词,不是随意选的。它来自数学的一个分支——集合论,更具体地说,是关系代数。
关系代数定义了几个基本操作:选择(选出符合条件的行)、投影(选出指定的列)、连接(把两张表按某个列拼在一起)、并集、差集、笛卡尔积……
这些操作有一个共同的特点:输入是表,输出也是表。
这意味着你可以组合它们。一个操作的结果可以成为另一个操作的输入。就像乐高积木,你可以把小块拼成大块,大块拼成更大的块。
更重要的是,这些操作有严格的数学定义。你可以证明它们是正确的,你可以推导出它们的性质,你可以优化它们而不改变结果。
这就是数学的温柔之处。它不依赖运气,不依赖经验,不依赖“我觉得这样应该行”。它依赖证明。
科德后来常说一句话:“如果你想和计算机对话,用数学是最省力的方式。”
5. 那篇后来成为圣经的论文
1970年,科德完成了他的论文。标题很长,叫《大型共享数据库的关系数据模型》。他投给了IBM内部期刊,编辑们犹豫了一下——太理论了,太超前了——但还是发表了。
论文的开头是这样的:
“未来的用户将面对越来越庞大的共享数据库。他们需要一种能够提供数据独立性、数据完整性、以及灵活查询能力的数据库管理系统。本文提出了一种基于关系的数据库模型,旨在满足这些需求。”
全文共47页。里面有大量的数学符号——关系、元组、域、规范化、范式。读起来不像计算机论文,更像数学论文。
当时能读懂这篇论文的人不多,能理解它重要性的人更少。
IBM的一位高管读了之后,在内部备忘录里写道:
“这个模型在数学上是优雅的,但它不实用。性能太差,无法在真实环境中运行。”
这位高管不是故意刁难。他的判断在当时是有道理的——1960年代末的计算机硬件,磁盘慢,内存小,CPU弱。关系模型的连接操作需要扫描多张表,在当时的硬件上确实跑不快。
科德知道这个问题的存在。他没有回避。他在后续的论文里花了大量篇幅讨论“查询优化”——如何把用户写的一个查询,自动转换成最快的执行方式。
这是一个极其困难的问题。因为同一个查询,可以用几十种不同的方式执行。有的快,有的慢。计算机需要自动选择最优的那一种。
科德没有解决这个问题。但他指出了问题在哪里,给出了解决的框架。后来的研究人员在这个框架里填满了内容——B+树、哈希连接、排序合并连接、动态规划、代价估算……这些技术今天仍然在每一个数据库里运行。
6. 被忽视的十年
1970年到1980年,是科德一生中最漫长的等待。
他的论文发表了,学术界有人开始关注。但工业界——尤其是IBM——迟迟没有动作。
为什么?
有两个原因。
第一,IBM当时有一个很赚钱的产品叫IMS,是层次数据库。IMS卖得很好,客户很满意。公司为什么要投资一个全新的、未经证明的技术,去和自己现有的产品竞争?这叫“创新者的窘境”——成功的企业往往不愿意颠覆自己。
第二,关系数据库的早期原型确实跑得慢。IBM在圣何塞实验室启动了一个叫“System R”的研究项目,目标是实现关系数据库。项目进展缓慢,性能测试结果不理想。这进一步强化了高管的疑虑:看,我们早说了,这东西不实用。
科德没有被调离,没有被解雇,没有被边缘化,他只是被忽视了。
他的办公室还在,黑板还在,粉笔还在。每天早晨七点,他还是准时到,泡一杯茶,坐下来,继续写。
他写了很多论文。他提出了“规范化理论”——教人们如何设计好表。第一范式、第二范式、第三范式、BC范式……这些名词今天每一个学数据库的学生都要背。它们的源头都在科德的粉笔下。
他还提出了“十二条规定”——一个数据库系统要被称为“关系数据库”,必须满足的十二条标准。这些规定后来被称为“科德的12条规则”。
第0条是基础:系统必须能够完全通过关系来管理数据。第1条到第11条讲了信息表示、数据独立性、完整性、视图更新、物理独立性、逻辑独立性……每一条都很具体,每一条都很严格。
他写这些规则,不是为了炫耀。他是为了给行业一个标准——你说你是关系数据库,那好,请证明给我看。
7. 种子在别处发芽
1977年,一个叫拉里·埃里森的年轻人读到了科德的论文。他在一家叫Ampex的公司工作,负责一个为CIA做的数据库项目。他读了科德的论文,激动得睡不着觉。
他发现,IBM的System R项目已经证明关系数据库在技术上是可行的。但IBM没有把它变成产品。
埃里森决定自己来做。他和两个合伙人凑了2000美元,在加州成立了一家公司。公司名叫“甲骨文”——Oracle。
两年后,他们发布了世界上第一个商业关系数据库。IBM直到1981年才发布自己的DB2。
埃里森后来成了亿万富翁。他每次接受采访,都会提到科德。他说:“没有科德,就没有甲骨文。没有甲骨文,就没有后来的企业软件产业。”
科德听说了这件事。他的反应是什么?
他笑了笑。
他没有抱怨IBM错过了机会。没有说“我早就告诉过你们”。他只是继续写他的论文。
他后来在采访中说:“科学家的任务不是做产品。科学家的任务是发现真理。产品是工程师的事情。”
这句话,他说得很平静。
三、漫长的等待与十二块石头
1. 孤岛上的园丁

如果把1970年代的数据库界比作一片大海,科德就是一座孤岛上的园丁。
他种下的种子,在岛上慢慢发芽。他浇水,施肥,除草。他看着幼苗一天天长高,但岛上只有他一个人。
偶尔有船经过,船上的人远远望见这座岛,说:“哦,那个搞关系模型的人。”然后船就走了。
但科德不觉得孤独。他有数学,数学是他的伴侣。
他每天早上七点走进办公室,泡一杯英式红茶——茶包从英国寄来,他的妹妹每三个月寄一次——然后坐到黑板前。粉笔在指尖磨出茧子,他不介意。
他在想一个问题:如果用户不关心数据的物理存储方式,那数据库系统应该怎么自动选择最优的查询路径?
这个问题的本质是:如何在几十种可能的执行计划中,找到最快的那一个?
科德提出了一个框架:把查询转换成一种叫“关系代数表达式”的数学形式,然后通过一系列等价变换,找到最优的表达形式。
这个框架后来发展成了“查询优化器”。今天每一个数据库——MySQL、PostgreSQL、Oracle、SQL Server——都有一个查询优化器。当你在键盘上敲下“SELECT * FROM employees WHERE salary > 5000”的时候,数据库系统会在毫秒级别内,评估几十种甚至上百种执行计划,选择最优的那一种。
你不知道这个过程,你不应该知道,你只需要结果。
这就是科德说的“数据独立性”。
2. 诺贝尔奖
1981年,图灵奖评委会决定将当年的奖项授予科德。
图灵奖是计算机科学领域的最高荣誉,被称为“诺贝尔计算机奖”。科德是第16位获奖者。在他之前获奖的有艾伦·佩利、艾兹格·迪科斯彻、唐纳德·克努特——每一个都是殿堂级的人物。
颁奖典礼在纽约举行。科德穿着西装,系着领带,头发已经花白。他走上领奖台的时候,全场起立鼓掌。
他的获奖演讲没有讲数据库,他讲的是——细胞自动机。
他说:“我在1960年代研究细胞自动机的时候,学到的最重要的一课是:简单的规则可以产生复杂的结构。这让我后来思考数据库的时候,一直在寻找最简单的规则。”
他停顿了一下,又说:“数学的美在于它的简洁。一个漂亮的公式,通常也是正确的公式。”
演讲结束后,有人问他:“你觉得自己最大的贡献是什么?”
他想了一会儿,说:“我只是告诉人们,数据可以是美丽的。”
这句话后来被刻在了他的墓碑上。
3. 十二条规则
在获得图灵奖之后,科德的工作被更多人看到了。但他发现一个问题:很多厂商开始宣称自己的产品是“关系数据库”,但实际功能差得很远。
有的数据库只支持最简单的表结构,不支持连接。有的数据库不支持数据完整性约束。有的数据库的“关系”只是表面功夫,底层还是网状模型。
科德觉得这是对“关系”这个词的滥用。
1985年,他发表了《关系数据库管理系统是否真正关系?》一文,提出了十二条规定。
这十二条规则不是法律,而是准绳。你可以用它们来测量一个数据库系统的“关系程度”。
比如第3条:系统必须支持视图——用户看到的表可以是虚拟的,不一定是实际存储的。第5条:系统必须有一种语言,支持数据定义、查询、修改、完整性约束和事务处理。第6条:所有可更新的视图必须支持更新操作。
最著名的是第0条——不是第1条,是第0条。科德说,第0条是所有规则的基础:系统必须能够完全通过关系来管理数据。
这意味着:你不能在关系数据库里偷偷藏一个层次模型或者网状模型,让用户在某些情况下绕开关系。一切都必须是关系。
这些规则后来被广泛接受。数据库厂商们开始认真对待“关系”这个词。没有人愿意被说成“不符合科德的规则”。
四、他为AI准备好了厨房
1. 两条河流的汇合
现在,让我们把视线从1970年代移开,看向另一条河流。
那条河流叫“人工智能”。它的源头可以追溯到1956年的达特茅斯会议。麦卡锡、明斯基、香农、西蒙、纽厄尔——一群年轻的天才聚在一起,讨论一个大胆的问题:能不能让机器思考?
这条河流在最初的十几年里,水流湍急,充满希望。人们觉得十年之内就能造出会思考的机器。
然后冬天来了。
1970年代到1980年代,人工智能经历了两次“寒冬”。人们发现,让机器思考比想象中难得多。逻辑推理可以模拟,但常识无法编码。机器可以下棋,但听不懂“把球放在桌子上”这样简单的话。
为什么AI会陷入寒冬?有很多原因。其中一个很重要的原因是:数据不够。
当时的AI系统靠的是人工编写的规则。专家们把知识一条一条敲进计算机。这个方法的瓶颈很明显——世界上有多少条规则?一个人能敲多少条?两个人能敲多少条?一个团队能敲多少条?
永远不够。
1980年代末,AI研究者们开始换一个思路:与其教机器规则,不如让机器自己从数据中学习。
这就是“机器学习”。
而机器学习需要数据。大量的数据,海量的数据,像山一样高的数据。
这时候,科德的那条河流,和AI的这条河流,开始靠近了。
2. 数据就是食物
AI是怎么学习的?
想象你教一个孩子认猫。你不会给他讲“猫的生物学定义”。你会给他看很多猫——橘猫、黑猫、胖猫、瘦猫、坐着的猫、跑着的猫。看多了,他就认识了。
机器学习也是这样。你需要给算法成千上万、甚至上亿个例子。每一个例子都是一个数据点。这些数据点存放在哪里?
存放在数据库里。
具体来说,存放在关系数据库里。
一个典型的机器学习数据集,在数据库里长这样:
每一行是一个样本,每一列是一个特征。最后一列是标签——你要预测的目标。
这张表,就是科德1970年在黑板上画的那种表。
3. 数据科学家的日常
今天,一个数据科学家的工作流程大致是这样的:
从业务系统里提取数据。通常要写SQL查询——SELECT * FROM orders WHERE date > '2023-01-01'。
清洗数据。处理缺失值、异常值、重复值。还是用SQL——UPDATE customers SET age = NULL WHERE age < 0。
特征工程。把原始数据转换成适合模型的形式。依然可以用SQL——CREATE VIEW features AS SELECT age, gender, CASE WHEN amount > 100 THEN 'high' ELSE 'low' END AS spending_level FROM ...。
训练模型。这一步用Python或R,但数据还是从数据库里来的——df = pd.read_sql("SELECT * FROM features", connection)。
部署模型。模型做出预测后,结果要写回数据库——INSERT INTO predictions VALUES ...。
你看,每一步都离不开关系数据库。数据科学家一天的工作,有一半时间在写SQL。
科德不知道“数据科学家”这个词。他去世的时候,这个职业还不存在。但他画的那些表,每一张都在为这个职业打底。
4. 当AI开始吃不一样的食物
2010年以后,深度学习爆发了。
和传统机器学习不同,深度学习的“食物”不只是表格里的数字。它吃图片、吃语音、吃文本、吃视频。这些是非结构化数据——它们不适合被放进规规矩矩的行和列里。
一张图片怎么放进表里?一列放像素值吗?一张1920×1080的图片有200多万个像素,每个像素有RGB三个值——600多万个数字。一张表放不下一张图。
一段文字怎么放进表里?一列放词吗?一篇文章有几千个词,每个词有几百个可能的含义——放不进去。
关系数据库遇到麻烦了。
于是出现了新的数据库类型:文档数据库(MongoDB)、键值数据库(Redis)、图数据库(Neo4j)、时序数据库(InfluxDB)、向量数据库(Pinecone、Milvus)……
这些数据库放弃了关系模型的部分约束,换取了更大的灵活性和扩展性。它们被称为NoSQL数据库——Not Only SQL,不只有SQL。
科德会怎么看这些“背叛者”?
我没有确切的答案。但我猜,他不会生气。
因为科德从来不是一个教条主义者。他的12条规则不是用来打压人的,是用来指方向的。他追求的核心不是“表”这个形式,而是数据独立性和数学的严谨性。
NoSQL数据库在很多场景下放弃了关系模型的严谨性,但它们是出于实际考虑。科德是数学家,也是工程师。他懂得权衡。
更重要的是,科德种下的那颗种子已经长成了森林。关系模型是森林里最高大的那棵树,但森林里还有其他的树。它们共享同一片土壤——那片叫“数学”的土壤。
5. 向量数据库与AI的最后一公里
2023年,也就是科德去世整整20年后,一种新的数据库开始流行——向量数据库。
向量是什么?
你可以把向量理解成一串数字,代表一个事物的“特征”。比如,“猫”这个词可以被转换成一个256维的向量——256个数字,挤在一行里。相似的词,向量也相似。“猫”和“猫咪”的向量很近,“猫”和“汽车”的向量很远。
深度学习模型把图像、文字、声音都转换成向量。然后你在向量数据库里做“相似性搜索”——给我找10个和这张图片最像的图片。
这就是推荐系统、人脸识别、以图搜图的底层原理。
向量数据库和关系数据库是什么关系?
不是替代,是补充。绝大多数AI系统同时使用两者:关系数据库管理用户账户、交易记录、日志信息;向量数据库管理嵌入向量,做相似性搜索。它们之间经常要连接——SELECT * FROM users JOIN vectors ON users.id = vectors.user_id WHERE ...
科德当年的“连接”,今天还在连接。
五、晚年的河流
1. 离开IBM
1990年,科德67岁。他从IBM退休。
退休的时候,他的办公室里堆满了论文、书籍和笔记本。粉笔灰在角落里积了厚厚一层。那块他用了几十年的黑板,写满了擦、擦了写,表面已经发灰,再也擦不干净了。
他收拾东西的时候,从抽屉里翻出一张老照片。照片上是年轻的他,穿着飞行夹克,站在一架战斗机旁边。他看了很久,把照片放进了口袋。
他没有在IBM开退休派对,他不喜欢那种场合,他只是安静地走了。
2. 关系研究所
退休后,科德没有闲着。
他和妻子(也是一位计算机科学家)共同创立了“关系研究所”。研究所的目标是推广关系数据库的理念,培训专业人才,提供咨询服务。
他在研究所里开课。课程内容从关系代数到规范化理论,从查询优化到事务处理。来上课的有IBM的员工,有其他公司的工程师,有大学的研究生。
他的教学风格很独特。他不喜欢PPT,不喜欢投影仪。他喜欢粉笔和黑板。每次上课,他都从最简单的例子开始,一步一步推导,从不跳过任何逻辑环节。
有学生问他:“科德博士,你怎么记住这么多数学公式?”
他笑了笑,说:“我不记公式。我记推导过程。公式记不住,过程记住了,公式自然就出来了。”
3. OLAP与智能的另一侧面
1993年,科德70岁。这一年,他发表了一篇题为《为终端用户提供联机分析处理(OLAP)》的论文。
OLAP是什么?
简单说,就是“多维分析”。你用数据库存了一堆销售数据——按时间、按产品、按地区、按客户。现在你想问:2023年华东地区手机品类的销售额是多少?这个问题的答案不是一张简单的表,而是一个“立方体”——时间是一维,产品是一维,地区是一维,客户是一维。你需要在多个维度上做切片、切块、旋转、上钻、下钻。
OLAP是数据仓库和商业智能的核心技术。它帮助企业管理层做决策——哪个产品卖得好?哪个区域需要增加投入?哪个月的促销效果最好?
科德又写了十二条定律——是的,又是十二条。这十二条定律定义了什么是“真正的OLAP系统”。
有意思的是,OLAP后来和人工智能结合了。数据仓库里存放的历史数据,是训练预测模型的最佳原料。你想预测下个月的销售额?先查OLAP,再看模型。
科德始终相信,数据的最终目的是帮助人们做更好的决策。他不是为了技术而技术,他是为了人。
4. 帆船与海
退休后的科德,把更多时间花在了帆船上。
他在旧金山湾停了一艘小帆船,白色的,不大,刚好够两个人出海。天气好的时候,他会驾船出海,一出去就是一整天。
海上的生活很简单。风来的时候,调整帆的角度。风停的时候,就漂着。远处的金门大桥在雾里若隐若现,海狮趴在浮标上晒太阳,偶尔有鲸鱼喷出水柱。
他喜欢这种状态。不是征服,不是对抗,是顺应。风来了就走,风停了就停。你不可能让风按你的意愿吹,你只能调整帆。
这和他对待数据库的态度一模一样。
5. 最后一课
2002年,科德79岁。他的身体已经不太好了。心脏有问题,走路需要拐杖。但他还是坚持去了关系研究所,给最后一批学生上了最后一堂课。
那堂课的内容很简单。他在黑板上写了一个问题:什么是信息?
教室里安静了一会儿。学生们开始回答——数据、知识、数字、事实。科德摇摇头。
他在黑板上写:
数据是符号,信息是有意义的符号,知识是可以指导行动的信息,智慧是知道什么时候该用知识的判断。
他说:“我做了一辈子数据库。数据库存的是数据。但人们真正想要的是信息、是知识、是智慧。数据只是第一步,不要忘了这一点。”
下课的时候,学生们鼓掌。他拄着拐杖,慢慢走出了教室。
他没有再回来。
6. 最后的航程
2003年4月18日,科德在佛罗里达州的家中去世。心脏病发作,走得很平静。
他的妻子在他身边。他的三个孩子从各地赶回来。IBM发了讣告,ACM发了悼文,全球的数据库社区都在哀悼。
他被安葬在加州帕洛阿尔托的一个小墓园里。墓碑上刻着他自己的那句话:“数据可以是美丽的。”
墓碑的旁边,种了一棵橡树。那是他生前选的树种。橡树长得慢,但活得久。一百年后,它会在那里,像一个沉默的哨兵。
尾声:那个备菜的人
AI的舞台上,灯光很亮。
聚光灯打在算法身上。Transformer、BERT、GPT、Diffusion——这些名字像星星一样挂在技术的夜空里,闪闪发光。
聚光灯也打在算力身上。英伟达的GPU、谷歌的TPU、亚马逊的Trainium——这些芯片像心脏一样跳动,为每一次推理提供血液。
聚光灯还打在那一个个里程碑式的时刻上。AlphaGo战胜李世石,GPT-3写出像模像样的文章,Stable Diffusion画出以假乱真的图片。每一次突破都登上头条,每一个名字都被记住。
人们鼓掌,惊叹,说它们真聪明。
很少有人注意到,舞台旁边,有一扇小小的门。
门后面是一间厨房。厨房里有一张长桌,桌上摆着砧板和菜刀。墙角堆着新鲜的食材,每一种都洗得干干净净,切得整整齐齐,分门别类地装在贴着标签的盒子里。胡萝卜切成滚刀块,洋葱切成细丝,大蒜剁成末,姜切成片——每一份都码放得一丝不苟。
那个备菜的人已经走了。
他穿着旧格子衬衫,头发花白,手指修长,指甲剪得很短。他习惯在清晨走进厨房,打开灯,安静地开始一天的工作。他不说话,不开收音机,不哼歌。他只做事。
他把土豆去皮,把胡萝卜切块,把洋葱剥好。他不做菜,他不上桌,他不站在聚光灯下。
他只是备菜。
但他知道,没有这些菜,再好的厨师也无从下手。没有这些规整的、干净的、新鲜的食材,再华丽的烹饪技巧也只是空中楼阁。
他的名字叫埃德加·弗兰克·科德。
人们叫他“关系数据库之父”。这个称呼太硬了,像一块碑文。它只说了他做了什么,没说他是什么样的人。
他是什么样的人?
他是一个飞过战机的英国人,一个在黑板前画表格的数学家,一个在IBM实验室里默默等了十年的程序员,一个被忽视却从不争辩的温和灵魂,一个相信数学可以解释世界的理想主义者,一个认为数据可以像诗一样美的人。
他是人工智能身后,那个沉默的备菜人。
他没有发明火,但他建好了灶台。
他没有写下菜谱,但他洗净了每一棵菜。
他是数字世界里,最安静的厨师长。
终章:可以记住的几件小事
最后,讲几件关于科德的小事。它们没有写进正史,但我觉得值得记住。
第一件:科德一生不爱用电脑。你没看错——发明关系数据库的人,不爱用电脑。他写论文用笔和纸,做计算用计算器,发邮件让秘书帮忙。他的办公室里有一台终端,但很少碰。他说:“机器是用来思考的工具,不是用来替代思考的。”
第二件:科德不太会演讲。他的讲座内容很深,但声音很轻,语速很慢,偶尔会卡住。有时候他在黑板上写了一大段公式,转过身来,发现一半学生在打瞌睡。他不生气,只是笑了笑,说:“这部分确实比较枯燥。”然后继续讲。
第三件:科德晚年收到过很多信。有学生写的,有工程师写的,有素不相识的人写的。大多数人感谢他——因为他的工作让他们的工作变得更容易。他会一封一封地回信,用手写,字迹工整,从不敷衍。
第四件:科德去世后,他的家人整理遗物时,发现了一个旧皮箱。皮箱里装的是他二战时期的飞行日志,泛黄的纸页上记录着每一次飞行的日期、地点、任务。最后一页的日期是1945年5月8日——欧洲胜利日。那一天他只写了一句话:
“任务完成。回家。”
他确实回家了。
从天空回到地面,从战争回到和平,从飞行回到数学,从代码回到表格。
他在这个圆圈的终点,画下了一个句号。
而AI的故事,才刚刚开始。
埃德加·弗兰克·科德
*1923.8.19 — 2003.4.18*
飞行员,数学家,程序员
秩序的诗人,AI的备菜人
“数据可以是美丽的。
02. 我的思考与感受
读完科德的故事,我坐在窗前想了很久。
让我动容的,不是他那篇划时代的论文,不是图灵奖,甚至不是他如何影响了整个AI时代。让我动容的,是那个画面——
一个前战斗机飞行员,在IBM的实验室里,对着黑板画表格,一画就是十年。没有人理解,没有人支持,甚至没有人理他。他每天早晨七点泡一杯英式红茶,拿起粉笔,继续画。
十年。
在这个追求“快速迭代”“敏捷开发”“三个月出成果”的时代,十年意味着什么?意味着你可能一辈子最好的光阴,都花在了一件当时看起来“没用”的事情上。
科德不是不知道这件事“没用”。他知道。他知道当时的硬件跑不动他的模型,知道公司不会投资他的想法,知道同行们在背后说他“走火入魔”,但他还是画了十年。
我想,这就是信仰和热爱的区别。热爱是“我喜欢做这件事,因为它让我快乐”。信仰是“我做这件事,因为它是对的——哪怕我活着的时候看不到结果”。
科德没有看到GPT,没有看到大模型,没有看到AI作画。但他种下的那颗种子,在他去世二十年后,还在生长。
另一个让我触动的细节是:他一生不爱用电脑。发明关系数据库的人,居然不爱用电脑。他用笔和纸写论文,用计算器做计算,让秘书帮忙发邮件。
这不是矛盾,这是清醒。他知道工具是做什么的——工具是为了让你更好地思考,而不是替代思考。当所有人都朝着“更快”“更大”“更炫”狂奔的时候,他停下来,问了一个最基本的问题:“数据到底是什么?”
这个问题,比任何算法都重要。
我想,科德教会我的,不是数据库,不是关系模型,不是SQL。他教会我的是:在喧嚣中保持安静的能力,在潮流中保持独立思考的勇气,以及在无人喝彩时继续画表格的耐心。
数据可以是美丽的。
人,也可以是。
03. 本期提问


文章精选:
1.强化学习之父、图灵奖得主 Sutton 隔空回应 图灵奖得主Hinton:目前的 AI “理解不足,调参有余”
