• 
    

    
    

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

      ?

      MySQL在凸度儀系統(tǒng)中的應(yīng)用

      2011-07-30 09:30:34郭肖靜苗積臣吳志芳
      原子能科學(xué)技術(shù) 2011年10期
      關(guān)鍵詞:凸度檢索管理系統(tǒng)

      郭肖靜,苗積臣,吳志芳

      (清華大學(xué) 核能與新能源技術(shù)研究院,北京 100084)

      在凸度儀系統(tǒng)中,檢測(cè)鋼板過程中會(huì)產(chǎn)生海量數(shù)據(jù)。對(duì)這些歷史數(shù)據(jù),系統(tǒng)需進(jìn)行存儲(chǔ)、查詢、檢索、顯示等功能。為此,必須使用數(shù)據(jù)庫管理軟件來完成以上功能。目前,市場(chǎng)上主要的數(shù)據(jù)庫管理軟件包括SQL Server、MySQL、DB2、Oracle等,其中,DB2和 Oracle均為大型商用數(shù)據(jù)庫,需支付高額的授權(quán)費(fèi)用才可使用,且需專門的配置維護(hù),開發(fā)上有諸多不便。SQL Server是微軟公司提供的數(shù)據(jù)庫軟件,只能在 Windows操作系統(tǒng)中使用,不具有跨平臺(tái)的能力。MySQL是當(dāng)前最流行的開放源碼SQL數(shù)據(jù)庫管理系統(tǒng),它由MySQL AB公司開發(fā)、發(fā)布并支持,具有多平臺(tái)支持、靈活架構(gòu)、免費(fèi)使用等特點(diǎn)。且當(dāng)前很多網(wǎng)站均采用MySQL作為其后臺(tái)數(shù)據(jù)庫支撐,其穩(wěn)定性和可靠性得到了充分驗(yàn)證。因此,在凸度儀系統(tǒng)中,擬使用MySQL對(duì)檢測(cè)的鋼板數(shù)據(jù)進(jìn)行管理,完成系統(tǒng)的功能。

      1 MySQL概述

      MySQL是當(dāng)前應(yīng)用最為廣泛的數(shù)據(jù)庫管理系統(tǒng)之一,具有強(qiáng)大的跨平臺(tái)能力(可運(yùn)行于Windows、Linux、Unix等操作系統(tǒng)上)和豐富的開發(fā)接口(可與PHP、VC、VB、Delphi等語言實(shí)現(xiàn)接口,便于嵌入到多種應(yīng)用中)。MySQL具有快速、可靠和易于使用的特點(diǎn),當(dāng)前使用Linux+PHP+Apache+MySQL已成為中小型網(wǎng)站提供Web服務(wù)的主流模式。此外,MySQL還是一種開放源代碼的軟件,非常便于研究和開發(fā)[1]。

      MySQL采用客戶端/服務(wù)器模式,由支持不同后端的1個(gè)多線程SQL服務(wù)器、數(shù)種不同的客戶端程序和庫、眾多管理工具和廣泛的應(yīng)用編程接口API組成。此外,MySQL還支持多種數(shù)據(jù)類型,包括帶符號(hào)/無符號(hào)整數(shù),1、2、3、4、8 字 節(jié) 長(zhǎng),F(xiàn)LOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、SET、ENUM等,便于各種數(shù)據(jù)高效率存儲(chǔ)[2]。

      綜合以上特點(diǎn),在凸度儀系統(tǒng)中,選擇MySQL作為數(shù)據(jù)庫管理系統(tǒng),與凸度儀其他模塊配合,實(shí)現(xiàn)完整的數(shù)據(jù)存儲(chǔ)、檢索、排序、顯示等功能,完成設(shè)計(jì)要求。

      2 凸度儀系統(tǒng)中數(shù)據(jù)庫的設(shè)計(jì)

      2.1 凸度儀系統(tǒng)簡(jiǎn)介

      凸度儀系統(tǒng)的結(jié)構(gòu)如圖1所示。

      圖1 凸度儀系統(tǒng)結(jié)構(gòu)Fig.1 Structure of instantaneous profile gauge system

      在圖1中,采集模塊采集到原始的檢測(cè)數(shù)據(jù),交給運(yùn)算模塊進(jìn)行處理;運(yùn)算模塊通過差值、補(bǔ)償?shù)确椒?,?jì)算鋼板橫斷面上每個(gè)采樣點(diǎn)的厚度、溫度等信息,并將這些數(shù)據(jù)發(fā)送到顯示模塊;顯示模塊將這些數(shù)據(jù)進(jìn)行實(shí)時(shí)顯示,并進(jìn)一步計(jì)算凸度、楔度等相關(guān)數(shù)據(jù),同時(shí)還將這些數(shù)據(jù)按一定格式存儲(chǔ)到數(shù)據(jù)庫中,且能按用戶要求,對(duì)這些歷史數(shù)據(jù)進(jìn)行檢索、排序和顯示。

      2.2 功能需求分析

      由于數(shù)據(jù)庫只與顯示模塊存在接口,因此,只需分析顯示模塊對(duì)數(shù)據(jù)庫的功能需求。

      1)數(shù)據(jù)存儲(chǔ)

      當(dāng)顯示模塊收到運(yùn)算模塊發(fā)送的鋼板數(shù)據(jù)后,應(yīng)實(shí)時(shí)地將這些數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中。在鋼板掃描過程中,對(duì)數(shù)據(jù)庫只有存儲(chǔ)操作,沒有檢索和讀取操作。

      2)數(shù)據(jù)檢索

      在實(shí)際的應(yīng)用環(huán)境中,將檢測(cè)大量鋼板,得到海量數(shù)據(jù),如何快速檢索到所需的鋼板數(shù)據(jù)成為一重要問題。在本系統(tǒng)中,使用一些標(biāo)記性參數(shù)作為檢索條件,如檢測(cè)時(shí)間、鋼板類型、編號(hào)、鋼板厚度、鋼板凸度等指標(biāo),且這些檢索條件可進(jìn)一步進(jìn)行邏輯組合,如與、或等操作。數(shù)據(jù)庫應(yīng)將滿足檢索條件的所有鋼板編號(hào)返回給顯示模塊,用戶在其中選定某個(gè)鋼板后,數(shù)據(jù)庫再將該鋼板的完整數(shù)據(jù)傳送給顯示模塊。

      3)數(shù)據(jù)讀取和顯示

      當(dāng)用戶選定某個(gè)鋼板后,數(shù)據(jù)庫應(yīng)將該鋼板相關(guān)的所有數(shù)據(jù)都發(fā)送到顯示模塊中,顯示模塊應(yīng)根據(jù)需要,對(duì)整個(gè)鋼板信息或局部信息進(jìn)行顯示。在顯示過程中,不再與數(shù)據(jù)庫發(fā)生數(shù)據(jù)交換。

      2.3 數(shù)據(jù)類型分析

      根據(jù)上面的需求,將存儲(chǔ)在數(shù)據(jù)庫中的數(shù)據(jù)分為3類。1)實(shí)際檢測(cè)數(shù)據(jù),包括鋼板的厚度、寬度、溫度、傾角等實(shí)際檢測(cè)到的數(shù)據(jù)。這些數(shù)據(jù)的數(shù)據(jù)量極大,代表鋼板的原始情況,一般只用于顯示,而不用于檢索。2)后處理數(shù)據(jù),包括凸度、楔度等數(shù)據(jù),是由實(shí)際檢測(cè)數(shù)據(jù)經(jīng)某些運(yùn)算后得到的指標(biāo),用來表示鋼板的檢測(cè)結(jié)果。這些數(shù)據(jù)直觀反映了被檢鋼板是否合格,既用于顯示,也用于檢索。3)鋼板特征數(shù)據(jù),包括檢測(cè)時(shí)間、鋼板編號(hào)、金屬類型、標(biāo)稱值等。這些數(shù)據(jù)表示1塊鋼板的整體屬性,既用于顯示,也用于索引。

      2.4 表的設(shè)計(jì)

      數(shù)據(jù)庫設(shè)計(jì)的核心是表的設(shè)計(jì)。數(shù)據(jù)庫由若干個(gè)表組成,表中每1行代表1組記錄,每1列代表1類數(shù)據(jù)。數(shù)據(jù)庫的表和表之間可有相同的列,不同表的數(shù)據(jù)通過這相同的列來實(shí)現(xiàn)關(guān)聯(lián),從而獲得對(duì)數(shù)據(jù)的完整訪問[3]。

      在本系統(tǒng)中,構(gòu)造了2個(gè)表:1個(gè)用于存儲(chǔ)實(shí)際檢測(cè)數(shù)據(jù),命名為PlateData;1個(gè)存儲(chǔ)鋼板特征數(shù)據(jù)和后處理數(shù)據(jù),命名為PlateKey。兩個(gè)表的具體構(gòu)造列于表1、2。

      表1 PlateData表的構(gòu)造Table 1 Structure of PlateData table

      表2 PlateKey表的構(gòu)造Table 2 Structure of PlateKey table

      在表1中,每個(gè)鋼板有若干個(gè)橫斷面,每個(gè)橫斷面有N個(gè)探測(cè)點(diǎn)(本程序中N為256)。表中每1行表示1個(gè)橫斷面上的所有數(shù)據(jù),具有相同鋼板編號(hào)的所有行表示1個(gè)鋼板的完整數(shù)據(jù)。該表只用于數(shù)據(jù)的存儲(chǔ)和讀取,不用于檢索。

      在表2中,每1行代表1個(gè)鋼板的信息,其中前6項(xiàng)是鋼板的特征數(shù)據(jù),后2項(xiàng)是鋼板的實(shí)測(cè)數(shù)據(jù)。該表主要用于數(shù)據(jù)的檢索和排序。

      表1和表2中共有的列項(xiàng)目是鋼板編號(hào),這也是本系統(tǒng)使用的數(shù)據(jù)庫的主鍵。通過該項(xiàng)目即可實(shí)現(xiàn)所有數(shù)據(jù)的關(guān)聯(lián)。

      2.5 數(shù)據(jù)庫操作

      1)數(shù)據(jù)庫連接與初始化

      當(dāng)凸度儀系統(tǒng)啟動(dòng)后,應(yīng)連接到數(shù)據(jù)庫管理系統(tǒng),并選擇所需使用的數(shù)據(jù)庫。

      2)數(shù)據(jù)的存儲(chǔ)

      當(dāng)鋼板開始檢測(cè)時(shí),運(yùn)算模塊先傳送1幀起始幀,表明開始1個(gè)新鋼板的檢測(cè),該幀中應(yīng)包含鋼板編號(hào)、合金類型、標(biāo)稱厚度、標(biāo)稱凸度等鋼板特征數(shù)據(jù)。顯示模塊將這些數(shù)據(jù)保存,但暫不寫入數(shù)據(jù)庫中。而后,運(yùn)算模塊將每個(gè)橫斷面的數(shù)據(jù)打包成1幀發(fā)送過來,顯示模塊根據(jù)這些數(shù)據(jù)計(jì)算凸度、楔度等指標(biāo),并按表1的格式,將數(shù)據(jù)寫入數(shù)據(jù)庫中。當(dāng)鋼板檢測(cè)結(jié)束后,運(yùn)算模塊會(huì)發(fā)送1個(gè)結(jié)束幀,此時(shí)顯示模塊將前面收到的鋼板特征數(shù)據(jù)和計(jì)算得到的凸度、楔度等數(shù)據(jù)按表2的格式寫入數(shù)據(jù)庫中。

      3)數(shù)據(jù)的檢索

      數(shù)據(jù)的檢索在PlateKey表中進(jìn)行,根據(jù)用戶給出的檢索條件,找到表中滿足條件的若干行。

      4)數(shù)據(jù)的讀取

      當(dāng)用戶具體選擇了某1行記錄后,獲取該行的PlateNum值,并從PlateData表中提取數(shù)據(jù)。

      3 數(shù)據(jù)庫的編程實(shí)現(xiàn)

      3.1 C語言接口函數(shù)

      在本凸度儀系統(tǒng)中,使用Visual C++作為編程語言。因此要和數(shù)據(jù)庫實(shí)現(xiàn)通信,必須使用MySQL提供的C++編程接口。在MySQL中,提供了 mysql.h、libmysql.lib和libmysql.dll。在C或C++文件中,只要包含“mysql.h”頭文件,即可使用libmysql.lib和libmysql.dll中的函數(shù)[4]。在本系統(tǒng)的實(shí)現(xiàn)中,主要使用了如下5個(gè)函數(shù)。

      1)MYSQL *mysql_init(MYSQL *mysql)

      該函數(shù)用于初始化mysql結(jié)構(gòu),為后面的函數(shù)操作提供指針。

      2)MYSQL * mysql_real_connect(MYSQL*mysql,const char*host,const char*user,const char*passwd,const char*db,unsigned int port,const char*unix_socket,unsigned long client_flag)

      該函數(shù)用于應(yīng)用程序與數(shù)據(jù)庫管理系統(tǒng)的連接以及數(shù)據(jù)庫的選擇。在本系統(tǒng)中,當(dāng)系統(tǒng)啟動(dòng)時(shí),調(diào)用該函數(shù)。

      3)int mysql_real_query(MYSQL *mysql,const char*stmt_str,unsigned long length)

      該函數(shù)用于向數(shù)據(jù)庫發(fā)送1條SQL指令。系統(tǒng)中,數(shù)據(jù)的存儲(chǔ)、查詢、讀取等指令均通過該函數(shù)傳遞到數(shù)據(jù)庫管理系統(tǒng)中。

      4)MYSQL_RES *mysql_use_result(MYSQL*mysql)

      該函數(shù)把數(shù)據(jù)庫相應(yīng)SQL指令的輸出返回到應(yīng)用程序中。通過該指令,即可得到數(shù)據(jù)庫查詢和讀取的結(jié)果。

      5)void mysql_close(MYSQL*mysql)

      該函數(shù)用于關(guān)閉數(shù)據(jù)庫。在本系統(tǒng)中,退出時(shí)要調(diào)用該函數(shù)。

      3.2 功能測(cè)試

      根據(jù)上述分析,利用MySQL的C API,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的訪問。使用 Microsoft Visual C++進(jìn)行開發(fā),并為數(shù)據(jù)庫檢索和讀取單獨(dú)設(shè)計(jì)了1個(gè)對(duì)話框,如圖2所示。在圖2左上方,列出了若干檢索條件,可進(jìn)行與、或等檢索;下方是數(shù)據(jù)庫中滿足條件的所有記錄。當(dāng)選定其中某1個(gè)鋼板時(shí),在右側(cè)即顯示鋼板整體的厚度分布,以及橫縱兩個(gè)方向的厚度分布。從圖中可看出,數(shù)據(jù)庫的存儲(chǔ)、檢索和讀取功能均已實(shí)現(xiàn),滿足系統(tǒng)設(shè)計(jì)的要求。

      圖2 數(shù)據(jù)庫系統(tǒng)測(cè)試圖Fig.2 Dialog of database test

      4 結(jié)論

      本文介紹了凸度儀系統(tǒng)中數(shù)據(jù)庫管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。選擇MySQL數(shù)據(jù)庫,分析了凸度儀系統(tǒng)對(duì)數(shù)據(jù)庫應(yīng)用的需求,從而提取了操作數(shù)據(jù)并設(shè)計(jì)了合理的表,保證了數(shù)據(jù)存儲(chǔ)的完整性和檢索的高效性。此外,分析了應(yīng)用中所需的SQL指令及MySQL提供的C API中相關(guān)的函數(shù),從而在使用Visual C++編程的凸度儀系統(tǒng)中,成功地嵌入了MySQL數(shù)據(jù)庫,實(shí)現(xiàn)了數(shù)據(jù)的存儲(chǔ)、檢索和讀取等功能。通過實(shí)際測(cè)試,達(dá)到了系統(tǒng)設(shè)計(jì)的要求。

      [1]袁淵,曾文火.MySQL數(shù)據(jù)庫接口的VC實(shí)現(xiàn)與應(yīng)用[J].華東船舶工業(yè)學(xué)院學(xué)報(bào):自然科學(xué)版,2002,16(5):41-45.YUAN Yuan,ZENG Wenhuo.Realization and application of MySQL database interfaces based on Visual C++[J].Journal of East China Shipbuilding Institute: Natural Science Edition,2002,16(5):41-45(in Chinese).

      [2]薛軍超.MySQL網(wǎng)絡(luò)數(shù)據(jù)庫開發(fā)[M].北京:人民郵電出版社,2001.

      [3]蘭旭輝,熊家軍,鄧剛.基于MySQL的應(yīng)用程序設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,25(3):442-443,468.LAN Xuhui,XIONG Jiajun,DENG Gang.Development of application program based on MySQL[J].Computer Engineering and Design,2004,25(3):442-443,468(in Chinese).

      [4]Oracle.MySQL 5.1reference manual[S/OL].Redwood City,California:Oracle USA,2003[2011-2-25].http:∥dev.mysql.com/doc/refman/5.1/en/.

      猜你喜歡
      凸度檢索管理系統(tǒng)
      利用軸線交錯(cuò)修整砂輪凸度曲線的方法探討
      哈爾濱軸承(2022年1期)2022-05-23 13:12:58
      基于James的院內(nèi)郵件管理系統(tǒng)的實(shí)現(xiàn)
      3800mm中板軋機(jī)變凸度工作輥輥形研究①
      基于精軋平坦度優(yōu)先的凸度分配策略
      異步凸度軋制對(duì)AZ31鎂合金板坯損傷抑制分析
      2019年第4-6期便捷檢索目錄
      基于LED聯(lián)動(dòng)顯示的違停管理系統(tǒng)
      海盾壓載水管理系統(tǒng)
      專利檢索中“語義”的表現(xiàn)
      專利代理(2016年1期)2016-05-17 06:14:36
      基于RFID的倉(cāng)儲(chǔ)管理系統(tǒng)實(shí)現(xiàn)
      和顺县| 永兴县| 古丈县| 综艺| 东港市| 天等县| 惠水县| 双鸭山市| 聂荣县| 汤原县| 长宁区| 海林市| 丽水市| 奈曼旗| 宁武县| 沁源县| 扎鲁特旗| 融水| 乐山市| 肃南| 小金县| 元谋县| 当雄县| 永宁县| 株洲县| 通州市| 泽普县| 罗田县| 铁岭市| 黎平县| 天峨县| 壤塘县| 东乡| 巨野县| 墨玉县| 嘉善县| 陇川县| 新密市| 桐梓县| 诸暨市| 金山区|