`

db RDBMS products list

阅读更多

免费数据库

SQLite、Berkeley DB、PostgreSQL、MySQL、Firebird、mSQL、MSDE、DB2 Express-C、Oracle XE)

http://blog.csdn.net/wangji163163/archive/2009/02/16/3895401.aspx

老调重弹-怎样选择开源免费数据库

http://www.iteye.com/topic/12042

主要关系型数据库系统对比

http://www.pgsqldb.org/mwiki/index.php/%E4%B8%BB%E8%A6%81%E5%85%B3%E7%B3%BB%E5%9E%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F%E5%AF%B9%E6%AF%94#.E5.9F.BA.E6.9C.AC.E5.8A.9F.E8.83.BD

 

维护者 首次发行日期 最新稳定版 软件授权协议 PostgreSQL 4th Dimension Adaptive Server Enterprise Apache Derby DB2 DBISAM ElevateDB Firebird Informix HSQLDB H2 Ingres InterBase MaxDB Microsoft SQL Server MonetDB MySQL HP NonStop SQL Oracle Oracle Rdb OpenEdge OpenLink Virtuoso Pervasive PSQL Pyrrho DBMS SmallSQL SQL Anywhere SQLite Teradata Valentina 维护者 首次发行日期 最新稳定版 软件授权协议
PostgreSQL Global Development Group June 1989 8.2.4 BSD
4D s.a.s 1984 2004.5 专有
Sybase 1987 15.0 专有
Apache 2004 10.2.2.0 Apache License
IBM 1982 9 专有
Elevate Software  ? 4.25 专有
Elevate Software  ? 1.01 专有
Firebird Foundation July 25, 2000 2.0.1 Initial Developer's Public License
IBM 1985 10.0 专有
HSQL Development Group 2001 1.8.0 BSD
H2 Software 2005 1.0 Freeware
Ingres Corp. 1974 Ingres 2006 II 9.0.4 GPL 与 专有
CodeGear 1985 2007 专有
MySQL AB, SAP AG  ? 7.6 GPL 或 专有
Microsoft 1989 9.00.3042 (2005 SP2) 专有
The MonetDB Developer Team 2004 4.16 (Feb. 2007) MonetDB Public License v1.1
MySQL AB 1996年11月 5.0.41 GPL 或 专有
Hewlett-Packard 1987 SQL MX 2.0 专有
Oracle Corporation 1979年11月 10g Release 2 专有
Oracle Corporation 1984 7.2 专有
Progress Software Corporation 1984 10.1B 专有
OpenLink Software 1998 4.5.3 (April 2006) GPL 或 专有
Pervasive Software  ? 9 专有
University of Paisley 2005年11月 0.5 专有
SmallSQL April 16 2005 0.12 LGPL
Sybase 1992 10.0 专有
D. Richard Hipp August 17 2000 3.3.7 Public domain
Teradata 1984 V2R8.2 专有
Paradigma Software Febrary 1998 3.0.1 专有

[编辑 ] 操作系统支持

这些数据库所能支持的操作系统。

Windows Mac OS X Linux BSD UNIX z/OS 1 PostgreSQL 4th Dimension Adaptive Server Enterprise Apache Derby 2 DB2 Firebird HSQLDB 2 H2 2 Informix Ingres InterBase Adabas MaxDB Microsoft SQL Server MonetDB MySQL Oracle OpenEdge OpenLink Virtuoso Pyrrho DBMS SmallSQL SQL Anywhere SQLite Teradata Valentina Windows Mac OS X Linux BSD UNIX z/OS 1
可能
可能
可能
是 (Solaris)
可能
可能
是 (.NET) 是 (Mono)
可能

注记 (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.</cite>

注记 (2): 该项受该平台上Java虚拟机的可用性制约。</cite>

[编辑 ] 基本功能

数据库系统所能实现的基本功能对比。

ACID 关联完整性 数据库事务 Unicode万国码 PostgreSQL Adaptive Server Enterprise Apache Derby DB2 Firebird HSQLDB H2 Informix Ingres InterBase MaxDB Microsoft SQL Server MonetDB MySQL Oracle OpenEdge OpenLink Virtuoso Pyrrho DBMS SQL Anywhere SQLite Teradata Valentina ACID 关联完整性 数据库事务 Unicode万国码
是 3 是 3 是 3
否 4 Basic 4

注记 (3): 需要使用InnoDB格式数据表才能实现关联完整性约束与事务。 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.

注记 (4): 外联键约束在语法上有效,但实际上并不能得到强制执行,可使用触发器替代。不支持嵌套事务。[1]

[编辑 ] 表与视图

临时表 物化视图(Materialized view) PostgreSQL Adaptive Server Enterprise Apache Derby DB2 Firebird HSQLDB H2 Informix Ingres InterBase MaxDB Microsoft SQL Server MonetDB MySQL Oracle OpenEdge OpenLink Virtuoso Pyrrho DBMS SQL Anywhere SQLite Teradata Valentina 临时表 物化视图(Materialized view)
否 7
是  5
Will be in 2.1 否 (only common views)
Ingres r4
否 6

注记 (5): 服务器提供临时数据库,可供会话存放公共/私有的临时表。[2]

注记 (6): 物化视图可用存储过程和触发器模拟[3]

注记 (7): 物化视图可用PL/pgSQL,PL/Perl,PL/Python或其他过程语言的存储过程和触发器模拟。 [4] .

[编辑 ] 索引

数据库所支持的索引类型(除基本的B树外)

R-/R+ tree 哈希 Expression 部分索引(Partial index) 反向索引(Reverse index) 位图索引(Bitmap) GiST GIN PostgreSQL Adaptive Server Enterprise Apache Derby DB2 Firebird HSQLDB H2 Informix Ingres InterBase MaxDB Microsoft SQL Server MonetDB MySQL Oracle OpenLink Virtuoso Pyrrho DBMS SQL Anywhere SQLite Teradata Valentina R-/R+ tree 哈希 Expression 部分索引(Partial index) 反向索引(Reverse index) 位图索引(Bitmap) GiST GIN
是 10 否 11
 ?
是 16
Ingres r4 Ingres r4
 ?  ?
 ? 否n/Cluster & fill factor 是 8 是 9 是 8
仅限MyISAM MEMORY, Cluster (NDB), 仅限InnoDB,17
EE edition only Cluster Tables 是 15
Cluster
是 8 是 17

注记 (8): 可通过索引一个经过计算的列,或使用一个已索引的视图实现 [5]

注记 (9): 可使用索引视图实现。 [6]

注记 (17): InnoDB自动按需生成 adaptive hash index

注记 (10): 一个有效的PostgreSQL索引可以用来进行倒排序。

注记 (11): PostgreSQL将在8.3中支持保存于磁盘的位图索引。8.2提供了一种称为"内存位图扫描(in-memory bitmap scans)"的相关技术。

注记 (15): 在Oracle 8i及以后的办本可使用基于函数的索引(Function-based Indexes)实现。

注记 (16): The users need to use a function from freeAdhocUDF library or similar. [7]

注记 (17): 在Valentina中可使用基于函数的索引(Function-based Indexes)实现。

[编辑 ] 其他对象

有关其他类型对象的支持情况。

数据域 游标 触发器 函数 12 存储过程 12 外部调用 12 PostgreSQL Adaptive Server Enterprise Apache Derby DB2 Firebird HSQLDB H2 Informix Ingres InterBase MaxDB Microsoft SQL Server MonetDB MySQL Oracle OpenLink Virtuoso Pyrrho DBMS SQL Anywhere SQLite Teradata Valentina 数据域 游标 触发器 函数 12 存储过程 12 外部调用
是 13 是 13 是 13
 ?
 ?
 ?
是 (2000 and beyond)

注记 (12): 以上函数存储过程 都是指使用SQL或者过程语言(如PL/SQL、PL/pgSQL等)编写的内部程序调用。外部调用 是指使用其他外部语言,如C、Java等语言编写的调用。存储过程 是这类调用的笼统称呼,在不同的供应商系统中,它们往往有着不同的定义。
注记 (13): In Derby, users code functions and procedures in Java.

[编辑 ] 数据表分区

范围(Range) 哈希(Hash) 混合(范围+哈希) 列表(List) PostgreSQL Adaptive Server Enterprise Apache Derby IBM DB2 Firebird Informix Ingres InterBase MaxDB Microsoft SQL Server MonetDB MySQL Oracle OpenLink Virtuoso Pyrrho DBMS SQL Anywhere SQLite Teradata Valentina 范围(Range) 哈希(Hash) 混合(范围+哈希) 列表(List)
是 14 是 14 是 14 是 14
 ?  ?
是 (M5) 是 (M5) 是 (M5)
是 (5.1 beta) 是 (5.1 beta) 是 (5.1 beta) 是 (5.1 beta)

注记 (14): PostgreSQL 8.1 提供了使用check约束实现的数据表分区。范围、列表以及哈希分区可通过PL/pgSQL或者其他过程语言模拟。[8]

[编辑 ] 数据库与模式(Schemas)

SQL标准明确了SQL模式(SQL schema)的定义,然而,许多数据库对它的实现并不正确。SQL模式是指一个数据库内部的名字空间,此空间内部的对象可以通过成员操作符. 访问。

一个完整名字的查询类似这种形式:select * from database.schema.table

The SQL specification makes clear what an "SQL schema" is; however, different databases implement it wrongly. To compound this confusion the functionality can, when wrongly implemented, overlap with that of the parent-database. An SQL schema is simply a namespace within a database, things within this namespace are addressed using the member operator dot ". ". This seems to be a universal amongst all of the implementations.

A true fully (database, schema, and table) qualified query is exemplified as such:select * from database.schema.table

Now, the issue, both a schema and a database can be used to isolate one table, "foo" from another like named table "foo". The following is pseudo code:

  • select * from db1.foo vs. select * from db2.foo (no explicit schema between db and table)
  • select * from [db1.]default.foo vs. select * from [db1.]alternate.foo (no explicit db prefix)

The problem that arises is that former MySQL users will mistakenly create multiple databases for one project. In this context MySQL databases are analogous in function to Postgres-schemas, insomuch as Postgres lacks off-the-shelf cross-database functionality that MySQL has. Conversely, Postgres has rightfully applied more of the specification, in a sane-bottom-up approach, implementing cross-table, cross-schema, and then left room for future cross-database functionality.

MySQL aliases behind the scenes, schema with database , such that create schema , and create database are analogs. It can be said, that MySQL therefore, has implemented cross-table functionality, skipped schema functionality entirely and provided similar functionality into their implementation of a database. In summary, Postgres fully supports schemas, but lacks some functionality MySQL has with databases, while MySQL doesn't even attempt to support true schemas.

The end result is spin from both communities. While the Postgres community maintains that one database is all that is needed for one project; and MySQL, that schemas have no legitimate purpose when the functionality can be achieved with databases. Postgres adheres to more of the SQL specification, in a more intuitive fashion (bottom-up), while MySQL's pragmatic counterargument allows their users to get the job done without any major drawback.

[编辑 ] 外部连接

end

分享到:
评论

相关推荐

    Teradata RDBMS Messages

    ### Teradata RDBMS Messages详解 #### 一、概述 Teradata RDBMS Messages文档(版本V2R5.0&Teradata Tools and Utilities 07.00.00,发布日期为2002年12月)是Teradata数据库系统中一个重要的组成部分,该文档...

    RDBMS-Test

    控制台应用程序:RDBMS-Test,里面的RDBMS-Test.vcproj是使用应用程序向导生成的 VC++ 项目的主项目文件;RDBMS-Test.cpp是主应用程序源文件;StdAfx.h和StdAfx.cpp用于生成名为 RDBMS-Test.pch 的预编译头 (PCH) ...

    DB2DB64_jb51.rar

    MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),适用于大型项目;SQLite则是一个轻量级的嵌入式数据库,适合于移动应用或小型项目;Access是微软提供的桌面数据库系统,常用于小型企业或个人应用。这些...

    datanucleus-rdbms-3.2.9-API文档-中文版.zip

    赠送jar包:datanucleus-rdbms-3.2.9.jar; 赠送原API文档:datanucleus-rdbms-3.2.9-javadoc.jar; 赠送源代码:datanucleus-rdbms-3.2.9-sources.jar; 赠送Maven依赖信息文件:datanucleus-rdbms-3.2.9.pom; ...

    IBM DB2 DRIVER DB2驱动(32位)

    DB2是一个功能强大的关系型数据库管理系统(RDBMS),广泛应用于企业级数据存储和管理。这个驱动程序使得开发人员和系统管理员能够通过编程接口与DB2数据库进行交互,执行查询、更新、插入和删除等操作。 ### IBM ...

    RDBMS to Mongodb Migration

    RDBMS到MongoDB迁移是当今企业数据管理领域的一项重要任务,这项工作涉及到将数据从关系型数据库管理系统(RDBMS)迁移到NoSQL数据库MongoDB。关系型数据库已经存在超过三十年,但随着业务应用程序的构建和运行方式...

    Difference between HBase and RDBMS

    本文将深入探讨两种截然不同的数据库类型:HBase和RDBMS(关系型数据库管理系统)之间的差异,以及为什么在某些情况下选择HBase可能更为合适。 HBase,全称为Hadoop Database,是一种分布式、列式存储的NoSQL数据库...

    DBServer--DB2数据连接工具

    首先,DB2是IBM公司开发的一款关系型数据库管理系统(RDBMS),广泛应用于企业级应用中,以其稳定性、安全性和高性能而闻名。DBServer--DB2数据连接工具能够与DB2无缝对接,让数据库管理员和开发者可以通过直观的...

    DB2 归档日志清理

    IBM DB2是一款功能强大的关系型数据库管理系统(RDBMS),它提供了高性能的数据存储、管理和检索能力。在DB2中,日志是用于记录数据库中所有事务活动的重要组件,包括所有的修改操作(如插入、更新和删除)。为了...

    datanucleus-rdbms-4.1.7-API文档-中英对照版.zip

    赠送jar包:datanucleus-rdbms-4.1.7.jar; 赠送原API文档:datanucleus-rdbms-4.1.7-javadoc.jar; 赠送源代码:datanucleus-rdbms-4.1.7-sources.jar; 赠送Maven依赖信息文件:datanucleus-rdbms-4.1.7.pom; ...

    db2中常用的命令大全

    DB2 是一种关系数据库管理系统(RDBMS),它提供了许多命令来管理和维护数据库。下面是 DB2 中常用的命令大全,涵盖了基础篇和高级篇两部分。 基础篇: 1. 连接到数据库:db2 connect to &lt;数据库名&gt; --连接到本地...

    DB2 V11.1 Windows版下载

    DB2是IBM公司开发的一款关系型数据库管理系统(RDBMS),在企业级应用中广泛使用。DB2 V11.1是该系统的一个重要版本,它在稳定性、性能和功能上都有显著提升。针对Windows平台的DB2 V11.1,提供了在Windows操作系统...

    db2常用命令——摘录

    DB2 是一款由 IBM 开发的关系型数据库管理系统(RDBMS),广泛应用于企业级的数据存储和管理。在日常管理和维护DB2数据库时,熟练掌握一些常用命令是非常必要的。以下是DB2的一些关键命令及其详细说明: 1. **打开...

    DB2基础知识新

    db2listdbdirectory ``` #### 创建连接(数据库和节点): ```sql db2catalogtcpipnode &lt;节点名称&gt; remote 地址&gt; server &lt;端口&gt; db2catalogdb &lt;数据库名&gt; at node &lt;节点名称&gt; ``` #### 删除连接(数据库和节点)...

    PYTHON使用DB2开发.pdf

    DB2是一种关系型数据库管理系统(RDBMS),它源自于1960年代末IBM的研究成果,由Edgar Frank "Ted" Codd提出的“关系模型”理论。随着时间的发展,DB2已经从大型机平台扩展到分布式平台和IBM云,成为了一款功能强大...

    hbase与rdbms比较

    "hbase与rdbms比较" HBase与RDBMS是两种不同的数据库管理系统,分别适用于不同的应用场景。下面我们将详细比较HBase与RDBMS的区别与联系。 RDBMS的优点 RDBMS(Relational Database Management System)是传统的...

    db2jcc4.zip

    总的来说,"db2jcc4.zip" 提供了在Java 1.8环境下与DB2数据库交互所需的所有关键组件,并且结合DataX的RDBMS Writer插件,可以实现强大的数据同步功能,这对于数据管理和分析工作至关重要。在实际项目中,正确配置和...

    linux下启动db数据库命令.docx

    使用 db2 list db directory 命令可以列出当前实例中有哪些数据库。例如: [root@localhost instance]# su - db2inst1 [db2inst1@localhost ~]$ db2 list db directory SQL1031N The database directory cannot be ...

    ibm,db2数据库 odbc驱动

    IBM DB2是IBM公司推出的一款企业级关系型数据库管理系统(RDBMS),广泛应用于金融、电信、制造等多个行业。ODBC是一种数据访问接口,它为开发者提供了一种独立于特定数据库的方法来访问数据。通过ODBC驱动,开发者...

    db2jcc.jar

    DB2是IBM开发的一款关系型数据库管理系统(RDBMS),广泛应用于企业级的数据存储和管理,支持多种操作系统平台,如Windows、Linux、Unix和IBM自家的AIX及z/OS。它提供了高性能、高可用性以及出色的安全特性,是许多...

Global site tag (gtag.js) - Google Analytics