跳至內容

關係型數據庫管理系統比較

維基百科,自由的百科全書

在以下的表格中,將對一些關係型數據庫管理系統的基本信息和技術信息進行對比。請參考以下產品各自的條目以獲得更詳細的介紹。該表格不可能包羅萬象,也許有些信息已過時。除非註明,以下產品為各自的穩定版本,且沒有安裝任何形式的擴展程序。

基本信息

維護者 首次發行日期 最新穩定版 軟件授權協議
4th Dimension 4D s.a.sd 1984年 2004.5 專有
Adaptive Server Enterprise Sybase 1987年 15.0 專有
Apache Derby Apache軟件基金會 2004年 10.13.1.1 Apache許可證
DB2 IBM 1982年 11.5.9[1]在維基數據編輯 (2023年11月15日,11個月前) 專有
DBISAM Elevate Software頁面存檔備份,存於互聯網檔案館 ? 4.25 專有
ElevateDB Elevate Software頁面存檔備份,存於互聯網檔案館 ? 1.01 專有
Firebird Firebird Foundation 2000年7月25日 5.0.1[2]在維基數據編輯 (2024年8月2日,2個月前) Initial Developer's Public License
Informix IBM 1985年 10.0 專有
HSQLDB HSQL Development Group 2001年 1.8.0 BSD
H2 H2 Software 2005年 1.0 Freeware
Ingres Ingres Corp. 1974年 Ingres 2006 II 9.0.4 GPL專有
InterBase CodeGear 1985年 2007 專有
Sybase IQ Sybase 1996年 15.2 專有
MaxDB MySQL AB, SAP AG ? 7.6 GPL專有
Microsoft SQL Server Microsoft 1989年 2022[3]在維基數據編輯 (2022年11月16日,22個月前) 專有
MonetDB The MonetDB Developer Team頁面存檔備份,存於互聯網檔案館 2004年 4.16 (Feb. 2007) MonetDB Public License v1.1頁面存檔備份,存於互聯網檔案館
MySQL MySQL AB 1995年 9.1.0[4]在維基數據編輯 (2024年10月15日,8天前) GPL專有
HP NonStop SQL Hewlett-Packard 1987年 SQL MX 2.0 專有
Oracle Oracle Corporation 1979年11月 23ai[5]在維基數據編輯 (2023年9月19日,12個月前) 專有
Oracle Rdb Oracle Corporation 1984年 7.2 專有
OpenEdge Progress Software Corporation 1984年 10.1B 專有
OpenLink Virtuoso OpenLink Software頁面存檔備份,存於互聯網檔案館 1998年 4.5.3 (April 2006) GPL專有
Pervasive PSQL Pervasive Software ? 9 專有
PostgreSQL PostgreSQL Global Development Group頁面存檔備份,存於互聯網檔案館 1989年6月 17.0[6]在維基數據編輯 (2024年9月26日,27天前) BSD
Pyrrho DBMS University of Paisley 2005年11月 0.5 專有
SmallSQL SmallSQL 2005年4月16日 0.12 LGPL
SQL Anywhere Sybase 1992年 10.0 專有
SQLite D. Richard Hipp 2000年8月17日 3.47.0[7]在維基數據編輯 (2024年10月21日,2天前) Public domain
Teradata Teradata 1984 13.10 專有
Valentina Paradigma Software 1998年2月 3.0.1 專有
Vertica Vertica 2005 4.0 專有
維護者 首次發行日期 最新穩定版 軟件授權協議

作業系統支持

這些數據庫所能支持的作業系統

Windows Mac OS X Linux BSD UNIX z/OS 1
4th Dimension
Adaptive Server Enterprise
Apache Derby 2
DB2
Firebird 可能
HSQLDB 2
H2 2 可能
Informix
Ingres 可能
InterBase 是 (Solaris)
Adabas
MaxDB 可能
Microsoft SQL Server
MonetDB
MySQL 可能
Oracle
OpenEdge
OpenLink Virtuoso
PostgreSQL
Pyrrho DBMS 是 (.NET) 是 (Mono)
SmallSQL
SQL Anywhere
SQLite 可能
Teradata
Valentina
Windows Mac OS X Linux BSD UNIX z/OS 1

註記 (1): 列表中標明了UNIX兼容的開源數據庫可以在z/OS的內建子系統UNIX系統服務(USS)下編譯和運行。大部分Linux兼容的數據庫可以與z/OS在同一台伺服器上通過Linux on zSeries運行。

註記 (2): 該項受該平台上Java虛擬機的可用性制約。

基本功能

數據庫系統所能實現的基本功能對比。

ACID 關聯完整性 數據庫事務 統一碼
Adaptive Server Enterprise
Apache Derby
DB2
Firebird
HSQLDB
H2
Informix
Ingres
InterBase
MaxDB
Microsoft SQL Server
MonetDB
MySQL 是 3 是 3 是 3
Oracle
OpenEdge
OpenLink Virtuoso
PostgreSQL
Pyrrho DBMS
SQL Anywhere
SQLite 否 4 Basic 4
Teradata
Valentina
ACID 關聯完整性 數據庫事務 統一碼

註記 (3): 需要使用InnoDB格式數據表才能實現關聯完整性約束與事務。 然而,InnoDB格式數據表仍舊允許存儲的數據超出數據範圍;一些觀點認為它由此違反了ACID的完整性約束。

註記 (4): 外聯鍵約束在語法上有效,但實際上並不能得到強制執行,可使用觸發器替代。不支持嵌套事務。[1]頁面存檔備份,存於互聯網檔案館

表與視圖

