面向文檔的資料庫主要設計用來存儲、獲取以及管理基於文檔的或者叫半結構化的數據。也屬於 NoSQL 資料庫的一種類別。數據存儲的最小單位是文檔,同一個表中存儲的文檔屬性可以是不同的,數據可以使用 JSON、XML 等多種格式存儲。
本文介紹 11 個開源的面向文檔的資料庫系統:
1. MongoDB
MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。他支持的數據結構非常鬆散,是類似 json的bjson格式,因此可以存儲比較複雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾 乎可以實現類似關係資料庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
2. CouchDB
Apache CouchDB 是一個面向文檔的資料庫管理系統。它提供以 JSON 作為數據格式的 REST 接口來對其進行操作,並可以通過視圖來操縱文檔的組織和呈現。 CouchDB 是 Apache 基金會的頂級開源項目。
3. Terrastore
Terrastore是一個基於Terracotta(一 個業界公認的、快速的分布式集群組件)實現的高性能分布式文檔資料庫。可以動態從運行中的集群添 加/刪除節點,而且不需要停機和修改任何配置。支持通過http協議訪問Terrastore。Terrastore提供了一個基於集合的鍵/值接口來管 理JSON文檔並且不需要預先定義JSON文檔的架構。易於操作,安裝一個完整能夠運行的集群只需幾行命令。
4. RavenDB
RavenDB 是個新的.NET開源文檔資料庫。下面是一個簡單的例子
5. OrientDB
Orient DB 是一個可伸縮的文檔資料庫,支持 ACID 事務處理。使用 Java 5 實現。
6. ThruDB
Thrudb是一套簡單的服務建立在Apache的Thrift的框架,提供索引和文件存儲服務的網站建設和推廣。其目的是提供Web開發靈活,快速和易於使用的服務,可以加強或取代傳統的數據存儲和訪問層。
7. SisoDB
SisoDb 是一個為 SQL Server 編寫的面向文檔的 db-provider ,使用 C# 編寫,可讓你直接在資料庫中存儲對象。
8. RaptorDB
RaptorDB 是一個很小的、快速的嵌入式 NoSQL 存儲模塊,使用 B+ 樹 或者 MurMur 哈希索引。支持數據持久化到磁碟中存儲。
9. CloudKit
CloudKit 提供了模型無關的,可自動版本化的 RESTful 的 JSON 存儲,支持 OpenID 和 OAuth,包括 OAuth 發現。
10. Perservere
Persevere - REST JSON 資料庫,JavaScript 的分布式計算和持久對象映射框架。
11. Jackrabbit
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 實現之間無縫地切換。