Tuesday, September 25, 2007


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
The operating systems the RDBMSes can run on.
Note (1): Open source databases listed as UNIX-compatible will likely compile and run under z/OS's built-in UNIX System Services (USS) subsystem. Most databases listed as Linux-compatible can run alongside z/OS on the same server using Linux on zSeries.
Note (2): The database availability depends on Java Virtual Machine not on the operating system

Fundamental features
Information about what tables and views (other than basic ones) are supported natively.
Note (5): Server provides tempdb, which can be used for public and private (for the session) temp tables.[2]
Note (6): Materialized views can be emulated using stored procedures and triggers.[3].
Note (7): Materialized views can be emulated with stored procedures and triggers using PL/pgSQL, PL/Perl, PL/Python, or other procedural languages.[4].

Tables and views
Information about what indices (other than basic B-/B+ tree indices) are supported natively.
Note (8): Can be implemented by indexing a computed column or by using an indexed view. [5]
Note (9): Can be implemented by using an indexed view. [6]
Note (17): InnoDB automatically generates adaptive hash index entries as needed.
Note (10): A PostgreSQL functional index can be used to reverse the order of a field.
Note (11): PostgreSQL will likely support on-disk bitmap indexes in 8.3. Version 8.2 supports a related technique known as "in-memory bitmap scans".
Note (15): Can be implemented using Function-based Indexes in Oracle 8i and higher.
Note (16): The users need to use a function from freeAdhocUDF library or similar. [7]
Note (17): Can be implemented using Function-based Indexes in Valentina.

Comparison of relational database management systems Indices

Database capabilities
Information about what other objects are supported natively.
Note (12): 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. Note (13): In Derby, users code functions and procedures in Java.

Other objects
Information about what partitioning methods are supported natively.
Note (14): PostgreSQL 8.1 provides partitioning support through check constraints. Range, List and Hash methods can be emulated with PL/pgSQL or other procedural languages. [8]

Databases vs Schemas (terminology)

List of relational database management systems
Comparison of truly relational database management systems
Comparison of object-relational database management systems

No comments: