NEO4j简单入门

Neo4j是:

  1. 一个开源
  2. 无Schema
  3. 没有SQL
  4. 图形数据库

图形数据库也称为图形数据库管理系统或GDBMS。
Neo4j的官方网站:http://www.neo4j.org

Neo4j的优点

  1. 它很容易表示连接的数据
  2. 检索/遍历/导航更多的连接数据是非常容易和快速的
  3. 它非常容易地表示半结构化数据
  4. Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
  5. 它使用简单而强大的数据模型
  6. 它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引

图形数据库

  1. 定义:图形数据库是以图形结构的形式存储数据的数据库。 它以节点,关系和属 的形式存储应用程序的数据。 正如RDBMS以表的“行,列”的形式存储数据,GDBMS以“图形”的形式存储数据。
  2. 简单地说,我们可以说图数据库主要用于存储更多的连接数据。

如果我们使用RDBMS数据库来存储更多连接的数据,那么它们不能提供用于遍历大量数据的适当性能。 在这些情况下,Graph Database提高了应用程序性能。

如今,大多数社交网络应用程序(如Facebook,Google +,LinkedIn,Twitter,Yammer等)和视频托管应用程序(如Google YouTube,Flickr,Yahoo Video等)都在使用更多连接的数据。

图数据库基本数据结构

  1. 节点(Node)是图数据库中的一个基本元素,用以表示一个实体记录,就像关系数据库中的一条记录一样。在Neo4j中节点可以包含多个属性(Property)和多个标签(Label)。
  2. 关系(Relationship)同样是图数据库中的基本元素。当数据库中已经存在节点后,需要将节点连接起来构成图。关系就是用来连接两个节点,关系也称为图论的边(Edge),其始端和末端都必须是节点,关系不能指向空也不能从空发起。关系和节点一样可以包含多个属性,但关系只能有一个类型(Type)。
  3. 当使用节点和关系创建了一个图后,在此图中任意两个节点间都是可能存在路径的。路径也有长度的概念,也就是路径中关系的条数。

Neo4j - CQL简介

CQL代表Cypher查询语言。 像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。

Neo4j CQL -

  1. 它是Neo4j图形数据库的查询语言。
  2. 它是一种声明性模式匹配语言
  3. 它遵循SQL语法。
  4. 它的语法是非常简单且人性化、可读的格式。
  5. Neo4j CQL 已命令来执行数据库操作。
  6. Neo4j CQL 支持多个子句像在哪里,顺序等,以非常简单的方式编写非常复杂的查询。
  7. NNeo4j CQL 支持一些功能,如字符串,Aggregation.In 加入他们,它还支持一些关系功能。

语法

  1. 一对圆括号来表示节点。如:(), (foo)。
  2. 一对短横线(即“--”)表示:一个无方向关系。有方向的关系在其中一段加上一个箭头(即“<--”或“-->”)。
  3. 方括号表达式[…]可用于添加详情。里面可以包含变量、属性和或者类型信息。
  4. 当需要引用模式(pattern)或者查询的某一部分的时候,可以对其进行命名。针对不同部分的这些命名被称为变量。
  5. Neo4j图由节点和关系构成。节点可能还有标签和属性,关系可能还有类型和属性。节点和关系都是简单的低层次的构建块。单个节点或者关系只能编码很少的信息,但模式可以将很多节点和关系编码为任意复杂的想法。
  6. CREATE语句用于创建图元素:节点和关系、索引。
     CREATE (n:Person:Admin)

    上面这条CREATE语句创建了一个节点,这个节点有两个标签Person和Admin

    CREATE (a)-[r:RELTYPE]->(b)
    上面这条CREATE语句创建了一个关系,由节点(a)指向节点(b),这个关系有一个type:RELTYPE

  7. MATCH语句用指定的模式检索数据库。
    MATCH (movie:Movie)
    RETURN movie.title 

    返回数据库中的所有电影的title。
    非常重要的一点是match不能单独使用,必须要配合return 或者 update 一起使用,否则直接error

  8. WHERE在MATCH或者OPTINAL MATCH语句中添加约束,或者与WITH一起使用来过滤结果。
     MATCH (n)
     WHERE n:Movie and n.released > 1990
     RETURN n 

    将返回released > 1990的’Movie节点。

  9. OPTINAL MATCH语句用于搜索模式中描述的匹配项,对于找不到的项用null代替。
     MATCH (a:Movie { title: 'The Matrix' })
     OPTIONAL MATCH (a)-->(x)
     RETURN x 

