基于SQLite的煤矿数据库管理系统的设计与开发

2016-07-12 13:50王凯李慧娇隋易洁陈龙王向上
科技视界 2016年6期
关键词:煤矿

王凯 李慧娇 隋易洁 陈龙 王向上

【摘 要】目前,在煤矿信息化所采用的数据库大多为SQL Server或Oracle等大型数据库,其安装麻烦,操作复杂,并且维护成本较高,建立一个基于轻量级数据库越来越成为煤矿信息数据库的研究热点。本文介绍了SQLite数据库的基本结构,特点以及Sqlite3 API接口;对比了几种常用的数库;介绍了煤矿地测与安全数据库的内容与基本表结构,并基于sqlite3 API,用C++开发语言重新封装了煤矿地测数据库所需要各种类和接口,开发一个简单的数据库管理系统,然后进行数据库的测试,将测试好的数据库导入到三维矿山系统里进行展示。

【关键词】煤矿;SQLite;数据库开发

0 引言

进入21世纪后,煤矿的数字化、信息化已经成为我国煤矿产业的发展趋势,煤矿现代化信息管理系统在煤矿安全生产中发挥着举足轻重的作用,而其中的数据管理成为大型信息系统的核心。虽然Oracle、

DB2、SQL Server及MySQL等关系数据库系统是当今数据库应用的主流,但它们操作复杂、维护成本高,在一定程度上影响了这些大型关系数据库在煤矿现代化信息管理中的应用。SQLite数据库相对于上述大型关系数据库,具有小巧、开源、易用、高效等特点,它无需安装,维护方便,很大程度上减轻了煤矿技术人员的工作量。本文基于sqlite3 API重新封装了煤矿地测数据库所需要各种类和接口,开发一个简单的数据库管理系统,然后进行数据库的测试,将测试好的数据库导入到三维矿山系统里进行展示。

1 SQLite 数据库体系结构、特点及API

1.1 SQLite数据库体系结构

SQLite数据库是一种采用小型C库实现的嵌入式关系数据库管理体系。它提供对SQL92的大多数支持:多表、索引、事务、视图、触发和一系列的用户接口及驱动。SQLite数据库采用模块化设计,主要由内核(core)、SQL编译器(SQLCompiler)、后端(Backend)以及附件4个部分组成(Aeeessories)。

1.2 SQlite数据库的特点

SQlite3具有零配置,跨平台可移植性,并发访问等特点,是一种高效的内存数据库,它对内存和CPU的利用率更高,速度更快。基于Sqlite以上所述的优点,使用者可以在不安装大型数据库的前提下直接创建打开访问煤矿数据库。

1.3 Sqlite 3.0 API介绍

