什麼是文件資料庫?

文件資料庫的定義

文件資料庫是一種非關聯式資料庫,旨在將資料儲存為類似 JSON 的文件並對其進行查詢。文件資料庫讓開發人員可以使用他們在應用程式程式碼中使用的相同文件模型格式,更輕鬆地儲存和查詢資料庫中的資料。文件和文件資料庫的靈活、半結構化和分層化特性允許它們隨應用程式的需求而演變。文件模型適用於目錄、使用者設定檔和內容管理系統等使用案例,其中每個文件都是唯一的並且隨著時間的推移而演變。文件資料庫支援靈活的索引、強大的隨選查詢和文件集合分析。

在以下範例中,類似 JSON 的文件描述了一本書。

[
    {
        "year" : 2013,
        "title" : "Turn It Down, Or Else!",
        "info" : {
            "directors" : [ "Alice Smith", "Bob Jones"],
            "release_date" : "2013-01-18T00:00:00Z",
            "rating" : 6.2,
            "genres" : ["Comedy", "Drama"],
            "image_url" : "http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg",
            "plot" : "A rock band plays their music at high volumes, annoying the neighbors.",
            "actors" : ["David Matthewman", "Jonathan G. Neff"]
        }
    },
    {
        "year": 2015,
        "title": "The Big New Movie",
        "info": {
            "plot": "Nothing happens at all.",
            "rating": 0
        }
    }
]

使用案例

內容管理

文件資料庫非常適合用於部落格和影片平台等內容管理應用程式。有了文件資料庫後,應用程式所追蹤的每個實體都能以單一文件的形式儲存。 隨著資料需求不斷演變,文件資料庫能方便開發人員更直覺地更新應用程式。此外,開發人員如果需要變更資料模型,僅需更新受影響的文件即可。不需要更新結構描述,也不用讓資料庫停機以進行變更。 

目錄

文件資料庫能有效地存放目錄資訊並發揮高效率。 舉例來說,在電子商務應用程式中,不同產品屬性數目通常都不同。在關聯式資料庫中管理上千個屬性效率不佳,而且讀取效能也會受到影響。若使用文件資料庫,各項產品屬性皆能以單一文件的形式描述,如此管理起來更加容易,讀取速度也更快。變更其中一個產品的屬性也不會影響其他產品。

熱門文件資料庫

Amazon DocumentDB (與 MongoDB 相容)

Amazon DocumentDB (與 MongoDB 相容) 是一種快速、可擴展、高度可用且全受管的文件資料庫服務,可支援 MongoDB 工作負載。開發人員可以使用相同的 MongoDB 應用程式程式碼、驅動程式和工具,執行、管理和擴展 Amazon DocumentDB 上的工作負載,並享有提升的效能、可擴展性和可用性,無須擔心管理基本基礎設施。

立即開始使用 Amazon DocumentDB

MongoDB

MongoDB 是一個開放原始碼的非關聯式資料庫,為類似 JSON 的文件導向儲存系統提供支援。它支援彈性的資料模型,讓您存放任何結構的資料,並提供一系列的豐富功能,包括完整的索引支援、碎片和複寫功能。 透過 AWS 雲端,AWS 提供您一個彈性、可擴展且具成本效益的方式,來建置基礎設施以支援 MongoDB 的部署。 

利用 AWS MongoDB 快速入門 (另提供 PDF 格式) 在 AWS 雲端部署 MongoDB 叢集。如需 MongoDB 及其在 AWS 上的實作概觀,請參閱 AWS 上的 MongoDB:指導方針和最佳實務白皮書。此外,請務必檢閱關於 MongoDB 的 AWS 安全建議

Couchbase

企業級 Couchbase 資料平台包含了 Couchbase Server 與 Couchbase Mobile,設計用來支援互動式行動、IoT 與 Web 應用程式的運作。Couchbase Server 是雲端原生的非關聯性資料庫,設計採用分散式架構,以提高效能、可擴展性和可用性,可讓開發人員運用 SQL 的能力與 JSON 的彈性來建置應用程式。Couchbase Mobile 包含完全整合的嵌入式資料庫,內建安全性,能與具備高度可擴展性的 Couchbase 伺服器自動進行即時同步。

利用 AWS Couchbase 快速入門 (另提供 PDF 格式) 在 AWS 雲端部署 Couchbase 叢集。