楊菲 周浩 齊世軍等
摘要:玉米病害檢索診斷系統(tǒng)的構(gòu)建包括數(shù)據(jù)獲取采集、數(shù)據(jù)整理加工、數(shù)據(jù)挖掘、數(shù)據(jù)庫設(shè)計(jì)、檢索算法設(shè)計(jì)、診斷算法設(shè)計(jì)、用戶界面UI設(shè)計(jì)、管理界面UI設(shè)計(jì)等工作。本文從數(shù)據(jù)庫設(shè)計(jì)切入,重點(diǎn)介紹了數(shù)據(jù)庫E-R圖的構(gòu)建、基于MySQL的數(shù)據(jù)庫物理設(shè)計(jì)及數(shù)據(jù)庫表的設(shè)計(jì)與規(guī)范。
關(guān)鍵詞:MySQL;玉米病害檢索診斷系統(tǒng);E-R圖;數(shù)據(jù)庫物理設(shè)計(jì)
中圖分類號(hào):S126+S435.131 文獻(xiàn)標(biāo)識(shí)號(hào):A 文章編號(hào):1001-4942(2015)08-0111-05
Abstract The construction of maize disease retrieve and diagnosis system included data acquisition, data processing, data mining, database design, retrieval algorithm design, diagnosis algorithm design, UI design of user interface and management interface, etc. The construction of E-R diagram, physical design of database based on MySQL and the design and specification of database tables were mainly introduced in this paper.
Key words MySQL; Maize disease retrieve and diagnosis system; E-R diagram; Physical design of database
20世紀(jì)80年代,我國開始對(duì)農(nóng)作物病蟲害專家系統(tǒng)進(jìn)行研究,隨著計(jì)算機(jī)技術(shù)的發(fā)展、農(nóng)業(yè)技術(shù)與計(jì)算機(jī)技術(shù)的結(jié)合更加深入,特別是數(shù)據(jù)庫管理系統(tǒng)、人機(jī)交互技術(shù)和人工智能系統(tǒng)等技術(shù)的不斷發(fā)展,病蟲害專家系統(tǒng)特別是病蟲害診斷防治系統(tǒng)相繼開發(fā)出來[1]。2009年曹麗英等[2]研發(fā)了基于框架表示的玉米病蟲草害診治專家系統(tǒng),設(shè)計(jì)并實(shí)現(xiàn)了玉米病蟲草害診斷、預(yù)報(bào)、查詢、防治等功能。2011年曹婧華[3]等設(shè)計(jì)了基于網(wǎng)絡(luò)的玉米病蟲害專家系統(tǒng),該系統(tǒng)實(shí)用性強(qiáng)、易于操作且具有決策能力,能夠指導(dǎo)農(nóng)民解決實(shí)際生產(chǎn)中遇到的問題。2012年劉同海等[4]構(gòu)建了基于圖像規(guī)則的玉米病蟲草害診斷系統(tǒng),可通過病蟲草害圖像及時(shí)實(shí)施遠(yuǎn)程智能診斷,確定其防治方法,解決了因?qū)I(yè)技術(shù)人員短缺而導(dǎo)致玉米病蟲草害得不到及時(shí)診斷與防治的問題。
但隨著計(jì)算機(jī)新技術(shù)的發(fā)展,利用更先進(jìn)優(yōu)化的算法語言研發(fā)更為準(zhǔn)確高效的玉米病害檢索診斷系統(tǒng)對(duì)玉米生產(chǎn)的發(fā)展具有重要意義。本文重點(diǎn)闡述了玉米病害檢索診斷系統(tǒng)建立過程中的數(shù)據(jù)庫設(shè)計(jì)這一重要環(huán)節(jié),主要包括數(shù)據(jù)庫的E-R圖構(gòu)建和物理設(shè)計(jì)。旨在通過構(gòu)建高效完備的數(shù)據(jù)庫系統(tǒng),匯總管理玉米病害信息,為玉米病害的檢索診斷功能提供有力的技術(shù)和信息支持。
1 數(shù)據(jù)庫E-R圖
E-R圖也稱實(shí)體-聯(lián)系圖(Entity Relationship Diagram),提供了表示實(shí)體類型及其屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型,是數(shù)據(jù)庫的重要組成部分。在E-R圖中,矩形表示實(shí)體型,矩形框內(nèi)寫明實(shí)體名;橢圓表示實(shí)體的屬性,并用無向邊將其與相應(yīng)的實(shí)體型連接起來;菱形表示實(shí)體型之間的聯(lián)系,在菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體型連接起來。
玉米病害檢索診斷系統(tǒng)中主要包括作物部位、生長期、玉米病害信息、玉米病害歷史等實(shí)體。實(shí)體的屬性及之間的聯(lián)系用E-R圖表示如圖1所示。
2 數(shù)據(jù)庫物理設(shè)計(jì)
玉米病害檢索診斷系統(tǒng)是集玉米病害專家知識(shí)庫、病害信息檢索、病害推理診斷功能于一體的綜合性管理系統(tǒng),能對(duì)大量數(shù)據(jù)進(jìn)行安全高效的管理及檢索、分析。因此,數(shù)據(jù)庫的物理設(shè)計(jì)至關(guān)重要,影響著后續(xù)的SQL表達(dá)式開發(fā)和算法設(shè)計(jì)。
數(shù)據(jù)庫物理設(shè)計(jì)包括選擇數(shù)據(jù)庫軟件環(huán)境,創(chuàng)建數(shù)據(jù)字典,確定數(shù)據(jù)庫實(shí)體屬性(字段)、數(shù)據(jù)類型、長度、精度等。其中,數(shù)據(jù)庫軟件環(huán)境是數(shù)據(jù)庫管理的載體,數(shù)據(jù)字典則說明了每個(gè)字段的用途及其可能存在的別名。
2.1 軟件環(huán)境
玉米病害檢索診斷系統(tǒng)對(duì)于后臺(tái)的數(shù)據(jù)庫軟件有著嚴(yán)格要求,要求其能夠有效存儲(chǔ)和管理數(shù)據(jù),因此,采用MySQL15.5數(shù)據(jù)庫管理系統(tǒng)和SUNOS Solaris 10操作系統(tǒng)進(jìn)行建設(shè)。
MySQL數(shù)據(jù)庫管理系統(tǒng)是一種應(yīng)用廣泛的中小型關(guān)系數(shù)據(jù)庫管理系統(tǒng),可以在Unix、Linux、Solaris等服務(wù)器平臺(tái)上運(yùn)行,數(shù)據(jù)處理速度快、穩(wěn)定性好、具有不同級(jí)別的安全權(quán)限和口令管理系統(tǒng)[5]。MySQL數(shù)據(jù)庫管理系統(tǒng)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)“大倉庫”內(nèi),這就提高了其數(shù)據(jù)管理效率和靈活性,為數(shù)據(jù)檢索和病害診斷等應(yīng)用功能提供了強(qiáng)有力的后臺(tái)保障[6]。
Solaris 是Sun Microsystems研發(fā)的計(jì)算機(jī)操作系統(tǒng),被認(rèn)為是UNIX操作系統(tǒng)的衍生版本之一,通過與基于Sun SPARC處理器的硬件體系結(jié)構(gòu)緊密結(jié)合,使整個(gè)軟硬件系統(tǒng)的可靠性和性能大大增強(qiáng)[7,8]。
2.2 數(shù)據(jù)庫設(shè)計(jì)原則
2.2.1 表的設(shè)計(jì)原則 玉米病害檢索診斷系統(tǒng)在數(shù)據(jù)庫表設(shè)計(jì)時(shí)實(shí)施了3NF標(biāo)準(zhǔn),基于該標(biāo)準(zhǔn)的數(shù)據(jù)庫表設(shè)計(jì)原則是一個(gè)表只包括其本身基本的屬性,如果不是其本身具有的屬性時(shí),需要進(jìn)行分解;表與表之間通過外鍵鏈接。3NF標(biāo)準(zhǔn)的主要特點(diǎn)是有一組表專門存放通過鍵鏈接起來的關(guān)聯(lián)數(shù)據(jù)[9]。
玉米病害檢索診斷系統(tǒng)設(shè)計(jì)了兩大類不同的數(shù)據(jù)庫數(shù)據(jù)表,一類是系統(tǒng)管理員數(shù)據(jù)表,包括系統(tǒng)管理員表和操作日志表,如表2、表3所示;另一類是病害信息數(shù)據(jù)表,包括作物字典表、作物部位字典表、作物生長期字典表、作物病斑特征字典表、作物農(nóng)害字典表、作物病害詳細(xì)表和作物病害歷史表7個(gè)數(shù)據(jù)庫表,如表4~表10所示。endprint
“作物部位字典表”不包含所屬作物信息和玉米生長期信息,但會(huì)存放2個(gè)鍵值,分別指向“作物字典表”和“作物生長期字典表”,從而建立起三者間的的聯(lián)系。
“作物生長期字典表”不包含所屬作物信息,但存放了一個(gè)指向“作物字典表”的鍵值,以建立起兩者間的聯(lián)系。
“作物病害詳細(xì)表”不包含所屬作物信息、玉米病害信息、病害部位信息以及作物生長期信息,但存放了4個(gè)鍵值,分別指向“作物字典表”、“作物農(nóng)害字典表”、“作物部位字典表”和“作物生長期字典表”,從而建立起它們之間的聯(lián)系。
2.2.2 數(shù)據(jù)庫的命名規(guī)則 命名標(biāo)準(zhǔn)化有助于消除數(shù)據(jù)庫中的數(shù)據(jù)冗余,玉米病害檢索診斷系統(tǒng)的數(shù)據(jù)庫采用了以下規(guī)則進(jìn)行命名[10,11]。
表:數(shù)據(jù)表必須以有特征含義的單詞或縮寫組成,中間可以用“_”分割,例如:tbl_pstn_detail,最多含有四個(gè)單詞或者縮寫;表前綴加c;
字段:為有特征含義的單詞,中間用“_”分割,最多包含四個(gè)單詞或者縮寫;
主鍵:_PK/_UK,主鍵名稱應(yīng)是“表名+_PK/_UK”。如果復(fù)合主鍵的構(gòu)成字段較多,則
名稱只包含第一個(gè)字段,且可以去掉前綴;
索引:_IDX+編號(hào),索引名稱應(yīng)是“表名+_IDX+編號(hào)”;
外鍵:_FK,外鍵名稱應(yīng)是“外鍵表名+_FK+編號(hào)”;
視圖:_VEIW,按業(yè)務(wù)操作命名視圖;
存儲(chǔ)過程:U_,按照接口編號(hào)操作命名存儲(chǔ)過程;
序列:_SEQ,按照“需求名稱+_SEQ”命名。
2.3 數(shù)據(jù)字典設(shè)計(jì)
數(shù)據(jù)字典是數(shù)據(jù)庫的重要組成部分,存放著數(shù)據(jù)庫所用的有關(guān)信息,對(duì)用戶來說是一組只讀的表[12]。
玉米病害檢索診斷系統(tǒng)具有管理、檢索和診斷玉米病害信息的功能。為了實(shí)現(xiàn)這些功能,需要對(duì)玉米病害數(shù)據(jù)進(jìn)行分解,并設(shè)計(jì)形成不同的數(shù)據(jù)庫表,即數(shù)據(jù)字典表。玉米病害信息系統(tǒng)共設(shè)計(jì)了9個(gè)數(shù)據(jù)字典表,表名與功能說明見表1。
2.3.1 系統(tǒng)管理員表 表名c_operator,儲(chǔ)存系統(tǒng)中不同角色管理員的相關(guān)信息(見表2)。其中管理員編號(hào)是身份認(rèn)證號(hào),通過不同編號(hào)賦予不同的查詢和診斷等管理權(quán)限;Type值為00的管理員擁有超級(jí)管理員身份。
2.3.2 系統(tǒng)管理員操作日志表 表名c_operator_log,存儲(chǔ)管理員登陸系統(tǒng)的記錄,包括入庫時(shí)間、操作時(shí)間等記錄(見表3)。超級(jí)管理員可通過檢索本數(shù)據(jù)字典掌握普通管理員對(duì)系統(tǒng)進(jìn)行的任何操作。
2.3.3 作物字典表 表名c_crop,存儲(chǔ)作物種類名稱信息(見表4)。玉米病害檢索診斷系統(tǒng)目前只有玉米一種作物,但可以延展其他作物,為以后增加小麥、棉花、大豆等任何作物提供了接口。
2.3.4 作物部位字典表 表名c_crop_parts,存儲(chǔ)作物的主要部位信息,包括莖、葉、根、穗等部位(見表5)。本表通過作物編號(hào)和所屬生長期與“作物字典表”和“作物生長期字典表”聯(lián)系在一起。
2.3.5 作物生長期字典表 表名c_growth_period,存儲(chǔ)玉米這一作物的主要生長期名稱及記錄玉米病害發(fā)生的生長期等信息(見表6)。玉米的主要生長期按照玉米易感病害時(shí)期分為成株期和幼苗期。本表通過作物編號(hào)這一外鍵與“作物字典表”聯(lián)系在一起。
2.3.6 作物病斑特征字典表 表名c_lesion,存儲(chǔ)玉米這一作物的主要病害特征的名稱(見表7)。病斑特征按照性質(zhì)、形狀和顏色分為三類,其中,病斑性質(zhì)包括干枯、濕潤、霉層、枯死、散裂、突起、粉末、腫瘤等;病斑形狀包括圓形、橢圓、梭形、長條形、線形、腎形、球形、突起、扭曲、孔形等;病斑顏色包括白色、紅色、黃褐色、灰黑色、灰褐色、鐵銹紅、黑色、綠色、黃綠相間、半透明等。系統(tǒng)將以上屬性信息輸入到數(shù)據(jù)庫中,作為下拉菜單供用戶選擇,無需手工輸入。
2.3.7 作物農(nóng)害字典表 表名c_pest,存儲(chǔ)農(nóng)害的名稱信息(見表8)。玉米的主要農(nóng)害有病害、蟲害和草害,本系統(tǒng)目前只涉及病害,但可擴(kuò)展草害和蟲害,為后期擴(kuò)展到蟲害和草害信息提供了接入口。
2.3.8 作物病害詳細(xì)表 表名c_pest_detail,存儲(chǔ)玉米病害的詳細(xì)信息,包括病害名稱、病害特征、治療方法、病害圖片等(見表9)。本表通過外鍵“所屬作物”、“所屬農(nóng)害”、“發(fā)病部位”和“發(fā)病時(shí)期”與“作物字典表”、“作物農(nóng)害字典表”、“作物部位字典表”和“作物生長期字典表”建立聯(lián)系。
2.3.9 作物病害歷史表 表名c_pest_history,存儲(chǔ)玉米病害發(fā)生的省份、地區(qū)、受災(zāi)等級(jí)(1為輕度、2為中度,3為重度,可通過下拉菜單進(jìn)行選擇)、入庫時(shí)間等信息(見表10)。本數(shù)據(jù)字典的設(shè)計(jì)為管理某一地區(qū)常發(fā)生的病害提供了數(shù)據(jù)基礎(chǔ),管理員可對(duì)該地區(qū)常發(fā)生的病害及其防治方法進(jìn)行登記入檔,其他用戶則可通過檢索及時(shí)了解這些病害,以便早期預(yù)防和防治。
3 結(jié)論
本文主要介紹了玉米病害檢索診斷系統(tǒng)的數(shù)據(jù)庫E-R圖構(gòu)建和數(shù)據(jù)庫物理設(shè)計(jì)工作,包括數(shù)據(jù)庫設(shè)計(jì)的軟件環(huán)境、數(shù)據(jù)庫表設(shè)計(jì)原則、數(shù)據(jù)庫命名規(guī)則、數(shù)據(jù)字典設(shè)計(jì)。數(shù)據(jù)庫采用MySQL 15.5+SUNOS Solaris 10方案建設(shè);數(shù)據(jù)庫表基于3NF標(biāo)準(zhǔn)進(jìn)行設(shè)計(jì),表與表之間通過外鍵鏈接;根據(jù)系統(tǒng)功能的需要,設(shè)計(jì)了9個(gè)數(shù)據(jù)字典表,分別為系統(tǒng)管理員表、系統(tǒng)管理員操作日志表、作物字典表、作物部位字典表、作物生長期字典表、作物病斑特征字典表、作物農(nóng)害字典表、作物病害詳細(xì)表、作物病害歷史表,每個(gè)表只包括其自身的屬性,如果不是其本身所具有的屬性,則通過外鍵與其他表進(jìn)行鏈接。本研究為后續(xù)玉米病害信息管理系統(tǒng)檢索和診斷等功能的實(shí)現(xiàn)打下了堅(jiān)實(shí)的基礎(chǔ)。
參 考 文 獻(xiàn):
[1]劉孝永,王未名,封文杰,等. 病蟲害專家系統(tǒng)研究進(jìn)展 [J]. 山東農(nóng)業(yè)科學(xué), 2013, 45(9): 138-143.
[2] 曹麗英,肖艷華,姚玉霞,等. 基于框架表示的玉米病蟲草害診治專家系統(tǒng)的構(gòu)建及實(shí)現(xiàn) [J]. 玉米科學(xué), 2009, 17(4): 148-150.
[3] 曹婧華,李楠,冉彥中,等. 基于網(wǎng)絡(luò)的玉米病蟲害專家系統(tǒng)設(shè)計(jì)分析 [J]. 玉米科學(xué), 2011, 19(4): 149-152.
[4] 劉同海,黃斌博,李少昆,等. 基于圖像規(guī)則推理的玉米病蟲草害診斷系統(tǒng)的設(shè)計(jì)[J]. 中國農(nóng)業(yè)大學(xué)學(xué)報(bào), 2012, 17(4): 154-158.
[5] DuBois P. MySQL網(wǎng)絡(luò)數(shù)據(jù)庫指南[M]. 鐘鳴,田曉濤,譯. 北京:機(jī)械工業(yè)出版社, 2000.
[6] 馮燕奎.PHP4.0與MySQL動(dòng)態(tài)網(wǎng)站編程[M].北京:清華大學(xué)出版社,2002.
[7] 景秀,任繼平,汪漢榮. 基于Solaris 10的“Unix原理及應(yīng)用”教學(xué)方法初探[J]. 農(nóng)業(yè)網(wǎng)絡(luò)信息, 2009 (5): 117-118, 123.
[8] 王超. 基于Solaris系統(tǒng)的虛擬機(jī)設(shè)計(jì)與實(shí)現(xiàn) [J]. 信息與電腦:理論版, 2011 (6): 75-76.
[9] 譚淑英,李赫男,左貴啟.服務(wù)器端的動(dòng)態(tài)網(wǎng)站開發(fā)技術(shù)[J]. 計(jì)算機(jī)應(yīng)用研究, 2002(5):143-145.
[10]劉江.基于Apache+Flex+PHP+MySQL技術(shù)的流媒體網(wǎng)站實(shí)現(xiàn)方案[J]. 程序員,2009(1): 64-65.
[11]白磊, 高杰.基于Apache+MySQL+PHP的電子商務(wù)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)[J]. 科技資訊,2006(12):203-204.
[12]易競(jìng).PHP訪問MYSQL數(shù)據(jù)庫的實(shí)現(xiàn)[J]. 保險(xiǎn)職業(yè)學(xué)院學(xué)報(bào), 2008,22(3):79-81.endprint