国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SQLite的煤礦數(shù)據(jù)庫管理系統(tǒng)的設(shè)計與開發(fā)

2016-07-12 13:50:27王凱李慧嬌隋易潔陳龍王向上
科技視界 2016年6期
關(guān)鍵詞:煤礦

王凱 李慧嬌 隋易潔 陳龍 王向上

【摘 要】目前,在煤礦信息化所采用的數(shù)據(jù)庫大多為SQL Server或Oracle等大型數(shù)據(jù)庫,其安裝麻煩,操作復(fù)雜,并且維護(hù)成本較高,建立一個基于輕量級數(shù)據(jù)庫越來越成為煤礦信息數(shù)據(jù)庫的研究熱點(diǎn)。本文介紹了SQLite數(shù)據(jù)庫的基本結(jié)構(gòu),特點(diǎn)以及Sqlite3 API接口;對比了幾種常用的數(shù)庫;介紹了煤礦地測與安全數(shù)據(jù)庫的內(nèi)容與基本表結(jié)構(gòu),并基于sqlite3 API,用C++開發(fā)語言重新封裝了煤礦地測數(shù)據(jù)庫所需要各種類和接口,開發(fā)一個簡單的數(shù)據(jù)庫管理系統(tǒng),然后進(jìn)行數(shù)據(jù)庫的測試,將測試好的數(shù)據(jù)庫導(dǎo)入到三維礦山系統(tǒng)里進(jìn)行展示。

【關(guān)鍵詞】煤礦;SQLite;數(shù)據(jù)庫開發(fā)

0 引言

進(jìn)入21世紀(jì)后,煤礦的數(shù)字化、信息化已經(jīng)成為我國煤礦產(chǎn)業(yè)的發(fā)展趨勢,煤礦現(xiàn)代化信息管理系統(tǒng)在煤礦安全生產(chǎn)中發(fā)揮著舉足輕重的作用,而其中的數(shù)據(jù)管理成為大型信息系統(tǒng)的核心。雖然Oracle、

DB2、SQL Server及MySQL等關(guān)系數(shù)據(jù)庫系統(tǒng)是當(dāng)今數(shù)據(jù)庫應(yīng)用的主流,但它們操作復(fù)雜、維護(hù)成本高,在一定程度上影響了這些大型關(guān)系數(shù)據(jù)庫在煤礦現(xiàn)代化信息管理中的應(yīng)用。SQLite數(shù)據(jù)庫相對于上述大型關(guān)系數(shù)據(jù)庫,具有小巧、開源、易用、高效等特點(diǎn),它無需安裝,維護(hù)方便,很大程度上減輕了煤礦技術(shù)人員的工作量。本文基于sqlite3 API重新封裝了煤礦地測數(shù)據(jù)庫所需要各種類和接口,開發(fā)一個簡單的數(shù)據(jù)庫管理系統(tǒng),然后進(jìn)行數(shù)據(jù)庫的測試,將測試好的數(shù)據(jù)庫導(dǎo)入到三維礦山系統(tǒng)里進(jìn)行展示。

1 SQLite 數(shù)據(jù)庫體系結(jié)構(gòu)、特點(diǎn)及API

1.1 SQLite數(shù)據(jù)庫體系結(jié)構(gòu)

SQLite數(shù)據(jù)庫是一種采用小型C庫實現(xiàn)的嵌入式關(guān)系數(shù)據(jù)庫管理體系。它提供對SQL92的大多數(shù)支持:多表、索引、事務(wù)、視圖、觸發(fā)和一系列的用戶接口及驅(qū)動。SQLite數(shù)據(jù)庫采用模塊化設(shè)計,主要由內(nèi)核(core)、SQL編譯器(SQLCompiler)、后端(Backend)以及附件4個部分組成(Aeeessories)。

1.2 SQlite數(shù)據(jù)庫的特點(diǎn)

SQlite3具有零配置,跨平臺可移植性,并發(fā)訪問等特點(diǎn),是一種高效的內(nèi)存數(shù)據(jù)庫,它對內(nèi)存和CPU的利用率更高,速度更快?;赟qlite以上所述的優(yōu)點(diǎn),使用者可以在不安裝大型數(shù)據(jù)庫的前提下直接創(chuàng)建打開訪問煤礦數(shù)據(jù)庫。

1.3 Sqlite 3.0 API介紹

