This is an old revision of this page, as edited by Troels Arvin (talk | contribs) at 07:17, 20 July 2005 (MySQL actually warns about such things ("show warnings"), but one has to check for them manually; and as the data is inserted/updated, the warnings are rather useless.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Revision as of 07:17, 20 July 2005 by Troels Arvin (talk | contribs) (MySQL actually warns about such things ("show warnings"), but one has to check for them manually; and as the data is inserted/updated, the warnings are rather useless.)(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.
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 |
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 1 | 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 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 |
HSQLDB | Yes | Yes | Yes | Yes | Yes |
Informix | Yes | Yes | Yes | Yes | Yes |
Ingres | 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 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 |
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 |
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 (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 .
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 |
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 |
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 (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 |
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