數據庫是用于組織、存儲和管理數據的倉庫,通常由數據庫管理系統 (DBMS) 來控制。數據庫管理系統具有數據定義、操作、存儲與管理、維護和通信等功能,且能夠允許多用戶使用。數據、數據庫管理系統及關聯應用一起被稱為數據庫。數據庫向下調用底層硬件資源,向上支撐應用業務,是三大基礎軟件之一。
數據庫可按數據模型、部署方式、架構模型和業務負載特征進行分類。按數據模型分類:關系型數據庫以二維表形式存儲結構化數據,非關系型存儲半結構化及非結構化數據。以部署方式分類:數據庫可以部署于本地服務器上或云計算資源上。按架構模型分類:集中式不對數據進行分片,數據被集中存儲在存儲設備中;分布式則將數據分散到不同的計算機上。按業務負載特征分類:交易型數據庫(OLTP)又稱事務型數據庫,主要進行在線實時業務處理,例如銀行交易等;分析型數據庫(OLAP)擅長于處理離線分析業務,支持復雜的分析操作,側重決策支持,并提供直觀易懂的查詢結果;混合負載數據庫(HTAP)能夠同時完成在線交易和統計分析功能。
非關系型數據庫于 21 世紀初興起。數據庫始于于 20 世紀 60 年代,1968 年 IBM 公司開發出世界上第一個層次數據庫管理系統 IMS,這也是世界上首個大型商用數據庫系統。進入 70 年代,關系型數據庫系統開始成為主流。1975 年,SQL 語言被提出,隨后 IBM DB2、Oracle 等商業關系型數據庫陸續誕生。90 年代 MySQL、PostgreSQL 等開源數據庫涌現。隨著互聯網、云計算的發展,影音、文檔、流媒體等非結構化數據大幅度增加,非關系型數據庫(NoSQL)應運而生。NoSQL 多數采用分布式架構,減少了對復雜查詢的支持,性能相比關系型數據庫大大提升。2009 年,文檔數據庫 MongoDB 掀起了一場 NoSQL 潮流,同期,Cassandra、HBase、ElasticSearch、Redis 等非關系型數據庫紛紛涌現。目前MongoDB 數據庫已位列 DB-Engines 排行榜第五名。