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还提供多种数据库类型。 有关这些类型的更多信息,请参阅数据库类型。