图形数据库解析

合集下载

基于Neo4j图数据库的课程体系知识图谱系统设计与实现

基于Neo4j图数据库的课程体系知识图谱系统设计与实现

基于Neo4j图数据库的课程体系知识图谱系统设计与实现肖庆都屈亮亮侯霞摘要:为了解决课程大纲课程编写不规范的问题,并梳理课程之间的关系,使用JAVA技术与Neo4j图数据图设计并实现了一个知识图谱系统,可以发现课程大綱之间存在的问题,以及在知识图谱中快速搜索课程信息。

关键词:JAVA;图数据库;知识图谱TP311 :A :1009-3044(2017)36-0130-031 背景关系型数据库长期以来一直占市场主流。

目前主流关系型数据库管理系统有:SQL Server、MySQL、Oracle等。

随着网络应用程序的规模日渐变大,数据形式更加多样化,关系型数据库在数据建模和存储中的一些缺陷和问题随之凸显而来。

真实世界中很多数据关系是图形的,图数据库可以更好地描述此类数据[1]。

例如Neo4j就是一种图形数据库管理系统。

课程大纲由于人工编写的原因,会存在一些问题。

同时学生从课程单中很难清晰地梳理课程体系的关系。

针对这类问题,本文提供了一种解决方案,基于Neo4j数据库,使用JAVA编程语言,构建课程体系的知识图谱系统,可以更加直观地展示各个课程之间关系,并发现大纲中存在的问题。

在并对特定节点的前驱进行查询并展示,替代手工查找,更加节省时间,便于对所需内容的快速获取。

2 相关概念在图计算中,基本的数据结构表达式是:[G=V,E,V=vertex(节点),E=edge(边)] 。

图数据库中数据模型主要以节点和关系(边)来体现[2],也可以处理键值对。

数据具有如下特征:l 包含节点和边l 节点上有属性(键值对)l 边有名字和方向,并总是有一个开始节点和结束节点l 边也可以有属性Neo4j数据库是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。

Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。

具有以下优点:l 自带易于学习的查询语言(名为Cypher)l 不使用schema,可以满足任何形式的需求l 相比关系型数据库,查询速度要快上很多l 实体与关系结构非常自然地切合人类的直观感受l 支持JAVA进行操作l 提供可视化查询控制台3 系统总体设计系统设计目标:构建一个课程体系的知识图谱,数据存储在图数据库中,界面展示知识图谱,并可以根据特定的节点查询所需内容。

图形窗口数据库——Winbase

图形窗口数据库——Winbase
6.具有丰富的命令和函数
Winbase程序设计语言提供了400多个标准函数和100多个命令。其中包括图形窗口、菜单、对话框及按钮函数;鼠标操作函数;数据库维护函数及命令;低级文件操作函数及命令;系统函数及命令;内存检测函数;文本和备注字段管理函数及数据类型转换函数等等;许多函数,直接提供以往用户期望得而又无能为力的功能。
7.应用系统开发的高速性
利用Winbase提供的工具及丰富的函数和命令,可以很快地开发出全图形方式下的应用系统,即完全图形方式下的窗口、菜单、对话框及按钮;全面的鼠标键盘及鼠标的操作,所见即所得报表设计;支持多种打印机及多种矢量字体的报表输出;独立于Winbase的应用系统等。
(山东 曹向阳)
4.扩充性强
Winbase为开发人员提供了C语言的标准接口,开发人员可以方便地把C程序加入Winbase程序中,提高了系统的灵活性和扩充性。
5.支持网络数据库系统的开发
Winbase提供了大量的网络应用系统开发函数,核心函数自动支持网络功能,开发人员可以利用这些函数方便地设计出网络应用程序。
Winbase提供了Case、对话框和数据库维护自动生成工具,开发人员可以很快地作Winbase应用程序的框架,包括窗口菜单制作、对话框制作、按钮制作、界面制作等,并可根据设计的多种方式生成程序。
总之,Winbase独特的风格、强大的功能定会把许多以前使用xBase的朋友未圆的梦变成现实,也定会有许多新的朋友喜欢上Winbase。
2.支持可视程序设计机制
Winbase采用了可视程序设计机制及支持面向目标的程序设计思想,只需对应用系统的需求给予描述,就能获得功能强大的应用系统,并允许开发人员编译、连接成可独立运行的应用系统。
3.兼容性高

计算机二级解析与讲解方法

计算机二级解析与讲解方法

计算机二级解析与讲解方法计算机技术日新月异,每年都有大量的人们报考计算机二级证书,而对于学习计算机二级的学员来说,如何高效地进行解析与讲解方法也是一个很重要的问题。

本文将为大家介绍几种常用的计算机二级解析与讲解方法,帮助学员们更好地理解和掌握相关知识。

一、实例解析法实例解析法是一种通过举例子的方式来进行解析和讲解的方法。

在教学过程中,可以选择一些简单明了的实例来展示相关知识点的应用。

