NoSQL:图数据库
发布日期:2021-07-01 04:08:49 浏览次数:2 分类:技术文章

本文共 1156 字,大约阅读时间需要 3 分钟。

图数据库可存放实体及实体间关系。实体也叫“节点”(node),它们具有属性(property)。可将节点视为应用程序中某对象的实例。关系又叫“边”(edge),它们也有属性。边具备方向性(directional significance),而节点则按关系组织起来,以便在其中查找所需模式。用图将数据一次性组织好,稍后便可根据“关系”以不同方式解读它。


什么是图数据库

查询图也称“遍历”(traverse)图。图数据库的一个好处就是,无需改变节点或边,即可应对新的遍历需求。

图数据库遍历“连接”及“关系”非常快。节点间的关系不在查询时计算,而是在创建时已经持久化了。遍历持久化之后的关系,要比每次查询时都计算关系更快。

节点间可有多种不同的关系类型,这样既能表现领域实体(domain entity)之间的关系,也可以表示辅助关系(secondary relationship)。由于节点关系的数量及类型不限,所以这些关系可存放在同一图数据库中。


图数据库的特性

关系在图数据库中非常重要,图数据库中的大多数值都源自关系。关系不只含有类型、起始节点和终止节点,而且还有自己的属性。使用这些属性,可以让关系更智能。例如,可以指定两人之间何时成为朋友,两节点间距多远,两节点共享何种内容等。这些关系上的属性可用于查询图。

  • 一致性:图数据库通常不支持把节点分布在不同的服务器上。可以通过事务来保证一致性。不允许出现“悬挂关系”(dangling relationship):所有关系必须具备起始节点与终止节点,而且在删除节点前,必须先移除其上的关系。
  • 事务:Neo4J是兼容ACID事务的数据库,在修改节点或向现有节点新增关系前,必须先启动事务。
  • 可用性:Neo4J自1.8版本起,支持“副本从节点”(replicated salve),并借此获得较高的可用性。
  • 查询:图数据库可以使用Gremlin等查询语言。Gremlin是一门可以遍历图的领域特定语言(demain-specific language),它可以遍历所有实现了Blueprints属性图(property graph)的图数据库。
  • 可扩展性:因为图数据库不是面向聚合的(aggregate-oriented),而是面向关系的(relationship-oriented),所以对图数据库分片比较难。可以针对地理位置对数据进行分片。(参考:)

适用案例

  • 互联数据。部署并使用图数据库来处理社交网络非常高效。
  • 安排运输路线、分派货物和基于位置的服务。
  • 推荐引擎。

不适用案例

图数据库不适用于更新全部或某子集内的实体。因为没有什么简单的操作可以一次性改变所有节点中的某个属性,“全局图操作”(globa graph operation)非常耗费资源。


转载地址:https://mortal.blog.csdn.net/article/details/83065696 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:计算机网络和因特网
下一篇:NoSQL:列族数据库

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月14日 19时04分17秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章