MongoDB 是一个介于关系数据库和非关系数据库之间的产品, 是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json 的 bjson 格式,因此可以存储比较复杂的数据类型。 Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
所谓“面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。
模式自由(schema-free),意味着对于存储在 mongodb 数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。我们称这种存储形式为 BSON(Binary Serialized dOcument Format)。
MongoDB 服务端可运行在 Linux、Windows 或 OS X 平台,支持 32 位和 64 位应用,默认端口为 27017。推荐运行在 64 位平台,因为 MongoDB
在 32 位模式运行时支持的最大文件尺寸为 2GB。
MongoDB 把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。
项目地址: http://www.mongodb.org/
入门指南: http://www.mongodb.org/display/DOCS/Quickstart
下载: http://www.mongodb.org/downloads
Apache CouchDB 是一个面向文档的数据库管理系统。它提供以 JSON 作为数据格式的 REST 接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。 CouchDB 是 Apache 基金会的顶级开源项目。
CouchDB 落实到最底层的数据结构就是两类B+Tree 。
与现在流行的关系数据库服务器不同,CouchDB 是围绕一系列语义上自包含的文档而组织的。 CouchDB 中的文档是没有模式的(schema free),也就是说并不要求文档具有某种特定的结构。 CouchDB 的这种特性使得相对于传统的关系数据库而言,有自己的适用范围。一般来说,围绕文档来构建的应用都比较适合使用 CouchDB 作为其后台存储。 CouchDB 强调其中所存储的文档,在语义上是自包含的。这种面向文档的设计思路,更贴近很多应用的问题域的真实情况。对于这类应用,使用 CouchDB 的文档来进行建模,会更加自然和简单。与此同时,CouchDB 也提供基于 MapReduce 编程模型的视图来对文档进行查询,可以提供类似于关系数据库中 SQL 语句的能力。 CouchDB 对于很多应用来说,提供了关系数据库之外的更好的选择。
项目地址: http://couchdb.apache.org/
入门指南: http://couchdb.apache.org/docs/intro.html
下载: http://couchdb.apache.org/downloads.html
Terrastore 是一个基于 Terracotta(一个业界公认的、快速的分布式集群组件)实现的高性能分布式文档数据库。可以动态从运行中的集群添加/删除节点,而且不需要停机和修改任何配置。支持通过 http 协议访问 Terrastore。Terrastore 提供了一个基于集合的键/值接口来管理 JSON 文档并且不需要预先定义 JSON 文档的架构。易于操作,安装一个完整能够运行的集群只需几行命令。
项目地址: http://code.google.com/p/terrastore/
入门指南: http://code.google.com/p/terrastore/wiki/Documentation
下载: http://code.google.com/p/terrastore/downloads/list
RavenDB 是个新的 .NET,支持 Linq 的开源文档数据库,旨在 Window 平台下提供一个高性,结构简单,灵活,可扩展 NoSQL 存储。Raven 将 JSON 文档存在数据库中。可以使用 C# 的 Linq 语法查询数据。下面是一个简单的例子
项目地址: http://ravendb.net/
入门指南: http://ravendb.net/tutorials
下载: http://ravendb.net/download
OrientDB 是兼具文挡数据库的灵活性和图形数据库管理链接能力的可深层次扩展的文档-图形数据库管理系统。可选无模式、全模式或混合模式下。支持许多高级特性,诸如 ACID 事务、快速索引,原生和 SQL 查询功能。可以 JSON 格式导入、导出文档。若不执行昂贵的 JOIN 操作的话,如同关系数据库可在几毫秒内可检索数以百记的链接文档图。
项目地址: http://www.orientechnologies.com/
入门指南: http://code.google.com/p/orient/wiki/Tutorials
下载: http://code.google.com/p/orient/wiki/下载
Thrudb 是一套简单的服务建立在 Apache 的 Thrift 的框架,提供索引和文件存储服务的网站建设和推广。其目的是提供 Web 开发灵活,快速和易于使用的服务,可以加强或取代传统的数据存储和访问层。
主要特征:
项目地址: http://code.google.com/p/thrudb/
入门指南: http://thrudb.googlecode.com/svn/trunk/doc/Thrudb.pdf
下载: http://code.google.com/p/thrudb/source/checkout
SisoDb 是一个为 SQL Server 编写的面向文档的 db-provider ,使用 C# 编写,可让你直接在数据库中存储对象。
项目地址: http://www.sisodb.com
入门指南: http://www.sisodb.com/Wiki
下载: https://github.com/danielwertheim/SisoDb-Provider/
RaptorDB 是一个很小的、快速的嵌入式 NoSQL 存储模块,使用 B+ 树或者 MurMur 哈希索引。支持数据持久化到磁盘中存储。
项目地址: http://www.codeproject.com/KB/database/RaptorDB.aspx
入门指南: http://www.codeproject.com/KB/database/RaptorDB.aspx
下载: http://www.codeproject.com/KB/database/RaptorDB.aspx
CloudKit: 提供了一个结构灵活,自动版本化, RESTful JSON 存储,可选支持 OpenID 和 OAuth , 包括 OAuth Discovery.
项目地址: http://getcloudkit.com/
入门指南: http://getcloudkit.com/api/
下载: https://github.com/jcrosby/cloudkit
Perservere: 是一个开源的工具集用于持久化和分布式计算,使用一个直观基于标准的 HTTP REST, JSON-RPC, JSONPath, and REST Channels 的 JSON 接口。The Persevere server includes a Persevere JavaScript client, but the standards-based interface is intended to be used with any framework or client.
项目地址: http://code.google.com/p/persevere-framework/
入门指南: http://code.google.com/p/persevere-framework/w/list
下载: http://code.google.com/p/persevere-framework/下载s/list
Apache Jackrabbit 是由 Apache Foundation 提供的 JSR-170 的开放源码实现..
随着内容管理应用程序的日益普及,对用于内容仓库的普通、标准化 API 的需求已凸现出来。Content Repository for Java Technology API (JSR-170) 的目标就是提供这样一个接口。JSR-170 的一个主要优点是,它不绑定到任何特定的底层架构。例如,JSR-170 实现的后端数据存储可以是文件系统、WebDAV 仓库、支持 XML 的系统,甚至还可以是 SQL 数据库。此外,JSR-170 的导出和导入功能允许一个集成器在内容后端与 JCR 实现之间无缝地切换。
项目地址: http://jackrabbit.apache.org
入门指南: http://jackrabbit.apache.org/getting-started-with-apache-jackrabbit.html
下载: http://jackrabbit.apache.org/downloads.html
来自: http://orangeslate.com/2011/12/06/11-open-document-oriented-databases-which-comes-under-nosql-db-category/