一种面向Neo4j图数据库的可视化管理装置和方法
文献发布时间:2023-06-19 10:46:31
技术领域
本发明涉及数据库技术领域。更具体地,涉及一种面向Neo4j图数据库的可视化管理装置和方法。
背景技术
对于每一种数据库而言,一般都会有官方或者第三方提供的客户端软件供数据库应用开发人员来连接数据库,方便地查询、管理底模块数据库中存储的具体数据,图数据库也不例外。Neo4j作为目前市场中最流行的图数据库解决方案之一,分别提供了C/S和B/S这两种架构的可视化图数据管理的客户端工具。在任意一种方式下的管理界面中,用户都可以通过编写Cypher(Neo4j图数据库中的查询语言)语句来实现节点和关系的增、删、改、查相关操作,并且可以通过图形化界面直观地查看节点和边的数据以及连接关系。此外,用户不仅可以通过按钮控制显示或者隐藏某些节点和边。还可以以Json对象的形式查看节点和关系的详细Key-Value数据。
作为最受欢迎的图数据库引擎之一,Neo4j尽管已经提供了强大的客户端工具供用户直观地管理数据,但是却要求用户必须掌握Cypher查询语言的语法才能操作图数据库中的数据。Cypher语言作为一种类Sql语言,虽然并不复杂,但也增加了用户的学习成本。此外,当用户想要修改节点或边上的某个属性值时,还需要再编写一条提供修改功能的Cypher语句,显然会为用户带来不便的体验。
发明内容
有鉴于此,本发明的第一个实施例提供一种面向Neo4j图数据库的可视化管理装置,包括:
用户交互模块,数据转换模块、数据引擎模块和数据库存储模块,其中,
所述用户交互模块,用于提供用户的操作页面;
所述数据转换模块,用于将用户交互模块的请求指令转换为数据引擎模块能识别的指令;
所述数据引擎模块,用于根据所述指令向数据库存储模块发送查询指令;
所述数据库存储模块,用于执行所述查询指令,并将查询结果发送到所述用户交互模块。
在一个具体实施例中,所述操作页面包括创建节点模块、创建关系模块、修改节点属性模块和修改关系属性模块。
在一个具体实施例中,所述创建节点模块用于创建节点以及节点属性,
所述创建关系模块用于创建节点间关系和关系属性,
所述修改节点属性模块用于修改节点属性,
所述修改关系属性模块用于修改节点间关系和关系属性,
其中,所述数据转换模块用于存储节点的数据结构,所述数据库存储模块用于存储节点、节点属性、关系和关系属性。
本发明的第二个实施例提供一种面向Neo4j图数据库的可视化管理方法,包括:
用户交互模块提供用户的操作页面;
数据转换模块将用户交互模块的请求指令转换为数据引擎模块能识别的指令;
数据引擎模块根据所述指令向数据库存储模块发送查询指令;
数据库存储模块执行所述查询指令,并返回将查询结果发送到所述用户交互模块。
在一个具体实施例中,响应于用户对操作页面的创造节点操作命令,创建节点;
响应于用户对操作页面的创建关系操作命令,创建关系;
响应于用户对操作页面的修改节点属性操作命令,修改节点属性;或
响应于用户对操作页面的修改关系属性操作命令,修改关系属性。
在一个具体实施例中,响应于用户的创造节点操作命令,用户交互模块呈现节点标签的输入表单,其中,数据转换模块存储节点的数据结构,
以使得数据转换模块将节点和节点标签的参数转换为数据引擎模块能识别的指令,
数据引擎模块进行添加节点的操作。
在一个具体实施例中,输入标签为多个时,用英文逗号进行分隔。
在一个具体实施例中,响应于用户的修改关系属性操作命令,用户交互模块监听用户操作,以使得数据转换模块根据用户交互模块的命令,生成数据引擎模块能识别的命令,
数据引擎模块生成先删除所有节点标签和属性命令,再生成添加标签和属性操作。
本发明的第三个实施例提供一种计算机设备,包括处理器及存储在存储有计算机程序的存储器,所述处理器执行所述程序时实现如第二个实施例中任一项所述的方法。
本发明的第四个实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第二个实施例中任一项所述的方法。
本发明的有益效果如下:
本申请不仅涵盖了Neo4j图数据中包含的数据图形化展示基本功能,还提供了可视化创建节点、创建关系、修改节点属性、修改关系属性的功能。这种可视化的数据操作方式不仅降低了用户学习专门的图数据库指令的成本,还能显著提高增删改数据的效率。传统地,数据库应用开发人员若想删除一个节点,必须先找到这个节点的唯一标识信息,再编写删除语句根据唯一标识删除掉这个节点及其周围的关系。在本工具中,只需要在浏览器中选中这个节点,单击删除按钮即可,难易程度不言而喻。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出根据本发明一个实施例的面向Neo4j图数据库的可视化管理装置架构图
图2示出根据本发明一个实施例的面向Neo4j图数据库的可视化管理方法流程图。
图3示出根据本发明一个实施例的界面添加节点属性示意图。
图4示出根据本发明一个实施例的界面添加关系属性示意图。
图5示出根据本发明一个实施例的拖拽修改关系和属性方法示意图。
图6示出本发明的另一个实施例的计算机设备的结构示意图。
具体实施方式
为使本发明的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
如图1所示,一种面向Neo4j图数据库的可视化管理装置,包括:
用户交互模块101,数据转换模块103、数据引擎模块105和数据库存储模块107,
用户交互模块,用于提供用户的操作页面,并基于用户的操作生成请求指令;
用户交互模块的核心是基于浏览器的可视化渲染引擎,支持将图数据库底模块计算得到的结果绘制到浏览器中。常用的对于可视化操作部分,用户交互模块提供了面向图数据库底模块数据结构的数据录入、数据修改、数据删除界面,支持用户在不写类Sql语句的情况下新增、更新、删除节点、关系或相关属性。用户在可视化界面填写了节点或关系的属性之后,自动封装请求参数,并向数据转换模块进行参数传递。此外,还可以基于用户的手动拖拽连线操作为两个节点之间建立关系并填写该关系的属性值。
数据转换模块,用于将用户交互模块的请求指令转换为数据引擎模块能识别的指令,
数据转换模块在接收到用户交互模块的请求指令后,需要对指令进行解析,并根据图数据库查询语言的语法规则,将参数封装成为数据引擎模块能够识别的指令。在一个具体示例中,对Neo4j图数据库而言,数据引擎模块能够识别的指令就是Cypher语言。另一方面,数据引擎模块的数据查询结果往往不能满足可视化引擎进行图形渲染的数据格式要求。因此,数据转换模块支持对原始查询结果进行包装。
数据引擎模块,用于根据指令向数据库存储模块查询,
数据引擎模块包含数据库存储模块的连接驱动,能够连接图数据库并与之进行命令式交互。对于Neo4j图数据库而言,数据引擎模块支持执行符合Cypher语法的查询语句,并向数据转换模块返回原始查询结果。
数据库存储模块,用于执行指令,并返回结果,其中,数据库存储模块还负责存储节点、节点属性、关系和关系属性的数据。
如图2所示,一种面向Neo4j图数据库的可视化管理方法,包括:
用户交互模块提供用户的操作页面;
数据转换模块将用户交互模块的请求指令转换为数据引擎模块能识别的指令;
数据引擎模块根据所述指令向数据库存储模块发送查询指令;
数据库存储模块执行所述查询指令,并返回将查询结果发送到所述用户交互模块,其中,查询结果发送到所述用户交互模块包括:
数据库存储模块将查询结果发送到数据引擎模块,
数据引擎模块将所述原始请求结果发送给数据转换模块,
数据转换模块对所述原始请求结果进行封装,
用户交互模块对封装后的结果进行可视化展示。
实施例1-图形化界面添加节点属性和关系属性
如图3和图4所示,当用户单击或双击交互模块提供的操作页面中创建节点模块,用户交互模块呈现节点标签的输入表单,在一个具体实施例中,在Neo4j的规范中,要求节点的标签至少包括一个,因此可以用一个设置必填校验的input元素作为标签的输入表单。当用户想要输入的标签为多个标签时,可以在填写标签时使用英文逗号进行分隔。
其中,数据转换模块存储节点数据的数据结构,节点数据包括节点标签和节点属性,在一个具体实施例中,在Neo4j中一个图节点的数据必须有一个或多个标签以及零或多对Key-Value键值属性,并且Neo4j会在创建每一个节点或关系时自动绑定唯一ID。综上,节点数据的数据结构如下所示:
public class Node{
private List
private Map
}
用户提交节点创建请求后,SpringBoot会将请求体的数据自动映射至后台的数据参数。通过neo4jService中的addNode()方法解析标签和节点属性参数转换为数据引擎模块可以识别的Cypher语句。上一步中的示例会被转换成“create(m:电影:犯罪:喜剧{name:'唐人街探案',year:2015,director:'陈思诚'})”。
@PostMapping("/addNode")
public R addNode(@RequestBody Node node){
List
Map
return R.status(neo4jService.addNode(labels,properties));
}
数据引擎模块执行添加节点和属性的Cypher语句。这一步骤包含两个方面:一是通过配置文件定义Neo4j驱动,将Neo4j驱动加入Spring的容器当中;二是使用配置的Neo4j驱动开启事务并执行指令。
Transaction tx=null;
Try{
Session session=driver.session();
tx=session.beginTransaction();
tx.run(cql);
}catch(Exception e){
if(tx!=null)tx.rollback();
}finally{
if(tx!=null)tx.close();
实施例2-手动拖拽修改关系和属性方法
如图5所示,当用户单击或双击交互模块提供的操作页面中修改关系属性模块时,开启Vis.js的编辑边功能,由于需要将操作结果写入数据库中,因此选择函数作为接收的参数。在该函数中可以接收到Vis传入的起始与终止节点的ID,通过Ajax向后端发送关系修改的请求。
用户交互模块监听用户操作,获取用户进行拖拽的起始节点和终止节点,生成修改请求参数,根据用户交互模块发送的请求参数,数据转换模块将请求参数转换成数据引擎模块能识别的修改对应关系的指令。其中,用户交互模块传入的参数至少包含:关系ID、起始节点ID、终止节点ID和若干属性键值对。由于Neo4j中节点或关系的修改,包括标签、属性名、属性值的修改,不确定性较大,所以数据引擎模块生成先删除所有节点标签和属性命令,再生成添加标签和属性操作。
根据数据库存储模块的执行结果,用户交互模块对图形进行局部重新渲染。当数据库存储模块执行成功时,用户交互模块对图形进行重新渲染;否则,保持不变。
本发明的另一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现,在实际应用中,所述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
如图6所示,本发明的另一个实施例提供的一种计算机设备的结构示意图。图6显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图6中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种面向Neo4j图数据库的可视化管理方法。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
- 一种面向Neo4j图数据库的可视化管理装置和方法
- 一种面向化工供应链的数据可视化管理方法及装置