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

1.orientDB 了解相关推荐

  1. python里orient_从Python访问OrientDB

    我想将一个> 1mn记录的 MySQL数据库转换成一个图形数据库,因为它是一个链接很多的网络类型数据. Neo4J的免费版本有一些我认为可能会遇到的限制,因此我安装了OrientDB(Commu ...

  2. PostgreSQL,MongoDB,Neo4j,OrientDB和ArangoDB比较

    基准:PostgreSQL,MongoDB,Neo4j,OrientDB和ArangoDB 2015年10月13日表现 在这篇博客文章 - 这是一个综合的表现博客系列 - 我想完成我们的NoSQL性能 ...

  3. OrientDB系列:(一)初步使用及相关概念

    1 初步使用 1.1 安装 目前OrientDB的最新版本为3.x,可通过官网下载. python通过pyorient包与OrientDB连接时,需要OrientDB版本为2.x,下载地址.其中,2. ...

  4. OrientDB入门

    OrientDB入门 OrientDB是什么? 用一句话概括:一种Nosql数据库,支持文档.Key/Value,文档,图多种模型. 基础概念 记录 是读取和存储的最小单元.有四种类型: * 文档(D ...

  5. OrientDB 图状数据库示例

    OrientDB 图计算框架 OrientDB Doc传送门 图计算框架学习示例 概念 图(Graph)G=(V,E) V是非空集合的顶点集,E是V中顶点构成的无序二元组的边集合. G的边集合数范围: ...

  6. orientdb实战

    http://blog.csdn.net/zhufengyi/article/details/53037764    orientdb实战

  7. 常用的图数据库(Neo4j、FlockDB、AllegroGrap、GraphDB、InfiniteGraph、TITAN、OrientDb)

    1. Neo4j Neo4j是一个流行的图形数据库,它是开源的.最近,Neo4j的社区版已经由遵循AGPL许可协议转向了遵循GPL许可协议.尽管如此,Neo4j的企业版依然使用AGPL许可.Neo4j ...

  8. OrientDB部署

    1. 环境准备 操作系统: Centos6.8 内存: 8G(分布式部署时建议4G及以上,否则需要手动修改JVM配置) JDK: 建议jdk8版本(3.0版本要求jdk8) 环境变量:需配置JAVA_ ...

  9. orientdb 学习

    简介 OrientDB 是一款 NoSQL 数据库.是一种文档-图数据库.即:既具有文档数据库的特性,又具有图数据库的功能. 端口 2424  OrientDB 监听 二进制 访问的的端口 (即:通过 ...

  10. 2.OrientDB连接操作

    查考教程:https://www.w3cschool.cn/orientdb/ 1.连接到orientDB 进入orientDB安装目录,执行console.sh sh console.sh 输入连接 ...

最新文章

  1. mysql表误删回复_mysql 找回误删表的数据方法(必看)
  2. Java的知识点30——线程的优先级、终止线程的典型方式、获取线程基本信息的方法
  3. java List最大_在java中获取List集合中最大的日期时间操作
  4. java 短语_从Java中的文本文件中提取短语
  5. 典型环节的matlab仿真分析,典型环节的MATLAB仿真.doc
  6. 使用vivado进行逻辑开发时,进行到Generate Bitstream时报错
  7. 07-MyBatis 核心配置文件
  8. adb(Android debug bridge)命令
  9. no segments* file found in org.apache.lucene.store.SimpleFSDirectory
  10. selinium如何多线程_求教个selenium+grid+testng多线程运行的问题
  11. 数学建模(十)博弈论
  12. SQL Express
  13. centos更新yum时遇到的问题
  14. 明尼苏达计算机科学硕士录取案例,专业42-明尼苏达大学双城分校研究生录取-W同学...
  15. SPSS进行问卷数据的效度分析及结果解读(问卷数据统计分析第3步(转载)
  16. 用Python采集微博视频,随时随地发现新鲜事~
  17. 原创超简单代码(1.21.50)
  18. 刻在我心底的名字吉他谱-凡凡吉他教室编制
  19. 汇编语言中xor指令_XOR寄存器,寄存器(汇编程序)
  20. 浅析 Transformer Stage 在 DataStage 作业中的用法及功能实现

热门文章

  1. mysql函数IFNULL判空不生效
  2. Xshell如何设置鼠标右键粘贴
  3. php 安装 bzip2,Linux_Linux系统中安装使用Bzip2来压缩文件的方法讲解,安装 Bzip2命令如下:复制代码 - phpStudy...
  4. google python style guide_读lt;google python style guidegt;几点记录 - 毛头明月耍大刀 - ITeye博客...
  5. 会议OA之待开会议所有会议
  6. Java 中 Boolean 和 boolean 的区别
  7. (转载)C单元测试框架——cmocka
  8. Fortran语言初探及Win7 64位下Fortran开发环境配置
  9. php定时发送生日模块消息_PHP实现好友生日邮件提醒
  10. struts2各个jar包