跳至內容

文檔導向資料庫

出自Taiwan Tongues 台語維基
於 2025年8月23日 (六) 15:39 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

文件導向的資料庫(英語:Document-oriented database)抑是文件儲存,是用於儲存、檢索佮管理文件導向的資訊的一種電腦程式。遮叫做文件的是半結構化資料,伊是無完全形式的結構化資料,因為佮關聯式的資料庫抑是其他的形式資料表有關聯之資料模型的形式結構,毋過煞包含標籤佮其他的標記,用佇資料內分割語意元素佮強制記錄佮欄位的層級,因此伊嘛叫做「自我描述結構」。

概述

文件導向的資料庫是 NoSQL 資料庫的主要類別之一,而且「文件導向的資料庫」一詞的普及程度嘛因為術語 NoSQL 的使用有所增加。XML 資料庫是針對 XML 文件做最佳化的文件導向的資料庫的子類。圖資料庫佮之相仝,但是其實加一个連接各文件的「聯絡」層,通好進行快速遍歷。一寡搜揣 ia̋n-jín(嘛叫是資訊檢索)系統如 Elasticsearch 提供了真有夠的對文件的核心操作對爾已經滿足了文件導向資料庫的定義。

鍵-值資料庫是 NoSQL 彼个資料庫的另外一概念,文件導向的資料庫是鍵-值資料庫的子類。𪜶的差別佇遐咧處理資料的方式:佇鍵值資料庫內底,資料是對資料庫無透明的;抑若文件導向的資料庫系統依賴「文件」的內部結構來取得元資料,資料庫 ia̋n-jín 使用遮的元資料進行閣較深層次的最佳化。雖然因為系統內面的工具使這差別無啥明顯,猶毋過佇設計概念頂懸,這款文件儲存方式利用了現代程式技術來提供閣較豐富的體驗。現代鍵-值儲存定定包括處理元資料的特徵,霧去伊佮文件儲存之間的界線。

文件資料庫佮傳統關聯式資料庫差異顯顯。關聯式資料庫通常將資料儲存佇咧互相獨立的表中,遮的表由程式開發者的定義,咱一个單一的物件可能散布若是干表內底。對一个共定物件攏有,文件的資料庫共其所有的資訊儲存佇咧資料庫內面某一个單一實例內面,並且儲存的每一个物件會使佮任一寡物件無仝款。這簡化共物件裝載入資料庫的過程,通常會當消除對物件關係對映等等類似方案的需求。文件資料庫無仝款關聯式資料庫,關聯式的資料庫是因為關係模型,抑若文件資料庫是採用半結構化模型,無佇資料佮模式(schema)之間的分離,使用的結構的數量依賴於目標用途。佇半結構化資料當中,屬於相仝類的實體會當有無仝款的特性,就算𪜶予人分組做伙,並且屬性的次序是無重要的。

文件

文件導向資料庫的中心概念是「文件」這个概念。就算講每一个文件導向資料庫實這馬這个定義的鋩角角攏有所無仝款,一般來講,𪜶攏假定文件以某一種標準格式抑是編碼來封裝佮編碼的資料(抑是資訊)。 文件導向資料庫使用的編碼包括 XML、YAML、JSON 和 BSON,有的實現閣會當儉二進位文件格式如 PDF 和 Microsoft Office 文件(MS Word、Excel 啥物貨)。

佇文件儲存內底的文件粗略的等價於物件這个編程概念。莫求𪜶遵守標準的模式(schema), 嘛無要求𪜶攏有仝款的章節、插槽(slot)、 部份(part)抑是鍵。一般講啦,用物件的程式有誠濟無仝款的物件類型,遮的物件定定有足濟可選的欄位(field)。 每一个物件,就算同類的,嘛會使看起來非常無仝款。文件儲存類似所以,𪜶佇一个單一儲存中允准無仝類型的文件,執行佇咧文件內底的欄位是會當選的,並且定定允准𪜶使用無仝的編碼系統來編碼。比如講,下跤是一个文件,採用 JSON 編碼:

