OrientDB基本概念

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

文檔模型

術語文檔模型屬於NoSQL數據庫。 這意味着數據存儲在文檔中,並且該組文檔被稱爲集合。 從技術上講,文檔表示一組鍵/值對或者也稱爲字段或屬性。

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

下表說明了關係模型,文檔模型和OrientDB文檔模型之間的比較 -

關係模型

文檔模型

OrientDB文檔模型

集合

類或簇

文檔

文檔

鍵/值對

文檔字段

關係

無法使用

鏈接

圖模型

圖形數據結構是一種數據模型,可以按照邊(弧)互連的頂點(節點)形式存儲數據。 OrientDB圖形數據庫的思想來自屬性圖。 頂點和邊是Graph模型的主要構件。 它們包含的屬性可以使這些屬性與文檔類似。

下表顯示了圖形模型,關係數據模型和OrientDB圖形模型之間的比較。

關係模型

圖模型

OrientDB圖形模型

頂點和邊緣類

擴展「V」(用於頂點)和「E」(用於邊緣)的類

頂點

頂點

頂點和邊緣屬性

頂點和邊緣屬性

關係

邊緣

邊緣

鍵/值模型

鍵/值模型意味着數據可以以鍵/值對的形式存儲,其中值可以是簡單和複雜的類型。 它可以支持文檔和圖形元素作爲值。

下表說明了關係模型,鍵/值模型和OrientDB鍵/值模型之間的比較。

關係模型

鍵/值模型

OrientDB鍵/值模型

Bucket

類或集羣

鍵/值對

文檔

不可用

文檔字段或頂點/邊緣屬性

關係

不可用

鏈接

對象模型

此模型已由面向對象編程繼承,並支持類型之間的繼承(子類型擴展超類型),引用基類時的多態性和編程語言中使用的對象之間的直接綁定。

下表說明了關係模型,對象模型和OrientDB對象模型之間的比較。

關係模型

對象模型

OrientDB對象模型

類或簇

對象

文檔或頂點

對象屬性

文檔字段或頂點/邊緣屬性

關係

指針

鏈接

在詳細介紹之前,最好了解與OrientDB相關的基本術語。 以下是一些重要的術語。

記錄

可以從數據庫中加載並存儲的最小單位。 記錄可以存儲在四種類型中。

  • 文件
  • 記錄字節
  • 頂點
  • 邊緣

記錄ID

OrientDB生成記錄時,數據庫服務器會自動爲記錄分配一個單元標識符,稱爲RecordID(RID)。 RID看起來像#<cluster>:<position><cluster>表示簇標識號,<position>表示簇中記錄的絕對位置。

文檔

文檔是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可以加載和存儲文檔記錄類型以及二進制數據。

頂點
OrientDB數據庫不僅是一個文檔數據庫,也是一個圖形數據庫。 VertexEdge等新概念用於以圖形的形式存儲數據。 在圖形數據庫中,最基本的數據單元是節點,它在OrientDB中稱爲頂點。 頂點存儲數據庫的信息。

邊緣

有一個獨立的記錄類型稱爲Edge,它將一個頂點連接到另一個頂點。 邊是雙向的,只能連接兩個頂點。 OrientDB中有兩種邊緣類型,一種是常規的,另一種是輕量級的。

該類是一種數據模型和從面向對象編程範例中繪製的概念。 基於傳統的文檔數據庫模型,數據以集合的形式存儲,而在關係數據庫模型中,數據存儲在表中。 OrientDB遵循Document API和OPPS範例。 作爲一個概念,OrientDB中的類與關係數據庫中的表有最密切的關係,但是(不像表)類可以是無模式,全模式或混合的。 類可以從其他類繼承,創建類的樹。 每個類都有自己的一個或多個集羣(如果沒有定義,則默認創建)。


集羣是用於存儲記錄,文檔或頂點的重要概念。 簡而言之,Cluster是存儲一組記錄的地方。 默認情況下,OrientDB將爲每個類創建一個羣集。 一個類的所有記錄都存儲在與該類具有相同名稱的同一個羣集中。最多可以在數據庫中創建32,767(2 ^ 15-1)個羣集。

CREATE類是用於創建具有特定名稱的集羣的命令。 創建羣集後,可以使用羣集通過在創建任何數據模型期間指定名稱來保存記錄。

關係

OrientDB支持兩種關係:引用和嵌入。 引用關係意味着它存儲與關係的目標對象的直接鏈接。 嵌入式關係意味着它將關係存儲在嵌入它的記錄中。 這種關係比參考關係更強。

數據庫
數據庫是訪問真實存儲的接口。 IT人員理解高級概念,如查詢,模式,元數據,索引等。 OrientDB還提供多種數據庫類型。 有關這些類型的更多信息,請參閱數據庫類型。