OrientDB - 基本概念
OrientDB 的主要功能是支持多模型对象,即它支持不同的模型,如文档、图形、键/值和真实对象。它包含一个单独的 API 来支持所有这四种模型。
文档模型
术语文档模型属于 NoSQL 数据库。这意味着数据存储在文档中,文档组称为集合。从技术上讲,文档是指一组键/值对,也称为字段或属性。
OrientDB 使用类、集群和链接等概念来存储、分组和分析文档。
下表说明了关系模型、文档模型和 OrientDB 文档模型之间的比较 −
关系模型 | 文档模型 | OrientDB 文档模型 |
---|---|---|
表 | 集合 | 类或集群 |
行 | 文档 | 文档 |
列 | 键/值对 | 文档字段 |
关系 | 不可用 | 链接 |
图形模型
图形数据结构是一种数据模型,可以以由边(弧)互连的顶点(节点)的形式存储数据。OrientDB 图形数据库的理念源自属性图。顶点和边是图形模型的主要构件。它们包含属性,可以使它们看起来与文档相似。
下表显示了图形模型、关系数据模型和 OrientDB 图形模型之间的比较。
关系模型 | 图形模型 | OrientDB 图形模型 |
---|---|---|
表 | 顶点和边类 | 扩展"V"(表示顶点)和"E"(表示边)的类 |
行 | 顶点 | 顶点 |
列 | 顶点和边属性 | 顶点和边属性 |
关系 | 边 | 边 |
键/值模型
键/值模型意味着数据可以以键/值对的形式存储,其中值可以是简单类型或复杂类型。它可以支持文档和图形元素作为值。
下表说明了关系模型、键/值模型和 OrientDB 键/值模型之间的比较。
关系模型 | 键/值模型 | OrientDB 键/值模型 |
---|---|---|
表 | 桶 | 类或集群 |
行 | 键/值对 | 文档 |
列 | 不可用 | 文档字段或顶点/边属性 |
关系 | 不可用 | 链接 |
对象模型
该模型已被面向对象编程继承,并支持类型之间的继承(子类型扩展了超类型)、引用基类时的多态性以及编程语言中使用的对象的直接绑定。
下表说明了关系模型、对象模型和 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." } ] }
记录字节
记录类型与 RDBMS 中的 BLOB 类型相同。OrientDB 可以加载和存储文档记录类型以及二进制数据。
顶点
OrientDB 数据库不仅是文档数据库,也是图形数据库。使用顶点和边等新概念以图形形式存储数据。在图形数据库中,最基本的数据单元是节点,在 OrientDB 中称为顶点。顶点存储数据库的信息。
边
有一种单独的记录类型称为边,它将一个顶点连接到另一个顶点。边是双向的,只能连接两个顶点。OrientDB 中有两种类型的边,一种是常规的,另一种是轻量级的。
类
类是一种数据模型,也是从面向对象编程范式中得出的概念。基于传统的文档数据库模型,数据以集合的形式存储,而在关系数据库模型中,数据存储在表中。OrientDB 遵循文档 API 和 OPPS 范式。作为一个概念,OrientDB 中的类与关系数据库中的表具有最密切的关系,但(与表不同)类可以是无模式、全模式或混合模式。类可以从其他类继承,从而创建类树。每个类都有自己的一个或多个集群(如果未定义,则默认创建)。
集群
集群是一个重要的概念,用于存储记录、文档或顶点。简而言之,集群是存储一组记录的地方。默认情况下,OrientDB 将为每个类创建一个集群。类的所有记录都存储在与类同名的同一集群中。您可以在数据库中创建最多 32,767 (2^15-1) 个集群。
CREATE 类是用于创建具有特定名称的集群的命令。创建集群后,您可以在创建任何数据模型时指定名称,从而使用该集群保存记录。
关系
OrientDB 支持两种关系:引用和嵌入。引用关系表示它将直接链接存储到关系的目标对象中。嵌入关系表示它将关系存储在嵌入它的记录中。这种关系比引用关系更强。
数据库
数据库是访问实际存储的接口。IT 了解查询、模式、元数据、索引等高级概念。OrientDB 还提供多种数据库类型。有关这些类型的更多信息,请参阅数据库类型。