什麼是文檔資料庫?

 

好! Merion Academy再次與您同在—一個無障礙 IT 教育平台。今天我們就來看看什麼是文檔資料庫?咕咕

NoSQL DBMS 或非關聯式資料庫具有獨特的功能,可以彌補關聯式資料庫模型的限制。非關係型 DBMS 是 4 個主要子群組的總稱:

  • 鍵值資料庫
  • 柱狀資料庫
  • 圖資料庫
  • 文件資料庫

在本文中,我們將討論什麼是文件資料庫,描述其優缺點,並查看範例。

文件資料庫

文件資料庫

文件(或面向文件)資料庫是一種非關係型 DBMS,它不是以列和行的形式儲存數據,而是以JSON文件的形式儲存資料。 JSON 是一種用於儲存和查詢資料的本機語言。這些文件可以被分組為形成資料庫系統的集合。

每個文件由多個鍵值對組成。下面是一個包含 4 個鍵值對的範例文件:

JSON 允許應用程式開發人員以與建立應用程式程式碼相同的文件模型格式儲存和查詢資料。物件模型可以轉換為JSON、BSON、XML等格式。

關係資料庫和文件資料庫的比較

關聯式資料庫管理系統(RDBMS)是基於結構化查詢語言(SQL)。非關係型資料庫不需要它們。

RDBMS 負責在檔案之間建立連接以儲存和讀取資料。文件資料庫關注的是資料本身,它們之間的關係表示為嵌套資料。

關係資料庫和文件資料庫之間的主要比較:

關係資料庫和文件資料庫的比較

文檔資料庫的特點

文件資料庫提供快速查詢、非常適合大數據的結構、靈活的索引和簡化的資料庫維護。該 DBMS 對於 Web 應用程式非常有效,並且已被 Amazon 等大型 IT 公司完全整合。

儘管SQL資料庫擁有出色的 bc 數據馬來西亞 穩定性和垂直結構,但它們往往資料量很大。在需要即時存取資料的用例(例如醫療應用程式)中,最好選擇文件資料庫。透過這種方式,您可以輕鬆地查詢編寫應用程式程式碼的相同文件模型中的資料。

使用文件資料庫的範例

bc 數據馬來西亞

資料庫“書”

為了建立圖書資料庫,可以使用關係型和非關係型 DBMS,儘管方式不同。

在關係 DBMS 中,書籍和作者之間的關係透過帶有 ID 識別碼的表來表達:作者表和書籍表。此模型不允許空值,因此每個「作者」必須在「書籍」表中至少分配一筆記錄。

在文件模型中,您可以 語音啟動電子郵件活動:透過語音吸引客戶 嵌套資料。該模型以更簡單、更自然的方式顯示關係:每個包含作者的文件都有一個 Books 屬性,其中包含一系列相關的「Books」文件。依作者搜尋時,會顯示整本藏書。

內容管理

開發人員使用文件資料庫建立部落格、視訊串流平台和類似服務。每個文件都保存 中國資料庫 為單獨的文檔,隨著時間的推移,隨著服務的增長,這樣的資料庫更容易維護。對資料的重大變更(例如資料模型變更)不需要停機,因為它們不需要架構更新。

目錄

在儲存和讀取目錄文件時,文件資料庫比關係 DBMS 的效率高出許多倍。目錄可以儲存數千個屬性,文件資料庫允許快速讀取它們。在文件資料庫中,與單一產品關聯的屬性儲存在單一文件中。更改一個產品的屬性不會影響其他文件。

文檔資料庫的優缺點

以下是文檔資料庫的主要優點和缺點:

文件資料庫的優點文件資料庫的缺點 缺乏模式 一致性檢查限制 快速建立和維護 原子性問題 缺乏外鍵 安全性 開放格式 內建版本控制

