11個面向文檔的開源NoSQL數據庫

fmms 13年前發布 | 40K 次閱讀

MongoDB是一個介于關系數據庫和非關系數據庫之間的產品, 是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bjson格式,因此可以存儲比較復雜的數據類型。 Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持 對數據建立索引。

它的特點是高性能、易部署、易使用,存儲數據非常方便。主要功能特性有:

  • 面向集合存儲,易存儲對象類型的數據。
  • 模式自由。
  • 支持動態查詢。
  • 支持完全索引,包含內部對象。
  • 支持查詢。
  • 支持復制和故障恢復。
  • 使用高效的二進制數據存儲,包括大型對象(如視頻等)。
  • 自動處理碎片,以支持云計算層次的擴展性
  • 支持RUBY,PYTHON,JAVA,C++,PHP等多種語言。
  • 文件存儲格式為BSON(一種JSON的擴展)
  • 可通過網絡訪問

所謂“面向集合”(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 。

11個面向文檔的開源NoSQL數據庫

與現在流行的關系數據庫服務器不同,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語法查詢數據。下面是一個簡單的例子

11個面向文檔的開源NoSQL數據庫


項目地址: 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/download


Thrudb是一套簡單的服務建立在Apache的Thrift的框架,提供索引和文件存儲服務的網站建設和推廣。其目的是提供Web開發靈活,快速和易于使用的服務,可以加強或取代傳統的數據存儲和訪問層。

主要特征:

  • Client libraries for most languages
  • Incremental backups and redo logging
  • Multiple storage backends (BerkeleyDB, Disk, MySQL, S3 included)
  • Memcache and Spread integration.
  • Built for horizontal scalability
  • Simple and powerful search service

項目地址: 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# 編寫,可讓你直接在數據庫中存儲對象。

11個面向文檔的開源NoSQL數據庫

項目地址: http://www.sisodb.com
入門指南: http://www.sisodb.com/Wiki
下載: https://github.com/danielwertheim/SisoDb-Provider/


RaptorDB 是一個很小的、快速的嵌入式 NoSQL 存儲模塊,使用 B+ 樹 或者 MurMur 哈希索引。支持數據持久化到磁盤中存儲。

11個面向文檔的開源NoSQL數據庫

項目地址: 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/downloads/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/

       本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
       轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
       本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!