什麼是文件資料庫?

文件資料庫的定義

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

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

立即開始使用 DynamoDB

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