第二个文件會當採用 XML 來編碼:

這兩个文件互相享一寡結構性的元素,但是逐个攏有唯一性的元素。佇文件內部的結構正文佮其他的資料通常予人號做文件的「內容」,並會當通過通過檢索抑是編輯方法(見下文)來參照。關聯式的資料庫內底,所有記錄包含仝款的欄位,保留無使用欄位做空;佮關聯式資料庫無仝,咧教人例這兩个文件(記錄)中間攏無閒「欄位」。 這種方式准向某寡記錄增加新的資訊毋通要求佇資料庫內底所有其他記錄共享仝款結構。

文件資料典型的提供了關聯文件內容並佮之做伙儲存的額外的元資料。這種元資料閣會當佮增進資料儲存有關,提供組織的文件,提供安全性,抑是其他特定佇咧實現的特性。

CRUD 操作

文件導向資料對文件提供類似其他的資料庫核心操作,就算是術語無完全標準化,大多數實踐者共𪜶認可為 CRUD:

  • 建立(抑是插入去)
  • 檢索(抑是查詢、走揣、讀抑是走揣)
  • 更新(抑是編輯)
  • 刪除(抑是徙掉)

佇資料庫的文件通過代表這个文件的唯一的「鍵」來定址。鍵是一个簡單的識別碼(簡寫為 ID), 典型的字串、URI 抑是路徑。鍵會當用來對資料中檢索文件。資料庫典型的佇鍵上保有索引來加速文件檢索,並且佇咧某一寡情況下要求用鍵來共文件建立抑是插入去資料庫當中。

檢索

文件導向資料的另外一个定義特徵,使用超越通用來檢索文件的簡單的鍵著文件走揣,就是資料庫提供允准使用者基於內容(抑是元資料)來檢索文件的 API 抑是查詢語言。比如講,你可能需要一个查詢,檢索特定欄位被設定做特定值的所有文件。會當得著的查詢 API 抑是查詢語言的特徵的集合,閣有查詢的預期效能,佇咧無仝實現之間有精差。類似的,會當得著的索引選項佮組態的特有集合隨著無仝實現顛倒有著大摸的精差。

文件儲存佮鍵-值儲存有誠大的精差。佇理論上,咧鍵-值儲存中值對儲存是無透明的,𪜶本質上是烏箱仔。𪜶會當提供類似文件儲存的走揣系統,但是對內容的組織有愈少的理解。文件儲存使用佇文件內底元資料來分類內容,譬如講允准𪜶理解一个數字序列是電話號碼,另外一个是郵政編碼。這允准𪜶佇類型的資料頂懸進行走揣,比如講,包含五百五十五的所有電話號碼,但忽略郵編五五鋪五千五百五十五。

編輯

文件資料典型的提供某一種機制來更新抑是編輯文件的內容(抑是元資料), 替換愛按怎允准佇規个文件頂懸,欲按怎佇咧文件的一个結構片段頂頭。

組織

文件的資料庫實現提供各種方式來組織文件,包括如下概念:

  • 收集(Collection): 成組的文件,依賴佇咧具體實現,文件會當予人強制存留佇咧一个收集內部,也會使予人允准存留佇咧多個收集之內。
  • 標籤(Tag)佮袂可見元資料:佇咧文件內容以外的附加資料。
  • kha-tá-lok-guh 層級:組織做樹狀結構的成組文件,典型的基於路徑抑是 URI。

有時遮的組織概念佇咧𪜶是邏輯的抑是物仔理的、(比如講佇磁碟猶是佇記憶體中)、 表示講等方面有一寡變化。

實現

XML 資料庫實現

大多數啦 XML 資料庫是文件導向資料庫。

注釋

參考文獻

延伸閱讀

  • Assaf Arkin . ( 兩千空七 , September 二十 ) . Read Consistency : Dumb Databases , Smart Services .

外部連結

  • DB-Engines Ranking of Document Stores by popularity , updated monthly