Jump to content

Comparison of relational database management systems

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Reisio (talk | contribs) at 23:22, 7 October 2005 (Operating system support: unknown -> ?). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The following tables compare general and technical information for a number of SQL database management systems. Please see the individual products' articles for further information. This article is not all-inclusive or necessarily up-to-date. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

General information

Basic general information about the SQL DBMSes: creator, company, license, etc.

Maintainer First public release date Latest stable version Software license
Adaptive Server Enterprise Sybase 1987 12.5.3 Proprietary
Adaptive Server Anywhere Sybase/iAnywhere 1992 9.0.2 Proprietary
DB2 IBM 1982 8.2 Proprietary
Firebird Firebird Foundation July 25, 2000 1.5.2 InterBase Public License
Informix Informix Software 1985 10.0 Proprietary
HSQLDB Hsqldb.Org 2001 1.8.0 BSD-based
Ingres Berkeley University, Computer Associates 1980 r3 3.0.1 CA-TOSL
InterBase Borland 1985 7.5.1 Proprietary
SapDB SAP ? 7.4 GPL with LGPL drivers
MaxDB MySQL AB, SAP ? 7.6 GPL or proprietary
Microsoft SQL Server Microsoft 1989 8.00.2039 (2000 SP4) Proprietary
MySQL MySQL AB November 1996 4.1 GPL or proprietary
Oracle Oracle Corporation 1977 10g Release 2 Proprietary
PostgreSQL PostgreSQL Global Development Group June, 1989 8.0.4 BSD
SQLite D. Richard Hipp August 17 2000 3.2.7 Public domain
Maintainer First public release date Latest stable version Software license

Operating system support

The operating systems the SQL DBMSes can run on.

Windows Mac OS X Linux BSD Unix
Adaptive Server Enterprise Yes Yes Yes Yes Yes
DB2 Yes No Yes No Yes
Firebird Yes Yes Yes Yes Yes
HSQLDB Yes Yes Yes Yes Yes
Informix Yes Yes Yes Yes Yes
Ingres Yes ? Yes ? Yes
InterBase Yes No Yes No Yes (Solaris)
Adabas ? ? ? ? ?
SapDB Yes No Yes No Yes
MaxDB Yes No Yes No Yes
Microsoft SQL Server Yes No No No No
MySQL Yes Yes Yes Yes Yes
Oracle Yes Yes Yes No Yes
PostgreSQL Yes Yes Yes Yes Yes
SQLite Yes Yes Yes Yes Yes
Windows Mac OS X Linux BSD Unix

Fundamental features

Information about what fundamental SQL DBMS features are implemented natively.

ACID Referential integrity Transactions Unicode
Adaptive Server Enterprise Yes Yes Yes Yes
DB2 Yes Yes Yes Yes
Firebird Yes Yes Yes Yes
HSQLDB Yes Yes Yes ?
Informix Yes Yes Yes Yes
Ingres Yes Yes Yes Yes
InterBase Yes Yes Yes Yes
SapDB Yes Yes Yes Yes
MaxDB Yes Yes Yes Yes
Microsoft SQL Server Yes Yes Yes Yes
MySQL Depends 1 Depends 1 Depends 1 Yes
Oracle Yes Yes Yes Yes
PostgreSQL Yes Yes Yes Yes
SQLite Yes No 2 Basic 2 Yes
ACID Referential integrity Transactions Unicode

Note (1): For transactions and referential integrity, the InnoDB table type must be used; the default table type, MyISAM, does not support these features. However, even the InnoDB table type permits storage of values that exceed the data range; some view this as violating the Integrity constraint of ACID.

Note (2): CHECK and FOREIGN KEY constraints are parsed but are not enforced. Triggers can be used instead. Nested transactions are not supported. [1]

Tables and views

Information about what tables and views 3 (other than basic ones) are supported natively.

