郭子豪 李恒清
摘 要:互聯(lián)網(wǎng)時代,軟件工程技術(shù)被廣泛應(yīng)用于各個行業(yè)領(lǐng)域,并推動其發(fā)展。在數(shù)據(jù)庫設(shè)計中應(yīng)用軟件工程技術(shù),對于提升其應(yīng)用效果有積極作用。本文對軟件工程技術(shù)進行了簡單概述,并分析了它在數(shù)據(jù)庫設(shè)計中的應(yīng)用價值,重點討論了它在數(shù)據(jù)庫設(shè)計中的具體應(yīng)用。
關(guān)鍵詞:軟件工程技術(shù);數(shù)據(jù)庫設(shè)計;應(yīng)用
上世紀七十年代,軟件開發(fā)已經(jīng)進入到了軟件工程時代,由此,軟件工程技術(shù)逐漸形成。在網(wǎng)絡(luò)化、信息化持續(xù)發(fā)展的今天,軟件開發(fā)已經(jīng)相當普遍,而軟件工程技術(shù)也被廣泛應(yīng)用于各個行業(yè)領(lǐng)域,并推動其發(fā)展。數(shù)據(jù)庫設(shè)計是軟件開發(fā)的重要環(huán)節(jié),主要指根據(jù)用戶需求,基于具體數(shù)據(jù)庫管理系統(tǒng)設(shè)計數(shù)據(jù)庫結(jié)構(gòu)并搭建數(shù)據(jù)庫,它關(guān)系到后續(xù)的軟件運行與維護。在數(shù)據(jù)庫設(shè)計中應(yīng)用軟件工程技術(shù),是軟件開發(fā)的需要,也是軟件應(yīng)用效能提升的需要。
一、軟件工程技術(shù)概念
目前學界關(guān)于軟件工程概念的界定眾說紛紜,IEEE認為,軟件工程是將工程化應(yīng)用于軟件;FritzBauer認為,軟件工程是基于工程化原則,通過某種手段獲得能有效運行的可靠軟件的系列方法,而其他定義也在強調(diào)以工程化方法開發(fā)、維護軟件。由此可見,軟件工程技術(shù)就是一種研究以工程化方法開發(fā)、運行、維護軟件的技術(shù)。
二、軟件工程技術(shù)在數(shù)據(jù)庫設(shè)計中的應(yīng)用價值分析
數(shù)據(jù)庫設(shè)計一般經(jīng)歷這樣的流程:需求分析——結(jié)構(gòu)設(shè)計——實施——運行與維護,而在不同的環(huán)節(jié)中,軟件工程技術(shù)有著其特定的價值。需求分析中,主要通過對研究對象的詳細調(diào)查收集并分析需求信息,確定信息處理需求與安全完整需求,給相關(guān)人員撰寫需求分析報告提供信息支撐。結(jié)構(gòu)設(shè)計主要包含三個方面,即概念結(jié)構(gòu)、邏輯結(jié)構(gòu)與物理結(jié)構(gòu)。概念結(jié)構(gòu)設(shè)計方面,先從需求分析中找到實體,確認實體屬性與關(guān)系,對其進行抽象后形成局部E-R圖,再通過合并各局部E-R圖消除沖突,生成全局E-R圖;邏輯結(jié)構(gòu)設(shè)計方面,將全局E-R圖轉(zhuǎn)化為特定DMBS所支持的數(shù)據(jù)模型,將E-R圖中的實體及其屬性與聯(lián)系用DMBS語言描述出來;物理結(jié)構(gòu)設(shè)計方面,設(shè)計存儲結(jié)構(gòu),明確如何建立索引以及具體在何處存放數(shù)據(jù),并對結(jié)構(gòu)設(shè)計中產(chǎn)生的多種方案進行評價,通過對比給邏輯數(shù)據(jù)模型選取一個最適宜的物理存儲結(jié)構(gòu)。整個結(jié)構(gòu)設(shè)計過程中,基于軟件工程技術(shù)的工程化方法可提高結(jié)構(gòu)設(shè)計的科學性與合理性。數(shù)據(jù)庫實施中,根據(jù)實際設(shè)計于網(wǎng)絡(luò)環(huán)境中構(gòu)建數(shù)據(jù)庫結(jié)構(gòu),并對其進行測試與試運行,同時監(jiān)測運行結(jié)果,基于此改善數(shù)據(jù)庫性能,從而使數(shù)據(jù)庫更加具有適用性。
三、軟件工程技術(shù)在數(shù)據(jù)庫設(shè)計中的具體應(yīng)用
(一)需求分析方面
由于軟件所面向的對象以及用途有明顯差異,實際進行需求分析時,需要對面向?qū)ο笠约败浖到y(tǒng)用途進行調(diào)查與了解,明確實體及其屬性、相互關(guān)系。例如,教學管理系統(tǒng)主要面向?qū)W校,用于管理學校教學中產(chǎn)生的各種信息,如學生基本信息、專業(yè)課程、學院信息、學院專業(yè)分布、學生成績等。實體為學生、專業(yè)、學院、課程,學生屬性包括學號、姓名、性別、民族、籍貫、受教育經(jīng)歷、入學日期等,專業(yè)屬性包括專業(yè)編號、專業(yè)名稱、專業(yè)類別。相互關(guān)系為學生主修專業(yè)、選修課程,學院設(shè)置專業(yè)、開設(shè)課程,學生通過專業(yè)教育、課程獲得成績。軟件工程技術(shù)中,數(shù)據(jù)庫的主要作用在于為軟件的運行提供數(shù)據(jù)支撐,并存儲其運行中產(chǎn)生的數(shù)據(jù)。所以,數(shù)據(jù)庫應(yīng)當具有可拓展性。為了防止他人非法獲取軟件信息,數(shù)據(jù)庫也必須具備安全性。那么需求分析時,要著重考慮數(shù)據(jù)庫的這兩種必備特性。根據(jù)工程化原則,需求分析采用SA方法。從已有的數(shù)據(jù)庫系統(tǒng)入手,自系統(tǒng)頂層結(jié)構(gòu)進行逐層分析,并用DFD與DD進行描述,從而獲得需求信息。
(二)結(jié)構(gòu)設(shè)計方面
1. 概念結(jié)構(gòu)設(shè)計
概念結(jié)構(gòu)設(shè)計的目標在于獲得數(shù)據(jù)庫E-R模型圖,先通過需求分析獲得DFD、DD,基于此抽象出局部E-R圖,再通過視圖集成獲得全局E-R圖。根據(jù)工程化方法,第一步進行數(shù)據(jù)抽象,于大量的數(shù)據(jù)流中選擇可作為E-R圖出發(fā)點的層次,確定局部E-R圖的實體及其屬性、相互關(guān)系,采用分類、聚合方法劃分實體與屬性。第二步設(shè)計局部E-R模型,模型設(shè)計原則上保持屬性不可分,確定它和其他實體不存在任何關(guān)系。第三步設(shè)計全局E-R圖,通過多元集成法或二元集成法將第二步所獲得的所有E-R圖合成為一個圖,消除它們間不必要的冗余。
2.邏輯結(jié)構(gòu)設(shè)計
邏輯結(jié)構(gòu)設(shè)計的目的在于將全局E-R圖轉(zhuǎn)化為特定DBMS支持的數(shù)據(jù)模型,先進行初始關(guān)系模型設(shè)計,再將關(guān)系模式規(guī)范化。根據(jù)工程化方法,第一步進行實體間關(guān)系轉(zhuǎn)換,對于一個1:1關(guān)系,將其轉(zhuǎn)換為一個獨立關(guān)系模式,也可將其與任意一端所對應(yīng)的關(guān)系模式進行合并,一個1:n關(guān)系轉(zhuǎn)換相似。比如教學管理中,班級對應(yīng)班號、專業(yè)、人數(shù),班長對應(yīng)學號、姓名、專長,將關(guān)系“管理”合并到實體“班級”后,班級中加入班長學號這一屬性。對于一個m:n關(guān)系,將其轉(zhuǎn)換為一個關(guān)系模式。第二步明確關(guān)系模式的函數(shù)關(guān)系,確定范式級別。第三步運用工程化、規(guī)范化的方法將關(guān)系模式規(guī)范化,并通過合并與分解對模式進行改建。
3.物理結(jié)構(gòu)設(shè)計
簡單來說,物理結(jié)構(gòu)設(shè)計就是給已經(jīng)設(shè)計好的數(shù)據(jù)模型選取適用于最佳應(yīng)用環(huán)境的物理結(jié)構(gòu),先確定物理結(jié)構(gòu),再對其進行評價。根據(jù)工程化方法,第一步設(shè)計存儲結(jié)構(gòu)、存取路徑以及存放位置,在存儲結(jié)構(gòu)設(shè)計上,深入分析存取時間的長短、存儲空間的大小、維護代價的高低等的影響,存取路徑選擇主要是建立索引,存放位置設(shè)計則是根據(jù)數(shù)據(jù)的性質(zhì)及使用設(shè)計數(shù)據(jù)分開存放的位置。第二步,設(shè)計系統(tǒng)配置,重新對數(shù)據(jù)變量賦值。第三步,評價物理結(jié)構(gòu),對于實際設(shè)計生成的多種方案,從存儲結(jié)構(gòu)設(shè)計方面進行權(quán)衡與比較,選出最優(yōu)物理結(jié)構(gòu)。
結(jié)語
軟件工程技術(shù)在數(shù)據(jù)庫設(shè)計中有較高的應(yīng)用價值,可應(yīng)用于數(shù)據(jù)庫需求分析、結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫實施、運行與維護的設(shè)計全過程中。實際應(yīng)用軟件工程技術(shù)時,必須以工程化的方法進行數(shù)據(jù)庫設(shè)計,著重考慮影響設(shè)計的多種因素,而不是憑借主觀意向進行設(shè)計。對于數(shù)據(jù)庫技術(shù)人員而言,應(yīng)當充分把握軟件工程技術(shù),做好設(shè)計每一環(huán)節(jié),切實提升數(shù)據(jù)庫性能。
參考文獻
[1]鄭憲秋. 軟件工程技術(shù)在數(shù)據(jù)庫設(shè)計中的重要性及應(yīng)用[J].電子技術(shù)與軟件工程, 2019(07):173.
[2]佘華杰.軟件工程技術(shù)在數(shù)據(jù)庫設(shè)計中的價值及實踐[J].科技風, 2018(35):105.