OrientDB基本概念

2021-01-23 10:51 更新

OrientDB的主要特點(diǎn)是支持多模型對(duì)象,即它支持不同的模型,如文檔,圖形,鍵/值和真實(shí)對(duì)象。 它包含一個(gè)單獨(dú)的API來(lái)支持所有這四個(gè)模型。

文檔模型

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

OrientDB使用類,集群和鏈接等概念來(lái)存儲(chǔ),分組和分析文檔。


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

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

圖形模型

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

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

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

鍵/值模型

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


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

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

對(duì)象模型

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

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

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

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

記錄

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

1、文件

2、記錄字節(jié)

3、頂點(diǎn)

4、邊緣

記錄ID

當(dāng)OrientDB生成記錄時(shí),數(shù)據(jù)庫(kù)服務(wù)器自動(dòng)為記錄分配單位標(biāo)識(shí)符,稱為RecordID(RID)。 RID看起來(lái)像#:。 表示集群標(biāo)識(shí)號(hào),表示集群中記錄的絕對(duì)位置。

文件

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

文檔可以通過(guò)以JSON格式導(dǎo)出和導(dǎo)入輕松處理。例如,查看以下JSON示例文檔。它定義文檔詳細(xì)信息。

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

RecordBytes

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

頂點(diǎn)

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

邊緣

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

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

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


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

關(guān)系

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

數(shù)據(jù)庫(kù)

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)