薛慧君
內(nèi)蒙古電子信息職業(yè)技術(shù)學(xué)院
Matlab數(shù)據(jù)庫(kù)開(kāi)發(fā)及設(shè)計(jì)之研究
薛慧君
內(nèi)蒙古電子信息職業(yè)技術(shù)學(xué)院
Matlab是一款功能強(qiáng)大的軟件系統(tǒng),借由Matlab語(yǔ)言可以有效的完成相關(guān)數(shù)據(jù)分析和計(jì)算工作,還能夠根據(jù)相關(guān)工作人員的具體需求,完成仿真模擬工作。而數(shù)據(jù)庫(kù)是諸多數(shù)據(jù)的存儲(chǔ)和管理的重要部分,具有極高的應(yīng)用價(jià)值,為了保障數(shù)據(jù)庫(kù)的功能性和可靠性,可以在Matlab環(huán)境下,運(yùn)用Matlab語(yǔ)言完成對(duì)數(shù)據(jù)庫(kù)的開(kāi)發(fā)和設(shè)計(jì)。以下本文就Matlab數(shù)據(jù)庫(kù)的開(kāi)發(fā)和設(shè)計(jì)展開(kāi)探討,并詳細(xì)的對(duì)Matlab數(shù)據(jù)庫(kù)的開(kāi)發(fā)和設(shè)計(jì)的具體內(nèi)容進(jìn)行闡述,旨在為相關(guān)設(shè)計(jì)人員提供參考,推動(dòng)Matlab數(shù)據(jù)庫(kù)的設(shè)計(jì)開(kāi)發(fā)效率與質(zhì)量,保障數(shù)據(jù)庫(kù)的功能性,保障Matlab數(shù)據(jù)庫(kù)的合理運(yùn)用,保障相關(guān)行業(yè)的持續(xù)健康發(fā)展。
Matlab 數(shù)據(jù)庫(kù) 開(kāi)發(fā) 設(shè)計(jì) 研究
Matlab可以有效的完成對(duì)各類(lèi)數(shù)據(jù)問(wèn)題的處理和解決,其在實(shí)際的應(yīng)用中,主要能夠完成工程化的設(shè)計(jì)。僅管Matlab的功能性強(qiáng)大,數(shù)據(jù)處理能力可觀,但是,不能否認(rèn)的是的Matlab在數(shù)據(jù)庫(kù)開(kāi)發(fā)方面的優(yōu)勢(shì)不是很明顯。用戶在進(jìn)行Matlab應(yīng)用中,希望在擴(kuò)展Matlab數(shù)據(jù)處理能力的基礎(chǔ)上,還需要完成對(duì)數(shù)據(jù)庫(kù)功能的開(kāi)發(fā)。故此,針對(duì)Matlba的基本情況,選擇一種符合Matlab的數(shù)據(jù)庫(kù)開(kāi)發(fā)及設(shè)計(jì)方式,為Matlab的數(shù)據(jù)庫(kù)開(kāi)發(fā)提供幫助,優(yōu)化Matlab的數(shù)據(jù)處理能力,符合更多用戶的基本需求。
Matlab是一種集算法開(kāi)發(fā)、數(shù)據(jù)可視化和數(shù)據(jù)分析這些能力,借由的Matlab特有的語(yǔ)言體系,完成諸多實(shí)際問(wèn)題的解決。借由Matlab語(yǔ)言能夠?qū)?shù)學(xué)上一些近似值的求解。比如:管渠工程斷面特征水深的求解,由于傳統(tǒng)計(jì)算方式,求解效果不夠理想,誤差較大,借由Matlab語(yǔ)言應(yīng)用,可以減少?gòu)?fù)雜的計(jì)算過(guò)程,達(dá)到快速求解的目的。
Matlab是矩陣實(shí)驗(yàn)室的簡(jiǎn)稱,是一種強(qiáng)大的數(shù)學(xué)軟件,能夠完成矩陣運(yùn)算、函數(shù)和數(shù)據(jù)的處理分析,與其他變成語(yǔ)言的連接等,可以廣泛的應(yīng)用到諸多領(lǐng)域中,是推動(dòng)相關(guān)實(shí)際問(wèn)題有效解決的快速途徑。
Matlab在實(shí)際的應(yīng)用中,可能存在數(shù)據(jù)庫(kù)開(kāi)發(fā)方面優(yōu)勢(shì)不明顯的情況,為了增加Matlab產(chǎn)品的競(jìng)爭(zhēng)能力,需要合理的展開(kāi)數(shù)據(jù)庫(kù)模式的構(gòu)建,開(kāi)發(fā)出符合用戶使用需求的數(shù)據(jù)庫(kù)及其相關(guān)數(shù)據(jù)部分,完成對(duì)數(shù)據(jù)的存儲(chǔ)。
結(jié)構(gòu)數(shù)組與單元數(shù)組是Matlab中,重要的數(shù)據(jù)類(lèi)型,其中結(jié)構(gòu)數(shù)組能完成多個(gè)差異明顯的數(shù)組結(jié)合在一起的功能。較比單元數(shù)組,結(jié)構(gòu)數(shù)組是按照指針的形式完成數(shù)據(jù)的傳遞工作,可以將其的作用視作數(shù)據(jù)庫(kù)中的記錄部分。結(jié)構(gòu)數(shù)組具有靈活、動(dòng)態(tài)擴(kuò)充、嵌套、不同字段之間的數(shù)據(jù)類(lèi)型不需要雷同等特點(diǎn)。結(jié)構(gòu)數(shù)組對(duì)于Matlab開(kāi)發(fā)設(shè)計(jì)具有十分重要的作用,為Matlab數(shù)據(jù)庫(kù)的開(kāi)發(fā)提供了基礎(chǔ)。
Matlab數(shù)據(jù)庫(kù)開(kāi)發(fā)中,合理的對(duì)結(jié)構(gòu)數(shù)組進(jìn)行應(yīng)用,變量和域名的連接主要是借由操作符“.”完成的。單元數(shù)組的創(chuàng)建,可以通過(guò)直接賦值法和利用Cell函數(shù)法完成。結(jié)構(gòu)數(shù)組在Matlab中的創(chuàng)建,可以采用直接引用和使用struct函數(shù)兩種形式。借由結(jié)構(gòu)數(shù)組,可以自由的展開(kāi)的相關(guān)記錄和域名的刪減和增添。其具體方式為:

根據(jù)上述的添加方式,可以有效的完成對(duì)新的字段名的添加任務(wù),并由record生成一條記錄。另外,結(jié)構(gòu)數(shù)組中為了獲得數(shù)據(jù),可以合理的對(duì)的setfield與getfield這兩個(gè)函數(shù)命令進(jìn)行應(yīng)用,促使獲得準(zhǔn)確的數(shù)據(jù)情況。
以DBI的商品銷(xiāo)售數(shù)據(jù)庫(kù)開(kāi)發(fā)設(shè)計(jì)為例,數(shù)據(jù)庫(kù)的程序中,sale和inf均代表了數(shù)據(jù)表,對(duì)所有商品的基本信息和銷(xiāo)售情況進(jìn)行表述。sale中,就有的price、in和out等字段,其中不同字段代表不同的意義。
將Matlab數(shù)據(jù)庫(kù)開(kāi)發(fā)建立在的使結(jié)構(gòu)數(shù)組的基礎(chǔ)上,并通過(guò)結(jié)構(gòu)數(shù)組的構(gòu)建,保障數(shù)據(jù)庫(kù)的功能性。基于結(jié)構(gòu)數(shù)組構(gòu)建的數(shù)據(jù)庫(kù)具有結(jié)構(gòu)簡(jiǎn)單,可以隨意變化等特點(diǎn)。不需要的展開(kāi)引擎接口的編程工作,簡(jiǎn)化了數(shù)據(jù)庫(kù)開(kāi)發(fā)建設(shè)的具體流程。如上所述的DBI的商品銷(xiāo)售數(shù)據(jù)庫(kù)為例,通過(guò)對(duì)商品的編碼,按照具體方式,輸入到數(shù)據(jù)庫(kù)中,再將具體的商品銷(xiāo)售輸入到數(shù)據(jù)庫(kù)中,可以有效的完成對(duì)商品銷(xiāo)售總金額的計(jì)算和分析,完成對(duì)業(yè)績(jī)和銷(xiāo)售百分比的圖的輸出,為該企業(yè)的商品銷(xiāo)售和市場(chǎng)分析提供基礎(chǔ),增強(qiáng)該企業(yè)的市場(chǎng)競(jìng)爭(zhēng)力。
僅管基于結(jié)構(gòu)數(shù)組的Matlab數(shù)據(jù)庫(kù)優(yōu)勢(shì)明顯,但是不可否認(rèn)的是,該數(shù)據(jù)庫(kù)也存在一定的劣勢(shì)。其中主要體現(xiàn)在:
(1)結(jié)構(gòu)數(shù)組數(shù)據(jù)庫(kù)的主要依存于的Matlab環(huán)境,如果離開(kāi)這一環(huán)境,則不能完成數(shù)據(jù)庫(kù)的基本功能。
(2)數(shù)據(jù)庫(kù)受到變量名和字段名規(guī)則的影響,是不能采用中文的表述方式。
Matlab環(huán)境下,還可以采用在外部數(shù)據(jù)源的基礎(chǔ)上,完成對(duì)數(shù)據(jù)庫(kù)的建設(shè),外部數(shù)據(jù)源的Matlab數(shù)據(jù)庫(kù)可以為用戶提供一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù)環(huán)境,并具備相關(guān)顯示和查詢功能,具有較高的應(yīng)用實(shí)踐價(jià)值。
(1)數(shù)據(jù)庫(kù)的配置,外部數(shù)據(jù)源在實(shí)際的應(yīng)用中,通常情況的下這些數(shù)據(jù)源均得到了整合與建立。Matlab需要完成與外部數(shù)據(jù)源的連接。實(shí)現(xiàn)對(duì)外部數(shù)據(jù)源的查詢、編輯和存儲(chǔ)等任務(wù)。外部數(shù)據(jù)源數(shù)據(jù)庫(kù)的開(kāi)發(fā),需要預(yù)先完成對(duì)數(shù)據(jù)庫(kù)的配置工作,促使其能夠與Matlab數(shù)據(jù)庫(kù)之間完成連接,使得Matlab能夠完成接口訪問(wèn)。
在實(shí)際的數(shù)據(jù)庫(kù)配置中,需要合理的對(duì)數(shù)據(jù)源橋接進(jìn)行使用,保障數(shù)據(jù)庫(kù)的功能性。以CDBC的配置為例,打開(kāi)ODBC數(shù)據(jù)源管理器,完成相關(guān)配置。先選擇添加的和創(chuàng)建新的數(shù)據(jù)源,并對(duì)其的具體驅(qū)動(dòng)程序進(jìn)選擇,再安裝“ODBC MS Access”并輸入目標(biāo)數(shù)據(jù)庫(kù)的名稱,并進(jìn)入數(shù)據(jù)庫(kù),將外部數(shù)據(jù)源鏈接為源數(shù)據(jù)庫(kù)。再進(jìn)入到管理器中查看,是否添加成功,如果成功則確定退出。
(2)外部數(shù)據(jù)源與Matlab的連接,數(shù)據(jù)庫(kù)配置完成后,需要合理的展開(kāi)有效的連接設(shè)置。
①超時(shí)設(shè)置,這部分設(shè)置,主要是對(duì)Matlab與ODBC橋接驅(qū)動(dòng)建立的連接的最大時(shí)間限制,也就是保障數(shù)據(jù)庫(kù)能夠在這一時(shí)間內(nèi)完成連接。其中具體的設(shè)計(jì)方法為:
Timeout=logintimeout(Time,Driver)
這一方法中,括號(hào)內(nèi)部代表參數(shù),Time為時(shí)間參數(shù),Driver是JDBC驅(qū)動(dòng)器。在實(shí)際的應(yīng)用中,如果出現(xiàn)的返回值為零,則表明沒(méi)有設(shè)置。如果驅(qū)動(dòng)器和Matlab之間沒(méi)有連接成功,程序會(huì)自動(dòng)停止,并重新連接。
②數(shù)據(jù)庫(kù)連接:通常上述的方式,完成驅(qū)動(dòng)器和Matlab之間的連接,連接時(shí),需要根據(jù)保障Driber及其他部門(mén)可以在驅(qū)動(dòng)中找到相關(guān)的格式,并保障Instance是必須的部分,按照:Connect=database()。
③連接測(cè)試,Matlab與數(shù)據(jù)庫(kù)連接完成后,需要合理的展開(kāi)連接測(cè)試,確定的連接的具體狀態(tài)信息。通常情況下可以采用:

完成對(duì)連接的測(cè)試。數(shù)據(jù)庫(kù)連接成功后,如果不在繼續(xù)使用,需要及時(shí)的對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接斷開(kāi),進(jìn)而避免應(yīng)用程序的持續(xù)占用系統(tǒng)的進(jìn)程。
(3)建立數(shù)據(jù)庫(kù)的查詢部分,Matlab環(huán)境下的數(shù)據(jù)查詢,需要滿足SQL的基本需求,建立多個(gè)游標(biāo),保障數(shù)據(jù)能夠切實(shí)引入到的單元數(shù)組中,再完成對(duì)數(shù)據(jù)庫(kù)中具體的數(shù)據(jù)提取。數(shù)據(jù)提取的具體方法為:

(4)數(shù)據(jù)庫(kù)的記錄操作,記錄可以采用insrt這也命令完成對(duì)記錄的保存,并采用updata這一命令對(duì)數(shù)據(jù)庫(kù)的中的相關(guān)記錄值進(jìn)行變更和刪減,進(jìn)而完成數(shù)據(jù)庫(kù)激的記錄操作。
Matlab是一款功能強(qiáng)大的軟件,能夠完成諸多數(shù)學(xué)問(wèn)題和實(shí)際問(wèn)題的處理,并完成相關(guān)工程項(xiàng)目的仿真模擬,效果切實(shí)有效。但是,Matlab在實(shí)際數(shù)據(jù)庫(kù)方面存在一定的不足,與用戶的具體需求存在一定的出入,針對(duì)這種情況,需要合理的展開(kāi)對(duì)Matlab數(shù)據(jù)庫(kù)的開(kāi)發(fā)和設(shè)計(jì)。本本主要兩種數(shù)據(jù)庫(kù)開(kāi)發(fā)和設(shè)計(jì)方式進(jìn)行參數(shù),其中主要有基于的結(jié)構(gòu)數(shù)組的Matlab數(shù)據(jù)庫(kù)和基于外部數(shù)據(jù)源的Matlab數(shù)據(jù)庫(kù),兩種數(shù)據(jù)均具備一定的優(yōu)勢(shì),符合用戶對(duì)數(shù)據(jù)庫(kù)需求,進(jìn)而使得的可以采用的Matlab語(yǔ)言完成對(duì)相關(guān)實(shí)際問(wèn)題的處理。在實(shí)際的數(shù)據(jù)庫(kù)建設(shè)中,需要合理的對(duì)技術(shù)進(jìn)行選取,具體的技術(shù)如下:
(1)DAO方式,完成對(duì)數(shù)據(jù)庫(kù)引擎的訪問(wèn)方式,在具體的應(yīng)用中,DAO方式主要適用于的單一的數(shù)據(jù)庫(kù)程序,對(duì)于較為復(fù)雜的數(shù)據(jù)庫(kù)程序,他的適應(yīng)性不夠理想。
(2)RDO方式,是推動(dòng)數(shù)據(jù)庫(kù)和數(shù)據(jù)源有效連接的方式,也是完成Matlab數(shù)據(jù)庫(kù)開(kāi)發(fā)和設(shè)計(jì)的關(guān)鍵技術(shù)之一。
(3)ADO方式,該技術(shù)是建立在的DAO方式和RDO方式的基礎(chǔ)上,可以有效的將計(jì)算機(jī)上所有的數(shù)據(jù)源進(jìn)行展示,是促使Matlab獲得數(shù)據(jù)的有效途徑。
[1]張倩. Matlab數(shù)據(jù)庫(kù)開(kāi)發(fā)設(shè)計(jì)[J]. 信息與電腦:理論版, 2014(9)
[2]許平. Matlab數(shù)據(jù)庫(kù)的開(kāi)發(fā)與實(shí)踐[J]. 信息與電腦:理論版, 2013(11)
[3]王君竹. 工業(yè)控制數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[D]. 大連理工大學(xué), 2010
[4]袁勇,池興穎.Matlab與VC++、Oracle數(shù)據(jù)庫(kù)接口技術(shù)研究及實(shí)現(xiàn)[J]. 遵義師范學(xué)院學(xué)報(bào), 2014, 16(4):72-75
[5]吳迪,劉軍,徐朋,等.基于MATLAB及數(shù)據(jù)庫(kù)技術(shù)的實(shí)驗(yàn)數(shù)據(jù)檢驗(yàn)及存取研究[J]. 大學(xué)物理實(shí)驗(yàn), 2010, 23(4):67-69
[6]趙光磊. 基于Matlab的Oracle數(shù)據(jù)庫(kù)設(shè)計(jì)[J]. 電光系統(tǒng), 2010(2):39-41
[7]張瑞敏, 李亞洲. 基于MATLAB的數(shù)據(jù)庫(kù)開(kāi)發(fā)[M]. 電子工業(yè)出版社, 2011
[8]石劍平, 姜麟, 徐潤(rùn)林. Matlab數(shù)據(jù)庫(kù)工具箱在數(shù)學(xué)建模中的應(yīng)用[J]. 信息系統(tǒng)工程, 2010(9):82-83
薛慧君,女,內(nèi)蒙古呼和浩特市人,內(nèi)蒙古電子信息職業(yè)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)系教師,副教授,工學(xué)碩士。主要研究方向:數(shù)據(jù)挖掘、人工智能、軟件工程。