1981 Edgar Codd —— 十二條規則推翻資料庫舊王朝#
「一位 IBM 英國移民寫了篇論文,IBM 擱置了它,最後整個 資料庫產業被這篇論文重組。」
案件檔案#
| 項目 | 內容 |
|---|---|
| 得主 | Edgar F. Codd (1923–2003) |
| 得獎理由 | 關聯式資料庫模型的創立:理論基礎與實務影響 |
| 關鍵詞 | 關聯模型、關係代數、正規化 |
前因#
1970 年代的王朝是網狀/階層資料庫(1973 案):查詢必須導航, 程式綁死存取路徑。Codd 的謎題:能否讓使用者只說「要什麼」, 完全不說「怎麼找」?
線索與推理#
線索一:1970 論文《A Relational Model of Data for Large Shared Data Banks》#
核心抽象:一切資料是關係(relation,即集合論意義的表)。
關係 R ⊆ D₁ × D₂ × ... × Dₙ(域的笛卡爾積之子集)
鍵 key = 唯一決定其他屬性的屬性集
查詢即關係代數:選擇 σ、投影 π、連接 ⋈、併 ∪、差 −。
σ_{city='NY'}(Customers) ⋈ Orders
→ 宣告式;最佳化器可等價變換(如先選擇再連接,剪掉大部分資料)
等價變換規則(如 σ 與 ⋈ 的交換律)就是查詢最佳化的數學基礎—— 宣告式語言的代價被代數償還。
線索二:正規化理論(1971)#
以函數相依為公理系統(Armstrong 公理):
1NF→原子值;2NF→消除部分相依;3NF→消除傳遞相依
BCNF:每個非平凡 FD X→Y,X 必為超鍵
目標:消滅更新異常(插入/刪除/修改的矛盾)
線索三:IBM 的抗拒與業界的反撲#
IBM 因 IMS(階層式)利益而延宕。結果:1974 年 IBM System R (Gray 1998 案、Chamberlin 的 SQL)、1976 年 Berkeley Ingres (Stonebraker 2014 案)雙線並進;Oracle(1977 創立)搶先 商用化——理論先行者未得利,跟隨者收割。
線索四:十二條規則(1985)#
Codd 晚年提出 12 條「完全關聯式」判準(含著名的 Rule 0: 系統本身須能管理自身的資料字典),向違背精神的產品宣戰。
理論評析#
Codd 的勝利公式:
數學基礎(集合論)+ 資料獨立性 + 宣告式介面
= 使用者生產力 × 10,且隨硬體進步兌現效能
他與 Bachman 之辯(1973 案)的終審:通用解勝過手工調校。
後果#
- SQL 成為史上最廣用的高階語言之一;資料庫成為兆美元產業。
- 「正規化 vs 反正規化」至今是資料工程的核心張力; NoSQL 運動(2014 案背景)是對其疆界的再探索。
關聯案件#
→ 1973-Charles-Bachman與網狀資料庫、1998-Jim-Gray與交易處理及資料庫、2014-Michael-Stonebraker與Ingres及Postgres