Orientdb 简明教程
OrientDB - Basic Concepts
OrientDB 的主要功能是对多模型对象的支持,即支持文档、图、键/值和真实对象等不同的模型。它包含一个单独的 API 来支持这四个模型。
Document Model
术语文档模型属于 NoSQL 数据库。这意味着数据存储在文档中,并且一组文档称为 Collection 。从技术上讲,文档表示一组键/值对,或称为字段或属性。
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 |
Graph Model
图数据结构是一个数据模型,它可以以顶点(节点)的形式存储数据,顶点通过边(弧)相互连接。OrientDB 图数据库的构思源自属性图。顶点和边是图模型的主要组成部分。它们包含属性,这可以使它们看起来类似于文档。
下表显示了图模型、关系数据模型和 OrientDB 图模型之间的比较。
Relational Model |
Graph Model |
OrientDB Graph Model |
Table |
Vertex and Edge Class |
扩展“V”(表示顶点)和“E”(表示边)的类 |
Row |
Vertex |
Vertex |
Column |
Vertex and Edge property |
Vertex and Edge property |
Relationship |
Edge |
Edge |
The Key/Value Model
键/值模型表示数据可以以键/值对的形式存储,其中值可以是简单类型和复杂类型。它可以支持文档和图形元素作为值。
下表说明了关系模型、键/值模型和 OrientDB 键/值模型之间的比较。
Relational Model |
Key/Value Model |
OrientDB Key/Value Model |
Table |
Bucket |
Class or Cluster |
Row |
Key/Value pair |
Document |
Column |
Not available |
文档字段或顶点/边属性 |
Relationship |
Not available |
Link |
The Object Model
此模型由面向对象编程继承,并且支持类型(子类型扩展超类型)之间的 Inheritance 、类型指的是基础类时的 Polymorphism 以及编程语言中使用的对象来自/至的 Direct binding 。
下表说明了关系模型、对象模型和 OrientDB 对象模型之间的比较。
Relational Model |
Object Model |
OrientDB Object Model |
Table |
Class |
Class or Cluster |
Row |
Object |
Document or Vertex |
Column |
Object property |
文档字段或顶点/边属性 |
Relationship |
Pointer |
Link |
在详细讨论之前,最好了解与 OrientDB 相关的基本术语。以下是一些重要的术语。
Record ID
当 OrientDB 生成记录时,数据库服务器会自动为该记录分配一个单元标识符,称为 RecordID (RID)。RID 看起来像 #<cluster>:<position>。 <cluster> 表示集群标识号,<position> 表示集群中记录的绝对位置。
Documents
文档是 OrientDB 中可用的最灵活的记录类型。文档是软类型,由具有定义约束的模式类定义,但你也可以在没有任何模式的情况下插入文档,即它也支持无模式模式。
文档可以通过 JSON 格式轻松地导出和导入。例如,看一看以下 JSON 示例文档。它定义了文档详细信息。
{
"id" : "1201",
"name" : "Jay",
"job" : "Developer",
"creations" : [
{
"name" : "Amiga",
"company" : "Commodore Inc."
},
{
"name" : "Amiga 500",
"company" : "Commodore Inc."
}
]
}
Vertex
OrientDB 数据库不仅是文档数据库,也是图形数据库。使用顶点和边等新概念以图形的形式存储数据。在图形数据库中,最基本的数据单位是节点,在 OrientDB 中称为顶点。顶点为数据库存储信息。
Class
类是一种数据模型类型和从面向对象编程范例中汲取的概念。基于传统的文档数据库模型,数据以集合的形式存储,而在关系数据库模型中,数据存储在表中。OrientDB 遵循文档 API 以及 OPPS 范例。作为一个概念,OrientDB 中的类与关系数据库中的表的关系最密切,但是(与表不同)类可以是无模式的,全模式的或混合的。类可以继承自其他类,从而创建类的树。每个类都有自己的集群,(如果未定义,则默认创建)。
Cluster
集群是一个重要的概念,用于存储记录、文档或顶点。简单来说,集群是存储一组记录的地方。默认情况下,OrientDB 将为每个类创建一个集群。一个类的所有记录都存储在具有与类同名的同一集群中。您可以在数据库中创建多达 32,767(2^15-1)个集群。
CREATE class 是一条用于创建带有特定名称的集群的命令。创建集群后,您可以通过在创建任何数据模型期间指定名称来使用该集群来保存记录。