Temporary table Materialized view
Adaptive Server Enterprise Yes  5 No
DB2 Yes Yes
Firebird No No
HSQLDB Yes No
Informix Yes Yes
Ingres Yes No
InterBase Yes No
SapDB Yes No
MaxDB Yes No
Microsoft SQL Server Yes Similar 6
MySQL Yes No
Oracle Yes Yes
PostgreSQL Yes Similar 4
SQLite Yes No
Temporary table Materialized view

Note (4): Materialized view can be emulated with PL/pgSQL, PL/Perl, PL/Python or other procedural languages. One example is here: [2].

Note (5): Server provides tempdb, which can be used for public and private (for the session) temp tables. [3]

Note (6): MS SQL server provides indexed views. [4]

Indexes

Information about what indexes (other than basic B-/B+ tree indexes) are supported natively.

R-/R+ tree Hash Expression Partial Reverse Bitmap
Adaptive Server Enterprise No No No No Yes No
DB2 No ? No No Yes Yes
Firebird No No No No No No
HSQLDB No No No No No No
Informix Yes Yes Yes No No No
Ingres Yes Yes No No No No
InterBase ? ? No No No No
SapDB ? ? No No No No
MaxDB ? ? No No No No
Microsoft SQL Server ? ? No No No No
MySQL MyISAM tables only HEAP tables only No No No No
Oracle EE edition only Cluster Tables Yes No Yes Yes
PostgreSQL Yes Yes Yes Yes Yes 7 Yes 8
SQLite No No No No No No
R-/R+ tree Hash Expression Partial Reverse Bitmap

Note (7): A PostgreSQL functional index can be used to reverse the order of a field.

Note (8): PostgreSQL 8.1, presently in beta, can construct an in-memory bitmap of indexes for the duration of a query. On-disk bitmap indexing is planned for 8.2.

Other objects

Information about what other objects are supported natively.

Domain Cursor Trigger Function 5 Procedure 5 External routine 5
Adaptive Server Enterprise Yes Yes Yes Yes Yes Yes
DB2 No Yes Yes Yes Yes Yes
Firebird Yes Yes Yes Yes Yes Yes
HSQLDB ? No Yes Yes Yes Yes
Informix ? Yes Yes Yes Yes Yes
Ingres Yes Yes Yes Yes Yes ?
InterBase Yes Yes Yes Yes Yes Yes
SapDB Yes Yes Yes Yes Yes ?
MaxDB Yes Yes Yes Yes Yes ?
Microsoft SQL Server No Yes Yes Yes Yes Yes
MySQL No No 3 No 3 No 3 No 3 Yes
Oracle Yes Yes Yes Yes Yes Yes
PostgreSQL Yes Yes Yes Yes Yes Yes
SQLite No No Yes No No Yes
Domain Cursor Trigger Function Procedure External routine

Note (3): These database objects are available in MySQL 5.0 only, which is an experimental version.

Note (5): Both function and procedure refer to internal routines written in SQL and/or procedural language like PL/SQL. External routine refers to the one written in the host languages, such as C, Java, Cobol, etc. "Stored procedure" is a commonly used term for these routine types. However, its definition varies between different database vendors.

Partitioning

Information about what partitioning methods are supported natively.

Range Hash Composite (Range+Hash) List
Adaptive Server Enterprise No Yes No No
DB2 Yes Yes Yes Yes
Firebird No No No No
Informix ? ? ? ?
Ingres Yes Yes Yes Yes
InterBase No No No No
SapDB No No No No
MaxDB No No No No
Microsoft SQL Server Yes No No No
MySQL No No No No
Oracle Yes Yes Yes Yes
PostgreSQL Yes 9 Yes 9 Yes 9 No
SQLite No No No No
Range Hash Composite (Range+Hash) List

Note (9): PostgreSQL 8.1 (currently in beta) provides partitioning support through check constraints. Range, List and Hash methods can be emulated with PL/pgSQL or other procedural languages. [5]

See also