OrientDB基本概念

2021-01-23 10:51 更新

OrientDB的主要特點是支持多模型對象,即它支持不同的模型,如文檔,圖形,鍵/值和真實對象。 它包含一個單獨的API來支持所有這四個模型。

文檔模型

術(shù)語Document模型屬于NoSQL數(shù)據(jù)庫。 這意味著數(shù)據(jù)存儲在文檔中,文檔組稱為集合。 技術(shù)上,文檔意味著一組鍵/值對或者也稱為字段或?qū)傩浴?/p>

OrientDB使用類,集群和鏈接等概念來存儲,分組和分析文檔。


下表說明了關(guān)系模型,文檔模型和OrientDB文檔模型之間的比較:

關(guān)系模型文檔模型OrientDB文檔模型
集合級或集群
文件文件
縱行鍵/值對文檔字段
關(guān)系不可用鏈接

圖形模型

圖形數(shù)據(jù)結(jié)構(gòu)是可以以通過邊(Arc)互連的頂點(節(jié)點)的形式存儲數(shù)據(jù)的數(shù)據(jù)模型。 OrientDB圖數(shù)據(jù)庫的想法來自屬性圖。 頂點和邊是Graph模型的主要工件。 它們包含屬性,這些屬性可以使它們看起來類似于文檔。

下表顯示了圖形模型,關(guān)系數(shù)據(jù)模型和OrientDB圖形模型之間的比較。

關(guān)系模型圖模型OrientDB圖模型
頂點和邊緣階層延伸“V”(用于頂點)和“E”(用于邊緣)
頂點頂點
縱行頂點和邊屬性頂點和邊屬性
關(guān)系邊緣邊緣

鍵/值模型

鍵/值模型意味著數(shù)據(jù)可以以鍵/值對的形式存儲,其中值可以是簡單和復雜類型。 它可以支持文檔和圖形元素作為值。


下表說明了關(guān)系模型,鍵/值模型和OrientDB鍵/值模型之間的比較。

關(guān)系模型鍵/值模型OrientDB鍵/值模型
類或集群
鍵/值對文件
縱行不可用文檔字段或頂點/邊緣屬性
關(guān)系不可用鏈接

對象模型

這種模式已經(jīng)由面向?qū)ο蟮某绦蛟O計繼承,并支持類之間的繼承 (子類型擴展超類型), 多態(tài)性 ,當你引用一個基類, 直接綁定 /編程語言中使用的對象。

下表說明關(guān)系模型,對象模型,以及OrientDB對象模型之間的比較。

關(guān)系模型對象模型OrientDB對象模型
級或集群
目的文檔或頂點
縱行Object屬性文檔字段或頂點/邊屬性
關(guān)系指針鏈接

在詳細介紹之前,最好先了解與OrientDB相關(guān)的基本術(shù)語。以下是一些重要的術(shù)語。

記錄

您可以從數(shù)據(jù)庫加載并存儲在數(shù)據(jù)庫中的最小單位。記錄可以存儲四種類型。

1、文件

2、記錄字節(jié)

3、頂點

4、邊緣

記錄ID

當OrientDB生成記錄時,數(shù)據(jù)庫服務器自動為記錄分配單位標識符,稱為RecordID(RID)。 RID看起來像#:。 表示集群標識號,表示集群中記錄的絕對位置。

文件

文檔是OrientDB中最靈活的記錄類型。文檔是軟類型的,并且由具有定義的約束的模式類定義,但是您也可以插入沒有任何模式的文檔,即它也支持無模式模式。

文檔可以通過以JSON格式導出和導入輕松處理。例如,查看以下JSON示例文檔。它定義文檔詳細信息。

{ 
   "id"        : "1201", 
   "name"      : "Jay", 
   "job"       : "Developer", 
   "creations" : [ 
      { 
         "name"    : "Amiga", 
         "company" : "Commodore Inc." 
      }, 
		
      { 
         "name"    : "Amiga 500", 
         "company" : "Commodore Inc." 
      } 
   ] 
} 

RecordBytes

記錄類型與RDBMS中的BLOB類型相同。 OrientDB可以加載和存儲文檔記錄類型以及二進制數(shù)據(jù)。

頂點

OrientDB數(shù)據(jù)庫不僅是一個文檔數(shù)據(jù)庫,而且是一個圖形數(shù)據(jù)庫。諸如Vertex和Edge的新概念用于以圖形的形式存儲數(shù)據(jù)。在圖數(shù)據(jù)庫中,最基本的數(shù)據(jù)單位是節(jié)點,在OrientDB中稱為頂點。頂點存儲數(shù)據(jù)庫的信息。

邊緣

有一個單獨的記錄類型稱為Edge,將一個頂點連接到另一個頂點。邊是雙向的,只能連接兩個頂點。在OrientDB中有兩種類型的邊,一種是規(guī)則的,另一種是輕量的。

該類是一種數(shù)據(jù)模型和從面向?qū)ο缶幊谭独L制的概念。基于傳統(tǒng)文檔數(shù)據(jù)庫模型,數(shù)據(jù)以收集的形式存儲,而在關(guān)系數(shù)據(jù)庫中,模型數(shù)據(jù)存儲在表中。 OrientDB遵循文檔API以及OPPS范例。作為一個概念,OrientDB中的類與關(guān)系數(shù)據(jù)庫中的表具有最接近的關(guān)系,但是(與表不同)類可以是無模式的,模式完整的或混合的。類可以從其他類繼承,創(chuàng)建類的樹。每個類都有自己的一個或多個集群(默認情況下創(chuàng)建,如果沒有定義)。

集群是用于存儲記錄,文檔或頂點的重要概念。簡單來說,Cluster是存儲一組記錄的地方。默認情況下,OrientDB將為每個類創(chuàng)建一個集群。類的所有記錄都存儲在與該類具有相同名稱的同一集群中。您可以在數(shù)據(jù)庫中創(chuàng)建多達32,767(2 ^ 15-1)個集群。


CREATE類是用于創(chuàng)建具有特定名稱的集群的命令。創(chuàng)建集群后,可以使用集群通過在創(chuàng)建任何數(shù)據(jù)模型期間指定名稱來保存記錄。

關(guān)系

OrientDB支持兩種關(guān)系:引用和嵌入。引用關(guān)系意味著它存儲到關(guān)系的目標對象的直接鏈接。嵌入關(guān)系意味著它在嵌入它的記錄中存儲關(guān)系。這種關(guān)系比參考關(guān)系更強。

數(shù)據(jù)庫

數(shù)據(jù)庫是訪問實際存儲的接口。 IT了解高級概念,例如查詢,模式,元數(shù)據(jù),索引等。 OrientDB還提供多種數(shù)據(jù)庫類型。有關(guān)這些類型的更多信息,請參閱數(shù)據(jù)庫類型。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號