SQLite 3.0一共有83個API函數(shù),此外還有一些數(shù)據(jù)結(jié)構(gòu)和預(yù)定義(#defines)。最重要的有四個函數(shù):sqlite3_open(),sqlite3_exec(),sqlite3_get_table()和sqlite3_close().要是想更好的控制數(shù)據(jù)庫引擎的執(zhí)行,可以使用提供的sqlite3_prepare()函數(shù)把SQL語句編譯成字節(jié)碼,然后在使用sqlite3_step()函數(shù)來執(zhí)行編譯后的字節(jié)碼. sqlite3_column_開頭的一組API函數(shù)用來獲取查詢結(jié)果集中的信息。

2 幾種數(shù)據(jù)庫的比較

目前主流的數(shù)據(jù)庫有Oracle,SQL Server,SQLite等,其對比如下(表1):

從表1可以看出SQL Server或Oracle等大型數(shù)據(jù)庫,其安裝麻煩,操作復(fù)雜,并且維護(hù)成本較高,而SQLite數(shù)據(jù)庫則無需安裝,操作簡單。因此,基于SQLite建立一個輕量級的煤礦信息數(shù)據(jù)庫有著很大的優(yōu)勢。

3 煤礦地測信息數(shù)據(jù)庫的設(shè)計與開發(fā)

3.1 煤礦地測信息介紹

煤礦地測信息是煤礦地質(zhì)測量工作的集中反映,是煤礦生產(chǎn)和管理工作的重要依據(jù)。煤礦地測信息數(shù)據(jù)庫系統(tǒng)是礦山信息系統(tǒng)的一個重要組成部分,是煤礦地質(zhì)測繪管理和生產(chǎn)的核心。煤礦地測信息數(shù)據(jù)庫系統(tǒng)中所容納和處理的基礎(chǔ)數(shù)據(jù)資料與基礎(chǔ)圖紙資料是礦山建設(shè)、生產(chǎn)、改造和編制Z長遠(yuǎn)發(fā)展規(guī)劃等各項工作的基礎(chǔ),它按來源依據(jù)不同的時期分為資源勘探階段的地測信息、建井階段的地測信息和生產(chǎn)時期的地測信息。在資源勘探階段,獲取的地測信息主要是平面三角測量與鉆探、物探等數(shù)據(jù),在有露頭出露的地區(qū)還有地表觀測資料;在建井時期,主要為補(bǔ)充鉆探與測量資料、井筒資料及井下巷道實際揭露的資料;生產(chǎn)時期的信息主要包括各種巖巷(石門、上下山)、煤巷揭露的資料、井下物探資料和井下施工的鉆孔,以及相應(yīng)的工程測量數(shù)據(jù)。為了滿足現(xiàn)代化煤礦建設(shè)與生產(chǎn)的需要,所有這些數(shù)據(jù)資料都必須經(jīng)過系統(tǒng)進(jìn)行數(shù)字化與信息化。

本文通過研究煤礦基礎(chǔ)地測信息數(shù)據(jù)的來源和結(jié)構(gòu)特性,將其劃分為巷道數(shù)據(jù)、煤層數(shù)據(jù)、鉆孔數(shù)據(jù)、工作面數(shù)據(jù)、影像數(shù)據(jù)、斷層數(shù)據(jù)、DEM數(shù)據(jù)、設(shè)備模型數(shù)據(jù),針對不同類型的數(shù)據(jù)提出相應(yīng)的設(shè)計策略(即設(shè)計相應(yīng)表結(jié)構(gòu)),對應(yīng)的表結(jié)構(gòu)分為巷道數(shù)據(jù)表、煤層數(shù)據(jù)表、鉆孔數(shù)據(jù)表、工作面數(shù)據(jù)表、影像數(shù)據(jù)表、斷層數(shù)據(jù)表、DEM數(shù)據(jù)表、設(shè)備模型數(shù)據(jù)表等等。

3.2 煤礦數(shù)據(jù)庫的設(shè)計

3.2.1 概念設(shè)計

概念結(jié)構(gòu)是一種能反映用戶觀點(diǎn)并更接近于現(xiàn)實世界的數(shù)據(jù)模型。概念結(jié)構(gòu)設(shè)計階段的主要任務(wù)是根據(jù)需求分析階段形成的系統(tǒng)需求總體狀況,準(zhǔn)確模擬現(xiàn)實世界,確定反映現(xiàn)實世界的信息類別及信息之間的聯(lián)系;把用戶的信息需求抽象為獨(dú)立于具體機(jī)器、獨(dú)立于具體DBMS的信息結(jié)構(gòu)。目前,描述概念結(jié)構(gòu)最常用的方法是E-R(Entity-

Relationship datamodel,實體-聯(lián)系)方法。圖1是巷道數(shù)據(jù)的E-R圖:

3.2.2 邏輯設(shè)計

邏輯結(jié)構(gòu)是一種由具體的DBMS支持的數(shù)據(jù)模型,本次設(shè)計采用了時下主流的關(guān)系數(shù)據(jù)模型。關(guān)系數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計階段的主要任務(wù),就是按照一定的規(guī)則,將概念結(jié)構(gòu)設(shè)計階段設(shè)計好的獨(dú)立于任何 DBMS數(shù)據(jù)模型的信息結(jié)構(gòu),轉(zhuǎn)換為由已選用好的RDBMS(關(guān)系模型數(shù)據(jù)庫管理系統(tǒng))產(chǎn)品所支持的一組關(guān)系模式,并利用關(guān)系數(shù)據(jù)庫的規(guī)范化理論對這組關(guān)系模式進(jìn)行規(guī)范化設(shè)計和處理,在此基礎(chǔ)上,還要根據(jù)數(shù)據(jù)庫的完整性和一致性要求以及系統(tǒng)查詢效率要求,對這組關(guān)系模式進(jìn)行必要的優(yōu)化處理,從而得出滿足所有數(shù)據(jù)要求的關(guān)系數(shù)據(jù)模型,也即數(shù)據(jù)庫的邏輯結(jié)構(gòu)。

3.2.3 建立數(shù)據(jù)庫

基于以上設(shè)計,本文采用的存儲結(jié)構(gòu)和方法對煤礦數(shù)據(jù)進(jìn)行物理構(gòu)建。本文的煤礦數(shù)據(jù)庫文件名為test,其中包括巷道數(shù)據(jù)表,煤層數(shù)據(jù)表,鉆孔數(shù)據(jù)表等 8 個數(shù)據(jù)表。本文選取具有代表性的數(shù)據(jù)表進(jìn)行介紹。

(1)巷道數(shù)據(jù)表(表2)

(2)鉆孔數(shù)據(jù)庫(表3)

(3)煤層數(shù)據(jù)表(表4)

3.3 煤礦數(shù)據(jù)庫的開發(fā)

3.3.1 煤礦數(shù)據(jù)庫的封裝

建立空間數(shù)據(jù)管理引擎,要對Sqlite數(shù)據(jù)庫的操作進(jìn)行二次封裝,封裝為適合對外使用的類和接口。其中設(shè)計到幾個重要的類有:數(shù)據(jù)庫管理器(CDatabaseManager)、數(shù)據(jù)庫類(CDatasource)、數(shù)據(jù)集(CDataset)、記錄(CFeature)、字段(CField);通過數(shù)據(jù)庫管理器可以創(chuàng)建、打開、關(guān)閉數(shù)據(jù)庫;通過數(shù)據(jù)庫類可以創(chuàng)建數(shù)據(jù)集、向數(shù)據(jù)集里插入數(shù)據(jù)、查詢數(shù)據(jù)集、更新數(shù)據(jù)集、刪除數(shù)據(jù)集;通過數(shù)據(jù)集類可以獲得里面的記錄,還可以添加記錄;通過記錄可以獲得里面的字段,添加刪除字段等等。

3.3.2 編譯Win32平臺所需要的SQLite庫文件

(1)下載源碼

首先到http://www.sqlite.org/download.html網(wǎng)站下載最新的SQLite 源碼文件。本文以(sqlite-source-3_6_23_1.zip和sqlite-amalgama-tion-3_6_23_1.zip)為例說明。

(2)創(chuàng)建項目工程

編程語言:Visual C++;

平臺選擇:Microsoft Visual Studio 2010;

應(yīng)用程序類型選擇:一個空Win32項目;將下載之后的文件解壓放到 dll項目的工程目錄之下。將其中的 tclsqlite. c和shell. c文件刪除。

(3)修改相關(guān)代碼和屬性設(shè)置

修改項目屬性中創(chuàng)建/使用預(yù)編譯頭:“不使用預(yù)編譯頭”;在預(yù)處理器中添加“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 煤礦數(shù)據(jù)庫管理系統(tǒng)的設(shè)計開發(fā)

本文以湖南省資江煤礦數(shù)據(jù)為基礎(chǔ),煤礦數(shù)據(jù)庫管理系統(tǒng)的設(shè)計圖如圖2。

本文主要是根據(jù)湖南省資江煤礦設(shè)計了一個簡單的數(shù)據(jù)庫管理系統(tǒng),界面搭建用的是Qt,實現(xiàn)了創(chuàng)建打開煤礦數(shù)據(jù)庫;創(chuàng)建打開巷道、煤層、鉆孔等數(shù)據(jù)集(表);插入巷道、煤層等數(shù)據(jù);查詢巷道煤層等數(shù)據(jù)信息;刪除巷道煤層等數(shù)據(jù)等等。

4 總結(jié)

在煤礦現(xiàn)代化信息管理中應(yīng)用SQLite API創(chuàng)建煤礦數(shù)據(jù)庫對煤礦數(shù)據(jù)進(jìn)行存儲和基本處理可簡化程序開發(fā)周期,方便數(shù)據(jù)存取,提高執(zhí)行效率。同時也應(yīng)充分考慮SQLite數(shù)據(jù)庫自身的局限性,讓其在最適當(dāng)?shù)牡胤桨l(fā)揮最大的作用。

