[知识图谱] 3.1-图数据库是什么?Neo4j是什么?

图数据库是什么?就算是科班出身的朋友,可能也对图数据库没有多少了解。图数据库是基于图论实现的一种新型的NoSQL数据库。html

关系型数据库的不适性

  • 随着关系数据库使用范围的不断扩大,也暴露出一些它始终没法解决的问题,其中最主要的是数据建模中的一些缺陷和问题,以及在大数据量和多服务器之上进行水平伸缩的限制。算法

  • 互联网发展产生了一些新的趋势变化:用户、系统和传感器产生的数据量呈指数增加,数据量不断增长,大数据的存储和处理; 新时代互联网形势下的问题急迫性,这一问题因互联网+、社交网络,智能推荐等的大规模兴起和繁荣而变得越加紧迫。数据库

NoSQL数据库的数据模型

  • NoSQL(Not Only SQL,不限于SQL)是一类范围很是普遍的持久化解决方案,它们不遵循关系数据库模型,也不使用SQL做为查询语言。 其数据存储能够不须要固定的表格模式,也常常会避免使用SQL的JOIN操做,通常有水平可扩展的特征。服务器

  • NoSQL数据库能够按照它们的数据模型分红4类:键-值存储库(Key-Value-stores);列数据库(BigTable-implementations);文档库(Document-stores);图形数据库(Graph Database)。网络

作知识图谱为何选择图形数据库,为何选择Neo4j?

  • 更快的数据库操做。固然,有一个前提条件,那就是数据量较大,在MySql中存储的话须要许多表,而且表之间联系较多(即有很多的操做须要join表)。数据库设计

  • 数据更直观,相应的SQL语句也更好写(Neo4j使用Cypher语言,与传统SQL有很大不一样)。post

  • 更灵活。无论有什么新的数据须要存储,都是一概的节点和边,只须要考虑节点属性和边属性。而MySql中即意味着新的表,还要考虑和其余表的关系。大数据

  • 数据库操做的速度并不会随着数据库的增大有明显的下降。这得益于Neo4j特殊的数据存储结构和专门优化的图算法。优化

图数据库有哪些特征?

  • 包含节点和边;.net

  • 节点上有属性(键值对);

  • 边有名字和方向,并老是有一个开始节点和一个结束节点;

  • 边也能够有属性。

在项目中使用Neo4J

  • 对事务的支持。Neo4J强制要求每一个对数据的更改都须要在一个事务以内完成,以保证数据的一致性。

  • 强大的图形搜索能力。Neo4J容许用户经过Cypher语言来操做数据库。该语言是特地为操做图形数据库设计的,所以其能够很是高效地操做图形数据库。 同时Neo4J也提供了面向当前市场一系列流行语言的客户端,以供使用这些语言的开发人员可以快速地对Neo4J进行操做。

  • 具备必定的横向扩展能力。因为图中的一个结点经常具备和其它结点相关联的关系,所以像一系列Sharding解决方案那样对图进行切割经常并不现实。 所以Neo4J当前所提供的横向扩展方案主要是经过Read Replica进行的读写分割。 反过来,因为单个Neo4J实例能够存储几十亿个结点及关系,所以对于通常的企业级应用,这种横向扩展能力已经足够了。

参考资料

下一篇

3-2. Neo4j的配置和使用

相关文章
相关标签/搜索