臨時表 物化視圖(Materialized view)
Adaptive Server Enterprise 是  5
Apache Derby
DB2
Firebird Will be in 2.1 否 (only common views)
HSQLDB
H2
Informix
Ingres Ingres r4
InterBase
MaxDB
Microsoft SQL Server
MonetDB
MySQL 否 6
Oracle
OpenEdge
OpenLink Virtuoso
PostgreSQL 是 7
Pyrrho DBMS
SQL Anywhere
SQLite
Teradata
Valentina
臨時表 物化視圖(Materialized view)

註記 (5): 伺服器提供臨時數據庫,可供會話存放公共/私有的臨時表。[2]

註記 (6): 物化視圖可用存儲過程和觸發器模擬[3]

註記 (7): 物化視圖在PostgreSQL 9.3中已經實現支持。 [4]頁面存檔備份,存於互聯網檔案館).

索引

數據庫所支持的索引類型(除基本的B樹外)

R-/R+ tree 哈希 Expression 部分索引(Partial index) 反向索引(Reverse index) 位圖索引(Bitmap) GiST GIN
Adaptive Server Enterprise
Apache Derby
DB2 ?
Firebird 是 16
HSQLDB
H2
Informix
Ingres Ingres r4 Ingres r4
InterBase
MaxDB ? ?
Microsoft SQL Server ? 否n/Cluster & fill factor 是 8 是 9 是 8
MonetDB
MySQL 僅限MyISAM MEMORY, Cluster (NDB), 僅限InnoDB,17
Oracle EE edition only Cluster Tables 是 15
OpenLink Virtuoso Cluster
PostgreSQL 是 10 否 11
Pyrrho DBMS
SQL Anywhere
SQLite
Teradata
Valentina 是 8 是 17
R-/R+ tree 哈希 Expression 部分索引(Partial index) 反向索引(Reverse index) 位圖索引(Bitmap) GiST GIN

註記 (8): 可通過索引一個經過計算的列,或使用一個已索引的視圖實現 [5]頁面存檔備份,存於互聯網檔案館

註記 (9): 可使用索引視圖實現。 [6]頁面存檔備份,存於互聯網檔案館

註記 (17): InnoDB自動按需生成 adaptive hash index頁面存檔備份,存於互聯網檔案館)。

註記 (10): 一個有效的PostgreSQL索引可以用來進行倒排序。

註記 (11): PostgreSQL將在8.3中支持保存於磁盤的位圖索引。8.2提供了一種稱為"內存位圖掃描(in-memory bitmap scans)"的相關技術。

註記 (15): 在Oracle 8i及以後的版本可使用基於函數的索引(Function-based Indexes)實現。

註記 (16): The users need to use a function from freeAdhocUDF library or similar. [7]頁面存檔備份,存於互聯網檔案館

註記 (17): 在Valentina中可使用基於函數的索引(Function-based Indexes)實現。

其他對象

有關其他類型對象的支持情況。

數據域 游標 觸發器 函數 12 存儲過程 12 外部調用 12
Adaptive Server Enterprise
Apache Derby 是 13 是 13 是 13
DB2
Firebird
HSQLDB ?
H2
Informix ?
Ingres
InterBase
MaxDB ?
Microsoft SQL Server 是 (2000 and beyond)
MonetDB
MySQL
Oracle
OpenLink Virtuoso
PostgreSQL
Pyrrho DBMS
SQL Anywhere
SQLite
Teradata
Valentina
數據域 游標 觸發器 函數 12 存儲過程 12 外部調用

註記 (12): 以上函數存儲過程都是指使用SQL或者過程語言(如PL/SQL、PL/pgSQL等)編寫的內部程序調用。外部調用是指使用其他外部語言,如C、Java等語言編寫的調用。存儲過程是這類調用的籠統稱呼,在不同的供應商系統中,它們往往有着不同的定義。
註記 (13): In Derby, users code functions and procedures in Java.

數據表分區

範圍(Range) 哈希(Hash) 混合(範圍+哈希) 列表(List)
Adaptive Server Enterprise
Apache Derby
IBM DB2
Firebird
Informix ? ?
Ingres
InterBase
MaxDB
Microsoft SQL Server
MonetDB 是 (M5) 是 (M5) 是 (M5)
MySQL 是 (5.1 beta) 是 (5.1 beta) 是 (5.1 beta) 是 (5.1 beta)
Oracle
OpenLink Virtuoso
PostgreSQL 是 14 是 14 是 14 是 14
Pyrrho DBMS
SQL Anywhere
SQLite
Teradata
Valentina
範圍(Range) 哈希(Hash) 混合(範圍+哈希) 列表(List)

註記 (14): PostgreSQL 8.1 提供了使用check約束實現的數據表分區。範圍、列表以及哈希分區可通過PL/pgSQL或者其他過程語言模擬。[8]頁面存檔備份,存於互聯網檔案館

數據庫與模式(Schemas)

SQL標準明確了SQL模式(SQL schema)的定義,然而,許多數據庫對它的實現並不正確。SQL模式是指一個數據庫內部的名字空間,此空間內部的對象可以通過成員操作符.訪問。

一個完整名字的查詢類似這種形式:select * from database.schema.table

參考資料

  1. ^ Db2 Documentation. [2023年11月15日]. 
  2. ^ Firebird 5.0.1. 2024年8月2日 [2024年8月4日]. 
  3. ^ Explore SQL Server 2022 capabilities. [2023年1月6日]. 
  4. ^ Changes in MySQL 9.1.0 (2024-10-15, Innovation Release). 2024年10月15日 [2024年10月16日]. 
  5. ^ Oracle Database 23c: The Next Long Term Support Release. 
  6. ^ PostgreSQL 17 Released!. 2024年9月26日. 
  7. ^ SQLite Release 3.47.0 On 2024-10-21. 2024年10月21日 [2024年10月21日]. 

外部連結

參見