【參考文獻(xiàn)】

[1]賈睿濤.煤礦地測信息數(shù)據(jù)庫管理系統(tǒng)的設(shè)計[D].西安:西安科技大學(xué),2005.

[2]王佰順,王廣湖.論煤礦管理信息系統(tǒng)的建設(shè)與開發(fā)[J].中國煤炭,2000.

[3]文廣超,鄧寅生,余永強(qiáng),張俊.煤礦信息管理系統(tǒng)的設(shè)計與實現(xiàn)[J].礦業(yè)研究與開發(fā),2008.

[4]魏丹,龍熙華,宇亞衛(wèi).國外煤礦安全生產(chǎn)管理經(jīng)驗的啟示[J].科技情報開發(fā)與經(jīng)濟(jì),2007,17(23):213-214.

[5]馬娟.礦山數(shù)據(jù)庫管理系統(tǒng)的建立及應(yīng)用[D].昆明:昆明理工大學(xué),2003.

[6]張立偉.搞好煤礦安全生產(chǎn)的措施[J].科技信息,2007(17):225.

[7]羅云國,孫彥景,錢建生,等.基于SQLite的煤礦安全監(jiān)控數(shù)據(jù)庫研究[J].微計算機(jī)信息,2008,24(11-3):175-181.

[8]王京謙,萬蒞新.開源嵌入式數(shù)據(jù)庫Berkeley和SQLite嵌入式數(shù)據(jù)庫技術(shù)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用.

