一种电力自动化系统实时数据库管理系统及其实现方法
技术领域
本发明属于电力系统自动化控制技术领域,尤其是一种电力自动化系统实时数据库管理系统及其实现方法。
背景技术
随着计算机技术以及自动控制技术的发展,在电力自动化系统中,对采集到的各种数据的实时性以及可靠性要求越来越高。传统的商业数据库虽然在数据管理上具有很多优点,但是对控制系统中的数据的实时性却不能满足要求,因此实时数据库系统成为自动化系统开发中的重要内容。
目前国内有些公司开发了自己的实时数据库系统,如四方继保自动化有限公司公开了一种专利号为200310101616.x的变电站信息接入实时数据库,及专利号为200310103518.x的分布式保护信息处理系统实时数据库。虽然这些实时数据库都一定程度上满足其业务领域的需求,但是都存在着一些不足之处,主要表现在以下几个方面:1、不具备跨平台特性,不能同时支持Unix、Windows等操作系统;2、数据库模型局限在一定的业务领域,扩展性较差,不能全面适用于电力自动化领域;3、缺少必要的数据库管理工具,如数据的导入导出工具、数据的在线维护工具等;4、数据库接口功能较差,如缺少与商用数据库接口的功能,不能将实时数据高效的存入商用数据库。
发明内容
本发明的目的在于提供一种电力自动化系统实时数据库管理系统及其实现方法,以提高电力自动化系统数据库系统的实时性。
本发明的另一个目的在于提供一种电力自动化系统实时数据库管理系统及其实现方法,满足电力自动化系统对数据库系统通用性和跨平台特性的要求。
为实现上述目的,本发明采取的总体方案是:一种电力自动化系统实时数据库管理系统,该系统包括下述模块:
操作系统抽象层模块,该模块位于最底层,它与连接数据库文件子系统的应用程序接口连接,用于支持数据库的进程调度和管理;
数据库应用程序接口,数据库应用程序接口一端连接操作系统抽象层,一端连接数据库文件子系统和数据库创建子系统,用于数据操作、数据存储、事务处理;
数据库文件子系统,该子系统与数据库创建子系统、数据导入导出子系统相连,它包括数据库定义文件、应用系统定义文件、数据库数据模式文件、数据库克隆文件、历史数据存储文件,数据库定义文件定义了数据库的数据结构,包括表、字段等各种对象的属性;应用系统定义文件定义了应用程序与所调用的数据库之间的调用关系;数据模式文件是前述两种文件通过数据库创建子系统编译后生成的二进制文件;数据库复制文件是数据库创建子系统根据数据模式文件创建的应用系统的数据库模型文件;历史数据存储文件包含了数据库的历史数据;
数据库创建子系统,该子系统与数据库文件子系统相连,有可视化界面,能根据数据库定义文件创建数据库;
数据导入导出子系统,该子系统能在实时数据库中的数据和各种格式的数据文件之间实现导入导出,并能导入到商用数据库中;
上述所述电力自动化系统实时数据库管理系统还包括数据备份子系统,它与数据库文件子系统和数据库创建子系统相连接,用于备份或者恢复实时数据库:
上述所述电力自动化系统实时数据库管理系统还包括数据库维护子系统,它与数据库文件子系统连接,用于在线维护数据库中的各种记录;
上述所述电力自动化系统实时数据库管理系统还包括数据库管理服务子系统,该子系统同数据库文件子系统连接,用于数据库文件的内存映射、加载、卸载;
上述所述电力自动化系统实时数据库管理系统还包括代码生成子系统,它根据数据库定义文件生成程序所需的代码。
上述所述操作系统抽象层模块封装了Unix、Windwos操作系统专有接口,用于屏蔽数据库管理系统对操作系统的依赖性。
上述所述数据库应用程序接口采用统一的格式,统一的数据格式是指数据均采用8位数据。
上述所述数据库文件子系统在内存中分区存储。
一种实现实时数据库管理系统的方法,包括以下步骤:
步骤一、计算机将用数据库定义语言定义的数据库模型文件存入到存储器分区中;
步骤二、判断是否要创建数据库,是则用数据库创建子系统创建数据库,否则转入步骤五;
步骤三、判断是否要加载数据库,是则通过数据库管理服务子系统加载数据库,将数据库模型映射到内存,否则转步骤五;
步骤四、数据备份子系统将备份数据导入实时数据库中;
步骤五,判断数据库调用完否,完则结束,否则转步骤一。
上述所述实时数据库管理系统的实现方法,步骤四还包括利用数据库维护子系统,操作管理数据的步骤。
上述所述实时数据库管理系统的实现方法,步骤四还包括利用数据同步工具,抽样数据并存入商用数据库的步骤。
上述所述实时数据库管理系统的实现方法,步骤三还包括应用程序如果访问数据库,代码生成子系统生成访问数据库程序所需代码,并调用应用程序接口访问数据库的步骤。
上述所述步骤一中的数据库定义语言具体包括数据库各种对象的定义语法,包括分区、表以及字段。
上述所述步骤二中的用数据库创建子系统创建数据库进一步包括以下步骤:
步骤21、利用数据库创建子系统编译数据库定义文件生成二进制的数据模式文件;
步骤22、利用数据库创建子系统编译应用系统定义文件生成二进制的数据模式文件;
步骤23、定制应用程序运行环境,包括所属应用系统族应用系统名称;
步骤24、根据数据模式文件,创建数据库复制文件。
为了满足数据实时性要求,本发明采用内存映射技术以及内存数据库分区的技术提高数据库访问效率。在数据库加载时,将磁盘上的数据库文件映射至内存中,大大提高了数据库访问效率;数据更新是按照分区为单位进行的,因此把需要同时修改的数据放在同一个分区中,修改完毕后一次更新,可以提高数据更新效率;对于实时性要求很高的数据,可以采用把分区锁定在物理内存中的方法来提高数据存取效率;分区可以作为数据同步复制的管理单位。此外,为了使数据库系统具备通用性和跨平台的特性,本发明提供了一套完善的数据库结构定义语言,利用定义语言,可灵活定制电力控制领域各种数据模型,如变电站数据模型、电厂数据模型等等,从而不必局限在某一个业务领域。系统设计实现过程中,内部封装了对Unix、Windows等操作系统API的调用,从而使系统可运行在多种操作系统之上,具有跨平台特性。利用上述子系统协同工作,实现了可以与商用数据库系统相媲美的强大的数据管理功能,如数据存取、事务处理、数据复制、备份与恢复等。
附图说明
图1本发明的系统构成图;
图2本发明的主流程图;
图3创建实时数据库系统流程图;
图4是实时数据库与商用数据库同步流程图;
图5是实时数据库编程接口调用过程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
请参阅图1,电力自动化系统实时数据库管理系统,包括下述模块:
操作系统抽象层模块,该模块位于最底层,它与连接数据库子系统的应用程序接口连接,用于支持数据库的跨平台特性,内部封装了对Unix、Windows等操作系统应用程序接口(AP1)的调用。具体实现方式是对不同操作系统的API进行抽象封装,形成统一格式,独立于操作系统的通用API。封装内容包括:文件操作API,共享内存管理API,操作系统内核信号操作API,内存操作API,环境变量操作API。本发明所有模块对操作系统的调用操作都通过操作系统抽象层提供的API实现,从而使系统可运行在多种操作系统之上,具有跨平台特性。
数据库应用程序接口,数据库应用程序接口一端连接操作系统抽象层,一端连接数据库文件子系统和数据库创建子系统,用于数据操作、数据存储、事务处理等功能,数据库应用程序接口采用统一的格式,数据采用8位(bit)数据。
数据库文件子系统,该子系统与数据库创建子系统、数据导入导出子系统相连,它包括用于定义数据库数据结构的定义文件、定制数据库与具体应用系统之间关系的模式文件、数据库历史数据存储文件存储模块。在数据库定义文件中,定义了各种数据库对象的属性信息,包括分区、字段、表。在实际数据库创建时,分区根据包含在本分区上的字段种类以及其最大记录数计算大小,然后在内存中动态创建相应分区。
数据库创建子系统,该子系统与数据库文件子系统相连,有可视化界面,能根据数据库定义文件创建数据库。
数据导入导出子系统,该子系统能在实时数据库中的数据和各种格式的数据文件之间实现导入导出,并能导入到商用数据库中。
数据备份子系统,它与数据库文件子系统和数据库创建子系统相连接,用于备份或者恢复实时数据库。
数据库维护子系统,它与数据库文件子系统相连,用于在线维护数据库中的各种记录。
数据库管理服务子系统,该子系统同数据库文件子系统连接,用于数据库文件的内存映射、加载、卸载;
代码生成子系统,它根据数据库定义文件生成程序所需的代码。
参阅图2本发明的主流程图。实现上述实时数据库管理系统的方法,首先计算机将用数据库定义语言定义的数据库模型文件存入到存储器分区中,在此步骤要先定义数据库定义文件。在进行实时数据库开发时,需要根据实时数据库定义语言(DBDL)定制数据库定义文件以及应用程序与数据库之间关系的模式文件。数据库定义语言包括创建数据库、数据库版本、创建应用程序、引用数据库、创建数据库分区。
然后,判断是否要创建数据库,是则用数据库创建子系统创建数据库。参阅图3,创建实时数据库示意图。基于数据库定义文件,利用实时数据库系统提供的各种系统模块,可以快速构建应用所需的实时数据库:具体包括基于数据库定义语言定义数据库定义文件;利用数据库创建系统编译数据库定义文件,创建数据模式文件以及数据库克隆文件。
之后,判断是否要加载数据库,是则通过实时数据库管理服务子系统加载数据库,将数据库模型映射到内存,否则转步骤五;
接下来,数据备份子系统将备份数据导入实时数据库中;
再下来,实时数据库与Oracle数据库的数据同步。请参阅图4。利用系统的数据同步服务,可以将实时数据库中的数据进行采样,然后同步导入到Oracle数据库中。除了此在线同步方式之外,利用数据导入导出子系统,也可以将实时数据首先导出到数据文件,然后再进一步导入到Oracle数据库中。
基于实时数据库接口调用过程是:利用系统提供的API,可开发各种数据库应用程序。系统提供由API。利用这些API进行开发的过程如下:
1、基于数据库定义文件,利用代码生成系统生成系统代码文件
2、基于生成的代码文件并调用数据库编程接口库,编写数据库应用程序,
3、编译链接生成最终的应用程序。
最后,判断数据库调用完否,完则结束,否则继续判断是否要创建数据库并继续。
最后所应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。