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資料庫不僅是一個文件資料庫,也是一個圖形資料庫。 Vertex
和Edge
等新概念用於以圖形的形式儲存資料。 在圖形資料庫中,最基本的資料單元是節點,它在OrientDB中稱為頂點。 頂點儲存資料庫的資訊。
邊緣
有一個獨立的記錄型別稱為Edge
,它將一個頂點連線到另一個頂點。 邊是雙向的,只能連線兩個頂點。 OrientDB中有兩種邊緣型別,一種是常規的,另一種是輕量級的。
類
該類是一種資料模型和從物件導向程式設計範例中繪製的概念。 基於傳統的文件資料庫模型,資料以集合的形式儲存,而在關聯式資料庫模型中,資料儲存在表中。 OrientDB遵循Document API和OPPS範例。 作為一個概念,OrientDB中的類與關聯式資料庫中的表有最密切的關係,但是(不像表)類可以是無模式,全模式或混合的。 類可以從其他類繼承,建立類的樹。 每個類都有自己的一個或多個叢集(如果沒有定義,則預設建立)。
簇
叢集是用於儲存記錄,文件或頂點的重要概念。 簡而言之,Cluster是儲存一組記錄的地方。 預設情況下,OrientDB將為每個類建立一個群集。 一個類的所有記錄都儲存在與該類具有相同名稱的同一個群集中。最多可以在資料庫中建立32,767
(2 ^ 15-1)個群集。
CREATE
類是用於建立具有特定名稱的叢集的命令。 建立群集後,可以使用群集通過在建立任何資料模型期間指定名稱來儲存記錄。
關係
OrientDB支援兩種關係:參照和嵌入。 參照關係意味著它儲存與關係的目標物件的直接連結。 嵌入式關係意味著它將關係儲存在嵌入它的記錄中。 這種關係比參考關係更強。
資料庫
資料庫是存取真實儲存的介面。 IT人員理解高階概念,如查詢,模式,後設資料,索引等。 OrientDB還提供多種資料庫型別。 有關這些型別的更多資訊,請參閱資料庫型別。