zoukankan      html  css  js  c++  java
  • 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

    1. MATCH语句用指定的模式检索数据库。

      MATCH (movie:Movie)
      RETURN movie.title 
      

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

    1. WHERE在MATCH或者OPTINAL MATCH语句中添加约束,或者与WITH一起使用来过滤结果。

       MATCH (n)
       WHERE n:Movie and n.released > 1990
       RETURN n 
      

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

    1. OPTINAL MATCH语句用于搜索模式中描述的匹配项,对于找不到的项用null代替。

       MATCH (a:Movie { title: 'The Matrix' })
       OPTIONAL MATCH (a)-->(x)
       RETURN x 
      

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

  • 相关阅读:
    解决 Mac launchpad 启动台 Gitter 图标无法删除的问题
    React 与 React-Native 使用同一个 meteor 后台
    解决 React-Native mac 运行报错 error Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65. To debug build logs further, consider building your app with Xcode.app, by ope
    一行命令更新所有 npm 依赖包
    swift学习笔记
    IOS语言总结
    focusSNS学习笔记
    别小看锤子,老罗真的很认真
    windowsphone开发页面跳转到另一个dll中的页面
    【令人振奋】【转】微软潘正磊谈DevOps、Visual Studio 2013新功能、.NET未来
  • 原文地址:https://www.cnblogs.com/gzyc/p/10674758.html
Copyright © 2011-2022 走看看