改變世界的隱形骨幹:資料庫的史詩級進化與未被述說的故事

改變世界的隱形骨幹:資料庫的史詩級進化與未被述說的故事

前言:組織現實的幕後英雄

作為開發者,我們熱衷於討論框架、API 和乾淨的程式碼。然而,在每一個應用程式、每一行業務邏輯背後,都存在一個更為根本的系統,它不僅僅是儲存資料,它組織著我們的現實。你預定的航班、轉帳的金額、正在觀看的串流影片——這一切都運行在同一個基礎系統之上:資料庫(The Database)

從早期的打孔卡到現今的向量嵌入(Vector Embeddings),從航空公司的巨型主機到未來的量子儲存,資料庫始終默默地塑造著計算的每一個時代。它不只是關於儲存,更是關於結構、權力與控制。這是一個關於電腦科學中最重要、卻最常被視為理所當然的系統的故事。


第一部:資料的實體時代:從打孔卡到磁帶的局限

資料庫的歷史始於對效率和規模危機的回應。

1. 打孔卡的誕生:雅卡爾與霍勒里斯

故事始於 1801 年,法國紡織機發明家 Joseph Marie Jacquard 利用打孔卡控制織布機圖案,將「記憶」編碼成物理形式。

約八十年後,美國面臨一場規模危機:1880 年的人口普查耗時近八年才完成,資料完成時已然過時。Herman Hollerith 看見了機會,他受到火車售票員打孔車票的啟發,發明了電動機械製表機

  • 成就: Hollerith 的機器將 1890 年的普查時間從八年縮短至僅兩年,為政府節省了數百萬美元。
  • 影響: Hollerith 創立的公司最終演變成 IBM。在接下來的 70 年中,打孔卡成為了資料的通用語言。

2. 磁帶與實體限制

然而,實體資料有其致命缺陷:資料是物理的、脆弱的且受限於空間。隨著資料量暴增,儲藏室變成了倉庫,倉庫變成了整棟建築。

1950 年代,磁帶和第一批電子電腦出現,資料變得「無形」,以磁性模式儲存。但問題依然存在:若要查找數百萬客戶記錄中的一筆,必須從頭到尾按順序搜尋每一條磁帶,可能耗費數小時甚至數天。


第二部:結構與連結:網路模型的崛起與薩伯爾系統的權力

1960 年代,工程師們開始思考如何為資料加入結構和關係,以提高存取效率。

1. 資料互相指向:IDS 的網路模型

通用電氣(General Electric)的務實工程師 Charles Bachman 厭倦了程式設計師浪費時間搜尋資料。他在 1960 年代初提出一個激進的想法:資料紀錄是否可以相互指向?如同一個互連的網路。

  • 他的 整合資料儲存(Integrated Data Store, IDS)成為第一個真正的資料庫管理系統(DBMS),採用網路模型,透過預先定義的關係將紀錄連結起來。資料終於擁有了結構和記憶。

2. 數據即武器:薩伯爾(Sabre)系統的誕生

在 IDS 發展的同時,一場偶然的飛機相遇促成了一個更具野心的專案。美國航空總裁 C.R. Smith 與 IBM 推銷員 R. Blair Smith 達成合作,開發了半自動化商業研究環境(Sabre)

  • 規模與效率: Sabber 於 1964 年上線,耗資 400 萬美元(相當於今天的近 4 億美元),由兩台 IBM 7090 主機運營。它將航班預訂時間從數小時縮短到數秒,每天處理 83,000 通電話
  • 權力與控制: 在 1980 年代的管制解除後,美國航空秘密地將薩伯爾系統偏袒自家航班,使其在旅行社螢幕上總顯示在最前面。這場操縱最終導致國會調查和新法規出台,但它清楚地證明了:誰控制了資料庫,誰就控制了遊戲規則。

然而,薩伯爾這類導航式、層次結構的系統過於僵化,一旦資料結構需要變動,牽一髮而動全身,整個系統就會崩潰。資料庫的世界正等待一場變革。


第三部:概念革命:E.F. Codd 與 SQL 的誕生

1970 年,一場數學革命從 IBM 內部最不可能的地方爆發。

1. 關係模型的誕生:表格與數學的優雅

在 IBM 工作的英國數學家 Edgar Frank Codd 質疑導航式資料庫的複雜性。他認為,每一次查詢都要求程式設計師導航一條特定路徑,效率極低。

  • 核心思想: Codd 的解決方案優雅而簡單:將資料儲存在表格(Table)、行(Row)和列(Column)中,就像電子表格一樣。讓資料之間的關係從數據本身浮現,而非依賴僵硬的層次結構。
  • 劃時代論文: 1970 年 6 月,Codd 發表了《大型共享資料庫的關聯式資料模型》(A Relational Model of Data for Large Shared Data Banks)。他的核心論點是:讓用戶描述他們想要什麼,而不是如何取得

2. 業界的抵抗與學術界的響應

IBM 內部對 Codd 的工作反應迅速而殘酷。當時公司在自己的階層式資料庫 IMS 上投入了數百萬美元,Codd 的模型被內部備忘錄斥為「學術理論、太慢、無法實現」。

然而,Codd 的論文點燃了學術界的熱情。在加州大學柏克萊分校,研究員 Michael StonebrakerEugene Wong 啟動了 Ingres 專案,旨在證明關係模型在真實世界的可行性。

