zoukankan      html  css  js  c++  java
  • Neo4j_02了解图数据库

    什么是图形?

     一个图由两个元素组成:一个节点和一个关系。

     每个节点代表一个实体(人,地点,事物,类别或其他数据段),每个关系代表两个节点是如何关联的。例如,蛋糕和甜点这两个节点之间的关系是一种从蛋糕到甜点的指向。

    这个通用的结构可以让你模拟各种场景 - 从道路系统到设备网络,到人口的医疗史或由关系定义的任何其他事物。

     

    什么是图形数据库?

       图形数据库是一个在线数据库管理系统,具有在图形数据模型上工作的创建,读取,更新和删除(CRUD)操作。与其他数据库不同,在图形数据库中,关系优先。这意味着您的应用程序不必使用外键或带外处理(如MapReduce)来推断数据连接。通过将节点和关系的简单抽象组合到连接的结构中,图形数据库使我们能够建立与我们的问题领域紧密相关的复杂模型。图数据库的数据模型也比关系数据库或其他NoSQL数据库的数据模型简单得多,表现力也更强。图形数据库是为了与事务性(OLTP)系统一起使用而构建的,并且考虑到事务完整性和操作可用性。

    图数据库技术有两个重要的特性:

     图表存储

    一些图形数据库使用专门设计用于存储和管理图形的原生图形存储,而另一些则使用关系数据库或面向对象的数据库。非本地存储通常更为隐蔽。

    图形处理引擎

    原生图处理(也称为“无索引邻接”)是处理图数据的最有效手段,因为连接的节点在数据库中物理地“指向”彼此。非本地图形处理使用其他手段来处理CRUD操作。

     

    为什么要使用图形数据库?使用图形数据库有什么好处?

      当今的商业和用户需求要求连接越来越多的世界数据的应用程序,但仍然期望高水平的性能和数据可靠性。未来的许多应用程序将使用像Neo4j这样的图形数据库来构建。

    今天的CIOCTO不仅需要管理大量的数据,还需要从现有的数据中获取洞察力。 在这种情况下,数据点之间的关系比单独的点本身更重要。为了利用数据关系,组织需要一种将关系信息存储为一流实体的数据库技术。 该技术是一个图形数据库。具有讽刺意味的是,传统的关系数据库管理系统(RDBMS)在处理数据关系上很差。 他们严格的模式使得难以添加不同的连接或适应新的业务需求。图形数据库不仅有效地存储数据关系, 在扩展数据模型或符合不断变化的业务需求时,它们也很灵活。

    GoogleFacebookLinkedInPayPal等技术巨头都利用图形数据库的力量创造了蓬勃发展的业务。 他们的秘密就是每个人都使用图形数据库技术来利用数据连接的力量。

    图形数据库是专门为处理高度连接的数据而建立的,而今天的数据量和连通性的增加为持续的竞争优势提供了巨大的机会。

    图表数据库还有其他三个关键优势:

      性能:对于密集的数据关系处理,图形数据库将性能提高了几个数量级。在传统的数据库中,随着关系的数量和深度的增加,关系查询将会停止。相比之下,即使您的数据年复一年增长,图表数据库的性能也会保持不变。

      灵活性:对于图形数据库,IT和数据架构师团队正在以业务的速度发展,因为随着应用程序和行业的变化,图形模型的结构和模式也会随之变化。数据团队可以在不危及当前功能的情况下将其添加到现有的图形结构中,而不是提前对域进行详尽的建模。

       敏捷:使用图形数据库开发完全符合当今灵活的,测试驱动的开发实践,允许您的图形数据库与其他应用程序和任何不断变化的业务需求同步发展。现代图形数据库配备了无摩擦的开发和优雅的系统维护。

     

    图数据库的常见用例是什么?

    当今的企业组织以多种方式使用图形数据库技术:

      欺诈识别

      实时推荐引擎

      主数据管理(MDM

      网络和IT运营

      身份和访问管理(IAM

      从沃尔玛,eBay和阿迪达斯集团这样的企业到像CobrainZephyr HealthWanderu这样的创业公司,甚至像ICIJ和世界经济论坛这样的非盈利组织,图形数据库的案例研究都具有多样性和深度的用途。

     

    图数据库的案例

    图表为开发堆栈带来的最大价值是它们将关系和连接存储为一体的能力。例如,图形技术的早期采用者围绕数据关系的价值重新构想了他们的业务。 这些公司现在已经成为行业领导者:LinkedInGoogleFacebookPayPal

     

    什么是Neo4j?

    Neo4j是一个数据库 - 使用它来可靠地存储信息,并在以后找到它

    Neo4j的数据模型是一个Graph,特别是一个Property Graph

    CypherNeo4j的图形查询语言(SQL for graph!)

    Cypher是一种声明式查询语言:它描述了你感兴趣的内容,而不是如何获得。

    Cypher是非常易读和有表现力的

     

    什么是Cypher?

       Cypher是一种声明式查询语言,可以对图表数据进行有效的查询和更新。 Cypher是一个相对简单而强大的语言。复杂的数据库查询可以通过Cypher轻松表达,使您可以专注于您的域,而不是迷失在数据库访问。Cypher的设计是一个人性化的查询语言,适合开发人员和任何其他专业人士。我们的指导目标是使简单的事情容易,复杂的事情成为可能。 Cypher的结构是为了被人类阅读而优化的,使用英文散文和图像来使查询更加自明。

      作为一种声明性语言,Cypher的重点是明确表达从图表中检索什么,而不是如何检索。这与用于数据库访问的命令性的,程序化的API相反。这种方法使得查询优化成为实现细节而不是用户负担,消除了仅仅因为物理数据库结构改变而更新所有遍历的需要。Cypher的灵感来源于多种不同的方法,并建立在传统查询的既定实践之上。 像WHEREORDER BY这样的许多关键字都受SQL的启发。 模式匹配从SPARQL中借用了表达式方法。 一些集合语义已经从HaskellPython等语言中借用过。Cypher语言已经提供给任何人实施和使用openCypher,允许任何数据库供应商,研究人员或其他利益相关方获得我们多年来开发一流的图形查询语言的努力和经验中的好处。

  • 相关阅读:
    人脸旋转 《转》
    深度学习如何入门?<知乎>
    openGL-------------别人的博客
    如何实现视频的快进快退功能(转)
    MFC+OpenGL基础绘制<转>
    野蒜
    人脸识别68个点<转>
    cv::circle《转》
    HTML5 Canvas之猜数字游戏
    LIRe 源代码分析 3:基本接口(ImageSearcher)
  • 原文地址:https://www.cnblogs.com/zzsaf/p/8004391.html
Copyright © 2011-2022 走看看