基于数据内容的三维空间数据自适应日志管理方法

文档序号:6331251阅读:172来源:国知局

专利名称::基于数据内容的三维空间数据自适应日志管理方法
技术领域
:本发明涉及地学信息工程
技术领域
,尤其涉及一种基于数据内容的三维空间数据自适应日志管理方法。
背景技术
:三维空间数据具有多源、多类、多维、多量、多时态和多主题等重要特征,因此在数据库中确保三维空间数据的安全性和完整性,有效管理三维空间数据对空间信息系统建设和应用具有重要作用。目前在三维空间数据的管理系统中,极少有关于日志模块的高效设计和管理。因此一旦用户无意或蓄意破坏空间数据,则很难恢复到破坏前的数据状态。同时由于三维空间数据的海量特性,如果采用Oracle、DB2等大型数据库系统的恢复技术将整个数据库恢复到破坏前的正确状态将耗费大量的资源和时间,也将影响数据库的整体性能°哦日志主要记录系统的运行情况,即用户对系统的各个详细操作,包括外部请求及内部响应过程中各个对象对应表的创建、删除、提取等。一方面记录空间数据库的内部的操作(包括INSERT、DELETE、UPDATE等),另一方面记录存储空间对象与数据库系统的对应操作(包括CREATE、DROP、ALTER等),做到可查询完成每个外部请求操作和相应内部的处理过程。并根据记录情况对空间数据的操作进行恢复,保障空间数据库的安全。在开发阶段,日志主要用来作为软件测试的手段之一。在运行阶段,日志作为开发人员定位和修改故障的主要依据,日志可以为审计和监测数据库提供数据。系统管理员根据日志来评价安全程序的效率并确定引起安全破坏或系统功能失效的原因。同时可以根据日志内容将因为意外改变或意外删除的数据恢复为原貌,能重构完整的数据库。日志管理模块将软件系统中记录日志的操作提取出来形成独立的模块,降低系统的耦合度,提高复用性。通过日志系统对保证数据库一致性起着重要作用,同时为数据库的数据安全提供了保障。在开发数据库系统软件时,传统的日志管理模块一股有两种方法获取日志信息。一是在客户端(C/S)或者应用服务器(B/S)上对每个功能模块编写日志的处理子模块;二是在创建数据表后对需要触发器的表分别创建,将日志管理全部或部分转换到数据库中。这两种方法都有弊端,如果采用对每个功能模块编写日志的方法,则程序开发人员的编程量大,开发效率低,同时在前台程序中处理日志将占用内存资源,影响用户操作;后一种方法有所进步,但是创建触发器与触发事件存在时间差,并且不能动态的为新建的表建立触发器。特别是在对重要数据和大量数据库表创建触发器时,传统方法的安全性和效率都将大大降低。因此有必要提出一种新型实用的日志管理方法,特别是在应用三维空间信息系统以及管理三维空间数据的情况下,需要对这些数据进行重要维护和管理并进行相应功能的研究,以奠定不同于传统而是基于三维空间数据和大型数据库系统的三维空间数据自适应日志管理系统的基础。
发明内容针对上述存在的技术问题,本发明的目的是提供一种基于数据内容的三维空间数据自适应日志管理方法,从而在三维空间数据维护和管理的应用中,提高系统的安全性和效率。为达到上述目的,本发明采用如下的详细技术方案①用户调用系统程序包自动创建结构相异的三维空间数据表、日志表及其相应表的触发器;②在客户端程序中用户需要存储要素对象的数据时,调用用户程序包动态创建基本结构相同的三维空间要素对象表、要素对象的L0D信息表和对应表的触发器,并通过触发器获取详细的日志信息;③当用户暂时不处理部分数据表时,在服务器端通过设置触发器开关,及时释放数据库资源;④数据库日志信息被破坏需要恢复时,利用程序备份的TXT日志信息文件,将其加载到数据库端,实现日志的快速恢复。在所述步骤①之前还包括以下步骤分析存储在数据库中的三维空间数据的特性和需要记录的日志信息类型,将需要在新建用户时创建的数据表和日志表以及相应触发器的SQL语句程序块记录在系统程序包中;动态存储要素对象时用于创建要素对象表、要素对象L0D信息表和触发器的SQL语句程序块记录在用户程序包里;系统程序包在新建数据库用户前加载到数据库服务器端,用户程序包在新建数据库时随程序一起加载到新建的用户方案。所述步骤①中,根据三维空间数据的结构和类型特性,在创建新的数据库用户时自动调用数据库管理系统的存储函数实现自动创建结构相异的数据库表、日志表和表触发器的功能。所述步骤②中,当管理员向数据库中存储要素对象时,利用数据库用户程序包内的存储过程和函数动态创建基本结构相同的三维空间要素对象表、要素对象L0D信息表及其表触发器,进而向数据库中存入三维空间数据要素对象。程序调用程序包中的存储过程,数据管理员可以禁用部分暂时不使用的触发器,释放数据库资源,需要时则选择触发器对其进行启用。监控的数据为存储在数据库中的三维空间数据,监控记录的内容来源于所述步骤①中创建的触发器获取的各种日志。所述步骤①中,创建的所述三维空间数据表包括三维空间数据的工程表、图层表、要素类表、纹理表、材质表、拓扑信息表、索引表;所述步骤①中,创建的所述日志表包括系统日志表、用户登录日志表和数据库更新日志表。所述步骤④包括以下子步骤将日志数据备份到本地的TXT文本,当日志数据被破坏时将TXT文件导入数据库重载日志数据;利用所述表触发器记录的日志内容,选择某个具体时刻的数据进行恢复,利用日志记录的详细操作内容在数据库中进行恢复操作。本发明具有以下优点和积极效果1)本发明利用存储过程自动创建数据库表和触发器,相比在建库结束后创建表要省时省力;2)本发明的三维空间数据表是动态创建的,相比传统方法本发明利用数据库用户内的程序包在程序中由用户在存储三维空间要素对象时自动创建要素对象表和触发器,省略了编写重复代码的繁琐工作;3)本发明采用触发器开关机制,对于暂时不需要记录用户操作的数据表,可通过传入触发器名调用存储过程将其禁用,从而释放资源,优化数据库性能;4)本发明根据备份的日志记录文件,快速恢复完整的日志信息。程序将日志表的信息备份为TXT文件,当日志信息表遭受无意或蓄意破坏时,管理员能将备份数据重新加载到数据库中。当三维空间数据被破坏时,用户根据完备日志信息查找到破坏的数据和机器IP,进而启动数据管理系统中的三维空间数据恢复功能,实现三维空间数据的完备性;5)本发明合理有效的利用数据库的相关技术,能有效利用数据库的各个功能,节省开发时间提高开发效率,相比传统的建立日志管理处理子模块或者仅使用触发器开发的系统,大大的提高了数据库的性能,提高程序开发的效率。图1是本发明提供的基于数据内容的三维空间数据自适应日志管理方法的流程图。具体实施例方式本发明提供了一种基于数据内容的三维空间数据自适应日志管理方法,利用Oracle数据库存储过程和触发器等PL/SQL程序块来综合管理,同时兼顾三维空间数据的特性设计创建空间数据表、日志表和触发器的程序块。利用程序将日志信息表的内容备份到本地TXT文件中,一旦数据日志表被破坏时利用TXT文件将日志信息重新导入数据库。当三维空间数据被破坏时,利用日志信息查找到被破坏数据的破坏时间和具体信息,利用系统中的备份恢复表方案进而恢复到破坏前的三维数据表,实现日志数据和三维空间数据的完整性,同时根据数据库详细的日志记录实现三维空间数据的恢复保证三维空间数据的完备性。1)利用程序包内的存储过程和存储函数实现自动化创建。将创建的表结构及其触发器内容写在数据库服务器端的系统程序包里面,表结构的设计根据三维空间数据的特性来确定并动态创建。当管理员在前台程序中创建新的数据库用户时,调用程序包可实现自动建表和触发器的功能,一旦数据库用户创建成功,不仅将所需要的表和触发器创建成功,同时还将该数据库用户的程序包和自定义类型等创建并加载到数据库用户下以备后续之用。程序员将创建要素对象表和触发器的程序块存放在数据库用户的程序包里面,并且在创建新的数据库用户时将程序包加载到新建的数据库用户下。当数据管理员向数据库存储空间数据时系统会调用程序包的存储函数实现要素对象表和表触发器的自动创建,进而将三维空间数据存入数据库。2)利用触发器获取所有日志信息。通过创建的触发器,通过触发器机制和控制内容可以实现任何时刻获取用户对数据库表内三维空间数据更新的具体操作,与传统技术相比大大提高数据的安全性管理。3)利用备份数据快速恢复日志信息。利用程序将日志记录表内的详细操作内容备份为TXT文件并存入本地。数据库中具有加载TXT文件的功能,利用重新加载的文件能快速恢复日志表的内容。日志表记录了详细的用户操作内容,一旦三维空间数据遭到无意或蓄意破坏,数据管理系统能根据完整的日志信息和备份数据恢复到破坏前的三维空间数据。4)利用触发器机制控制触发功能。利用触发器的可用或不可用的人为控制功能,在存储函数中传入触发器名,实现人为控制触发器的状态。一旦数据库资源不足即可关闭暂时不能更新的表格所对应的触发器,从而释放资源提高数据库的操作性能。需要时则开启触发开关使其可用。本发明提供了自动创建数据库表及其表触发器的功能,将创建的表结构及其触发器内容写在数据库服务器端的系统程序包里面,表结构的设计根据三维空间数据的特性来确定并动态创建。当管理员在前台程序中创建新的数据库用户时,调用程序包可实现自动建表和触发器的功能,一旦数据库用户创建成功,不仅将所需要的表和触发器创建成功,同时还将该数据库用户的程序包和自定义类型等创建并加载到数据库用户下以备后续之用。此过程中创建的表包括三维空间数据的工程表、图层表、要素类表、纹理表、材质表、拓扑信息表、索引表等表结构相异的基本三维空间数据表和系统日志表、用户登录日志表和数据库更新日志表。本发明提供了在程序中存储三维空间要素对象数据时动态创建相关要素对象表、要素对象L0D信息表及其触发器,程序员将创建要素对象表和触发器的程序块存放在数据库用户的程序包里面,并且在创建新的数据库用户时将程序包加载到新建的数据库用户下,当数据管理员向数据库存储数据时系统首先调用程序包的存储函数实现要素对象表和表触发器的自动创建,进而将三维空间数据存入数据库。通过创建的触发器可以实现任何时刻获取用户对数据库表内三维空间数据更新的具体操作,与传统技术相比大大提高数据的安全性管理。本发明提供了日志记录的快速恢复功能。日志信息被破坏后将备份的日志信息(TXT文件)重新加载到数据库中。利用日志记录的详细操作内容快速恢复三维空间数据,日志表记录了详细的用户操作内容,一旦空间数据遭到无意或蓄意破坏,根据数据管理系统中的备份方案恢复到破坏前的状态。数据的恢复能保障日志数据和三维空间数据的完整性和安全性。本发明提供了自动管理触发器的功能,其实质是利用触发器的可用或不可用的人为控制功能,在存储函数中传入触发器名,实现人为控制触发器的状态。一旦数据库资源不足即可关闭暂时不能更新的表格所对应的触发器,从而释放资源提高数据库的操作性能。需要时则开启触发开关使其可用。本发明提供了一种基于数据内容的三维空间数据自适应日志管理方法,该方法是针对三维空间数据的数据内容等特点,利用大型数据库管理系统(以Oracle数据库为例)中的程序包等可存储程序来管理三维空间数据的自适应日志管理。在三维空间数据日志管理系统中,根据三维空间数据的不同数据类型将数据表、日志表及其触发器的创建分为两类一类是在新建数据库用户时随用户的创建同时创建(其中包括工程表、图层表、要素类表、纹理表、材质表、拓扑信息表、索引表、系统日志表、用户登录日志表和数据库更新日志表等三维空间数据基本表,系统触发器、用户登录触发器和上述数据库表触发器),各表的结构相异而且所存储的数据表只需一个即可实现;另一种是在数据管理员存储三维空间要素对象时由程序动态创建(包括三维要素对象表、要素对象L0D信息表、DEM金字塔管理表和上述表的触发器),每种类型的基本结构相同而且需要创建的表格数量较多。两类数据的分别创建实现了自适应的应用需求。利用存储过程和触发器不仅能在数据管理员新建数据库用户时自动创建固定结构的数据库表和触发器,同时在存储三维要素对象数据时能动态创建三维空间要素对象表、要素对象L0D信息表和对应表的触发器,省去程序员对创建类似表和触发器编写重复代码的繁琐工作。在Oracle服务器端为触发器编写存储过程用于创建触发开关,适时禁用或启用部分触发器释放资源。系统提供的快速恢复功能能根据详细的日志记录内容将破坏的数据恢复到破坏前的状态值,从而确保三维空间数据的完整和正确。该日志管理系统是三维空间数据管理系统的基础,满足了三维空间数据管理的应用需求。本发明是一个以三维空间数据为核心的多种技术联合应用、大型数据库系统相关技术集成的高新技术系统。系统的开发立足于解决三维地理信息系统的空间数据管理问题,突破大规模地上地下、室外室内三维空间数据一体化管理,研发高性能三维空间数据管理系统。体现了以大型数据库系统为基础,以空间信息和属性信息为核心,确保三维空间数据安全为目标的设计思路。该系统以数据库表为单位,其中要素对象表记录三维空间数据,日志表记录用户对数据库的各项操作,包括用户对系统的DDL(CREATE、DROP、ALTER)操作,用户的登录信息(LOGON、LOGOFF)和用户对数据库表的DML(INSERT、DELETE、UPDATE)操作,记录内容具体全面。该日志管理系统采用存储过程语言、标准的代码体系、规范的表结构和通用的软件接口,有较高的专业化特点。为三维空间数据的安全有效管理打下良好的基础。下面结合图1的流程图,详细描述本发明的具体实施步骤步骤1编写创建数据库表和触发器的系统程序包和用户程序包。分析存储在数据库中的三维空间数据的特性和需要记录的日志信息类型,将需要在新建用户时创建的数据表和日志表以及相应触发器的SQL语句程序块记录在系统程序包中;动态存储要素对象时用于创建要素对象表、要素对象L0D信息表和触发器的SQL语句程序块记录在用户程序包里。两个程序包的SQL程序块分别以后缀为sql的类文本方式存储在客户端。系统程序包在新建数据库用户前加载到数据库服务器端,用户程序包在新建数据库时随程序一起加载到新建的用户方案。以下是创建系统日志表的部分SQL语句代码procedurecreate_g3d_all_syslog(v_uservarchar2)assql_statementvarchar2(255);beginsql_statement:=,createtable,||v_user||,G3D_ALL_SYSL0G(datestampvarchar(20),一操作日期timesvarchar(20),一操作时间usernamevarchar(20),一用户名ipaddrvarchar(30),-连接机器IP地址object_ownervarchar(30),-操作程序名statementvarchar(4000)),;一具体操作内容executeimmediatesql_statement;endcreate_g3d_all_syslog;步骤2创建数据库用户和数据库表。程序初始运行时,服务器端的数据库为空,里面的数据库由客户端调用具体的数据引擎接口实现。在数据库中创建新的数据库用户,调用系统程序包内存储过程创建用于记录三维空间数据的基本表和日志表,同时程序加载数据库用户的程序包,用来完成后续的相关操作,其中三维空间数据日志管理系统中各类日志记录表的详细表结构设计如下表表1、表2、表3所示表1系统日志输出表结构〔0063〕表2用户登陆日志输出表结构表3数据库更新日志输出表结构步骤3创建系统触发器、用户登录触发器和数据库表触发器。在服务器端创建数据库用户时,客户端会通过三维空间数据引擎调用数据库服务器端的系统程序包创建固定表,建表完成后数据引擎会自动调用数据库服务器端的存储函数,为三维空间数据库已创建的数据表创建各类触发器。触发器成功创建后一旦用户操作数据库,触发器被触发并获取用户对数据库和数据库表的详细操作,创建某数据表触发器的部分SQL语句代码如下procedurecreate_trigger(p_idinnumber)asv_sqlvarchar2(4000):=null;一执行语句v_table_namevarchar2(4000):=null;一需要创建触发器的数据表名sql_statementvarchar2(4000):=null;一执行语句v_idnumber(20,0);一传入的参数,表名IDBEGINv_id:=p_id;v_table_name:=‘G3D_FSET_'|to_char(v_id);v_sql:='createorreplacetriggerG3D_TRIG_‘to—char(v—id)|‘afterinsertordeleteorupdateon‘v—table—name||‘foreachrow‘||‘declare‘||‘v_idnumber(20,0);‘||'v—namevarchar2(200);'......executeimmediatev_sql;—执行代码ENDcreate_trigger;步骤4创建触发器开关。触发器的使用占用较多资源,大量使用容易造成数据库性能的下降。因此在管理员管理数据时可以有选择性的禁用或启用触发器,以便释放内存资源空间从而提高数据库的性能和效率。将控制触发器开关的SQL代码写入存储过程,由管理员在前台程序中选择需要关闭的触发器名,数据引擎通过输入的参数调用存储过程进而实现关触发器的关闭。一旦需要启用触发器,在前台程序中选择相应名称,数据引擎调用存储过程使其触发器可用即可开启。创建启用触发器的存储过程的代码如下所示proceduretrig_switchon(trignameinvarchar2)asv_sqlvarchar2(4000);beginv_sql:=‘altertrigger^||trigname||‘enable,;—执行语句executeimmediatev_sql;endtrig—switchon;步骤5应用程序动态创建三维空间数据要素对象表。数据管理员需要向数据库装载三维空间数据前,首先创建三维空间要素对象表。利用三维空间数据管理工具,创建表之前三维空间数据引擎调用存储在数据库用户内程序包的存储函数实现动态创建,进而向服务器端的数据库装载三维空间数据,动态创建数据表的存储过程部分代码如下/*创建表空间*/......v_tabspace:='G3D_FSET_'|TO_CHAR(v_featureclass_id);iftablespace_exists(v_tabspace)=falsethenselectsys.DBA_DATA_FILES.file_nameintov_datafilefromsys.DBA_DATA_FILESwheresys.DBA_DATA_FILES.tablespace_name=upper('SYSTEM');v_datafile:=REPLACE(v_datafile,'SYSTEM',v_tabspace);sql_statement:=‘CREATEBIGFILETABLESPACE‘|v_tabspace||'LOGGINGDATAFILE'|CHR(39)||v_datafile||CHR(39)|'SIZE500MREUSEAUT0EXTENDONNEXT100MMAXSIZEUNLIMITEDEXTENTMANAGEMENTLOCALAUT0ALL0CATESEGMENTSPACEMANAGEMENTAUTO';executeimmediatesql_statement;endif;......步骤6动态创建三维空间数据要素对象表对应的触发器。在上述(3)中所述的创建三维空间数据要素对象表时,通过触发器获取到相关创建信息,引擎自动调用已加载到数据库用户下的程序包内存储过程为要素对象表创建对应的表触发器,其过程与上述(2)创建触发器的方式不同,要素对象表的结构均相同,创建触发器只需将触发获取的表名作为传入参数调用包内的存储过程,根据表名创建对应要素对象表的触发器,这样省去了编写重复代码的工作,程序包内创建触发器的部分程序块列举如下(以Oracle存储过程为例);procedurecreate_tabtrig(IDinnumber)asv_sqlvarchar2(4000):=null;v_table_namevarchar2(4000):=null;......BEGINv_id:=ID;v_sql:=‘createorreplacetriggerG3D_TRIG_‘|to_char(v_id)afterinsertordeleteorupdateon'v_table_nameforeachrow'declare'v_idnumber(20,0);'v_namevarchar2(200);‘......executeimmediatev_sql;ENDcreate_tabtrig;步骤7快速恢复三维空间数据日志数据。当日志数据被用户无意或蓄意破坏后,则可以进行快速恢复功能。利用程序将日志信息表的详细内容导入TXT文本并存储于本地。一旦日志信息被破坏将已备份的日志信息(TXT文件)重新加载到数据库中,加载时利用数据库本身的导入功能实现TXT文本的导入。利用日志记录的详细操作内容快速恢复三维空间数据的功能。日志表记录了详细的用户操作内容,一旦三维空间数据遭到无意或蓄意破坏,日志管理系统能根据系统中的备份方案,快速恢复到破坏前的状态。本发明的快速恢复是依靠上述存储在数据库中的详细日志记录而进行的。日志表记录了用户操作的时间和具体操作对象内容。由于三维空间数据的海量特征使得三维空间数据的恢复应只需要选择被破坏的错误数据进行局部恢复,而不是将整个数据库进行重新创建并恢复,否则将造成数据库性能的下降。备份日志的代码部分列举如下std:ofstreamoutFile;outFile.open(filename,c—str(),std::ios::out|std::ios::trunc);if(!outFile){cerr<<〃error:unabletoopeninputfile:〃<<filename<<endl;return;}outFile<<〃更新的对象ID"<<"“"更新表名〃<<"“<<"更新类型〃<<"“<<〃更新时间〃<<“‘‘<<"用户IP"<<endl;for(std:vector<UserDefLog>iteratorit=log.begin();it!=log.end();it++){std:stringstrlD=numberToString<char,unsignedlonglong>((*it)objID);std::stringstrTime=numberToString<char,unsignedlonglong>((*it)updatetime);outFile<<strlD<<"“(*it).tablename<<"“(*it).updateflag<<"“strTime<<"“<<(*it).ip_addr<<endl;}outFile.close();通过上述步骤创建的触发器获取详细的三类日志表所需要存储的详细日志信息。一旦数据遭到无意或蓄意破坏,系统能根据日志记录的时间和详细操作内容快速重构三维空间数据,实现数据在0raCle、DB2等大型数据库系统中的有效管理。同时在服务器端设置触发器开关禁用或启用触发器,达到释放数据库资源的目的。在三维空间数据库自适应日志管理方法的实施过程中,其硬件平台体系由两部分组成,一部分是数据库服务器,另一部分是数据库客户端。所有程序包的内容由管理员手动写入客户端并以文本方式存储。新建数据库用户前首先将系统程序包手动加载到数据库用户中,而用户程序包则在创建新的数据库用户时自动加载到数据库用户下。空间数据记录表、日志记录表和三类触发器在客户端通过数据引擎调用程序包自动创建在数据库中。这样最大性的发挥了大型数据库系统的性能,为客户端提供了高效的数据处理环境。以上实施例仅供说明本发明之用,而非对本发明的限制,有关
技术领域
的技术人员,在不脱离本发明的精神和范围的情况下,还可以作出各种变换或变型,因此所有等同的技术方案,都落入本发明的保护范围。权利要求一种基于数据内容的三维空间数据自适应日志管理方法,其特征在于,包括以下步骤①用户调用系统程序包自动创建结构相异的三维空间数据表、日志表及其相应表的触发器;②在客户端程序中用户需要存储要素对象的数据时,调用用户程序包动态创建基本结构相同的三维空间要素对象表、要素对象的LOD信息表和对应表的触发器,并通过触发器获取详细的日志信息;③当用户暂时不处理部分数据表时,在服务器端通过设置触发器开关,及时释放数据库资源;④数据库日志信息被破坏需要恢复时,利用程序备份的TXT日志信息文件,将其加载到数据库端,实现日志的快速恢复。2.根据权利要求1所述的基于数据内容的三维空间数据自适应日志管理方法,其特征在于,在所述步骤①之前还包括以下步骤分析存储在数据库中的三维空间数据的特性和需要记录的日志信息类型,将需要在新建用户时创建的数据表和日志表以及相应触发器的SQL语句程序块记录在系统程序包中;动态存储要素对象时用于创建要素对象表、要素对象LOD信息表和触发器的SQL语句程序块记录在用户程序包里;系统程序包在新建数据库用户前加载到数据库服务器端,用户程序包在新建数据库时随程序一起加载到新建的用户方案。3.根据权利要求2所述的基于数据内容的三维空间数据自适应日志管理方法,其特征在于所述步骤①中,根据三维空间数据的结构和类型特性,在创建新的数据库用户时自动调用数据库管理系统的存储函数实现自动创建结构相异的数据库表、日志表和表触发器的功能。4.根据权利要求2所述的基于数据内容的三维空间数据自适应日志管理方法,其特征在于所述步骤②中,当管理员向数据库中存储要素对象时,利用数据库用户程序包内的存储过程和函数动态创建基本结构相同的三维空间要素对象表、要素对象LOD信息表及其表触发器,进而向数据库中存入三维空间数据要素对象。5.根据权利要求2-4中任一项所述的基于数据内容的三维空间数据自适应日志管理方法,其特征在于程序调用程序包中的存储过程,数据管理员可以禁用部分暂时不使用的触发器,释放数据库资源,需要时则选择触发器对其进行启用。6.根据权利要求2-4中任一项所述的基于数据内容的三维空间数据自适应日志管理方法,其特征在于监控的数据为存储在数据库中的三维空间数据,监控记录的内容来源于所述步骤①中创建的触发器获取的各种日志。7.根据权利要求1所述的基于数据内容的三维空间数据自适应日志管理方法,其特征在于所述步骤①中,创建的所述三维空间数据表包括三维空间数据的工程表、图层表、要素类表、纹理表、材质表、拓扑信息表、索引表;所述步骤①中,创建的所述日志表包括系统日志表、用户登录日志表和数据库更新日志^^o8.根据权利要求1所述的基于数据内容的三维空间数据自适应日志管理方法,其特征在于,所述步骤④包括以下子步骤将日志数据备份到本地的TXT文本,当日志数据被破坏时将TXT文件导入数据库重载日志数据;利用所述表触发器记录的日志内容,选择某个具体时刻的数据进行恢复,利用日志记录的详细操作内容在数据库中进行恢复操作。全文摘要本发明涉及地学信息工程
技术领域
,尤其涉及一种基于数据内容的三维空间数据自适应日志管理方法。本发明针对三维空间数据的特点,采用面向对象的方法进行设计和开发,利用数据库管理系统内的扩展SQL程序块(包括存储过程、触发器等)在建库时自动创建数据表及其相应触发器,在存储三维空间数据时动态创建要素对象表和触发器,能高效创建三维空间数据表和日志表并实时监控和记录用户操作。本发明能根据备份日志文件恢复完整日志表内容,数据管理系统可根据日志记录内容快速恢复三维空间数据,保障数据库中日志数据和三维空间数据的安全性和完整性,提高了空间数据库系统的应用性能。文档编号G06F17/30GK101916300SQ20101026910公开日2010年12月15日申请日期2010年9月1日优先权日2010年9月1日发明者何世波,何珍文,刘军旗,刘刚,吴冲龙,孔春芳,张夏林,徐凯,李新川,李晶,田宜平,翁正平申请人:中国地质大学(武汉)
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1