例子1:社交网络
-
假设有一个社交网络需要用数据库存储,其中人与人之间的关系有:朋友(friend)、父母(parent)
-
首先用关系数据库来实现朋友关系,需要 3 张表:people、people_relation、relation
如果要查询 Jam 的所有朋友的信息,那么就需要连接三张表:SELECT p.info FROM people p JOIN people_relation pr ON p.id = pr.pid2 JOIN relation r ON pr.rid = r.id WHERE r.name = 'f';
如果表的数据量较大,那么查询效率就会下降很多
-
如果使用图数据库存储呢?文章来源:https://www.toymoban.com/news/detail-839566.html
- 首先需要创建节点和关系(边)
CREATE (:people {name: 'Jam', info:...}) ...
- 接着创建关系
CREATE (:people {name: 'Jam'})-[:f]->(:people {name: 'Tim'}) ...
- 最终查询 Jam 的所有朋友
MATCH (:people {name: 'Jam'})-[:f]-> (friend) RETURN friend.info;
- 首先需要创建节点和关系(边)
-
总结
在这个例子中,图数据库相对于关系数据库的优势:文章来源地址https://www.toymoban.com/news/detail-839566.html- 直观:通过节点和边来表示实体(people)及其之间的关系
- 高效查询:不需要编写复杂的联接查询来找到jam的所有朋友,只需要简单地通过jam节点遍历与其相连的边和节点即可。
- 灵活性和可扩展性:在关系数据库中,如果需要添加新的关系或属性,可能需要修改表结构。而在图数据库中,可以动态地添加节点、边和属性
到了这里,关于【数据库概论】图数据库 Vs 关系数据库(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!