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