在以下的表格中,将对一些关系型数据库管理系统的基本信息和技术信息进行对比。请参考以下产品各自的条目以获得更详细的介绍。该表格不可能包罗万象,也许有些信息已过时。除非注明,以下产品为各自的稳定版本,且没有安装任何形式的扩展程序。
基本信息
操作系统支持
这些数据库所能支持的操作系统。
列表中标明了UNIX兼容的开源数据库可以在z/OS的内建子系统UNIX系统服务(USS)下编译和运行。大部分Linux兼容的数据库可以与z/OS在同一台服务器上通过Linux on zSeries运行。
该项受该平台上Java虚拟机的可用性制约。
基本功能
数据库系统所能实现的基本功能对比。
需要使用InnoDB格式数据表才能实现关联完整性约束与事务。 然而,InnoDB格式数据表仍旧允许存储的数据超出数据范围;一些观点认为它由此违反了ACID的完整性约束。
外联键约束在语法上有效,但实际上并不能得到强制执行,可使用触发器替代。不支持嵌套事务。[http://www.sqlite.org/omitted.html]
表与视图
服务器提供临时数据库,可供会话存放公共/私有的临时表。[https://web.archive.org/web/20070630082908/http://sybooks.sybase.com/onlinebooks/group-as/asg1250e/sag/@Generic__BookTextView/3225;]
物化视图可用存储过程和触发器模拟[https://web.archive.org/web/20060423094210/http://pure.rednoize.com/archives/13/]。
物化视图在PostgreSQL 9.3中已经实现支持。 [https://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.3] .
索引
数据库所支持的索引类型(除基本的B树外)
可通过索引一个经过计算的列,或使用一个已索引的视图实现 [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/createdb/cm_8_des_05_8os3.asp]
可使用索引视图实现。 [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql2k/html/indexedviews1.asp]
InnoDB自动按需生成 [http://dev.mysql.com/doc/refman/5.0/en/innodb-adaptive-hash.html adaptive hash index] 。
一个有效的PostgreSQL索引可以用来进行倒排序。
PostgreSQL将在8.3中支持保存于磁盘的位图索引。8.2提供了一种称为"内存位图扫描(in-memory bitmap scans)"的相关技术。
在Oracle 8i及以后的版本可使用基于函数的索引(Function-based Indexes)实现。
The users need to use a function from freeAdhocUDF library or similar. [http://www.udf.adhoc-data.de/index_eng.html]
在Valentina中可使用基于函数的索引(Function-based Indexes)实现。
其他对象
有关其他类型对象的支持情况。
以上函数和存储过程都是指使用SQL或者过程语言(如PL/SQL、PL/pgSQL等)编写的内部程序调用。外部调用是指使用其他外部语言,如C、Java等语言编写的调用。存储过程是这类调用的笼统称呼,在不同的供应商系统中,它们往往有着不同的定义。
In Derby, users code functions and procedures in Java.
数据表分区
PostgreSQL 8.1 提供了使用check约束实现的数据表分区。范围、列表以及哈希分区可通过PL/pgSQL或者其他过程语言模拟。[http://developer.postgresql.org/docs/postgres/release.html#RELEASE-8-1]
数据库与模式(Schemas)
SQL标准明确了SQL模式(SQL schema)的定义,然而,许多数据库对它的实现并不正确。SQL模式是指一个数据库内部的名字空间,此空间内部的对象可以通过成员操作符.访问。
一个完整名字的查询类似这种形式:select * from database.schema.table。
参考资料
外部链接
*[http://troels.arvin.dk/db/rdbms/] 各种SQL标准实现的对比,包括Oracle, DB2, Microsoft SQL Server, MySQL 与 PostgreSQL. (08/Jun/2007)
*[https://web.archive.org/web/20070621165343/http://www-css.fnal.gov/dsg/external/freeware/mysql-vs-pgsql.html Comparison of Oracle 8/9i, MySQL 4.x and PostgreSQL 7.x DBMS against SQL standards]. (14/Mar/2005)
*[https://web.archive.org/web/20070329222029/http://www.wisdomforce.com/dweb/resources/docs/MSSQL2005_ORACLE10g_compare.pdf Comparison of Oracle and SQL Server]. (2004)
*[https://web.archive.org/web/20070629171350/http://wiki.astrogrid.org/pub/Astrogrid/DataFederationandDataMining/cross.htm Comparison of geometrical data handling in PostgreSQL, MySQL and DB2] (29/Sep/2003)
*[https://web.archive.org/web/20020115112354/http://www.geocities.com/mailsoftware42/db/ Open Source Database Software Comparison] (Mar/2005)
*[http://www.devx.com/dbzone/Article/20743 PostgreSQL vs. MySQL vs. Commercial Databases: It's All About What You Need] (12/Apr/2004)
*[http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt The SQL92 standard]
参见
*关系型数据库管理系统列表
评论 (0)