通过具体实例的讲解,学员们能够更好地理解抽象的概念和理论,在实例中能够看到知识的具体应用和运行结果,帮助他们更好地理解和记忆。

例如,在讲解计算机二级的编程题目时,可以选择一些常见的编程问题作为示例,通过演示编程的过程,帮助学员们理解编程语法和逻辑等知识点。

同时,还可以对示例进行分析和解释,引导学员们思考问题的解决思路和方法。

通过实例解析法,可以使学员们在较短的时间内快速掌握相关知识。

二、图形解析法图形解析法是一种通过图形、图表等形式来进行解析和讲解的方法。

人们对于图形的认知能力往往更强,通过图形形式的讲解能够更直观地展示相关知识点的内涵和特点。

在计算机二级的学习中,使用图形解析法可以帮助学员们更清晰地理解和记忆相关知识点。

例如,当讲解计算机网络的拓扑结构时,可以通过绘制拓扑图来说明各种网络结构的特点和应用。

通过图形的呈现,学员们可以更直观地看到各个节点之间的连接方式和数据传输路径,从而更好地理解网络的工作原理和优缺点。

三、比较解析法比较解析法是一种通过对比和分析不同事物之间的异同来进行解析和讲解的方法。

通过对不同事物的比较,可以帮助学员们更清楚地理解相关知识点的特点和差异,从而更好地掌握知识和技能。

例如,在学习计算机二级的数据库原理时,可以通过比较不同类型的数据库和其特点来进行讲解。

通过比较不同数据库的存储结构、查询语言和性能特点等,学员们可以更深入地理解数据库的运作原理和应用场景。

同时,还可以通过对比不同数据库的优劣,引导学员们思考如何根据实际需求选择合适的数据库。

数据库中的图形数据处理与分析

数据库中的图形数据处理与分析

数据库中的图形数据处理与分析随着科技的不断发展和互联网的普及,大量的数据被生成并储存在数据库中。

其中,图形数据作为一种常见形式的数据,具有着广泛的应用领域。

数据库中的图形数据处理与分析逐渐成为了数据科学家和分析师们关注的重要课题。

本文将探讨数据库中的图形数据处理与分析方法及其应用。

一、图形数据处理的基本概念1. 图形数据定义图形数据通常指在平面或空间中的一组点的集合,这些点通过线段或者曲线连接而成。

在数据库中,图形数据可以通过几何数据类型(Geometry Data Types)来进行存储和处理。

常见的图形数据包括点(Point)、线(Line)、多边形(Polygon)等。

2. 图形数据处理的重要性图形数据在很多领域都具有非常重要的应用价值。

例如,在地理信息系统(GIS)、城市规划、轨迹分析等领域,图形数据可以被用于空间数据的存储、查询和分析。

除此之外,随着图像和视频数据的不断生成,图形数据的处理与分析也成为了计算机视觉和图像处理领域的重要研究方向。

二、数据库中的图形数据处理方法1. 图形数据的存储在数据库中,图形数据可以通过几何数据类型的列来进行存储。

不同的数据库管理系统(DBMS)提供了不同的几何数据类型,如MySQL的Point和Polygon类型,PostGIS的GEOMETRY类型等。

通过这些数据类型,我们可以将图形数据存储在数据库的表中,并进行查询。

2. 图形数据的查询数据库中的图形数据可以通过空间查询语言来进行查询。

常见的空间查询语言包括SQL/MM标准中定义的简单功能和拓展功能,例如查询两个多边形的相交与否、某个点是否在某个多边形内等。

通过这些查询语言,我们可以方便地从数据库中提取出我们所关注的图形数据。

3. 图形数据的索引由于图形数据通常具有复杂的结构和查询的复杂性,为了提高图形数据的查询效率,我们需要在数据库中建立相应的索引。

常见的图形数据索引方法包括基于R树的索引、四叉树索引、网格索引等。

关系数据库与图数据库的对比与选择指南

关系数据库与图数据库的对比与选择指南

关系数据库与图数据库的对比与选择指南导言关系数据库和图数据库是两种常见的数据库类型,用于存储和管理数据。

在进行数据库选择时,了解并理解它们的特点和适用场景是非常重要的。

本文将对关系数据库和图数据库进行对比,并提供选择指南,以帮助读者在实际应用中做出明智的选择。

一、关系数据库1. 特点关系数据库采用表格的形式来组织和存储数据。

它们使用结构化查询语言(SQL)来定义和处理数据。

- 数据以行和列的形式存储在表格中,表格中的每一行称为记录,每一列称为字段。

- 支持强大的查询功能,可以通过SQL对数据进行高效的检索、过滤和聚合。

- 遵循ACID(原子性、一致性、隔离性和持久性)特性,确保数据的完整性和一致性。

2. 适用场景关系数据库适用于以下场景:- 需要强大的查询功能和数据连接能力,如企业级应用、金融系统等。

- 需要数据的结构化存储和复杂的关系模型。

- 需要对数据进行事务管理,保证数据的一致性和可靠性。

- 支持大规模并发和高可用性。

3. 常见的关系数据库- MySQL:功能强大且成本较低,是最受欢迎的开源关系数据库之一。

- Oracle:功能全面,并且在企业级应用中被广泛使用。

- SQL Server:由微软开发,提供了强大的集成和分析功能。

- PostgreSQL:支持高级功能和专业特性。

二、图数据库1. 特点图数据库是专门用来处理图形结构数据的数据库。

它将数据组织成节点和边的形式,用于表示实体和它们之间的关系。

- 数据通过节点和边构成图形结构,并存储图形之间的连接关系。

- 图数据库使用基于图形的查询语言(如Cypher)来操纵和分析数据。

- 利用索引和高级算法,图数据库可以高效地执行复杂的图形遍历和路径查询操作。

2. 适用场景图数据库适用于以下场景:- 需要处理复杂的关系网络,如社交网络分析、推荐系统等。

- 需要进行高效的图形遍历和路径查询操作。

- 需要对数据的动态变化进行实时处理和分析。

- 需要进行图形数据的可视化和交互。

ArcGIS图形数据库建立与数据入库

ArcGIS图形数据库建立与数据入库

ArcGIS影像数据库的建立与入库/rommayer/article/details/6100941本文帮你解决以下疑问:影像数据是以怎样的方式保存在SDE等数据库中的,影像数据如何入库。

•空间数据库技术空间数据库技术用关系数据库管理系统(RDBMS)来管理空间数据,主要解决存储在关系数据库中的空间数据与应用程序之间的数据接口问题,即空间数据库引擎( Spatial Database Engine)。

更确切地说,空间数据库技术是解决空间数据对象中几何属性在关系数据库中的存取问题,其主要任务是:1)用关系数据库存储管理空间数据;2)从数据库中读取空间数据,并转换为GIS应用程序能够接收和使用的格式;3)将GIS应用程序中的空间数据导入数据库,交给关系数据库管理。

因此空间数据库技术是空间数据进出关系数据库的通道。

•建库目的建立影像数据库的目的是将分幅分层生产的海量影像数据进行整理,使之符合统一的规范和标准;并对数据进行有效组织、管理,便于空间数据的查询、分发及其它应用。

建库之后的数据是标准化、规范化的,采用统一的编码和统一的格式;数据是有效组织的,在平面方向,分幅的数据要组织成逻辑上无缝的一个整体,在垂直方向,各种数据通过一致的空间坐标定位能够相互叠加和套合;具有高效的空间数据查询、调度、漫游以及数据分发等功能,并且能够与其它系统无缝集成,为其它应用服务。

从应用的角度讲,建立影像库的总体目标是能够管理多比例尺、多分辨率、多数据源的正射影像数据,能够作到在局域网或广域网上由全貌到细节、由整体到局部、由低分辨率到高分辨率快速、无缝的进行影像漫游、浏览和应用,支持图像数据集中式和分布式(局域网范围内分布式的存贮)的存贮与管理,为海量数据的应用提供一个高效的无缝平台。

•建库原理简而言之就是"两种方式,分层分块"。

"两种方式"是指:栅格数据集(RasterDatset)和栅格目录(Raster Catalog)。

数据库介绍——openPlant介绍

openPlant实时/历史数据库介绍1 openPlant实时/历史数据库功能1.1 openPlant数据库管理工具1)openPlant数据组织结构实时数据库处理的主要对象为从现场各控制系统采集来的各测点的实时数据,为了统一管理这些数据,保证数据的唯一性,openPlant实时数据库采用了“[数据库名].[节点名].[点名]”的多维结构,对进入系统的所有采集点、手工输入点、计算点进行统一规划和属性定义,保留控制系统原有的点名,使采集数据在全厂范围内得到统一管理并易于查询,为企业数据的集成应用提供便利;openPlant实时数据库系统采用分布式架构,让您轻松应对集团级实时/历史数据管理要求。

其中:root 系统的根节点rtdb 表示一个实时数据库实例。

如一个集团下属多个分厂,在每个分厂安装有一个openPlant数据库,那么每个RTDB表示一个分厂。

node 可以表示一个实时数据库实例中的某个节点,如DCS、输煤、化学、ECS、NCS等,或用户自定义的每个节点,如计算点的节点、手工输入点的节点等。

point 表示某个采集节点中的点。

2)openPlant数据库管理控制台openPlant实时数据库提供基于B/S的数据库管理控制台,提供节点管理、数据点管理、数据导入/导出、用户管理、系统监视等功能。

3)openPlant数据库优化工具openPlant实时数据库优化工具(Optimizer)用于对数据库的存储性能进行优化,可以分析各测点的数据变化率和占用的存储空间,列出数据库中占用存储空间较多的测点,同时给出各测点的建议优化配置参数。

用户利用优化工具可以不断提高数据库的性能。

4)openPlant数据导入/导出openPlant实时数据库提供基于数据库控制台和基于命令行方式的两种数据导入/导出工具,方便用户对数据库的配置、维护和备份。

系统充分考虑实际工程经常遇到的大量点配置及数据的导入和导出,支持txt、csv、xml、Excel 等格式,大大提高工作效率。

最全Neo4j可视化图形数据库的工具!

最全Neo4j可视化图形数据库的⼯具!图形可视化⼯具的类别在我们深⼊研究⼯具之前,了解现有⼯具的类别很重要。

所有可视化⼯具包都是根据特定⽬的构建的,因此您必须确保⼯具的⽬的符合您的需要。

我将所有图形可视化⼯具分为四⼤类:1. 开发⼯具,帮助开发⼈员处理图表。

2. 探索⼯具,帮助分析师探索数据关系。

3. 分析⼯具,⽤于揭⽰趋势和差异。

4. 报告⼯具,⽤于创建和组织数据报告。

1. Neo4j浏览器(开发⼯具)该可能与Neo4j的⼯作时,你会碰到的第⼀件事情。

作为数据库开发⼈员运⾏ Cypher 查询的⼯具,浏览器允许您以图形或表格格式呈现查询结果。

尽管可视化能⼒有限,但我每天都使⽤它来快速设计和优化 Cypher 查询。

主要特征:1. 易于上⼿,但可视化和样式选择有限。

2. 直接查看图形数据,但需要(技术)密码知识。

3. ⾮常适合快速查询开发,但不能保存/嵌⼊/共享可视化。

2. Neo4j Bloom(探索与分析⼯具)是⼀个交互式探索 Neo4j 图的⼯具。

Neo4j 浏览器主要由开发⼈员使⽤,⽽ Bloom 更适合数据分析师——那些想要动态可视化⼤图的⼈。

Bloom ⽀持基于⽂本的搜索,允许对密码知之甚少的⼈调查 Neo4j 图。

主要特征:1. “点击式”图形探索。

2. 具有⾃定义样式的⼤型图形的⾼性能视图。

3. 使⽤可视化界⾯编辑您的 Neo4j 图形。

4. 存储和共享图透视图。

5. 渲染不同的图形布局。

3. Neovis.js(开发⼯具)是⼀个 JavaScript 库,可帮助开发⼈员从 Neo4j 数据构建图形可视化。

包装流⾏的库,它提供了 Cypher 和浏览器中可定制的图形可视化之间的桥梁。

1. ⽤于绘制 Neo4j 图形的 JavaScript 库(基于 Vis.js)。

2. 直接连接到 Neo4j 实例以获取实时数据。

3. 基于标签、属性或社区的⽤户指定样式属性。

4. 为节点配置悬停/单击功能。

解析“中医古籍图像数据库”的图像标引

解析“中医古籍图像数据库”的图像标引丁侃;胡晓峰;张丽君【摘要】通过对中国中医科学院中国医史文献研究所在“中医古籍图像数据库”建设过程中的图像标引工作的介绍,探讨标引规则的制定;对书目、版本、图像本体3类共26项元数据进行详尽说明,辅以必要的示例;并对出处标引、规范制定、提高识图能力、细化释图文字标引等重点、难点问题进行讨论。

%By introducing image indexing in the construction period of“TCM Ancient Books Image Database”, the establishment of indexing regulations are explored; 26 items of metadata about the book, edition and image were elaborately explained, accompanied by necessary typical examples; the important and difficult problems including the reference and indexing, regulation establishment, raising the ability of image identification, refining figure legends were discussed.【期刊名称】《西部中医药》【年(卷),期】2016(029)005【总页数】4页(P48-51)【关键词】中医;古籍;插图;标引;图像数据库【作者】丁侃;胡晓峰;张丽君【作者单位】中国中医科学院中国医史文献研究所,北京 100700;中国中医科学院中国医史文献研究所,北京 100700;中国中医科学院中国医史文献研究所,北京 100700【正文语种】中文【中图分类】R-092本研究中的“中医古籍图像”,主要是指各类中医古籍中所刊载的承载中医知识的各类插图。

一种基于图形数据库的快速电力网络拓扑分析方法

一种基于图形数据库的快速电力网络拓扑分析方法蒋厚明;孙昊;孔震【摘要】A general topological analysis method based on graph database, multi-state device is mapped to multiple nodes, each node has the parent property of this device, connection between the device is mapped to connection cable node and the relation between each connect device. Every device's attribute is mapped to properties of nodes and relationships in the network topology. After store these information into graphic database, combined use a variety of graphical analysis algorithm in graphic database, and author also developed electric network algorithm based on these inherited algorithms. Base on the method, monitoring systems and substation intelligent ticket operations have high availability and performance, and achieved good results.%提出了一种基于图形数据库的通用拓扑分析方法,将多状态设备映射为多节点,每个节点的父对象都为此设备,将设备连接抽象为连接电缆节点和连接关系,每种设备的电气属性都抽象为节点和关系的属性,在将网络的拓扑信息入库后,组合利用图形数据库中的多种图形分析算法,并结合电力网络应用开发出相连节点连通性分析和停电范围检测算法,基于此开发的电网停电范围监测系统和变电站智能开票操作票程序该方法具备高可用性和高性能,取得了良好的效果.【期刊名称】《计算机系统应用》【年(卷),期】2012(021)012【总页数】4页(P173-176)【关键词】网络拓扑;图形数据库;节点;属性;海量节点【作者】蒋厚明;孙昊;孔震【作者单位】国网电力科学研究院,南京210009;国网电力科学研究院,南京210009;国网电力科学研究院,南京210009【正文语种】中文1 引言在电力信息系统中, 网络结构的描述和拓扑分析具有重要的地位, 甚至是很多业务应用的基石, 早期的网络拓扑分析都是基于特定的数据结构, 其普遍存在的缺点是效率低和扩展性差, 当网络中新增了某个设备或者某个电气元件具备新的拓扑特性时不能很好地自动适应,可能需要进行大量的修改, 从系统的角度看稳定性和复用性都较弱, 不能很好地适应未来电力信息系统智能化发展的趋势. 因此如何从实际的电力系统中抽取通用的拓扑模型、如何利用此通用拓扑更好地进行快速的、智能的电力图形拓扑分析已成为业界热点.图形数据库作为一个新兴的数据库技术, 其重点关注大数据量和数据内部之间复杂依赖的处理, 目前在互联网社交应用中使用较多, 但作者发现其节点数量对拓扑分析速度影响很小的特性特别适合分析超多设备数量的电力网络, 据此本文提出了一种基于图形数据库的快速电力图形拓扑分析方法, 其构建了一套可用于电力拓扑的通用描述模型, 底层基于图形数据库进行构建, 前端封装出多种电力行业的图形拓扑算法, 应用程序无须关心后端具体实现, 很好地实现了效率和易用性的结合, 其在电力调度管理系统、电力生产管理操作票系统中都得到了很好的应用.2 传统的电力网络拓扑分析方法电力网络拓扑分析的方法很多, 但这些方法本质都是先用图的形式来表达电力系统模型[1], 然后利用图的拓扑算法来构建整个系统的拓扑关系, 所有对于电力网络的拓扑分析都转向对于图形的拓扑分析, 因此在进行图形拓扑分析之前需要将电力网络转换为图形, 通常的方法是电力网络转化为一个有向图来描述: G=(V,E(S)).其中V为节点集合, E为有向边集合, S为边的状态(断开与否). 有向图中的每个节点用来表示电力系统中的一个单元实体, 例如其节点可表示公司、厂站、线路、母线、开关、刀闸、发电机、电容等等, 每个节点都有自己的状态, 其状态可决定节点的连通关系.在将电力网络转换为图形后, 即可利用图形拓扑算法来构建拓扑关系[2], 图形拓扑算法很多, 也较为成熟, 随着研究的深入, 现已出现了结合设备物理特性的新型拓扑算法, 这些都已经超出了了图形拓扑本身的范畴, 下面对两种主流的拓扑算法做一个简要介绍.2.1 深度或广度搜索法此种网络拓扑分析技术是利用堆栈技术进行搜索.一般是将拓扑结构表述为链表关系, 用图论中的搜索技术, 如深度优先搜索法和广度优先搜索法分析节点的连通性. 这种方法一般需要建立反映拓扑结构的链表, 通过处理链表实现拓扑分析, 然后以搜索回溯的框架, 利用堆栈记录划分. 由于其基本算法采用“堆栈”原理-先进后出的搜索逻辑[3], 程序不可避免采用递归的实现形式, 因此编程和维护较复杂, 效率较低,应用于实时网络分析时, 在运算时间上不能满足要求.2.2 面向对象(OO)的启发式搜索算法在电网的实际运行过程中, 状态频繁发生变化的开关占少数, 因此将追踪技术引入拓扑分析中, 仅在开关状态发生改变时进行局部拓扑分析[4], 可以减少拓扑分析的计算量. 在完成网络的初始拓扑分析并构筑了电网的结点树之后, 当电网发生开关变位事件时,根据开关变位只造成局都电网拓扑发生变化的特点,采用启发式搜索算法进行电网结点树拓扑的跟踪. 针对不同的变位事件, 分开关“开”和“合”两种情况进行分析. 实现拓扑跟踪 OO模型的启发式拓扑分析方法, 利用OO技术可扩展拓扑算法的适用范围.小结: 传统的电力网络拓扑分析方法无论是哪种,其算法复杂度都为O(n^2),随着设备数量的增加, 其性能将会极大的下降, 这对于现代电网拓扑分析来说,其最看重的实时性将会大打折扣[5].3 图形数据库图形数据库作为NoSQL数据库的一种, NoSQL数据库处理的是规模化、速度和灵活性等问题, 这些通常都是互联网应用所关注的, 图形数据库在具备这些特性的同时还具备一个特长: 找出不同数据之间存在的关系, 而且寻找的速度与节点数量没有关系. 其最典型的案例是图谱分析, 即找出图形节点和图形节点之间的关系. 图形数据库能够分析 TB级的图形数据,与此同时还能够维护数据之间的关系, 即便数据和关系不断变化也能如此.图形数据库的基本概念如下:图1 图形数据库组成图形数据库主要由三部分组成:① 节点(Node):从概念上来说, 这类似于对象实例, 拥有唯一的ID.② 关系(Relation):它连接了两个节点, 此外还有方向和关系类型.③ 属性(Property):它们是字符串类型的键值对(Key/Value)值对, 节点与关系都有属性.图2 图形数据库查询过程一次遍历(Traversal), 可以理解为通过一种算法从一些开始节点开始查询与其关联的节点, 比如想找到“相连的设备的下一个接地设备是什么?”, 又或者“如果断电了, 哪些设备会受到影响?”, 可通过 Traversal查询获得结果.4 基于图形数据库的网络拓扑分析方法由于图形数据库能够存储海量节点, 并且节点的数量对于拓扑分析只有很轻微的影响, 此种特性决定了其非常适合电力网络拓扑分析, 理论上能够将电力网络分析的性能指标提高几个数量级, 下面将介绍如何利用图形数据库进行电力网络拓扑分析. 按照国际通用的CIM模型, 电网拓扑分析即是将厂站内的开关组合成节点集合, 并根据网络中的支路(包括线路、母线、c变压器等)的连接关系将电气网络拓扑图描述为一个点和关系组成的集合, 每个点和关系都有自己的属性, 具体描述规则如下:① 点: 表示一个实体;例如开关等电气设备.② 边: 表示关系, 点和点之间的连接关系, 通常是有方向性的. 例如某个电气设备A和电气设备B之间是单向连通的, 则表示为A->B; 如果A和B之间是双向连通的, 则表示为A<->B.③ 属性: 表示点和边具备的属性. 例如设备的名称、电气特性、配置信息, 这些属性可动态设置, 不受限制.下面以一个实例说明如何描述设备之间的关系:上图为一个变电站中常用的母线之间的连通图,其中开关A为开合式开关, 有两个状态(开、合), 为方便拓扑分析, 将 A 拆分为两个节点 A0、A1, 其属性[parent]都为A, A0和其中A一端的设备相连, A1则和另一端的设备相连, 这些相邻关系都表示为关系存储在图形数据库中, 当 A为闭合状态时, 只需将 A0和A1连通, 如果处于断开状态, 则A0不和A1连通.开关设备B拆分为B0、B1, 如果为断开状态, 则R0关系连接属性, R0其连接节点为B1、A0, 当A处于连通状态时, R0的连通属性也设为连通.上图三个设备之间的拓扑关系可表述如下:节点名称所属设备开合状态连接电缆A0 开关A 开开关A另一端电缆(未列出)A1 开关A 开 R B0 开关B 开 R B1 开关B 开开关B另一端连接电缆(未列出)R0 连接电缆R 合以此类推, 每个设备有几种设备状态即可拆分为多个节点, 三相设备即有三个节点, 然后将每种设备与外界连接的设备表述为关系即可, 用此种描述规则可将网络中所有的设备和连接关系进行表示, 所有的设备描述信息都变为节点和关系的属性存储到图形数据库中.当将网络设备转变为节点和关系存储到图形数据库后, 即可进行图形分析, 图形数据库自带很多图形分析算法, 其中比较有用的算法有:通过组合这些算法可进行各种电力拓扑分析, 例如找出与某个设备相连通的下一级设备, 则只需指定遍历深度为1, 然后相连节点连通性分析算法即可. 另外图形数据库通常都支持图形算法自定义扩展以适应特定应用场景.5 实际验证基于图形数据库的新型电气网络拓扑分析方法在性能方面得到了很大的提升, 主要体现在对于大型网络的分析, 其性能几乎不受网络节点数量的影响, 下面通过实际案例进行具体性能比对.采用Java作为开发工具, 图形数据库采用Neo4J, 传统的网络拓扑分析采用广度优先算法(其和深度优先的算法复杂度一样, 其对于有n个顶点e条边的拓扑图的时间复杂度都是 O(n^2)), 编制基于CIM 的电网拓扑分析软件, 以某电网为例, 网络主要设备有: 102座变电站,453个母线, 1109个开关, 810个连接节点, 205个线路,198台高压变压器, 176个负荷, 网络中的其它设备类型和数量较多, 不一一描述, 作为单一状态设备处理.运行机器为双核1.7G, 内存为4G, 每种算法随机选取开始设备执行10次, 取平均运行时间和占用内存, 执行操作选择最常用的筛选相连通设备和停电范围检测.首先选择只分析到变电站, 全网范围共有约 200个变电站, 所有参与分析设备大概有2000个, 其运行结果如下:网络拓扑算法筛选相连通设备停电范围监测占用内存基于广度优先算法 10秒20秒 35M基于图形数据库拓扑算法2秒 3秒 50M其次分析全网设备, 全网共有重要设备 1万个,辅助设备5万个, 其中三相开关853个、四相开关12个、二相开关大约5000个, 其运行结果如下:网络拓扑算法筛选相连通设备停电范围监测占用内存基于广度优先算法 620秒1800秒 450M基于图形数据库拓扑算法2.5秒 3.5秒 55M在此, 已经可以看出在小数据量时传统的广度优先遍历和图形数据拓扑算法相差不大, 但在大数据量情况下, 广度优先耗费时间和内存呈几何级增长, 而图形数据库几乎无明显增长.为了验证基于图形数据库的拓扑分析算法的极限,作者使用计算机虚拟了一千万个设备, 其中随机产生三相设备、四项设备、二相设备各200万个, 并虚拟了20万个母线以及其它常用电器设备, 其运行结果如下:网络拓扑算法筛选相连通设备停电范围监测占用内存基于广度优先算法不可用不可用不可用基于图形数据库 4秒 5秒 58M从此实验可看出, 图形数据库分析所花费的时间、内存占用和设备数据并非线性关系, 设备数量的增长只会稍微增加查询时间, 其无论是小数据量还是超大数据量都能保持很好的效率和内存占用.6 结论本文在分析图形数据特性的基础上提出了基于图形数据库的快速电力网络拓扑分析方法, 针对电力网络具有多状态设备的特性提出了一种实用的电力设备描述规则, 并且在图形数据库底层图形分析算法扩展出多种具备电力行业特色的拓扑算法, 可广泛应用于停电分析、智能操作票管理系统、线损分析等高级应用软件中.参考文献【相关文献】1 朱文东.电力网络局部拓扑的快速算法.电网技术,1996,20(3):30-33.2 陈树柏,左恺,张良震.网络图论及其应用.北京:科学出版社,1982.3 Kambale P, Machauer JJ. The dispatcher tranining simulator for metropolitan Edison company, IEEE Trans on Power Systems,1996,11(2),4 Vehsakul PD, Dabbbaghch I. A topology based algorithm for tracking network connectivity. IEEE Trans on Power Systems, February 1995(2):339-345.5 董张卓,秦红霞,孙启宏,彭俊松.采用面向对象技术和方法的电力系统网络拓扑的快速跟踪(一、二).中国电机工程学报,1998,18(3):178-181.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图形数据库解析
在深入学习图形数据库之前,首先理解属性图的基本概念。

一个属性图是由顶点(Vertex),边(Edge),标签(Lable),关系类型和属性(Property)组成的有向图。

顶点也称作节点(Node),边也称作关系(Relationship);在图形中,节点和关系是最重要的实体,所有的节点是独立存在的,为节点设置标签,那么拥有相同标签的节点属于一个分组,一个集合;关系通过关系类型来分组,类型相同的关系属于同一个集合。

关系是有向的,关系的两端是起始节点和结束节点,通过有向的箭头来标识方向,节点之间的双向关系通过两个方向相反的关系来标识。

节点可有零个,一个或多个标签,但是关系必须设置关系类型,并且只能设置一个关系类型。

Neo4j图形数据库的查询语言是Cypher,用于操作属性图,是图形语言中事实上的标准。

一,图形数据库的基本概念
Neo4j创建的图(Graph)基于属性图模型,在该模型中,每个实体都有ID(Identity)唯一标识,每个节点由标签(Lable)分组,每个关系都有一个唯一的类型,属性图模型的基本概念有:
实体(Entity)是指节点(Node)和关系(Relationship);
o每个实体都有一个唯一的ID;
o每个实体都有零个,一个或多个属性,一个实体的属性键是唯一的;
o每个节点都有零个,一个或多个标签,属于一个或多个分组;
o每个关系都只有一个类型,用于连接两个节点;
路径(Path)是指由起始节点和终止节点之间的实体(节点和关系)构成的有序组合;
标记(Token)是非空的字符串,用于标识标签(Lable),关系类型(Relationship Type),或属性键(Property Key);
o标签:用于标记节点的分组,多个节点可以有相同的标签,一个节点可以有多个Lable,Lable用于对节点进行分组;
o关系类型:用于标记关系的类型,多个关系可以有相同的关系类型;
o属性键:用于唯一标识一个属性;
o属性(Property)是一个键值对(Key/Value Pair),每个节点或关系可以有一个或多个属性;属性值可以是标量类型,或这标量类型的列表(数组);二,图形示例
在下面的图形中,存在三个节点和两个关系共5个实体;Person和Movie是Lable,ACTED_ID和DIRECTED是关系类型,name,title,roles等是节点和关系的属性。

实体包括节点和关系,节点有标签和属性,关系是有向的,链接两个节点,具有属性和关系类型。

1,实体
在示例图形中,包含三个节点,分别是:
包含两个关系,分别是:
∙两个关系类型:ACTED_IN和DIRECTED,
∙两个关系:连接name属性为Tom Hank节点和Movie节点的关系,连接name 属性为Forrest Gump的节点和Movie节点的关系。

其中一个关系如下图:
2,标签(Lable)
在图形结构中,标签用于对节点进行分组,相当于节点的类型,拥有相同标签的节点属于同一个分组。

一个节点可以拥有零个,一个或多个标签,因此,一个节点可以属于多个分组。

对分组进行查询,能够缩小查询的节点范围,提高查询的性能。

在示例图形中,有两个标签Person和Movie,两个节点是Person,一个节点是Movie,标签有点像节点的类型,但是,每个节点可以有多个标签。

3,属性(Property)
属性是一个键值对(Key/Value),用于为节点或关系提供信息。

一般情况下,每个节点都由name属性,用于命名节点。

在示例图形中,Person节点有两个属性name和title,Movie节点有两个属性:title 和released,
关系类型ACTED_IN有一个属性:roles,该属性值是一个数组,而关系类型为DIRECTED的关系没有属性
三,遍历(Traversal)
遍历一个图形,是指沿着关系及其方向,访问图形的节点。

