一种对版本化的电网模型数据库进行快速加载的方法

文档序号:6607724阅读:193来源:国知局
专利名称:一种对版本化的电网模型数据库进行快速加载的方法
技术领域
本发明属于电网地理信息系统领域,尤其涉及一种电网拓扑在关系数据库中的物理存储和优化方法。
背景技术
电网地理信息系统(电网GIS系统),是采用地理信息(GIS)技术管理输电、变电、 配电和低压电网的专业信息系统,主要应用于国家电网和南方电网下属的省、地、县等各级供电局、电力局或者电力公司,实现输、变、配、低压电网的图形管理、档案维护、自动成图和拓扑分析等业务功能。电网GIS系统利用通用GIS系统的技术,把土地、河流、道路等电子地图作为背景, 主体功能是实现对电网中的线路、杆塔、变电所、配电站所、线路上设备的图形化的维护、查询和分析。电网GIS系统主要处理的是具有电网拓扑连接的电网设备,而不是土地、河流、 道路等地物对象,因此具有电网相关的突出特点。电网GIS系统支持电网数据时间维度的版本管理、历史版本回溯。通过记录每次变更的时间和变更数据,电网GIS系统提供根据实际时间查询版本数据,可以查询设备变更数据,也可回溯出指定时间的电网状态,为电网运行、分析业务提供支撑和参考。本发明提供了完全基于通用关系数据库、不使用商用GIS系统平台的电网模型数据库的版本化存储和加载优化方法。该方法提供了基于预先生成的基线主键记录集和动态生成的增量主键记录集结合的方法,实现快速版本化的电网模型数据。

