📜  OrientDB-基本概念(1)

📅  最后修改于: 2023-12-03 15:18:10.486000             🧑  作者: Mango

OrientDB-基本概念

什么是OrientDB?

OrientDB是一种多模型的NoSQL数据库管理系统,它支持关系、文档、图形和对象数据库模型。

数据库模型

OrientDB支持下列数据库模型:

  • 关系模型:OrientDB可以看作一个关系型数据库,表有结构化数据,结果可以像SQL Server或Oracle那样查询数据
  • 文档模型:和MongoDB类似,数据可以以文档为单位存储
  • 图形模型:类似Neo4j,支持图形数据存储和查询
  • 对象模型:数据存储在一个面向对象的类库中,类、属性、方法等等
类与记录

在OrientDB中,数据被组织为类(类似于表)和记录(类似于行)。

  • 类:描述记录的结构。每个类都有一个名字(唯一标识符),可以定义属性、索引和约束。
  • 记录:每个记录都像一个文档(MongoDB)或一行(SQL数据库)那样存储。每个记录都有一个唯一标识符(Rid),用于在数据库中查找和访问。

定义类的方式:

CREATE CLASS myClass

向类中添加属性:

CREATE PROPERTY myClass.name STRING
CREATE PROPERTY myClass.age INTEGER

向类中添加记录:

INSERT INTO myClass SET name = 'John', age = 25

查询类中的记录:

SELECT FROM myClass
索引和约束

OrientDB支持如下类型的索引:

  • 唯一索引:类似于关系型数据库中的主键
  • 非唯一索引
  • 全文索引:用于文档或字符串属性的全文搜索

添加约束的方式:

CREATE PROPERTY Person.name STRING
CREATE PROPERTY Person.email STRING

CREATE INDEX Person.email UNIQUE
CREATE CONSTRAINT Person.name UNIQUE
SQL操作

OrientDB支持SQL语法进行数据查询,例如:

SELECT name, age FROM Person WHERE age >= 18

OrientDB还支持聚合函数和Join操作,与传统的关系型数据库类似。

图形操作

OrientDB支持类似于Neo4j的图形操作语言,例如:

CREATE VERTEX Person SET name = 'Alice'
CREATE VERTEX Person SET name = 'Bob'

CREATE EDGE Friends FROM (SELECT FROM Person WHERE name = 'Alice') TO (SELECT FROM Person WHERE name = 'Bob')
总结

OrientDB是一个灵活的多模型数据库,具有一般NoSQL系统的优点,同时还具有关系型数据库和图形数据库的优点。 在开发应用程序时,OrientDB可以作为一个好的替代方案。