PHP程序员站--PHP编程开发平台
 当前位置:主页 >> 数据库 >> 数据库编程技术 >> 

三十五个非主流开源数据库

三十五个非主流开源数据库

来源:互联网  作者:  发布时间:2010-08-15
几乎每个Web开发人员都有自己喜欢的数据库,或自己最熟悉的数据

几乎每个Web开发人员都有自己喜欢的数据库,或自己最熟悉的数据库,但最常见的无外乎以下几种:
MySQL

PostgreSQL

MSSQL Server

SQLite

MS Access

或是更简单的XML,文本文件等。这些数据库有优秀的文档,背后有强大的社区支持,大部分流行的CMS都使用了其中之一或多个,它们都易于使用,大多数托管服务供应商都提供了相应的产品,因此它们的使用量很多,名气也很大。但除了这些主流的数据库外,还有很多其它非主流数据库存在,其中有一些也开始受到人们的高度重视,下面我们就一起来看看吧,注意本文只介绍开源数据库,说不定在下一个项目中,你就有尝试它们的冲动。
1、MongoDB

MongoDB是一款开源,高性能,可扩展,无模式,面向文档(与JSON类似的数据模式)的数据库,它为时下最流行的编程语言提供了驱动,如PHP,Python,Perl,Ruby,JavaScript,C++等,支持全文索引,自动分片,跨LAN或WAN扩展,采用Key/Value方式存储数据。MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用。世界上最大的单词收录网站Wordnik就从MySQL转向了MongoDB。
2、Hypertable

Apache CouchDB是一款面向文档的数据库,可以使用JavaScript通过MapReduce方法进行查询和索引,它提供了一个RESTful JSON API,因此可以在任何环境中通过HTTP访问,CouchDB内置了Web管理控制台,支持通过浏览器管理数据库。CouchDB使用Erlang编写,Erlang是一种健壮的函数式编程语言,非常适合于构建并发的分布式系统,Erlang的设计非常灵活,其可伸缩性与可扩展性都非常棒。
4、Neo4j

Neo4j是一个嵌入式,基于磁盘的,支持完整事务的Java持久化引擎,它在图像中而不是表中存储数据。Neo4j提供了大规模可扩展性,在一台机器上可以处理数十亿节点/关系/属性的图像,可以扩展到多台机器并行运行。相对于关系数据库来说,图形数据库善于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。Neo4j重点解决了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。通过围绕图形进行数据建模,Neo4j会以相同的速度遍历节点与边,其遍历速度与构成图形的数据量没有任何关系。此外,Neo4j还提供了非常快的图形算法、推荐系统和OLAP风格的分析,而这一切在目前的RDBMS系统中都是无法实现的。

5、Riak

Riak是一款非常适合于Web应用程序的数据库,它提供了去中心化的Key/Value存储,灵活的map/reduce引擎和友好的HTTP/JSON查询接口。它是一个真正的容错系统,不会出现单点故障,在Riak世界中,没有哪台机器是特殊的或属核心服务器,它们都是对等的。

6、Oracle Berkeley DB

Oracle Berkeley DB是一系列开源的嵌入式数据库,使开发人员能够将一个快速、可伸缩、具有工业级别的可靠性和可用性的事务处理数据库引擎结合进他们的应用程序中。Berkeley DB最先由伯克利加州大学为了移除受到AT&T限制的程式码,从BSD 4.3到4.4时所改写的软件。Berkeley DB运行在大多数的操作系统中,例如大多数的UNIX系统, 和windows系统,以及实时操作系统

7、Apache Cassandra

Cassandra是一款高可扩展性第二代分布式数据库,属于混合型的非关系的数据库,类似于Google的BigTable,支持的数据结构非常松散,类似于JSON的BJSON格式,因此可以存储比较复杂的数据类型。Cassandra最初由Facebook开发,后转变成了开源项目。Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。Facebook,Digg,Twitter和Cisco等大型网站都使用了Cassandra。

8、Memcached

Memcached是开源的分布式cache系统,现在很多的大型web应用程序包括facebook,youtube,wikipedia,yahoo等等都在使用memcached来支持他们每天数亿级的页面访问。通过把cache层与他们的web架构集成,他们的应用程序在提高了性能的同时,还大大降低了数据库的负载。

Memcached处理的原子是每一个key/value对,key会通过一个hash算法转化成hash-key,便于查找、对比以及做到尽可能的散列。同时,memcached用的是一个二级散列,通过一张大hash表来维护。

9、Firebird

Firebird是一个关系数据库,可以运行在Linux,Windows和各种Unix平台上,Firebird相对MySQL和PostgreSQL来说比较小,这也使其可以称得上是理想的嵌入式数据库,可用于与其它应用程序服务器和应用程序捆绑。Firebird具有大部分成熟数据库所具有的功能,比如支持存储过程、SQL兼容等。

10、Redis

Redis是一款快速的Key/Value数据库引擎,它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点,从而使它的位置处于关系数据库和键值数据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序(SORT)等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。Redis使用C语言编写,可以想memcached那样使用,放在传统数据库的前端,它支持许多编程语言,受到许多流行的项目使用,如GitHub和Engine Yard,有一个用PHP编写的客户端叫做Rediska,专门来管理Redis数据库。


延伸阅读:
开源数据库的企业级市场仍待拓展
Sun完成收购开源数据库厂商MySQL
开源数据库受热捧 MySQL数据库继续流行
开源数据库Sharding技术

Tags: 数据库   开源  
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号