首页> 中国专利> 一种空间数据库中矢量数据几何变化检测的方法及装置

一种空间数据库中矢量数据几何变化检测的方法及装置

摘要

本发明公开了一种空间数据库中矢量数据几何变化检测的方法及装置,采用日志分析的方法来获取空间数据库中的矢量数据几何变化,通过几何数据解析和对比分析对变化信息进行提取,将结果归类为未变化、空间位移、边界与空间位移都发生变化。该方法和装置只需要启用日志分析即可实现矢量数据变化监控,既可实现在线实时变化检测,也可以结合日志备份管理,配置为周期性的非实时检测,根据空间数据的存储方案对日志中的矢量数据进行解析,能够适应不同存储方式的空间数据库,根据检测分析得出不同几何数据变化类型,可对空间数据拓扑关系、相关业务数据逻辑和数据库操作行为进行审计,保障数据库的安全性和逻辑完整性。

著录项

  • 公开/公告号CN106407292A

    专利类型发明专利

  • 公开/公告日2017-02-15

    原文格式PDF

  • 申请/专利权人 北京农业信息技术研究中心;

    申请/专利号CN201610757048.6

  • 申请日2016-08-29

  • 分类号G06F17/30;

  • 代理机构北京路浩知识产权代理有限公司;

  • 代理人李相雨

  • 地址 100097 北京市海淀区曙光花园中路11号农科大厦A座318b

  • 入库时间 2023-06-19 01:32:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-13

    授权

    授权

  • 2017-03-15

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160829

    实质审查的生效

  • 2017-02-15

    公开

    公开

说明书

技术领域

本发明属于计算机技术领域,具体涉及一种空间数据库中矢量数据几何变化检测的方法及装置。

背景技术

数据安全对于业务信息系统运行至关重要,数据库不仅是业务系统运行的基础,也是企业和管理部门的重要资产,因此维护数据库的安全,保证数据的完整性和逻辑一致性非常重要。空间数据库即为存储了空间数据的数据库,矢量或栅格数据按照一定的规则、结构、数据类型存储在关系数据库中,通过特定的操作方法实现空间数据的读取和写入操作。在业务信息系统运行过程中,空间数据库中矢量数据几何形态的变化是由于业务流程推进所致,其数据拓扑关系完整,与业务数据之间逻辑关系一致。当发生数据意外或非法操作时,几何信息的完整性和逻辑性就可能受到破坏。例如,在城镇化发展用地监管过程中,一块建设用地地块数据需要经过严格的批供用补查流程,如果为了获得比批复地块更大的面积或更有利位置,在供地环节通过非法手段对地块几何边界进行修改或者将地块整体平移,就会产生与界址点记录不匹配地块几何数据,同时该地块几何数据中的错误会传入用地等后续业务流程,导致严重的后果。

对矢量数据几何变化进行检测,并提取变化信息,可以实现数据完整性检查和动态变化分析,对意外或非法的数据库操作进行监测,提高空间数据库安全性。目前实现空间数据库中矢量数据变化检测主要有两种类型的技术方案:

一种是在空间数据库中记录不同时间节点的矢量数据状态,提取同一矢量数据在任意两个时间节点的状态进行对比分析,可获得该矢量数据在这两个时间节点之间的几何变化信息。然而,这种方法每次变化分析都需要提取两个时间节点的完整矢量数据,操作流程复杂繁琐,时效性差,同时对于数据备份的时间粒度要求较高,其次,业务系统中矢量数据通常与其它业务数据表相关,事后比对的方法无法满足实时修改验证的需求。

另一种是在空间数据库中的矢量数据表上设置触发器,当矢量数据空间字段上有增删改操作时,触发器获得几何变化数据,通过分析操作前后几何数据得到几何变化信息,实现检测矢量数据几何变化的目的。虽然这种方法实时性较高,但需要对现有空间数据库进行修改,会对数据库安全性带来不利影响,同时系统耦合性的升高,也不利于实现变化检测功能的集成应用。

发明内容

本发明所要解决的技术问题是如何实现空间数据库中矢量数据几何变化的在线实时检测,提高变化发现和提取的时效性。

