This is an old revision of this page, as edited by 61.95.201.155 (talk) at 13:52, 17 August 2005 (→Partitioning). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Revision as of 13:52, 17 August 2005 by 61.95.201.155 (talk) (→Partitioning)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)The following tables compare general and technical information for a number of relational 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 RDBMSes: creator, company, license, etc.
Creator | 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 AG | ? | 7.4 | GPL with LGPL drivers |
MaxDB | MySQL AB, SAP AG | ? | 7.5 | 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.3 | BSD license |
SQLite | D. Richard Hipp | August 17 2000 | 3.1.3 | Public domain |
Creator | First public release date | Latest stable version | Software license |
Operating system support
The operating systems the RDBMSes 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) |
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 RDBMS 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 | Depends | Depends | Yes |
Oracle | Yes | Yes | Yes | Yes |
PostgreSQL | Yes | Yes | Yes | Yes |
SQLite | Yes | No | Basic | 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. Nested transactions are not supported.
Tables and views
Information about what tables and views (other than basic ones) are supported natively.
Temporary table | Materialized view | |
---|---|---|
Adaptive Server Enterprise | Yes | 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 |
MySQL | Yes | No |
Oracle | Yes | Yes |
PostgreSQL | Yes | No |
SQLite | Yes | No |
Temporary table | Materialized view |
Note (4): Materialized view can be emulated with PL/PgSQL .
Note (5): Server provides tempdb, which can be used for public and private (for the session) temp tables.
Note (6): MS SQL server provides indexed views.
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 | ? | ? | ? | ? | ? | ? |
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 | ? | Yes | No | Yes | Yes |
PostgreSQL | Yes | Yes | Yes | Yes | No | No |
SQLite | No | No | No | No | No | No |
R-/R+ tree | Hash | Expression | Partial | Reverse | Bitmap |
Other objects
Information about what other objects are supported natively.
Domain | Cursor | Trigger | Function | Procedure | External routine | |
---|---|---|---|---|---|---|
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 | No | No | No | 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 | ? | ? | ? | ? |
MaxDB | ? | ? | ? | ? |
Microsoft SQL Server | Yes | No | No | No |
MySQL | No | No | No | No |
Oracle | Yes | Yes | Yes | Yes |
PostgreSQL | No | No | No | No |
SQLite | No | No | No | No |
Range | Hash | Composite (Range+Hash) | List |
See also
External links
- Comparison of different SQL implementations
- Comparison of geometrical data handling in PostgreSQL, MySQL and DB2
- Open Source Database Software Comparison
- PostgreSQL vs. MySQL vs. Commercial Databases: It's All About What You Need