图数据库orientDB(1-2)例子
http://gog.orientdb.com/index.html#/infotab
小朱25岁,出生在教师家庭并且有个姐姐小田,他现在奋斗在帝都。
那么SQL是这样滴!!!
CREATE VERTEX V SET name="小朱",sex="男",age="25";
CREATE VERTEX V SET name="小田",sex="女",age="27";
CREATE EDGE E FROM #9:0 TO #10:0 SET name="sisiter";
CREATE EDGE E FROM #10:0 TO #9:0 SET name="brother";
Select from V where name in ['小朱',"小田"];

* select 在 Graph 页面查询会自动渲染出关系结果
小朱还有一个可爱的女盆友叫小刘
CREATE VERTEX V SET name="小刘",sex="女",age="23";
CREATE EDGE E FROM #9:0 TO #11:0 SET name="lover";
CREATE EDGE E FROM #11:0 TO #9:0 SET name="lover";

小朱目前工作在企业ABC,他有一堆同事小马、小龚、小微…..
CREATE VERTEX V SET name="ABC";
CREATE VERTEX V SET name="小马",sex="男",age="29",company="ABC";
CREATE VERTEX V SET name="小龚",sex="男",age="28",company="ABC";
CREATE VERTEX V SET name="小微",sex="女",age="24",company="ABC";
UPDATE V SET company = 'ABC' WHERE name='小朱'
CREATE EDGE E FROM (select from V where company='ABC') TO (select from V where name ='ABC') SET name="employee";

小朱目前跟不同同事合作完成了如下项目:PROJECT-1,PROJECT-2,PROJECT-3…..
CREATE VERTEX V SET name="PROJECT-1",type='JAVA',starttime='2016/01/01';
CREATE VERTEX V SET name="PROJECT-2",type='JAVA',starttime='2016/01/01';
CREATE VERTEX V SET name="PROJECT-3",type='JAVA',starttime='2016/01/01';
CREATE EDGE E FROM (select from V where name in ['小朱','小马','小微']) TO (select from v where name='PROJECT-1') SET name="work";
CREATE EDGE E FROM (select from V where name in ['小朱','小马','小微','小龚']) TO (select from v where name='PROJECT-2') SET name="work";
CREATE EDGE E FROM (select from V where name in ['小朱','小马','小龚']) TO (select from v where name='PROJECT-3') SET name="work";

以上描述中,所有点和边缘均继承祖先V、E对象,不能方便的通过语句进行筛选,不推荐直接创建V、E记录。