如果这个节点没有外向关系,返回null。

原文地址:https://www.cnblogs.com/gzyc/p/10674758.html

时间: 2024-11-10 11:07:20

NEO4j简单入门的相关文章

Neo4j学习(2)--简单入门

1.Neo4j属性图数据模型 节点:包含属性 属性:键值对形式 关系:单向,连接节点 标签:type,区分节点 2.Neo4j基本语句 3.Neo4j JavaAPI 1> 节点操作 (1)节点:GraphDatabaseService().createNode() (2)建立两个节点之间的关系:Node.createRelationShipTo(...) (3)节点添加属性:Node.setProperty(name,value)  Neo4j中不允许null属性值   (4)节点属性删除:N

正则表达式简单入门

 正则表达式简单入门    正则表达式在平常编程中有着大量的应用,对于任何一个想学习编程的人来说,正则表达式是一个必须掌握的知识. 废话不多说,下面先对正则表达式做一个简单的入门介绍,在后续的文章中,将会进行详细的介绍.    一.元字符 元字符一共有12个:$ ( ) [ { ? + * . ^ \ | 元字符有特殊的含义,如果要使用其字面值,则必须对其进行转义. 如: \$  \*  \( 等等 二.控制字符或不可打印字符 \a  警报 \e  退出 \f  换页 \n  换行 \r 

程序员,一起玩转GitHub版本控制,超简单入门教程 干货2

本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注头条号.每日更新.也可以添加小编微信:fullstackCourse.一起交流,获取最新全栈教程信息.因为FQ原因,不能下载客户端的同仁,可以关注后回复“GitHub客户端”获取安装软件. 上篇教程:GitHub这么火,程序员你不学学吗? 超简单入门教程 干货 GitHub概念部分出现了一丝纰漏.为

iBatis简单入门教程

iBatis 简介: iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis 已经改名为Mybatis 了. 官网为:http://www.mybatis.org/ 搭建iBatis 开发环境: 1 .导入相关的jar 包,ibatis-2.3.0.677.jar .mysql-connector-java-5.1.6

Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门

出处:http://www.cnblogs.com/SeeYouBug/p/6401737.html 一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数据的操作的一个封转.可以分为视图模型(view model)和领域模型(domain models),视图模型就是在视图与控制器之间传输数据的一个封转,而领域模型就是业务逻辑,后台数据模型等的一个集

Java日志系统---Logger之简单入门

Java 中自带的日志系统,今天抽空了解了一点,算是入了门,所以将自己的一些心得记录下来,以备日后查看,有兴趣的朋友,看到此文章,觉得有错误或需要添加的地方,请在下方评论留言,大家可以共同进步,谢谢:) Java中关于日志系统的API,在 java.util.logging 包中,在这个包中,Logger类很重要. Logger类是用来记录 某个级别的日志消息: 级别共分为以下几类,从上倒下,级别依次下降: SEVERE(严重)------级别最高 WARNING(警告) INFO CONFIG

响应式网页设计简单入门(强烈推薦!!!!)

响应式网页设计简单入门 Overview: 构造基本的HTML页面 动态加载样式表 Viewport 字体缩放 侧边栏 导航菜单 图片自适应 其他 总结 说到响应式网页设计(Responsive web design),最近在谷歌加上碰到个奇葩贴子,通过一个原始到无法再简单的网页Motherfucking Website及满屏幕的fuck道出了网页设计的真谛,这孩子不是个激进分子就是个报复社会型的货没错,虽然整篇文章就像是泼妇骂街,但我特么是笑着读完的.. 统计了下全文共用Fuck (包括fuc

Android HttpGet() 请求简单入门实例

HttpClient httpclient = new DefaultHttpClient(); String url = "http://example.com"; List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add( new BasicNameValuePair( "param", "value" ) ); URI uri =

delphi指针简单入门

delphi指针简单入门:         看一个指针用法的例子:     1         var     2             X,   Y:   Integer;       //   X   and   Y   整数类型     3             P:   ^Integer;           //   P   指向整数类型的指针     4         begin     5             X   :=17; //   给   X   赋值     6