📅  最后修改于: 2020-11-26 05:14:25             🧑  作者: Mango
OrientDB的主要功能是支持多模型对象,即,它支持不同的模型,例如文档,图形,键/值和实数对象。它包含一个单独的API,以支持所有这四个模型。
术语文档模型属于NoSQL数据库。这意味着数据存储在文档中,文档组称为集合。从技术上讲,文档是指一组键/值对或也称为字段或属性。
OrientDB使用诸如类,集群和链接之类的概念来存储,分组和分析文档。
下表说明了关系模型,文档模型和OrientDB文档模型之间的比较-
Relational Model | Document Model | OrientDB Document Model |
---|---|---|
Table | Collection | Class or Cluster |
Row | Document | Document |
Column | Key/value pair | Document field |
Relationship | Not available | Link |
图形数据结构是一种数据模型,可以存储通过边(Arcs)互连的顶点(节点)形式的数据。 OrientDB图数据库的思想来自属性图。顶点和边缘是Graph模型的主要工件。它们包含属性,可以使这些属性看起来与文档相似。
下表显示了图模型,关系数据模型和OrientDB图模型之间的比较。
Relational Model | Graph Model | OrientDB Graph Model |
---|---|---|
Table | Vertex and Edge Class | Class that extends “V” (for Vertex) and “E” (for Edges) |
Row | Vertex | Vertex |
Column | Vertex and Edge property | Vertex and Edge property |
Relationship | Edge | Edge |
键/值模型意味着数据可以键/值对的形式存储,其中值可以是简单类型也可以是复杂类型。它可以支持文档和图形元素作为值。
下表说明了关系模型,键/值模型和OrientDB键/值模型之间的比较。
Relational Model | Key/Value Model | OrientDB Key/Value Model |
---|---|---|
Table | Bucket | Class or Cluster |
Row | Key/Value pair | Document |
Column | Not available | Document field or Vertex/Edge property |
Relationship | Not available | Link |
此模型已由面向对象的编程继承,并支持类型之间的继承(子类型扩展了超类型),引用基类时的多态性和编程语言中使用的对象之间的直接绑定。
下表说明了关系模型,对象模型和OrientDB对象模型之间的比较。
Relational Model | Object Model | OrientDB Object Model |
---|---|---|
Table | Class | Class or Cluster |
Row | Object | Document or Vertex |
Column | Object property | Document field or Vertex/Edge property |
Relationship | Pointer | Link |
在进行详细介绍之前,最好先了解与OrientDB相关的基本术语。以下是一些重要的术语。
可以从中加载并存储在数据库中的最小单位。记录可以存储为四种类型。
当OrientDB生成记录时,数据库服务器会自动为该记录分配一个单位标识符,称为RecordID(RID)。 RID看起来像#
文档是OrientDB中可用的最灵活的记录类型。文档是软类型的,并由具有定义约束的架构类定义,但是您也可以不带任何架构插入文档,即它也支持无架构模式。
通过以JSON格式导出和导入,可以轻松处理文档。例如,查看以下JSON示例文档。它定义了文档详细信息。
{
"id" : "1201",
"name" : "Jay",
"job" : "Developer",
"creations" : [
{
"name" : "Amiga",
"company" : "Commodore Inc."
},
{
"name" : "Amiga 500",
"company" : "Commodore Inc."
}
]
}
记录类型与RDBMS中的BLOB类型相同。 OrientDB可以加载和存储文档记录类型以及二进制数据。
OrientDB数据库不仅是Document数据库,还是Graph数据库。 Vertex和Edge等新概念用于以图形形式存储数据。在图数据库中,数据的最基本单位是节点,在OrientDB中它称为顶点。顶点存储数据库的信息。
有一种称为“边”的单独记录类型,可将一个顶点连接到另一个顶点。边是双向的,只能连接两个顶点。 OrientDB中的边缘有两种类型,一种是常规边缘,另一种是轻量级。
该类是一种数据模型,其概念来自于面向对象的编程范例。基于传统的文档数据库模型,数据以集合的形式存储,而在关系数据库模型中,数据存储在表中。 OrientDB遵循Document API和OPPS范例。从概念上讲,OrientDB中的类与关系数据库中的表具有最紧密的关系,但是(与表不同)类可以是无模式的,全模式的或混合的。类可以从其他类继承,从而创建类树。每个类都有自己的一个或多个群集(如果未定义,则默认创建)。
群集是一个重要的概念,用于存储记录,文档或顶点。简而言之,群集是存储一组记录的地方。默认情况下,OrientDB将为每个类创建一个集群。一个类的所有记录都存储在与该类同名的同一群集中。一个数据库中最多可以创建32,767(2 ^ 15-1)个集群。
CREATE类是用于创建具有特定名称的集群的命令。创建集群后,可以在创建任何数据模型的过程中通过指定名称来使用集群来保存记录。
OrientDB支持两种关系:引用关系和嵌入式关系。引用关系意味着它存储到关系目标对象的直接链接。嵌入式关系意味着它将关系存储在嵌入它的记录中。此关系比参考关系更强。
数据库是访问实存储器的接口。 IT理解高级概念,例如查询,架构,元数据,索引等。 OrientDB还提供了多种数据库类型。有关这些类型的更多信息,请参见数据库类型。