一种管理系统数据库的动态建库方法与流程

文档序号:17320248发布日期:2019-04-05 21:30阅读:186来源:国知局
本发明属于数据库开发
技术领域
:,具体涉及一种管理系统数据库的动态建库方法。
背景技术
::随着许多企业、厂商在致力于研究开发时,也都会慎重评估并提出专利的申请,近几年申请获准的专利件数也均呈大幅增长的趋势,尤其是一些大企业,每年所累计申请获准的案件也都将近千笔,对于这些数以百计、干计的发明数据及后续的维护作业,若还是采用传统人工管理,不但旷日费时且容易出错,因此目前实在急需一种有系统的管理方式,避免因数据迅速增加产生的人为疏失与管理不当。目前人们采用的方法通常有两种:第一,在建立数据库模型时,把所有可能发生的变化都包含在其中,然后建立一个非常庞大的数据库,这种技术虽然能够满足向后拓展性的需求,但它导致了数据冗余和存储空间的浪费;第二,当数据模型发生改变时,人为进入后台数据库平台修改数据库结构,然后修改对应的数据库开发代码,这种技术存在的问题是给数据库的维护带来很大的难度,且增加了人为导致错误的几率。技术实现要素:本发明的目的是提供一种管理系统数据库的动态建库方法,解决了满足数据库向后拓展性的需求,同时避免了数据库数据冗余和存储空间的浪费,改善了数据库的维护。本发明一种管理系统数据库的动态建库方法,其特征在于:所述方法依次包括xml树的生成、数据模型的生成、数据库的生成三个步骤;先通过定义映射规则、编写xml模板、加载xml模板生成xml树;然后采用dom把所需要的信息从xml树中解析出来,将其转换成程序可以识别的数据结构,放在结构体数组中;连接后台数据库管理系统,检索并从存放参数信息的结构体数组中取出所需要的信息,编写建模所需的sql语句并把参数信息包含其中,提交并执行sql语句,后台建立对应的数据库,并对数据库中的数据进行压缩。xml树的生成步骤中定义映射规则,主要为定义一个根节点,用data来标记,把数据库名称作为data的一个子节点,用database作标记,节点内容为数据库名称;把每个数据表作为data的一个子树,用table作标记,并为其插入一个子节点,用tablename作标记,节点内容为表的名称;把表中的每个行记录作为对应table的一个子树,用var标记,把每条记录的所需要的字段作为var的子节点,并用相应的字段名作标记,节点内容为各个字段所对应的记录值。xml树的生成步骤中,xml树的每个子系统节点包括的子节点主要有该子系统的序号、子系统所包含的浮点型、整型、字符型的子节点总数,该系统下所有的变量节点、每个变量节点包含的内容根据系统需要而定,通常包含变量名、变量类型、对应的反射内存地址、物理意义。数据模型的生成步骤中,是按照xml树的结构定义一个结构体数组用来存放解析得到的数据,加载整个xml树,最后循环取出xml树中包含所需信息的节点并把节点信息转换为结构体类型的数据放在结构体数组中。采用dom把所需要的信息从xml树中解析出来,既可以把整棵xml树完全解析,也可以仅仅解析xml树中包含用户所需信息的节点,根据建模所需的信息而定。整个数据库建立中xml文件作为中间媒介实现了多种数据格式的转换与数据模型的生成,当信息发生改变时,所建立的数据库模型的结构也随之发生改变,数据库能够随着数据模型的改变而改变,实现了数据库的动态生成。当数据库管理系统在内存缓存区与磁盘文件之间交换数据时,对数据块进行压缩/解压缩处理。对日志文件或其它文件进行压缩/解压缩处理。本发明与现有技术相比,具有如下优点和有益效果:(1)友好的用户操作界面:用户可以通过用户界面对数据库进行操作,不需要专业的数据库知识;(2)强大的数据库建模能力:该数据库面向所有管理系统,结合xml技术,为各种数据模型提供一个统一的数据库建模接口,实现所有数据库的统一建模;(3)动态建库:该工程数据库对数据库建模技术进行封装,动态建库,不需要人为的参与,从而也避免了人工建模过程中出现错误的可能性;(4)良好的系统开放性:由于该系统具有可动态建立的数据库模型的特点,从而实现了该数据库在不同管理系统之间的通用性,实现了系统的开放性。具体实施方式下面结合具体实施方式对本发明进行详细说明。本发明一种一种管理系统数据库的动态建库方法,其特征在于:所述方法依次包括xml树的生成、数据模型的生成、数据库的生成三个步骤;先通过定义映射规则、编写xml模板、加载xml模板生成xml树;然后采用dom把所需要的信息从xml树中解析出来,将其转换成程序可以识别的数据结构,放在结构体数组中;连接后台数据库管理系统,检索并从存放参数信息的结构体数组中取出所需要的信息,编写建模所需的sql语句并把参数信息包含其中,提交并执行sql语句,后台建立对应的数据库,并对数据库中的数据进行压缩。xml树的生成步骤中定义映射规则,主要为定义一个根节点,用data来标记,把数据库名称作为data的一个子节点,用database作标记,节点内容为数据库名称;把每个数据表作为data的一个子树,用table作标记,并为其插入一个子节点,用tablename作标记,节点内容为表的名称;把表中的每个行记录作为对应table的一个子树,用var标记,把每条记录的所需要的字段作为var的子节点,并用相应的字段名作标记,节点内容为各个字段所对应的记录值。xml树的生成步骤中,xml树的每个子系统节点包括的子节点主要有该子系统的序号、子系统所包含的浮点型、整型、字符型的子节点总数,该系统下所有的变量节点、每个变量节点包含的内容根据系统需要而定,通常包含变量名、变量类型、对应的反射内存地址、物理意义。数据模型的生成步骤中,是按照xml树的结构定义一个结构体数组用来存放解析得到的数据,加载整个xml树,最后循环取出xml树中包含所需信息的节点并把节点信息转换为结构体类型的数据放在结构体数组中。采用dom把所需要的信息从xml树中解析出来,既可以把整棵xml树完全解析,也可以仅仅解析xml树中包含用户所需信息的节点,根据建模所需的信息而定。整个数据库建立中xml文件作为中间媒介实现了多种数据格式的转换与数据模型的生成,当信息发生改变时,所建立的数据库模型的结构也随之发生改变,数据库能够随着数据模型的改变而改变,实现了数据库的动态生成。当数据库管理系统在内存缓存区与磁盘文件之间交换数据时,对数据块进行压缩/解压缩处理。对日志文件或其它文件进行压缩/解压缩处理。首先对数据库动态建模中的xml技术和数据库动态建库技术的设计原理进行说明。xml(extensiblemarkuplanguage,可扩展标记语言)是一套定义语义标记的规则,它是在html(hypertextmarkuplanguage,文本标记语言)的基础上发展起来的一种符号标记语言,与html一样,xml也是从标准通用标记语言sgml(standardgeneralizedmarkuplanguage)所衍生出来的简化格式,其目的是让数据描述有一个简单可行的标准,但是它突破了html的固定标记集合的约束,用户可以根据需要定义各种标签来描述文档中的数据元素。为了满足数据库动态建库的需求,所设计的系统必须能够保存用户录入的仿真信息模型,并把其传输到建立数据库模型的模块中,从而实现根据用户录入的数据在后台数据库中进行动态建库的功能;整个系统被设计为外模式、内模式、生成模式三种模式,每一种模式面向不同的对象,完成不同的任务;外模式面向用户,允许用户对数据库模型参数进行各种操作,该模式可以通过编写用户操作界面代码的方式实现;内模式面向系统,用来保存用户录入的参数信息并进行数据格式转换,生成便于传输和数据共享的中间格式文件,并把中间格式文件信息转换为后台数据库所需数据类型;生成模式面向后台数据库管理系统,执行动态建立数据库模型的sql(structurequerylanguage,结构化查询语言)语句,实现数据库模型的建立。为了满足数据转换时对数据检索速度的需求,保存数据的结构体在定义时采用树状结构,其中数据库作为树的根节点,数据库中的每个表格作为根节点的每个子树,表格中的每个字段信息作为树的每个叶子节点,在对某个表格的某个字段信息进行查询时,可以通过检索该字段在结构体数组中的逻辑地址来完成,字段所在地址可以通过下面的公式计算得到:fij=t1+t2+...+ti-1+(j-1)×b+s(1.1)其中fij代表第i个表格中的第j个字段所对应的逻辑地址,ti代表第i个表信息所占的存储空间大小,b代表表i中的每个字段所分配的空间大小,s代表该结构体数组的起始地址。中间格式文件的生成和解析采用xml技术进行实现,xml技术中的dom(documentobjectmodel,文档对象模型)能够允许开发人员任意访问xml树节点并能进行节点的添加、修改和删除,通过使用xml文件作为传输数据的中间媒介,把用户所保存的数据库建模信息生成xml文件,从而实现把来自任意数据源的参数信息转换为xml格式,然后再通过解析xml文件得到所需数据库建模信息,最后进行数据库模型的建立。下面结合具体实施例对本发明动态建库技术中的xml树的生成进行详细的说明。用户录入来自任意数据源的数据库模型信息,系统将这些数据库模型信息转换成为xml文件格式并保存,这些信息作为子树或者节点插入到整棵xml树中,循环插入所有的子树和节点之后保存该xml文件;步骤有(1)定义映射规则设计从结构体数据到xml格式数据的映射规则,主要包含下面几个方面:定义一个根节点,用data来标记;把数据库名称作为data的一个子节点,用database作标记,节点内容为数据库名称;把每个数据表作为data的一个子树,用table作标记,并为其插入一个子节点,用tablename作标记,节点内容为表的名称;把表中的每个行记录作为对应table的一个子树,用var标记;把每条记录的所需要的字段作为var的子节点,并用相应的字段名作标记,节点内容为各个字段所对应的记录值。(2)根据映射规则编写出相应的xml模板(3)加载xml模板,从记录集中取所需要的节点数据,把数据作为对应子树和节点循环插入到模板树中,直至把所有的数据加载完毕为止。映射规则的定义可以根据树的形式进行改变,当规则定义发生改变时,只需要修改对应的xml模版,就能生成不同表达形式的xml文件,增强了所生成的xml文件形式的灵活性。首先定义dom文档及元素变量,加载xml模板,然后判断子系统序号是否最大,如是则保存xml文件树的生成结束;如不是则加载子系统节点,看该系统是否有记录,如没有记录则返回判断子系统序号是否最大步骤,如有记录则取子系统变量作为子系统对应节点存入xml树,直到记录取玩返回判断子系统序号是否最大步骤,最终判断是为止,xml树生成结束。其中xml树的每个子系统节点包括的子节点主要有该子系统的序号、子系统所包含的浮点型、整型、字符型的子节点总数,该系统下所有的变量节点、每个变量节点包含的内容根据系统需要而定,通常包含变量名、变量类型、对应的反射内存地址、物理意义等等。。首先采用dom把所需要的信息从xml树中解析出来,将其转换成程序可以识别的数据结构,从而为建立数据库模型提供必需的参数信息;在解析的过程中,既可以把整棵树完全解析,也可以仅仅解析xml树中包含用户所需信息的节点,这可根据建模所需的信息而定;具体算法为:(1)树的结构定义一个结构体数组用来存放解析得到的数据;(2)加载整个xml数据模型树;(3)循环取出xml树中包含所需信息的节点并把节点信息取出转换为结构体类型的数据放在结构体数组中。首先定义dom文档及元素变量,加载xml树,然后判断子系统序号是否最大,如是则结束;如不是则计算该子系统节点总数,取子系统节点插入结构体数组对应位置,再判断节点数是否最大,如是返回判断子系统序号是否最大步骤,如不是返回到取子系统节点步骤,依次循环直至结束。根据解析xml文件所得到的仿真对象模型信息在后台数据库中建立仿真对象数据库型,该数据库模型是数据库的基表,它限定了仿真结构数据表的结构,所有数据库子库表都将从该基表继承与派生;数据库动态生成算法如下:(1)连接后台数据库管理系统;(2)采用检索树的技术从存放参数信息的结构体数组中取出所需要的信息;(3)编写建模所需的sql语句并把参数信息包含其中;(4)提交并执行sql语句,后台建立对应的数据库。开始并连接后台数据库,判断后台数据库中是否有基表,如有则删除,没有则读取模型信息,创建sql语句,提交并执行sql语句,后台建立对应的数据库。整个数据库建立中xml文件作为中间媒介实现了多种数据格式的转换与数据模型的生成,消除了对数据源的限制,当用仿真对象模型信息改变时数据库模型的信息也发生相应改变,所建立的数据库模型的结构也随之发生改变,数据库能够随着仿真对象数据模型的改变而改变,减少了人工建立数据库模型所存在的一系列问题,实现了数据库的动态生成,使得一个数据库可由多个仿真平台共享。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1