亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        郭肖靜,苗積臣,吳志芳

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

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

        1 MySQL概述

        MySQL是當(dāng)前應(yīng)用最為廣泛的數(shù)據(jù)庫管理系統(tǒng)之一,具有強(qiáng)大的跨平臺能力(可運(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個多線程SQL服務(wù)器、數(shù)種不同的客戶端程序和庫、眾多管理工具和廣泛的應(yīng)用編程接口API組成。此外,MySQL還支持多種數(shù)據(jù)類型,包括帶符號/無符號整數(shù),1、2、3、4、8 字 節(jié) 長,F(xiàn)LOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、SET、ENUM等,便于各種數(shù)據(jù)高效率存儲[2]。

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

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

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

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

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

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

        2.2 功能需求分析

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

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

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

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

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

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

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

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

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

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

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

        在本系統(tǒng)中,構(gòu)造了2個表:1個用于存儲實(shí)際檢測數(shù)據(jù),命名為PlateData;1個存儲鋼板特征數(shù)據(jù)和后處理數(shù)據(jù),命名為PlateKey。兩個表的具體構(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中,每個鋼板有若干個橫斷面,每個橫斷面有N個探測點(diǎn)(本程序中N為256)。表中每1行表示1個橫斷面上的所有數(shù)據(jù),具有相同鋼板編號的所有行表示1個鋼板的完整數(shù)據(jù)。該表只用于數(shù)據(jù)的存儲和讀取,不用于檢索。

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

        表1和表2中共有的列項(xiàng)目是鋼板編號,這也是本系統(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)啟動后,應(yīng)連接到數(shù)據(jù)庫管理系統(tǒng),并選擇所需使用的數(shù)據(jù)庫。

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

        當(dāng)鋼板開始檢測時,運(yùn)算模塊先傳送1幀起始幀,表明開始1個新鋼板的檢測,該幀中應(yīng)包含鋼板編號、合金類型、標(biāo)稱厚度、標(biāo)稱凸度等鋼板特征數(shù)據(jù)。顯示模塊將這些數(shù)據(jù)保存,但暫不寫入數(shù)據(jù)庫中。而后,運(yùn)算模塊將每個橫斷面的數(shù)據(jù)打包成1幀發(fā)送過來,顯示模塊根據(jù)這些數(shù)據(jù)計(jì)算凸度、楔度等指標(biāo),并按表1的格式,將數(shù)據(jù)寫入數(shù)據(jù)庫中。當(dāng)鋼板檢測結(jié)束后,運(yùn)算模塊會發(fā)送1個結(jié)束幀,此時顯示模塊將前面收到的鋼板特征數(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個函數(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)啟動時,調(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ù)的存儲、查詢、讀取等指令均通過該函數(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)中,退出時要調(diào)用該函數(shù)。

        3.2 功能測試

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

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

        4 結(jié)論

        本文介紹了凸度儀系統(tǒng)中數(shù)據(jù)庫管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。選擇MySQL數(shù)據(jù)庫,分析了凸度儀系統(tǒng)對數(shù)據(jù)庫應(yīng)用的需求,從而提取了操作數(shù)據(jù)并設(shè)計(jì)了合理的表,保證了數(shù)據(jù)存儲的完整性和檢索的高效性。此外,分析了應(yīng)用中所需的SQL指令及MySQL提供的C API中相關(guān)的函數(shù),從而在使用Visual C++編程的凸度儀系統(tǒng)中,成功地嵌入了MySQL數(shù)據(jù)庫,實(shí)現(xiàn)了數(shù)據(jù)的存儲、檢索和讀取等功能。通過實(shí)際測試,達(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)
        利用軸線交錯修整砂輪凸度曲線的方法探討
        哈爾濱軸承(2022年1期)2022-05-23 13:12:58
        基于James的院內(nèi)郵件管理系統(tǒng)的實(shí)現(xiàn)
        3800mm中板軋機(jī)變凸度工作輥輥形研究①
        基于精軋平坦度優(yōu)先的凸度分配策略
        異步凸度軋制對AZ31鎂合金板坯損傷抑制分析
        2019年第4-6期便捷檢索目錄
        基于LED聯(lián)動顯示的違停管理系統(tǒng)
        海盾壓載水管理系統(tǒng)
        中國船檢(2017年3期)2017-05-18 11:33:08
        專利檢索中“語義”的表現(xiàn)
        專利代理(2016年1期)2016-05-17 06:14:36
        基于RFID的倉儲管理系統(tǒng)實(shí)現(xiàn)
        国产精品高潮呻吟av久久4虎| 亚洲一区二区三区偷拍女| 亚洲精品无码不卡在线播he| 国产亚洲精品aaaa片小说| 久久av无码精品人妻糸列| 青青草免费在线视频导航| 国产精品女主播福利在线| 曰本大码熟中文字幕| 国产午夜精品理论片| 国产精品国产三级国产专区51区| 人妻中出精品久久久一区二| av成人资源在线观看| 麻豆文化传媒精品一区观看| 男同gay毛片免费可播放| 亚洲国产精品500在线观看| 免费蜜桃视频在线观看| 精品偷自拍另类在线观看| 激情 人妻 制服 丝袜| 精品欧洲AV无码一区二区免费| 久久99精品久久只有精品| 亚洲av首页在线| 国产成人av一区二区三区无码| 国产好片日本一区二区三区四区| 在线天堂av一区二区| 日韩毛片无码永久免费看| 亚洲AⅤ永久无码精品AA| 麻豆成人久久精品二区三区91| 亚洲精品无码av人在线观看国产| 牲欲强的熟妇农村老妇女| 91久久国产综合精品| 国产自产自现在线视频地址| 精品亚洲一区二区区别在线观看| 曰韩无码二三区中文字幕| 91产精品无码无套在线| 色噜噜亚洲精品中文字幕| 国产精品会所一区二区三区| 亚洲日本中文字幕天天更新| 亚洲精品成人av一区二区| 成熟的女人毛茸茸色视频| 亚洲av片在线观看| 国产一毛片|