- OrientDB 教程
- OrientDB - 首页
- OrientDB - 概述
- OrientDB - 安装
- OrientDB - 基本概念
- OrientDB - 数据类型
- OrientDB - 控制台模式
- OrientDB 数据库命令
- OrientDB - 创建数据库
- OrientDB - 修改数据库
- OrientDB - 备份数据库
- OrientDB - 恢复数据库
- OrientDB - 连接数据库
- OrientDB - 断开数据库连接
- OrientDB - 数据库信息
- OrientDB - 列出数据库
- OrientDB - 冻结数据库
- OrientDB - 解冻数据库
- OrientDB - 配置数据库
- OrientDB - 导出数据库
- OrientDB - 导入数据库
- OrientDB - 提交数据库
- OrientDB - 回滚数据库
- OrientDB - 优化数据库
- OrientDB - 删除数据库
- OrientDB 记录命令
- OrientDB - 插入记录
- OrientDB - 显示记录
- OrientDB - 加载记录
- OrientDB - 重新加载记录
- OrientDB - 导出记录
- OrientDB - 更新记录
- OrientDB - 清空记录
- OrientDB - 删除记录
- OrientDB 类命令
- OrientDB - 创建类
- OrientDB - 修改类
- OrientDB - 清空类
- OrientDB - 删除类
- OrientDB 集群命令
- OrientDB - 创建集群
- OrientDB - 修改集群
- OrientDB - 清空集群
- OrientDB - 删除集群
- OrientDB 属性命令
- OrientDB - 创建属性
- OrientDB - 修改属性
- OrientDB - 删除属性
- OrientDB 顶点命令
- OrientDB - 创建顶点
- OrientDB - 移动顶点
- OrientDB - 删除顶点
- OrientDB 边命令
- OrientDB - 创建边
- OrientDB - 更新边
- OrientDB - 删除边
- OrientDB 高级概念
- OrientDB - 函数
- OrientDB - 序列
- OrientDB - 索引
- OrientDB - 事务
- OrientDB - 钩子
- OrientDB - 缓存
- OrientDB - 日志
- OrientDB - 性能调优
- OrientDB - 升级
- OrientDB - 安全性
- OrientDB - Studio
- OrientDB 接口
- OrientDB - Java 接口
- OrientDB - Python 接口
- OrientDB 有用资源
- OrientDB - 快速指南
- OrientDB - 有用资源
- OrientDB - 讨论
OrientDB - 基本概念
OrientDB 的主要特点是支持多模型对象,即它支持不同的模型,例如文档、图、键/值和真实对象。它包含一个单独的 API 来支持所有这四种模型。
文档模型
术语“文档模型”属于 NoSQL 数据库。这意味着数据存储在文档中,文档组称为集合。从技术上讲,文档意味着一组键/值对,也称为字段或属性。
OrientDB 使用类、集群和链接等概念来存储、分组和分析文档。
下表说明了关系模型、文档模型和 OrientDB 文档模型之间的比较:
| 关系模型 | 文档模型 | OrientDB 文档模型 |
|---|---|---|
| 表 | 集合 | 类或集群 |
| 行 | 文档 | 文档 |
| 列 | 键/值对 | 文档字段 |
| 关系 | 不可用 | 链接 |
图模型
图数据结构是一种可以以顶点(节点)和边(弧)互连的形式存储数据的模型。OrientDB 图数据库的思想源于属性图。顶点和边是图模型的主要构件。它们包含属性,这可以使它们看起来类似于文档。
下表显示了图模型、关系数据模型和 OrientDB 图模型之间的比较。
| 关系模型 | 图模型 | OrientDB 图模型 |
|---|---|---|
| 表 | 顶点和边类 | 扩展“V”(顶点)和“E”(边)的类 |
| 行 | 顶点 | 顶点 |
| 列 | 顶点和边属性 | 顶点和边属性 |
| 关系 | 边 | 边 |
键/值模型
键/值模型意味着数据可以以键/值对的形式存储,其中值可以是简单类型或复杂类型。它可以支持文档和图元素作为值。
下表说明了关系模型、键/值模型和 OrientDB 键/值模型之间的比较。
| 关系模型 | 键/值模型 | OrientDB 键/值模型 |
|---|---|---|
| 表 | 桶 | 类或集群 |
| 行 | 键/值对 | 文档 |
| 列 | 不可用 | 文档字段或顶点/边属性 |
| 关系 | 不可用 | 链接 |
对象模型
此模型继承自面向对象编程,支持类型之间的继承(子类型扩展超类型)、多态性(当您引用基类时)和与编程语言中使用的对象的直接绑定。
下表说明了关系模型、对象模型和 OrientDB 对象模型之间的比较。
| 关系模型 | 对象模型 | OrientDB 对象模型 |
|---|---|---|
| 表 | 类 | 类或集群 |
| 行 | 对象 | 文档或顶点 |
| 列 | 对象属性 | 文档字段或顶点/边属性 |
| 关系 | 指针 | 链接 |
在详细介绍之前,最好了解与 OrientDB 相关的基本术语。以下是一些重要的术语。
记录
您可以从数据库加载和存储的最小单元。记录可以存储为四种类型。
- 文档
- 记录字节
- 顶点
- 边
记录 ID
当 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 数据库不仅是文档数据库,也是图数据库。顶点和边等新概念用于以图的形式存储数据。在图数据库中,最基本的单元是节点,在 OrientDB 中称为顶点。顶点存储数据库的信息。
边
有一种名为边的单独记录类型,用于连接一个顶点到另一个顶点。边是双向的,只能连接两个顶点。OrientDB 中有两种类型的边,一种是常规边,另一种是轻量级边。
类
类是一种数据模型类型,其概念源自面向对象编程范式。基于传统的文档数据库模型,数据存储在集合中,而在关系数据库模型中,数据存储在表中。OrientDB 遵循文档 API 和 OOP 范式。作为一个概念,OrientDB 中的类与关系数据库中的表关系最密切,但是(与表不同)类可以是无模式的、全模式的或混合的。类可以继承自其他类,创建类树。每个类都有自己的集群或集群(如果没有定义,则默认创建)。
集群
集群是一个重要的概念,用于存储记录、文档或顶点。简单来说,集群是一个存储一组记录的地方。默认情况下,OrientDB 将为每个类创建一个集群。一个类的所有记录都存储在与该类同名的同一个集群中。您可以在数据库中创建最多 32,767 (2^15-1) 个集群。
CREATE class 命令用于创建具有特定名称的集群。创建集群后,您可以通过在创建任何数据模型时指定名称来使用该集群保存记录。
关系
OrientDB 支持两种关系:引用和嵌入。引用关系表示它存储指向关系的目标对象的直接链接。嵌入关系表示它在嵌入它的记录内存储关系。这种关系比引用关系更强。
数据库
数据库是访问真实存储的接口。它理解诸如查询、模式、元数据、索引等高级概念。OrientDB 还提供多种数据库类型。有关这些类型的更多信息,请参见数据库类型。