关系是有向的,连接两个节点,从起始节点沿着关系,一步一步导航(navigate)到结束节点的过程叫做遍历,遍历经过的节点和关系的有序组合称作路径(Path)。

在示例图形中,查找Tom Hanks参演的电影,遍历的过程是:从Tom Hanks节点开始,沿着ACTED_IN关系,寻找标签为Movie的目标节点。

遍历的路径如图:
四,图形数据库的模式
Neo4j的模式(Schema)通常是指索引,约束和统计,通过创建模式,Neo4j能够获得查询性能的提升和建模的便利;Neo4j数据库的模式可选的,也可以是无模式的。

1,索引
图形数据库也能创建索引,用于提高图形数据库的查询性能。

和关系型数据库一样,索引是图形数据的一个冗余副本,通过额外的存储空间和牺牲数据写操作的性能,来提高数据搜索的性能,避免创建不必要的索引,这样能够减少数据更新的性能损失。

Neo4j在图形节点的一个或多个属性上创建索引,在索引创建完成之后,当图形数据更新时,Neo4j负责索引的自动更新,索引的数据是实时同步的;在查询被索引的属性时,Neo4j自动应用索引,以获得查询性能的提升。

例如,使用Cypher创建索引:
CREATE INDEX ON :Person(firstname)
CREATE INDEX ON :Person(firstname, surname)
2,约束
在图形数据库中,能够创建四种类型的约束:
∙节点属性值唯一约束(Unique node property):如果节点具有指定的标签和指定的属性,那么这些节点的属性值是唯一的
∙节点属性存在约束(Node property existence):创建的节点必须存在标签和指定的属性
∙关系属性存在约束(Relationship property existence):创建的关系存在类型和指定的属性
∙节点键约束(Node Key):在指定的标签中的节点中,指定的属性必须存在,并且属性值的组合是唯一的
例如,使用Cypher创建约束:
CREATE CONSTRAINT ON (book:Book) ASSERT book.isbn IS UNIQUE;
CREATE CONSTRAINT ON (book:Book) ASSERT exists(book.isbn);
CREATE CONSTRAINT ON ()-[like:LIKED]-() ASSERT exists(like.day);
CREATE CONSTRAINT ON (n:Person) ASSERT (n.firstname, n.surname) IS NODE KE Y;
3,统计信息
当使用Cypher查询图形数据库时,Cypher脚本被编译成一个执行计划,执行该执行计划获得查询结果。

为了生成一个性能优化的执行计划,Neo4j需要收集统计信息以对查询进行优化。

当统计信息变化到一定的赋值时,Neo4j需要重新生成执行计划,以保证Cypher查询是性能优化的,Neo4j存储的统计信息包括:
∙The number of nodes with a certain label.
∙Selectivity per index.
∙The number of relationships by type.
∙The number of relationships by type, ending or starting from a node with a specific label.
默认情况下,Neo4j自动更新统计信息,但是,统计信息的更新不是实时的,更新统计信息可能是一个非常耗时的操作,因此,Neo4j在后台运行,并且只有当变化的数据达到一定的阈值时,才会更新统计信息。

Neo4j把执行计划被缓存起来,在统计信息变化之前,执行计划不会被重新生成。

通过配置选项,Neo4j能够控制执行计划的重新生成:
∙dbms.index_sampling.background_enabled:是否在后台统计索引信息,由于Cypher查询的执行计划是根据统计信息生成的,及时更新索引的统计数据对生成性能优化的执行计划非常重要;
∙dbms.index_sampling.update_percentage:在更新索引的统计信息之前,索引中有多大比例的数据被更新;
∙cypher.statistics_divergence_threshold:当统计信息变化时,Neo4j不会立即更新Cypher查询的执行计划;只有当统计信息变化到一定的程度时,Neo4j才会重新生成执行计划。

相关文档
最新文档