• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

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

      0 引言

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

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

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

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

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

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

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

      1.3 Sqlite 3.0 API介紹

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

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

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

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

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

      3.1 煤礦地測(cè)信息介紹

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

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

      3.2.1 概念設(shè)計(jì)

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

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

      3.2.2 邏輯設(shè)計(jì)

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

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

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

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

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

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

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

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

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

      3.3.2 編譯Win32平臺(tái)所需要的SQLite庫(kù)文件

      (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)為例說(shuō)明。

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

      編程語(yǔ)言:Visual C++;

      平臺(tái)選擇:Microsoft Visual Studio 2010;

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

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

      修改項(xiàng)目屬性中創(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ù)庫(kù)管理系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)

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

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

      4 總結(jié)

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

      【參考文獻(xiàn)】

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

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

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

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

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

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

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

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

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

      猜你喜歡
      煤礦
      煤礦礦井技術(shù)改造探討
      大型煤礦自動(dòng)化控制系統(tǒng)的設(shè)計(jì)與應(yīng)用
      上半年確定關(guān)閉煤礦名單513處
      去年95.6%煤礦實(shí)現(xiàn)“零死亡”
      對(duì)我國(guó)煤礦巖巷掘進(jìn)機(jī)械化配套的探討
      河南科技(2014年11期)2014-02-27 14:17:24
      關(guān)于煤礦電網(wǎng)防雷探討
      河南科技(2014年11期)2014-02-27 14:09:47
      煤礦越級(jí)跳閘危害與治理
      河南科技(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
      煤礦開(kāi)采工藝的探討
      河南科技(2014年8期)2014-02-27 14:07:44
      名山县| 望江县| 江孜县| 河源市| 衡阳县| 斗六市| 兖州市| 通辽市| 融水| 格尔木市| 黎川县| 丰台区| 宣威市| 封丘县| 定安县| 榆林市| 金山区| 高州市| 阳新县| 汉川市| 德兴市| 乌兰县| 宣武区| 屯昌县| 凌海市| 枞阳县| 攀枝花市| 昌都县| 定西市| 嘉黎县| 安西县| 大邑县| 茂名市| 湟源县| 宜兰市| 西和县| 盐亭县| 北流市| 乌海市| 禄丰县| 石狮市|