针对该技术问题,本发明提供了一种空间数据库中矢量数据几何变化检测的方法,包括:

S1:获取空间数据库中与待检测矢量数据相关的数据表和所述数据表对应的日志,采用日志分析工具对所述日志进行解析,得到所述数据表在进行数据操作之前的第一数据表和数据操作之后的第二数据表;

S2:采用预设的解析方法,根据所述第一数据表得到在所述数据操作前的第一几何数据对象,根据所述第二数据表得到在所述数据操作后的第二几何数据对象;

S3:将所述第一几何数据对象和所述第二几何数据对象进行空间叠加分析,若合并后得到一个几何对象,则所述数据操作没有引起所述待检测矢量数据的几何边界变化和空间位置变化;否则,所述数据操作引起了所述待检测矢量数据的几何边界变化或者空间位置变化。

优选地,还包括:

若将所述第一几何数据对象和所述第二几何数据对象进行空间叠加分析,合并后得到至少两个几何对象,则逐一对比所述第一几何数据对象和所述第二几何数据对象的坐标序列,判断所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差是否一致,以及在Y方向上的偏差是否一致;

若所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差一致且在Y方向上的偏差也一致,则判定所述数据操作引起了所述待检测矢量数据的空间位置变化,没有引起所述待检测矢量数据的几何边界变化;

若所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差不一致或者Y方向上的偏差不一致,则判定所述数据操作引起了所述待检测矢量数据的几何边界变化和空间位置变化。

优选地,所述数据表对应的日志包括在线日志和归档日志。

优选地,所述数据操作包括插入、删除和更新;

若对所述数据表进行了插入的数据操作,则所述数据表在进行插入的数据操作之前的数据表为空,对应的几何数据对象也为空;

若对所述数据表进行了删除的数据操作,则所述数据表在进行删除的数据操作之后的数据表为空,对应的几何数据对象也为空。

优选地,所述步骤S1之前还包括:每隔预设时间段获取空间数据库中与待检测矢量数据相关的数据表和所述数据表对应的日志,对待检测矢量数据是否发生几何变化进行周期性检测。

另一方面,本发明还提供了一种空间数据库中矢量数据几何变化检测的装置,包括:

变化信息提取模块,用于获取空间数据库中与待检测矢量数据相关的数据表和所述数据表对应的日志,采用日志分析工具对所述日志进行解析,得到所述数据表在进行数据操作之前的第一数据表和数据操作之后的第二数据表;

解析模块,用于采用预设的解析方法,根据所述第一数据表得到在所述数据操作前的第一几何数据对象,根据所述第二数据表得到在所述数据操作后的第二几何数据对象;

分析模块,用于将所述第一几何数据对象和所述第二几何数据对象进行空间叠加分析,若合并后得到一个几何对象,则所述数据操作没有引起所述待检测矢量数据的几何边界变化和空间位置变化;否则,所述数据操作引起了所述待检测矢量数据的几何边界变化或者空间位置变化。

优选地,所述分析模块还用于若将所述第一几何数据对象和所述第二几何数据对象进行空间叠加分析,合并后得到至少两个几何对象,则逐一对比所述第一几何数据对象和所述第二几何数据对象的坐标序列,判断所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差是否一致,以及在Y方向上的偏差是否一致;

若所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差一致且在Y方向上的偏差也一致,则判定所述数据操作引起了所述待检测矢量数据的空间位置变化,没有引起所述待检测矢量数据的几何边界变化;

若所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差不一致或者Y方向上的偏差不一致,则判定所述数据操作引起了所述待检测矢量数据的几何边界变化和空间位置变化。

优选地,所述数据表对应的日志包括在线日志和归档日志。

优选地,所述数据操作包括插入、删除和更新;

若对所述数据表进行了插入的数据操作,则所述数据表在进行插入的数据操作之前的数据表为空,对应的几何数据对象也为空;

若对所述数据表进行了删除的数据操作,则所述数据表在进行删除的数据操作之后的数据表为空,对应的几何数据对象也为空。

优选地,还包括周期检测模块,用于每隔预设时间段获取空间数据库中与待检测矢量数据相关的数据表和所述数据表对应的日志,对待检测矢量数据是否发生几何变化进行周期性检测。

本发明提供的空间数据库中矢量数据几何变化检测的方法及装置中,采用日志分析的方法来获取空间数据库中的矢量数据几何变化,通过几何数据解析和对比分析对变化信息进行提取,将结果归类为未变化、空间位移、边界与空间位移都发生变化。该方法和装置无需对现有空间数据库进行修改,只需要启用日志分析即可实现矢量数据变化监控,既可实现在线实时变化检测,也可以结合日志备份管理,配置为周期性的非实时检测,根据空间数据的存储方案对日志中的矢量数据进行解析,能够适应不同存储方式的空间数据库,根据检测分析得出不同几何数据变化类型,可对空间数据拓扑关系、相关业务数据逻辑和数据库操作行为进行审计,保障数据库的安全性和逻辑完整性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的空间数据库中矢量数据几何变化检测的方法的流程示意图;

图2是本发明一实施例提供的空间数据库中矢量数据几何变化检测的装置功能组成的结构示意图;

图3是本发明一实施例提供的叠加分析(合并)示意图;

图4是本发明一实施例提供的空间数据库中矢量数据几何变化检测的装置的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是本实施例提供的空间数据库中矢量数据几何变化检测的方法的流程示意图。参见图1该方法包括:

S1:获取空间数据库中与待检测矢量数据相关的数据表和所述数据表对应的日志,采用日志分析工具对所述日志进行解析,得到所述数据表在进行数据操作之前的第一数据表和数据操作之后的第二数据表;

S2:采用预设的解析方法,根据所述第一数据表得到在所述数据操作前的第一几何数据对象,根据所述第二数据表得到在所述数据操作后的第二几何数据对象;

S3:将所述第一几何数据对象和所述第二几何数据对象进行空间叠加分析,若合并后得到一个几何对象,则所述数据操作没有引起所述待检测矢量数据的几何边界变化和空间位置变化;否则,所述数据操作引起了所述待检测矢量数据的几何边界变化或者空间位置变化。

需要说明的是,由于空间数据在关系数据库中存储格式为长二进制、ST_Geometry(ESRI)或SDO_Geometry(Oracle Spatial)等格式,需要采用其相应存储方案所提供的数据读取方法和程序将数据解析为几何数据对象。

本实施例提供的空间数据库中矢量数据几何变化检测的方法中,采用日志分析的方法来获取空间数据库中的矢量数据几何变化,通过几何数据解析和对比分析对变化信息进行提取,将结果归类为未变化、空间位移、边界与空间位移都发生变化。该方法无需对现有空间数据库进行修改,只需要启用日志分析即可实现矢量数据变化监控,既可实现在线实时变化检测,也可以结合日志备份管理,配置为周期性的非实时检测,根据空间数据的存储方案对日志中的矢量数据进行解析,能够适应不同存储方式的空间数据库,根据检测分析得出不同几何数据变化类型,可对空间数据拓扑关系、相关业务数据逻辑和数据库操作行为进行审计,保障数据库的安全性和逻辑完整性。

更进一步地,该方法还包括:

若将所述第一几何数据对象和所述第二几何数据对象进行空间叠加分析,合并后得到至少两个几何对象,则逐一对比所述第一几何数据对象和所述第二几何数据对象的坐标序列,判断所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差是否一致,以及在Y方向上的偏差是否一致;

若所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差一致且在Y方向上的偏差也一致,则判定所述数据操作引起了所述待检测矢量数据的空间位置变化,没有引起所述待检测矢量数据的几何边界变化;

若所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差不一致或者Y方向上的偏差不一致,则判定所述数据操作引起了所述待检测矢量数据的几何边界变化和空间位置变化。

需要说明的是,在识别是否发生几何边界变化和空间位置变化时,是对比第一几何数据对象对应的点和第二几何数据对象对应的点是否均发生了相同的移动,即每一点是否在X轴上进行了相同的改变(具有相同的ΔX),且在Y轴上也都进行了相同的改变(具有相同的ΔY),若是,则判定所述数据操作引起了所述待检测矢量数据的空间位置变化,没有引起所述待检测矢量数据的几何边界变化,否则,判定所述数据操作引起了所述待检测矢量数据的几何边界变化和空间位置变化。

作为一种更为具体的实施例,参见图2,首先进行空间数据库变化检测,然后再提取变化信息。

在进行空间数据库变化检测过程中,第一,要设定待测的矢量数据和数据操作行为,具体来说:

空间数据库中存储了若干矢量数据,通常只有与业务相关的矢量数据才需要进行变化检测,因此需要设定待检测的矢量数据。

矢量数据在物理存储中表现为多个数据表,多个表之间通过相同的数据集名称进行关联,通过矢量数据名称可对相关数据表进行唯一性关联,因此在设定待检测矢量数据时指定要检测的矢量数据名称即可。

在数据库中,对数据表的操作可分为插入、更新和删除三种类型,每种类型的数据操作对应了不同的矢量数据几何变化类型。插入操作在矢量数据中表现为新增空间数据对象,更新操作表现为空间数据对象变化,删除操作表现为空间数据对象消失。根据业务运行的需要,设定对待检测矢量数据的哪些数据操作需要被检测,不被检测的数据操作行为不需要执行后续的变化提取和分析。

第二,进行日志实时在线分析,具体地由于大型关系数据库通常按照先写入日志后写入数据的方式进行数据操作,所以数据库日志中记录了完整的数据操作信息,以保证操作的完整性和可恢复性,因此日志实时记录这数据库的全部变化信息。

数据库管理系统提供了相应的日志分析工具(例如Oracle的LogMiner)来对其日志进行读取和解析,因此只要启动日志分析工具对在线/归档日志进行实时解析,即可获得数据库操作信息,包括对全部数据表的插入、更新和删除操作。

第三,提取目标变化数据,进一步,在本发明的方法中,所述数据表对应的日志包括在线日志和归档日志。

具体来说,对任意一个数据表操作,日志会记录REDO SQL和UNDO SQL。REDO SQL是重新实现该操作的语句,其代表了数据操作后的数据状态,UNDO SQL是撤销该操作的语句,代表了数据操作前的数据状态,因此日志记录中包含了数据表在操作前后两个状态的完整信息。

在日志分析获得的数据库操作信息中,搜索与待检测矢量数据相关的数据表和相应数据操作一致的记录,将其转存到变化数据表中,为变化信息提取提供基础数据。

由于写入日志本身就是数据库系统的必备机制,因此本方案不会对数据库带来很大的性能消耗。如果需要在一定时间段集中分析归档日志,需要消耗一定的计算资源,可以通过将日志归档到其它主机进行分析,来实现系统整体性能优化。

在变化信息提取的过程中,第一,要进行空间数据解析,具体地,与简单类型数据可以直接通过类型转换获取数据不同,空间数据在关系数据库中存储格式为长二进制、ST_Geometry(ESRI)或SDO_Geometry(Oracle Spatial)等格式,需要采用其相应存储方案所提供的数据读取方法和程序,将数据解析为几何数据对象(点、线或面)。从日志UNDO数据中可提取出变化前几何数据对象,从日志REDO数据中可提取出变化后几何数据对象。

对于插入操作变化前几何数据对象为空,对于删除操作变化后几何数据对象为空,更新操作可获得变化前后的两个几何数据对象。

第二,要进行变化参数提取,具体地,插入和删除操作产生的变化直接记为几何对象新增和消除即可。

更新操作产生的变化需要对变化前后的几何数据对象进行对比分析,实现对变化类型的分类:

(1)将两个几何数据对象进行空间叠加分析,采用合并方法,得到输出结果(如图3所示,INPUT为输入的几何数据对象对应,OUTPUT为输出的几何对象)。当输出数据为一个几何对象时,表示更新没有引起几何边界变化和空间位置变化;当输出数据为多个几何对象时,表示几何边界或空间位置发生了变化。

