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