当前位置: 首页 > 工具软件 > OrientDB API > 使用案例 >

OrientDB入门

陈德泽
2023-12-01

OrientDB入门

OrientDB是什么?

用一句话概括:一种Nosql数据库,支持文档、Key/Value,文档,图多种模型。

基础概念

记录

是读取和存储的最小单元。有四种类型:
* 文档(Document)
* 字节流(RecordBytes)
* 顶点(Vertex)
* 边(Edge)

文档

文档是OrientDB中最灵活的记录类型。文档默认有类型,通过约束的模式来定义,但是也可以使用无模式的。

字节流

用于加载和存储二进制数据,类似于关系型数据中的BLOB

顶点

节点是图形数据中最基本的数据单元,OrientDB中叫做顶点

图形数据库中两个节点的连接叫做弧,OrientDB叫做边

簇(Cluster)

存储数据的地方,可以存储在物理空间和内存空间

记录ID

当OrientDB产生一条记录时,会自动分配一个唯一的单元标示,叫做Record ID,簇标示和位置组成的。格式如下:

#<cluster>:<position>
  • 簇标示(cluster):这个数字表示记录所属的簇。正数表示记录是被持久化的,负数表示临时存储
  • 位置(position):这个数字表示了在簇中的记录的绝对位置。

类(Class)

类似关系型数据库中表的概念。class概念来自面向对象编程,可以继承。也可以有抽象类(Abstract Class)

引用关系(referenced)

                  customer
  Record A     ------------->    Record B
CLASS=Invoice                 CLASS=Customer
  RID=5:23                       RID=10:2

这里, 记录A在属性customer中包含了记录B的引用。 记录相互可以被对方访问,因为有记录ID,文档API中, 边被表示为两个链接,分别存储在对应的顶点中来处理双向连接关系


基础操作

使用OrientDB SQL dialect

OrientDB支持以Sql的方式来查询数据,和传统Sql非常类似,有一些细微区别

JOINs(关联查询)
传统SQL

SELECT *
FROM Employee A, City B
WHERE A.city = B.id
AND B.name = 'Rome'

OrientDB Sql

SELECT * FROM Employee WHERE city.name = 'Rome'

DISTINCT
传统Sql

SELECT DISTINCT name FROM City

OrientDB Sql

SELECT DISTINCT(name) FROM City

Graph Sql语法

创建Vertex

CREATE VERTEX [<class>] [CLUSTER <cluster>] [SET <field> = <expression>[,]*]

删除Vertex

CREATE VERTEX [<class>] [CLUSTER <cluster>] [SET <field> = <expression>[,]*]

Select

SELECT [ <Projections> ] [ FROM <Target> [ LET <Assignment>* ] ]
    [ WHERE <Condition>* ]
    [ GROUP BY <Field>* ]
    [ ORDER BY <Fields>* [ ASC|DESC ] * ]
    [ UNWIND <Field>* ]
    [ SKIP <SkipRecords> ]
    [ LIMIT <MaxRecords> ]
    [ FETCHPLAN <FetchPlan> ]
    [ TIMEOUT <Timeout> [ <STRATEGY> ]
    [ LOCK default|record ]
    [ PARALLEL ]
    [ NOCACHE ]

官方文档地址

http://orientdb.com/docs/last/

 类似资料: