Comparison of relational database management systems
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.
General information
Basic general information about the RDBMSes: creator/company, license/price etc.
Creator | First public release date | Latest stable version | Software license | |
---|---|---|---|---|
Adaptive Server Enterprise | Sybase | 1987 | 12.5.3 | Proprietary |
DB2 | IBM | 1982 | 8.2 | Proprietary |
Firebird | FirebirdSQL Foundation | July 25, 2000 | 1.5.2 | InterBase Public License |
InterBase | Borland | 1985 | 7.5 | Proprietary |
MaxDB | MySQL AB, SAP AG | ? | 7.5 | GPL or proprietary |
Microsoft SQL Server | Microsoft | 1989 | 8.00.760 (2000 SP3) | Proprietary |
MySQL | MySQL AB | ? | 4.1 | GPL or proprietary |
Oracle | Oracle Corporation | 1977 | 10g | Proprietary |
PostgreSQL | PostgreSQL Global Development Group | June, 1989 | 8.0.1 | 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 without emulation.
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 |
InterBase | Yes | No | Yes | No | Yes (Solaris) |
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 RDBMSes features are implemented natively.
ACID | Referential integrity | Transaction | Unicode | |
---|---|---|---|---|
Adaptive Server Enterprise | Yes | Yes | Yes | Yes |
DB2 | Yes | Yes | Yes | Yes |
Firebird | Yes | Yes | Yes | Yes |
InterBase | 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 | Transaction | Unicode |
Note (1): For transactions and referential integrity, InnoDB (which is not the default table type) need to be used. [1]
Note (2): CHECK and FOREIGN KEY constraints are parsed but are not enforced. Nested transaction is not supported. [2]
Tables and views
Information about what tables and views 3 (other than basic ones) are supported natively.
Temporary table | Materialized view | |
---|---|---|
Adaptive Server Enterprise | No | No |
DB2 | Yes | Yes |
Firebird | No | No |
InterBase | Yes | No |
MaxDB | Yes | No |
Microsoft SQL Server | Yes | No |
MySQL | Yes | No |
Oracle | Yes | Yes |
PostgreSQL | Yes | No 4 |
SQLite | Yes | No |
Temporary table | Materialized view |
Note (3): These database objects are available in MySQL 5.0 only, which is an experimental version.
Note (4): Materialized view can be emulated with PL/pgSQL [3].
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 |
DB2 | With Spatial Extender | ? | No | No | No | Yes |
Firebird | ? | ? | No | No | No | No |
InterBase | ? | ? | 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 | User defined function | Trigger | Stored procedure | |
---|---|---|---|---|---|
Adaptive Server Enterprise | No | Yes | Yes | Yes | Yes |
DB2 | No | Yes | Yes | Yes | Yes |
Firebird | Yes | Yes | Yes | Yes | Yes |
InterBase | Yes | Yes | Yes | Yes | Yes |
MaxDB | Yes | Yes | Yes | Yes | Yes |
Microsoft SQL Server | No | Yes | Yes | Yes | Yes |
MySQL | No | No 3 | No | No 3 | No 3 |
Oracle | Yes | Yes | Yes | Yes | Yes |
PostgreSQL | Yes | Yes | Yes | Yes | Yes |
SQLite | No | No | Yes | Yes | No |
Domain | Cursor | User defined function | Trigger | Stored procedure |
Partitioning
Information about what partitioning methods are supported natively.
Range | Hash | Composite (Range+Hash) | List | |
---|---|---|---|---|
Adaptive Server Enterprise | ? | ? | ? | ? |
DB2 | ? | ? | ? | ? |
Firebird | ? | ? | ? | ? |
InterBase | ? | ? | ? | ? |
MaxDB | ? | ? | ? | ? |
Microsoft SQL Server | Yes | No | No | No |
MySQL | ? | ? | ? | ? |
Oracle | Yes | Yes | Yes | Yes |
PostgreSQL | ? | ? | ? | ? |
SQLite | No | No | No | No |
Range | Hash | Composite (Range+Hash) | List |