[責(zé)任編輯:王楠]

猜你喜歡
煤礦
煤礦礦井技術(shù)改造探討
大型煤礦自動化控制系統(tǒng)的設(shè)計與應(yīng)用
上半年確定關(guān)閉煤礦名單513處
去年95.6%煤礦實現(xiàn)“零死亡”
對我國煤礦巖巷掘進(jìn)機(jī)械化配套的探討
河南科技(2014年11期)2014-02-27 14:17:24
關(guān)于煤礦電網(wǎng)防雷探討
河南科技(2014年11期)2014-02-27 14:09:47
煤礦越級跳閘危害與治理
河南科技(2014年10期)2014-02-27 14:09:19
煤礦掘進(jìn)中深孔爆破技術(shù)的探討
河南科技(2014年5期)2014-02-27 14:08:27
煤礦區(qū)環(huán)境污染及治理
河南科技(2014年8期)2014-02-27 14:08:07
煤礦開采工藝的探討
河南科技(2014年8期)2014-02-27 14:07:44
马尔康县| 宁都县| 建湖县| 兴义市| 新泰市| 扬州市| 德昌县| 沁源县| 古田县| 茂名市| 潞西市| 满城县| 惠来县| 杂多县| 衡水市| 垦利县| 枣庄市| 嘉禾县| 边坝县| 老河口市| 海南省| 巴塘县| 宽甸| 融水| 蒲江县| 宁远县| 武义县| 徐水县| 华坪县| 方正县| 海原县| 广丰县| 怀远县| 措美县| 淳安县| 富顺县| 临城县| 长垣县| 濮阳市| 绥滨县| 巴里|