关系型数据库管理系统比较

在以下的表格中，将对一些关系型数据库管理系统的基本信息和技术信息进行对比。请参考以下产品各自的条目以获得更详细的介绍。该表格不可能包罗万象，也许有些信息已过时。除非注明，以下产品为各自的稳定版本，且没有安装任何形式的扩展程序。

基本信息
 维护者 首次发行日期 最新稳定版 软件授权协议 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运行。</cite>

注记 (2): 该项受该平台上Java虚拟机的可用性制约。</cite>

基本功能
数据库系统所能实现的基本功能对比。
 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

参见
关系型数据库管理系统列表

Category:软件比较
Category:数据库管理系统