发明内容
本发明的目的是实现对存储于通用关系数据库中的版本化电网模型数据进行快速加载的方法。本发明提供一种对版本化的电网模型数据库进行快速加载的方法,所述方法包括下述步骤将电网模型沿时间轴的变动划分为若干个连续的状态断面(即状态断面链),在每个状态断面中以增量的形式记录该断面中新建、修改和删除的电网模型的图形拓扑和属性;定期为经常访问的状态断面(即基线状态断面)创建电网模型数据记录的主键索引表(即基线索引表),在加载时用对该索引表的单次遍历扫描取代对从初始状态断面到待访问断面的多次遍历扫描;对于最后一个基线状态断面之后的数据加载,以及相邻基线状态断面间的数据加载,动态创建从最近基线状态断面到待加载状态断面的增量形式的主键索引表(即增量索引表),在加载时扫描基线索引表和增量索引表合并后的主键集合;根据主键集合对图形拓扑表和属性表进行联合,根据记录的修改标志和状态断面标识过滤出需要加载的记录,抛弃陈旧的记录。本发明涉及电网地理信息系统(电网GIQ的数据库存储的技术领域,特别是涉及了一种使用通用关系数据库、以标准SQL语言形式快速读取版本化的电网拓扑模型数据库表的方法,尤其是采用存储过程在基线主键索引表基础上,过滤后续版本状态、动态生成增量主键值索引表,从而缩小索引表的搜索范围、减少I/O量、缩短加载数据时间的方法。


图1是本发明方法的总体流程图;图2是本发明实施例以状态断面方式记录电网模型修改过程的原理图;图3是本发明实施例数据库表设计的原理图;图4是本发明实施例状态断面方式存储的示意图;图5是本发明实施例基线索引表和增量索引表的原理图;图6是本发明实施例从基线索引表和增量索引表加载图形拓扑表和属性表的流程图;图7是本发明实施例构造基线索引表的流程图。
具体实施例方式为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。参照图1是本发明方法的总体流程图,包括如下步骤步骤101,将电网模型沿时间轴的变动划分为若干个连续的状态断面(即状态断面链),在每个状态断面中以增量的形式记录该断面中新建、修改和删除的电网模型的图形拓扑和属性。状态断面可以是每次对电网模型的修改(例如新建一档线路或者拆除一个杆塔),也可以是每个工程投产(包含多个设备的新建、修改或者删除),还可以是以天、周或者月等时间为单位、累计该时间范围内的所有修改。1、电网状态断面的定义电网状态断面的划分,参照图2是本发明实施例以状态断面方式记录电网模型修改过程的原理图,其中图2a)所示,电网模型的修改历史过程从初始状态断面1开始,每次对电网模型的修改都被记录在一个状态断面中,依次为状态断面2、3。。。n-3、n-2、n-l、n、 n+l、n+2。例如在状态断面n-1的基础上,电网模型修改集合η就保存在状态断面η中。图 2b)所示,电网模型的修改是采用增量记录的形式保存在电网模型数据表中。例如修改集合 η的各条记录是记录在状态断面η中。2、版本化电网模型的数据库表设计参照图3本发明实施例数据库表设计的原理图,将电网模型对象划分为图形拓扑对象和属性对象两部分,分别存储于图形拓扑表和属性表。其中图形拓扑表存储电网模型的图形位置、图形属性和拓扑连接属性,属性表存储其他属性信息。对于每个电网模型对象的一次编辑操作,图形拓扑表和属性表中各保存了一条记录,分别记录对图形拓扑和属性的修改,两条记录的状态断面内码相同。状态断面表记录了每个电网状态断面的状态断面内码、名称、前一状态断面内码, 即图2中的状态1、状态η-2、状态n-1、状态η等分别对应于该表的一条记录。状态断面内码唯一标识了该状态断面,是表的主键,也是图形拓扑表和属性表的外键。
图形拓扑表的各个字段定义如下图形表内码是电网模型的图形对象的唯一编码,状态断面内码是该电网模型对象发生新建、修改或者删除操作所处的状态断面的唯一编码。一个电网对象在几个状态断面中被修改,这个表中就存在对应的几条记录。图形表内码和状态断面内码组成联合主键,用于唯一表示本次修改。属性表内码是指向关联的属性表记录的外键。属性表的各个字段定义如下属性表内码是电网模型的属性对象的唯一编码,状态断面内码是该电网模型对象发生新建、修改或者删除操作所处的状态断面的唯一编码。 一个电网对象在几个状态断面中被修改,这个表中就存在对应的几条记录。属性表内码和状态断面内码组成联合主键,用于唯一表示本次修改。修改字段表示该条记录在状态断面中的修改方式,具体含义如下表所示。其中共有6种不同的状态值,用数值来区分,也可以用字符串来表示,用数值表示的系统性能比字符串尚。
权利要求
1.一种对版本化的电网模型数据库进行快速加载的方法,其特征在于,所述方法包括下述步骤将电网模型沿时间轴的变动划分为若干个连续的状态断面,在每个状态断面中以增量的形式记录该断面中新建、修改和删除的电网模型的图形拓扑和属性;定期为经常访问的状态断面创建电网模型数据记录的主键索引表,在加载时用对该索引表的单次遍历扫描取代对从初始状态断面到待访问断面的多次遍历扫描;对于最后一个基线状态断面之后的数据加载,以及相邻基线状态断面间的数据加载, 动态创建从最近基线状态断面到待加载状态断面的增量形式的主键索引表,在加载时扫描基线索引表和增量索引表合并后的主键集合;根据主键集合对图形拓扑表和属性表进行联合,根据记录的修改标志和状态断面标识过滤出需要加载的记录,抛弃陈旧的记录。
2.根据权利要求1所述的方法,其特征在于,所述创建电网模型数据记录的主键索引表的方法,在加载时用对该索引表的单次遍历扫描取代对从初始状态断面到待访问断面的多次遍历扫描,使扫描时间基本等于常量。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括对于在查找对于最后一个基线状态断面之后的数据加载,以及相邻基线状态断面间的数据加载,动态创建从最近基线状态断面到待加载状态断面的增量形式的主键索引表。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括采用基线索引和增量索引合并的方式,处理基线以后的数据加载。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括采用基线和增量索引表合并后与图形表和属性表进行联合的方法处理数据加载,主要步骤包括开始加载过程,输入待加载的开始状态断面内码和结束状态断面内码; 判断是否是从起始断面开始加载; 查找基线索引总表;从待加载开始状态断面或者已经找到的基线断面结束状态的下一个状态开始,直到加载结束状态断面内码构造增量索引表; 将图形拓扑表和索引分表进行联合; 按照图形表内码递增排序,按照状态断面内码递减排序;循环加载图形拓扑表和索引分表的联合记录集,对于每个图形内码,只加载第一个有效的记录;将属性表和索引表进行联合; 按属性表内码递增排序,按状态断面内码递减排序; 循环加载属性表和索引分表的联合记录集。
全文摘要
本发明提供一种对版本化的电网模型数据库进行快速加载的方法,所述方法包括下述步骤将电网模型沿时间轴的变动划分为若干个连续的状态断面,在每个状态断面中以增量的形式记录该断面中新建、修改和删除的电网模型的图形拓扑和属性;定期为经常访问的状态断面创建电网模型数据记录的基线主键索引表;动态创建从最近基线状态断面到待加载状态断面的增量主键索引表;在加载时扫描基线索引表和增量索引表合并后的主键集合,加载从起始断面到结束断面的电网模型数据。本发明实施例使用通用关系数据库、以标准SQL语言形式快速读取版本化的电网拓扑模型数据库表的方法,尤其是在基线主键索引表基础上,过滤后续版本状态、动态生成增量主键值索引表,从而缩小索引表的搜索范围、减少I/O量、缩短加载数据时间的方法。
文档编号G06F17/30GK102375827SQ20101025394
公开日2012年3月14日 申请日期2010年8月16日 优先权日2010年8月16日
发明者不公告发明人 申请人:北京国科恒通电气自动化科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1