(2)当上一步输出结果为后一种情况时,逐一对比几何数据对象坐标序列。如果坐标在X方向和Y方向上存在一致偏差,表示几何数据对象发生了平移,边界形状没有变化;否则,表示几何数据对象在边界和空间位置上都发生了变化。

进一步地,所述数据操作包括插入、删除和更新;

若对所述数据表进行了插入的数据操作,则所述数据表在进行插入的数据操作之前的数据表为空,对应的几何数据对象也为空;

若对所述数据表进行了删除的数据操作,则所述数据表在进行删除的数据操作之后的数据表为空,对应的几何数据对象也为空。

进一步地,所述步骤S1之前还包括:每隔预设时间段获取空间数据库中与待检测矢量数据相关的数据表和所述数据表对应的日志,对待检测矢量数据是否发生几何变化进行周期性检测。

另一方面,图4是本实施例提供的空间数据库中矢量数据几何变化检测的装置的结构框图,参见图4,该空间数据库中矢量数据几何变化检测的装置20包括:

变化信息提取模块21,用于获取空间数据库中与待检测矢量数据相关的数据表和所述数据表对应的日志,采用日志分析工具对所述日志进行解析,得到所述数据表在进行数据操作之前的第一数据表和数据操作之后的第二数据表;

解析模块22,用于采用预设的解析方法,根据所述第一数据表得到在所述数据操作前的第一几何数据对象,根据所述第二数据表得到在所述数据操作后的第二几何数据对象;

分析模块23,用于将所述第一几何数据对象和所述第二几何数据对象进行空间叠加分析,若合并后得到一个几何对象,则所述数据操作没有引起所述待检测矢量数据的几何边界变化和空间位置变化;否则,所述数据操作引起了所述待检测矢量数据的几何边界变化或者空间位置变化。

本发明提供的空间数据库中矢量数据几何变化检测的装置中,采用日志分析的方法来获取空间数据库中的矢量数据几何变化,通过几何数据解析和对比分析对变化信息进行提取,将结果归类为未变化、空间位移、边界与空间位移都发生变化。该装置无需对现有空间数据库进行修改,只需要启用日志分析即可实现矢量数据变化监控,既可实现在线实时变化检测,也可以结合日志备份管理,配置为周期性的非实时检测,根据空间数据的存储方案对日志中的矢量数据进行解析,能够适应不同存储方式的空间数据库,根据检测分析得出不同几何数据变化类型,可对空间数据拓扑关系、相关业务数据逻辑和数据库操作行为进行审计,保障数据库的安全性和逻辑完整性。

进一步地,所述分析模块还用于若将所述第一几何数据对象和所述第二几何数据对象进行空间叠加分析,合并后得到至少两个几何对象,则逐一对比所述第一几何数据对象和所述第二几何数据对象的坐标序列,判断所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差是否一致,以及在Y方向上的偏差是否一致;

若所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差一致且在Y方向上的偏差也一致,则判定所述数据操作引起了所述待检测矢量数据的空间位置变化,没有引起所述待检测矢量数据的几何边界变化;

若所述第一几何数据对象的坐标序列对应的点和相应的所述第二几何数据对象的坐标序列对应的点在X方向的偏差不一致或者Y方向上的偏差不一致,则判定所述数据操作引起了所述待检测矢量数据的几何边界变化和空间位置变化。

进一步地,所述数据表对应的日志包括在线日志和归档日志。

进一步地,所述数据操作包括插入、删除和更新;

若对所述数据表进行了插入的数据操作,则所述数据表在进行插入的数据操作之前的数据表为空,对应的几何数据对象也为空;

若对所述数据表进行了删除的数据操作,则所述数据表在进行删除的数据操作之后的数据表为空,对应的几何数据对象也为空。

进一步地,还包括周期检测模块,用于每隔预设时间段获取空间数据库中与待检测矢量数据相关的数据表和所述数据表对应的日志,对待检测矢量数据是否发生几何变化进行周期性检测。

本发明采用日志分析的方法来获取空间数据库中的矢量数据几何变化,通过几何数据解析和对比分析对变化信息进行提取,实现矢量数据几何变化的实时监测和数据获取,完成变化数据的分析。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号