1.orientDB 了解

5、OrientDB的数据模型

OrientDB支持多种模型: Key/Value, Object, Document, and Graph 。

6、OrientDB的一些基本概念

Classes

类比关系型数据库系统中的Table与传统文档数据库的collections。这个概念来自于OOP(Object-oriented programming)的理念。class用于定义数据结构的模型。

Record

record是OrientDB中最小的加载和存储的单位。record有四种类型:Document、RecordBytes(BLOB)、Vertex、Edge。

Document

是OrientDB中最灵活的record。Document支持schema-less,schemal-full,schema-mixed,即可以在定义数据结构的时候指定属性及约定条件,也可以不指定。它通过create class语法来定义一个数据结构。

Vertex

在OrientDB的graph模型下,每个结点叫作Vertex,每个Vertex也是一个Document。
Edge
在OrientDB的graph模型下,连接两个Vertex的边叫作Edge。Edge是有向性的而且仅能连接两个Vertex。

Clusters

用于存储record。每个数据库最多有32767个cluster。每个class都必须至少有一个对应的cluster。默认情况下OrientDB会自动为每个class创建与当前cpu核数相同的cluster,其中有一个默认的cluster。

Cluster Selection

当新增加一条reocrd时OrientDB会根据cluster section为这条记录选择一个cluster。

cluster section有四条类型

detault、round-robin、balanced、local。

Record ID

每个record都有一个record id。
record id的格式如下:
#:。

Relationships
OrientDB中不使用join,它通过在每个reocrd中定义一个关系类型的属性来维护关系。这个关系属性存储的实际是record id,就像定义一个指针在内存中将两个record联系起来。

Inheritance & Polymorphic

OrientDB支持面向对象的继承和多态特性。

7、OrientDB的SQL

在写图数据库的SQL时,第一步是要确认起始点(这个也是图数据库比较耗时的地方),一旦起始点确认后,我们便可以近乎物理连接的方式查询这个起始点相关联的数据。

基本的SQL:OrientDB支持大部分标准的SQL查询。

例如

SELECT FROM Person WHERE name LIKE ‘Luk%’
Traverse:traverse语法可以遍历获取一个record联结的reocrd。它比select使用起来更简单和快速。

例如

RAVERSE out("Friend") FROM #10:1234 WHILE $depth <= 3
Match

match是一种表述力很强的查询语法结构,类比Neo4j的Cypher语法结构。它以一种说明式的方式来查询。

例如:
MATCH 
{class: Person, as: person, where: (name = 'John' AND surname = 'Doe')}
.both('Friend').both('Friend')
{as: friendOfFriend} 
RETURN person, friendOfFriend

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值