3. SQL:資料的通用語言

在 IBM 內部,一個小型團隊獲得許可探索 Codd 的想法,他們啟動了 System R 專案。研究員 Donald ChamberlinRaymond Boyce 面臨一個關鍵挑戰:如何讓非程式設計師也能查詢資料庫?

  • 發明: 他們的答案是 結構化英語查詢語言(Structured English Query Language, SQL)

    例如:SELECT customer_name FROM orders WHERE amount > 1000

  • 本質: 儘管讀起來像英語,但 SQL 實際上是一種數學查詢,可以在幾秒鐘內搜索數百萬條記錄。

Ingres(學術界)與 System R(企業界)在 1970 年代展開了技術競賽,最終兩者都證明了 Codd 願景的可行性、速度和強大


第四部:商業化與標準化:Oracle 的崛起與資料庫戰爭

儘管 IBM 掌握了 SQL 技術,但由於擔心自家產品 IMS 的市場被蠶食,他們遲遲不願商業化。這個遲疑為一個年輕的程式設計師提供了巨大的機會。

1. Larry Ellison 與 Oracle 的創立

Larry Ellison 閱讀了 Codd 的論文和 System R 的研究報告。他看到了 IBM 視而不見的商機:這是計算機史上最大的商業機會

  • 策略: 1979 年,Ellison 創立了 Relational Software Inc.(後來的 Oracle)。他們的計畫極為大膽:從零開始建立一個商業化的關係資料庫,使其與 IBM 的 SQL 語言相容,並搶在 IBM 之前上市
  • 成功: 1979 年,Oracle 發布了第一個商業 SQL 資料庫。此時,發明該技術的 IBM 產品 DB2 尚在兩年後才推出。憑藉著小型機(Mini Computer)的普及和比 IBM 主機更低的成本,Oracle 銷量爆發,最終成為資料庫世界的巨頭。

2. SQL 成為標準

1986 年,美國國家標準協會(ANSI)採用 SQL 作為關係資料庫的官方標準。這是一個決定性的時刻:

  • 統一語言: SQL 成為了資料的通用語。
  • 生態系統: 應用程式可以與不同的資料庫協作;程式設計師可以輕鬆轉換工作,而無需學習新語言。關係模型從此征服了數據世界。

第五部:大規模時代的挑戰:NoSQL 運動與多模型資料庫

進入 21 世紀,全球資訊網帶來了全新的資料挑戰:規模(Scale)

1. 對抗「阻抗不匹配」:物件導向的短暫嘗試

萬維網帶來了超連結文件、多媒體檔案和複雜的巢狀物件,這些資料難以塞入傳統的行和列。開發者面臨物件-關係阻抗不匹配(Object-Relational Impedance Mismatch)問題:他們的程式碼以物件思考,但資料庫卻以表格思考。

物件導向資料庫曾短暫出現,試圖消除翻譯層,但由於關係模型根深蒂固,這場革命最終成為歷史的註腳。

2. 拋棄 ACID:NoSQL 的誕生

在 Google 和 Amazon 這樣的公司,每天處理的資料量超越了傳統單一伺服器的極限。

  • Google Bigtable(2006)與 Amazon Dynamo(2007): 兩家公司都發表了激進的解決方案:放棄傳統關係模型的嚴格保證,將系統建立在數千台廉價伺服器上,優先考慮可用性(Availability)而非完美的一致性。
  • NoSQL 的哲學: 舊世界承諾 ACID(原子性、一致性、隔離性、持久性),而 NoSQL 提供了 BASE(基本可用性、軟狀態、最終一致性)。這是完美一致性與大規模擴展性之間的根本權衡。

如今,開發者不再是二選一,而是同時使用多種資料庫:PostgreSQL 處理交易、Redis 處理快取、Elasticsearch 處理搜索、Neo4j 處理關係。一體適用的時代已經結束。

3. 未來的邊界:AI 與向量資料庫

雲端技術將資料庫轉變為服務,而人工智慧則催生了下一場革命。

  • 向量資料庫(Vector Databases): 例如 Pinecone 和 Milvus,它們不再儲存原始資料,而是儲存意義——文字、圖像和聲音的高維度表徵。這使語義搜索和 AI 應用成為可能。
  • 新挑戰: 如今的資料庫開發者面臨著行星級規模、即時處理、邊緣計算和物聯網等挑戰,這對 Codd 而言是不可想像的。

結語:規模與野心的永恆挑戰

從雅卡爾的打孔卡到谷歌跨行星級的系統,資料庫已從簡單的儲存機制演變為數位文明的神經系統

每一次資料庫的演進,都旨在解決一個根本挑戰:如何組織資訊,使其能夠隨著人類的野心而擴展?

  • 我們每天產生 2.5 兆位元組的數據。
  • 預計到 2025 年底,全球資料圈將達到 175 Zettabytes(175 萬億 GB)。

資料庫不再只是一個工具,它是人類知識的基礎。每一個點擊、每一次搜索、每一筆交易,都流經由那些在混亂中看見秩序、在隨機中發現結構的夢想家所建立的系統。資料庫的故事,每天都在新的查詢、新的程式碼中持續書寫。


延伸閱讀

張貼留言

0 留言