改造以上实例,用不同的关系对象表示
上图出现了两种对象(公司,人,项目)……划分规则,看心情
有5类关系(情侣,姐,弟,雇员,合作)
莫名其妙有了V{Company,Preson,Project},E{Lover,sisiter,brother,employee,work}
CREATE CLASS Company
EXTENDS V;
CREATE CLASS Project
EXTENDS V;
CREATE CLASS Preson
EXTENDS V;
CREATE CLASS Lover
EXTENDS E;
CREATE CLASS Sisiter
EXTENDS E;
CREATE CLASS Brother
EXTENDS E;
CREATE CLASS Employee
EXTENDS E;
CREATE CLASS Work EXTENDS E;
CREATE VERTEX Preson SET name="小朱",sex="男",age="25",company="Lianjia";
CREATE VERTEX Preson SET name="小刘",sex="女",age="23";
CREATE VERTEX Preson SET name="小田",sex="女",age="27";
CREATE VERTEX Company SET name="Lianjia";
CREATE VERTEX Preson SET name="小马",sex="男",age="29",company="Lianjia";
CREATE VERTEX Preson SET name="小龚",sex="男",age="28",company="Lianjia";
CREATE VERTEX Preson SET name="小微",sex="女",age="24",company="Lianjia";
CREATE VERTEX Project SET name="PROJECT-1",type='JAVA',starttime='2016/01/01';
CREATE VERTEX Project SET name="PROJECT-2",type='JAVA',starttime='2016/01/01';
CREATE VERTEX Project SET name="PROJECT-3",type='JAVA',starttime='2016/01/01';
#把以前的顶点移动到每个具体的类别
#MOVE VERTEX(SELECT FROM V WHERE name='ABC') TO CLASS:Company;
#创建情侣关系
CREATE EDGE Lover FROM (select from Preson where name='小朱') TO (select from Preson where name='小刘');
CREATE EDGE Lover FROM (select from Preson where name='小刘') TO (select from Preson where name='小朱');
#创建姐弟关系
CREATE EDGE Sisiter FROM (select from Preson where name='小朱') TO (select from Preson where name='小田');
CREATE EDGE Brother FROM (select from Preson where name='小田') TO (select from Preson where name='小朱');
#创建雇佣关系
CREATE EDGE Employee FROM (select from Preson where company='Lianjia') TO (select from Company where name ='Lianjia');
#创建项目关系
CREATE EDGE Work FROM (select from Preson where name in ['小朱','小马','小微']) TO (select from Project where name='PROJECT-1');
CREATE EDGE Work FROM (select from Preson where name in ['小朱','小马','小微','小龚']) TO (select from Project where name='PROJECT-2');
CREATE EDGE Work FROM (select from Preson where name in ['小朱','小马','小龚']) TO (select from Project where name='PROJECT-3');
图数据库orientDB(1-2)例子的更多相关文章
- 图数据库orientDB(1-1)SQL基本操作
SQL基本操作 1.新增VerTex CREATE VERTEX V SET name="user01",sex="M",age="25"; ...
- 主流图数据库Neo4J、ArangoDB、OrientDB综合对比:架构分析
主流图数据库Neo4J.ArangoDB.OrientDB综合对比:架构分析 YOTOY 关注 0.4 2017.06.15 15:11* 字数 3733 阅读 16430评论 2喜欢 18 1: 本 ...
- Neo4j图数据库简介和底层原理
现实中很多数据都是用图来表达的,比如社交网络中人与人的关系.地图数据.或是基因信息等等.RDBMS并不适合表达这类数据,而且由于海量数据的存在,让其显得捉襟见肘.NoSQL数据库的兴起,很好地解决了海 ...
- 初识SQL Server2017 图数据库(一)
背景: 图数据库对于表现和遍历复杂的实体之间关系是很有效果的.而这些在传统的关系型数据库中尤其是对于报表而言很难实现.如果把传统关系型数据库比做火车的话,那么到现在大数据时代,图数据库可比做高铁.它已 ...
- 开源软件:NoSql数据库 - 图数据库 Neo4j
转载自原文地址:http://www.cnblogs.com/loveis715/p/5277051.html 最近我在用图形数据库来完成对一个初创项目的支持.在使用过程中觉得这种图形数据库实际上挺有 ...
- Cayley图数据库的简介及使用
图数据库 在如今数据库群雄逐鹿的时代中,非关系型数据库(NoSQL)已经占据了半壁江山,而图数据库(Graph Database)更是攻城略地,成为其中的佼佼者. 所谓图数据库,它应用图理论( ...
- 图数据库项目DGraph的前世今生
本文由云+社区发表 作者:ManishRai Jain 作者:ManishRai Jain Dgraph Labs创始人 版权声明:本文由腾讯云数据库产品团队整理,页面原始内容来自于db weekly ...
- 图数据库titan 和 rexster安装手册
titan是图数据库, rexster是图显示服务 titan 安装 下载 titan 0.3.2 解压 titan-all-0.3.2.zip 到 /opt/hugedata/share/解压后得到 ...
- JanusGraph : 图和图数据库的简介
JanusGraph:图数据库系统简介 图(graph)是<数据结构>课中第一次接触到的一个概念,它是一种用来描述现实世界中个体和个体之间网络关系的数据结构. 为了在计算机中存储图,< ...
随机推荐
- MVC4不支持EF6解决方案 && Nuget控制台操作说明
问题背景:MVC4不支持EF6,所以要把EF6卸载然后安装EF5.只能降低版本EF5+MVC4或者EF6+MVC5; 这时候: Uninstall-Package EntityFramework -F ...
- Mysql5.7动态修改innodb_buffer_pool_size
SELECT @@innodb_buffer_pool_size,@@innodb_buffer_pool_chunk_size,@@innodb_buffer_pool_instances; SET ...
- 【Windows】定时任务设置
Windows定时任务 linux上面的定时任务已经解除过好多次了.不外乎crontab,at之类的命令,而windows上的定时任务今天才偶尔看到怎么设置.想到以后生活上可能会用到一些这方面的知识就 ...
- 【Python】 更多数据类型collections&简易数据文件shelve
■collections collections在python内建的数据类型基础上新增一些实用的数据类型,其目的在于增加代码的可读性?(虽然我自己没怎么用过..) ① deque 双端队列 q = d ...
- Nginx代理转发Apache+svn
1.安装svn和httpd yum install httpd yum install subversion mod_dav_svn 创建仓库目录 mkdir -p /var/www/svn 3.创建 ...
- Ubuntu16.0.4的磁盘管理
ubuntu下硬盘无损分区移动修改工具 原创 2014年04月13日 :: ubuntu上面其实有很好的分区调整工具,gparted,非常好使用 安装非常简单 sudo apt-get install ...
- lua continue实现
--第一种 , do while true do == then break end -- 这里有一大堆代码 -- -- break end end --第二种 i = ) do if () then ...
- Java基础学习笔记八 Java基础语法之接口和多态
接口 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”.接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义 ...
- ThreadLocal 原理和使用场景分析
ThreadLocal 不知道大家有没有用过,但至少听说过,今天主要记录一下 ThreadLocal 的原理和使用场景. 使用场景 直接定位到 ThreadLocal 的源码,可以看到源码注释中有很清 ...
- 关于5303狄惟佳同学的myod程序设计的补充实现
关于5303狄惟佳同学的myod程序设计的补充实现 原版代码实现的局限 原版代码主函数 int main(int argc,char *argv[]) { if(strcmp(argv[1], &qu ...