資料庫
資料庫(Database) ,是指按照數據結構來組織、存儲和管理數據的倉庫,是一個長期存儲在計算機內的、有組織的、可共享的、統一管理的數據集合[1]。其核心目標是實現數據的持久化存儲與高效檢索,同時保證數據的完整性、一致性和安全性。資料庫管理系統(Database Management System, DBMS)則是負責建立、使用和維護資料庫的軟體系統,它充當用戶或應用程式與作業系統之間的數據管理中間層[1]。現代信息技術的基礎架構高度依賴資料庫系統,廣泛應用於企業資源規劃、金融交易、電子商務、物聯網及人工智慧等各類場景。
| 資料庫 | |
|---|---|
| 中文名 | 資料庫 |
| 英文名 | Database |
| 定義 | 按照數據結構組織、存儲和管理數據的倉庫 |
| 核心功能 | 數據持久化、高效檢索、完整性保障 |
| 典型系統 | Oracle, MySQL, Microsoft SQL Server, PostgreSQL, MongoDB |
1960年代,隨著計算機在商業和管理領域的應用擴展,對海量數據的存儲與檢索需求急劇上升。早期的信息系統採用層次模型與網狀模型,數據之間通過硬編碼的指針導航(Navigational)進行物理關聯,用戶必須了解數據的存儲路徑才能完成查詢[2][3]。這一時期最具代表性的系統包括IBM於1960年代開發的IMS(Information Management System)以及通用電氣公司的IDS(Integrated Data Store)[1]。儘管這些系統解決了基本的數據持久化問題,但其程序依賴性強、查詢靈活性差,導致數據訪問成本高昂。
1970年,任職於IBM聖何塞研究實驗室的英國數學家埃德加·弗蘭克·科德(Edgar F. Codd)發表了題為「A Relational Model of Data for Large Shared Data Banks」的論文,提出關係資料庫模型[2][3]。該模型摒棄了之前基於導航指針的路徑依賴性,利用基於集合論的數學關係來組織數據,將所有數據表示為元組(行)與屬性(列)構成的二維表,並通過聲明式的查詢語言訪問數據,從而實現了數據獨立性——用戶僅需指定「需要什麼」而非「如何獲取」[2]。關係模型的提出為後續資料庫標準化奠定了理論基礎。
科德的論文雖具有開創性,但在初期並未立即得到工業界全面採納。IBM於1974年啟動了System R研究項目,旨在驗證關係模型在工業環境下的可行性,該系統成功實現了結構化查詢語言(SQL)的雛形並證明了關係資料庫的性能潛力[2]。幾乎同一時期,加州大學伯克利分校開發了Ingres系統,進一步推動了關係資料庫技術的發展。1979年,拉里·埃里森(Larry Ellison)創立的Relational Software公司(後更名為Oracle)率先發布了商用的Oracle資料庫,成為首款成功商業化的RDBMS產品[2]。1980年代至1990年代,關係資料庫在聯機事務處理(OLTP)和決策支持領域確立了絕對統治地位,Oracle、IBM DB2、Microsoft SQL Server、Informix、Sybase等產品共同主導了企業級數據管理市場[1]。
1990年代末至21世紀初,網際網路服務的爆炸式增長對資料庫系統提出海量數據與高並發訪問的新挑戰。以Google、Amazon為代表的超大規模Web服務率先遇到了傳統關係型資料庫在水平擴展能力上的瓶頸。Google於2004至2006年間先後發布了關於GFS、Bigtable和MapReduce的三篇重要論文,Amazon於2007年發布了Dynamo論文,共同催生了NoSQL(Not Only SQL,即「不僅僅是SQL」)運動[4]。NoSQL資料庫放棄了部分關係特性(如強一致事務、複雜關聯查詢)以換取近乎線性的橫向擴展能力與靈活的數據模型,主要分為鍵值存儲、文檔存儲、列族存儲和圖資料庫等四類[4]。代表性產品包括MongoDB(文檔)、Cassandra(列族)、Redis(鍵值)和Neo4j(圖)[1]。
2010年代初期,部分應用場景需要在保持NoSQL水平擴展能力的同時,依然提供完整的SQL支持和強一致性ACID(原子性、一致性、隔離性、持久性)事務。2012年,Google發表Spanner論文,首次在全球化分布式系統中實現了外部一致性事務,標誌著NewSQL資料庫概念的正式提出[5]。NewSQL資料庫旨在融合傳統RDBMS的SQL能力與NoSQL的擴展特性,代表產品有Google Spanner、CockroachDB、TiDB等[5]。同期,雲計算的普及催生了雲原生資料庫(Cloud-native Database),通過將計算與存儲分離架構實現資源的彈性伸縮和按需計費,典型產品包括Amazon Aurora、Google AlloyDB和阿里雲PolarDB等[1]。
關係型資料庫基於關係模型,使用SQL作為標準的查詢和程式語言。數據以表(行和列)的形式組織,並通過主鍵與外鍵約束建立表間關聯。RDBMS的優勢在於支持複雜的事務處理(ACID)、保證數據的強一致性以及具備完善的權限管理和備份恢復機制。常見的關係型資料庫產品包括商業軟體Oracle、Microsoft SQL Server、IBM Db2,以及開源社區廣泛使用的MySQL、PostgreSQL和SQLite等。
NoSQL資料庫是一類使用非表格格式(如鍵值對、文檔、列族或圖結構)存儲數據的資料庫系統的總稱,其「NoSQL」更準確的解釋為「Not Only SQL」[4]。NoSQL資料庫通常面向特定的數據模型,具備良好的水平擴展性、靈活的模式設計和較高的讀寫性能。根據數據模型,NoSQL資料庫可進一步劃分為四大類[4]:
- **鍵值存儲**:以鍵值對的方式存儲數據,適合快速讀寫簡單數據。典型產品有Redis、Amazon DynamoDB、Riak。
- **文檔存儲**:以JSON、BSON或XML等半結構化文檔為單位組織數據,與應用程式代碼的抽象層次接近,便於開發。典型產品有MongoDB、Couchbase、Amazon DocumentDB。
- **列族存儲**:以列族(一組列)為單位進行數據組織和存儲,適合海量數據的寫入和高壓縮率的分析查詢。典型產品有Apache Cassandra、Apache HBase、Google Bigtable。
- **圖資料庫**:使用節點、邊和屬性來表示和存儲數據,專門用於處理高度關聯的複雜關係型數據。典型產品有Neo4j、Amazon Neptune、JanusGraph。
NewSQL是一類兼具傳統關係資料庫的ACID事務一致性和NoSQL資料庫的水平擴展能力的新型資料庫系統[5]。其目標是在分布式或雲原生環境下,仍然提供完整的SQL支持、強一致性事務以及與傳統RDBMS相當的線性擴展性能。技術實現上通常採用分布式共識協議(如Paxos或Raft)來保證數據副本間的一致性,並通過分層架構將計算、存儲與元數據管理分離[5]。主要NewSQL產品包括Google Spanner(及其開源實現CockroachDB)、PingCAP開發的TiDB以及螞蟻集團的OceanBase。
人工智慧技術正在被集成到資料庫管理的各個環節。AI賦能(AI for DB)方向利用機器學習模型實現查詢優化、參數自調優、索引推薦和智能運維,部分資料庫產品開始提供自治資料庫(Autonomous Database)功能,能夠自動完成打補丁、升級和故障修復[6]。另一方面,資料庫為AI服務(DB for AI)方向則通過向量資料庫、內置RAG(檢索增強生成)引擎以及函數即服務(Serverless)架構,為AI應用和AI智能體提供高效的數據管理與訪問能力[6]。例如,部分資料庫開始原生支持向量數據類型並提供近似最近鄰(ANN)檢索功能,以支撐生成式AI與大語言模型的應用場景[1]。
傳統資料庫往往僅支持單一數據模型(關係型或某種NoSQL模型),而多模型資料庫(Multi-model Database)旨在在一個統一的資料庫內核中同時支持多種數據模型,如關係表、文檔、圖、鍵值對等[1]。這種設計能消除為不同數據模型維護多套獨立存儲系統所帶來的數據孤島和運維複雜性,同時允許應用根據具體場景選擇最合適的模型訪問同一份數據。
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Wikipedia: Database
- ↑ 2.0 2.1 2.2 2.3 2.4 IBM: The relational database
- ↑ 3.0 3.1 Britannica: Edgar Frank Codd
- ↑ 4.0 4.1 4.2 4.3 ScyllaDB: NoSQL Database Comparison
- ↑ 5.0 5.1 5.2 5.3 什麼是 NewSQL 資料庫?從 Google Spanner 到 TiDB 的技術演進
- ↑ 6.0 6.1 DBTA: Build Intelligent, Scalable, and Autonomous Databases with MariaDB Cloud