優點
  • 缺乏方案。資料儲存的格式和結構沒有限制。這有利於保存大量和不同結構狀態的現有數據,特別是在不斷轉換的系統中。
  • 快速創建和維護。一旦您建立了一個文檔,它只需要最少的支援 – 它只不過是添加一次複雜的物件。
  • 沒有外鍵。當這種動態聯繫不存在時,文件就會變得相互獨立。
  • 開放格式。一個乾淨的建置過程,使用 XML、JSON 和其他衍生物來描述文件。
  • 內建版本控制。隨著文件大小的增加,其複雜性也隨之增加。版本控制減少衝突。

缺點

  • 一致性檢查的限制。在圖書資料庫範例中,您可以搜尋不存在的作者的圖書。
  • 原子性問題。關聯式系統可讓您在不使用 JOIN 的情況下從一處變更資料。所有新的讀取請求都將繼承一個命令對資料所做的更改(例如,更新或刪除一行)。對於文件資料庫,影響 2 個集合的變更是透過 2 個單獨的查詢(每個集合一個)執行的。這違反了原子性要求。
  • 安全。近一半的現代 Web 應用程式正在主動洩露機密資料。因此,非關聯式資料庫的擁有者應該非常關注 Web 應用程式漏洞。

亞馬遜文檔資料庫

特點:

  • 兼容 MongoDB;
  • 完全可控;
  • 高效能和低請求延遲;
  • 嚴格合規和安全;
  • 高可用性。

使用方法:

  • 整個 Amazon 開發團隊使用 Amazon DocumentDB 來提高回應速度和工作效率。他們需要嵌套索引、聚合、即席查詢和完全託管的流程。
  • BBC 使用文件資料庫來查詢和儲存來自多個資料流的數據,並將它們編譯為客戶的單一提要。他們改用 Amazon DocumentDB 來獲得完全託管的服務,並具有高可用性、持久性和預設備份功能。
  • Rappi 選擇 Amazon DocumentDB 來減少編碼時間,選擇 Dow Jones 來簡化操作,選擇 Samsung 來更靈活地處理大型日誌。

特點:

  • 臨時請求;
  • 優化查詢索引;
  • 分割;
  • 負載平衡。

使用方法:

  • 透過更快地建立新功能、更輕鬆地合併以及更好地處理各種資料類型,《富比士》將建置時間縮短了 58%,訂閱量增加了 28%。
  • 豐田注意到,透過使用本機 JSON 文檔,開發人員可以更輕鬆地高速處理文檔資料庫。更多的時間花在創造業務價值而不是資料建模。

宇宙資料庫

特點:

  • 任何規模的快速閱讀;
  • 99.999% 可用性;
  • 完全可控;
  • NoSQL/本機核心 API;
  • 無伺服器、經濟高效/即時擴充。

使用方法:

可口可樂在幾分鐘內即可收到訊息,從而實現全球規模化。在切換到 Cosmos DB 之前,這需要幾個小時的時間。ASOS 正在尋找分散式資料庫,可以輕鬆靈活地擴展,為全球 1 億多零售客戶提供服務

如何選擇?

資料結構決定了應用程式最重要的要求。以下是一些關鍵問題:

  • 你會讀更多還是寫更多?如果您更頻繁地寫入數據,關係系統更適合,因為它們可以讓您避免重複更新。
  • 同步有多重要?由於 ACID 標準,關係系統可以更好地應對這項任務。
  • 您的資料庫架構將來需是文檔資料庫要改變多少?如果您大規模處理不同的資料並且正在尋求最少的支持,那麼文件資料庫是雙贏的。

不能說文件 DBMS 或 SQL 資料庫在所有方面都更好。正確的選擇取決於您的用例。在做出決定時,請考慮最常執行的操作類型。

結論

在本文中,我們解釋了文件資料庫的功能,討論了系統的優缺點,並查看了用例。此外,還提供了最佳文件 DBMS 列表,以及福布斯 500 強公司如何使用是文檔資料庫這些系統來提高其營運和開發流程的效率。

我們的教育平台見。

 

返回頂端