關係型資料庫管理系統比較

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

## 基本資訊

維護者｜首次發行日期｜最新穩定版｜軟體授權協議

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年｜()｜專有

DBISAM｜Elevate Software｜?｜4.25｜專有

ElevateDB｜Elevate Software｜?｜1.01｜專有

Firebird｜Firebird Foundation｜2000年7月25日｜()｜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年｜()｜專有

MonetDB｜The MonetDB Developer Team｜2004年｜4.16 (Feb. 2007)｜MonetDB Public License v1.1

MySQL｜MySQL AB｜1995年｜()｜GPL 或 專有

HP NonStop SQL｜Hewlett-Packard｜1987年｜SQL MX 2.0｜專有

Oracle｜Oracle Corporation｜1979年11月｜()｜專有

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月｜()｜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日｜()｜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): 外聯鍵約束在語法上有效，但實際上並不能得到強制執行，可使用觸發器替代。不支持嵌套事務。

## 表與視圖

臨時表｜物化視圖(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): 伺服器提供臨時資料庫，可供會話存放公共／私有的臨時表。

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

註記 (7): 物化視圖在PostgreSQL 9.3中已經實現支持。.

## 索引

資料庫所支持的索引類型（除基本的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): 可通過索引一個經過計算的列，或使用一個已索引的視圖實現

註記 (9): 可使用索引視圖實現。

註記 (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.

註記 (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或者其他過程語言模擬。

## 資料庫與模式(Schemas)

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

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

## 外部連結

- 各種SQL標準實現的對比，包括Oracle, DB2, Microsoft SQL Server, MySQL 與 PostgreSQL. (08/Jun/2007)
- Comparison of Oracle 8/9i, MySQL 4.x and PostgreSQL 7.x DBMS against SQL standards. (14/Mar/2005)
- Comparison of Oracle and SQL Server. (2004)
- Comparison of geometrical data handling in PostgreSQL, MySQL and DB2 (29/Sep/2003)
- Open Source Database Software Comparison (Mar/2005)
- PostgreSQL vs. MySQL vs. Commercial Databases: It's All About What You Need (12/Apr/2004)
- The SQL92 standard