SQLite 3.0一共有83个API函数,此外还有一些数据结构和预定义(#defines)。最重要的有四个函数:sqlite3_open(),sqlite3_exec(),sqlite3_get_table()和sqlite3_close().要是想更好的控制数据库引擎的执行,可以使用提供的sqlite3_prepare()函数把SQL语句编译成字节码,然后在使用sqlite3_step()函数来执行编译后的字节码. sqlite3_column_开头的一组API函数用来获取查询结果集中的信息。

2 几种数据库的比较

目前主流的数据库有Oracle,SQL Server,SQLite等,其对比如下(表1):

从表1可以看出SQL Server或Oracle等大型数据库,其安装麻烦,操作复杂,并且维护成本较高,而SQLite数据库则无需安装,操作简单。因此,基于SQLite建立一个轻量级的煤矿信息数据库有着很大的优势。

3 煤矿地测信息数据库的设计与开发

3.1 煤矿地测信息介绍

煤矿地测信息是煤矿地质测量工作的集中反映,是煤矿生产和管理工作的重要依据。煤矿地测信息数据库系统是矿山信息系统的一个重要组成部分,是煤矿地质测绘管理和生产的核心。煤矿地测信息数据库系统中所容纳和处理的基础数据资料与基础图纸资料是矿山建设、生产、改造和编制Z长远发展规划等各项工作的基础,它按来源依据不同的时期分为资源勘探阶段的地测信息、建井阶段的地测信息和生产时期的地测信息。在资源勘探阶段,获取的地测信息主要是平面三角测量与钻探、物探等数据,在有露头出露的地区还有地表观测资料;在建井时期,主要为补充钻探与测量资料、井筒资料及井下巷道实际揭露的资料;生产时期的信息主要包括各种岩巷(石门、上下山)、煤巷揭露的资料、井下物探资料和井下施工的钻孔,以及相应的工程测量数据。为了满足现代化煤矿建设与生产的需要,所有这些数据资料都必须经过系统进行数字化与信息化。

本文通过研究煤矿基础地测信息数据的来源和结构特性,将其划分为巷道数据、煤层数据、钻孔数据、工作面数据、影像数据、断层数据、DEM数据、设备模型数据,针对不同类型的数据提出相应的设计策略(即设计相应表结构),对应的表结构分为巷道数据表、煤层数据表、钻孔数据表、工作面数据表、影像数据表、断层数据表、DEM数据表、设备模型数据表等等。

3.2 煤矿数据库的设计

3.2.1 概念设计

概念结构是一种能反映用户观点并更接近于现实世界的数据模型。概念结构设计阶段的主要任务是根据需求分析阶段形成的系统需求总体状况,准确模拟现实世界,确定反映现实世界的信息类别及信息之间的联系;把用户的信息需求抽象为独立于具体机器、独立于具体DBMS的信息结构。目前,描述概念结构最常用的方法是E-R(Entity-

Relationship datamodel,实体-联系)方法。图1是巷道数据的E-R图:

3.2.2 逻辑设计

逻辑结构是一种由具体的DBMS支持的数据模型,本次设计采用了时下主流的关系数据模型。关系数据库逻辑结构设计阶段的主要任务,就是按照一定的规则,将概念结构设计阶段设计好的独立于任何 DBMS数据模型的信息结构,转换为由已选用好的RDBMS(关系模型数据库管理系统)产品所支持的一组关系模式,并利用关系数据库的规范化理论对这组关系模式进行规范化设计和处理,在此基础上,还要根据数据库的完整性和一致性要求以及系统查询效率要求,对这组关系模式进行必要的优化处理,从而得出满足所有数据要求的关系数据模型,也即数据库的逻辑结构。

3.2.3 建立数据库

基于以上设计,本文采用的存储结构和方法对煤矿数据进行物理构建。本文的煤矿数据库文件名为test,其中包括巷道数据表,煤层数据表,钻孔数据表等 8 个数据表。本文选取具有代表性的数据表进行介绍。

(1)巷道数据表(表2)

(2)钻孔数据库(表3)

(3)煤层数据表(表4)

3.3 煤矿数据库的开发

3.3.1 煤矿数据库的封装

建立空间数据管理引擎,要对Sqlite数据库的操作进行二次封装,封装为适合对外使用的类和接口。其中设计到几个重要的类有:数据库管理器(CDatabaseManager)、数据库类(CDatasource)、数据集(CDataset)、记录(CFeature)、字段(CField);通过数据库管理器可以创建、打开、关闭数据库;通过数据库类可以创建数据集、向数据集里插入数据、查询数据集、更新数据集、删除数据集;通过数据集类可以获得里面的记录,还可以添加记录;通过记录可以获得里面的字段,添加删除字段等等。

3.3.2 编译Win32平台所需要的SQLite库文件

(1)下载源码

首先到http://www.sqlite.org/download.html网站下载最新的SQLite 源码文件。本文以(sqlite-source-3_6_23_1.zip和sqlite-amalgama-tion-3_6_23_1.zip)为例说明。

(2)创建项目工程

编程语言:Visual C++;

平台选择:Microsoft Visual Studio 2010;

应用程序类型选择:一个空Win32项目;将下载之后的文件解压放到 dll项目的工程目录之下。将其中的 tclsqlite. c和shell. c文件删除。

(3)修改相关代码和属性设置

修改项目属性中创建/使用预编译头:“不使用预编译头”;在预处理器中添加“SQLITE_ENA-BLE_COLUMN_MET ADAT A”;模块定义文件:“sqlite3. Def”。将fts3_taokenizer. c和fts3. c文件中的宏SQLIT E_EXT ENSION_INIT1修改为“extern const sqlite3_api_routines* sqlite3_

api;”。

(4)编译生成dll和lib文件

3.4 煤矿数据库管理系统的设计开发

本文以湖南省资江煤矿数据为基础,煤矿数据库管理系统的设计图如图2。

本文主要是根据湖南省资江煤矿设计了一个简单的数据库管理系统,界面搭建用的是Qt,实现了创建打开煤矿数据库;创建打开巷道、煤层、钻孔等数据集(表);插入巷道、煤层等数据;查询巷道煤层等数据信息;删除巷道煤层等数据等等。

4 总结

在煤矿现代化信息管理中应用SQLite API创建煤矿数据库对煤矿数据进行存储和基本处理可简化程序开发周期,方便数据存取,提高执行效率。同时也应充分考虑SQLite数据库自身的局限性,让其在最适当的地方发挥最大的作用。

【参考文献】

[1]贾睿涛.煤矿地测信息数据库管理系统的设计[D].西安:西安科技大学,2005.

[2]王佰顺,王广湖.论煤矿管理信息系统的建设与开发[J].中国煤炭,2000.

[3]文广超,邓寅生,余永强,张俊.煤矿信息管理系统的设计与实现[J].矿业研究与开发,2008.

[4]魏丹,龙熙华,宇亚卫.国外煤矿安全生产管理经验的启示[J].科技情报开发与经济,2007,17(23):213-214.

[5]马娟.矿山数据库管理系统的建立及应用[D].昆明:昆明理工大学,2003.

[6]张立伟.搞好煤矿安全生产的措施[J].科技信息,2007(17):225.

[7]罗云国,孙彦景,钱建生,等.基于SQLite的煤矿安全监控数据库研究[J].微计算机信息,2008,24(11-3):175-181.

[8]王京谦,万莅新.开源嵌入式数据库Berkeley和SQLite嵌入式数据库技术[J].单片机与嵌入式系统应用.

[责任编辑:王楠]

猜你喜欢
煤矿
煤矿矿井技术改造探讨
大型煤矿自动化控制系统的设计与应用
对我国煤矿岩巷掘进机械化配套的探讨
关于煤矿电网防雷探讨
煤矿越级跳闸危害与治理
煤矿掘进中深孔爆破技术的探讨
煤矿区环境污染及治理
煤矿开采工艺的探讨
瞬变电磁法在煤矿防治水中的应用
我是煤矿的孩子