什麼是文件資料庫?

文件資料庫的定義

文件資料庫是一種非關聯式資料庫,旨在將半結構化資料存放成文件。在應用程式層級,資料通常是以 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

Amazon DynamoDB

Amazon DynamoDB 是非關聯式資料庫,無論任何規模均能提供可靠效能。它是全受管、多區域、多主機的資料庫,可提供穩定的小於 10 毫秒延遲,還包括內建安全性、備份和還原以及記憶體內快取。DynamoDB 支援原生 JSON,因此您能將 JSON 文件直接寫入 DynamoDB 表中。DynamoDB 的項目大小上限為 400 KB,您可以將大型的 JSON 文件和巢狀物件存放在同一筆交易中。

立即開始使用 DynamoDB

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 叢集。