Neo4j数据库是一种图形数据库(不知道这么翻译准不准,暂且这么称呼吧),这种数据库与传统的关系型数据库有很大的差别。为了更好地帮助大家理解我这里就将关系型数据库与图形数据库作个比较。
关系型数据库:
我们常用的像mysql,oracle等都是关系型数据库,在关系型数据库里面对数据的处理是这样子的:对每个对象都创建一个表,对象的属性对应表里面的列
如图所示。在数据库里有条数据表示两个对象:tim,lili。在现实生活中我们会发现任何对象都是有某种联系的,那么关系型数据库里是怎样来表示这种关系呢?就比如tim和lili是好朋友,那么在数据库里怎样来表示他们的关系呢?关系型数据库里面是 这样处理的——新建一个叫relationship的表,表里面有两个字段id,friendid。
2 1
如图所示。如果我们要查找tim的朋友那么我们可以遍历relationship表就可以了。
这种数据模型会有什么问题呢?其实我们可以对这个数据模型提个问题——tim的朋友的朋友的朋友的朋友是谁?好,关系型数据会这样回答你的问题:首先在relationship表里面找到所有id为1(tim的id)的数据,然后拿到对应的friendid,接着逐个根据friendid再进行遍历找到对应的friendid,如此反复地遍历查询。。。。
也许10分钟也许一小时,也许它永远都无法回答你的问题。
其实,这种关系只要超过5级关系型数据库就无法解决问题,
Neo4j入门教程_1
最新推荐文章于 2024-06-22 13:54:19 发布
本文介绍了图形数据库Neo4j与传统关系型数据库的区别。关系型数据库通过表和连接处理对象及关系,面对复杂关系查询效率低下。而Neo4j采用节点和关系的方式,能更高效地处理多级关联查询。对于超过5级关系的查询,图形数据库表现出明显优势。
摘要由CSDN通过智能技术生成