楊芬
(長治職業(yè)技術(shù)學院 信息工程系,山西 長治 046011)
學生成績數(shù)據(jù)庫管理系統(tǒng)的設(shè)計與開發(fā)
楊芬
(長治職業(yè)技術(shù)學院 信息工程系,山西 長治 046011)
數(shù)據(jù)庫技術(shù)是計算機學科中一個重要分支,其應(yīng)用領(lǐng)域十分廣泛。而其中數(shù)據(jù)庫設(shè)計則是建立數(shù)據(jù)庫及開發(fā)應(yīng)用系統(tǒng)的關(guān)鍵性技術(shù)。文章通過一個系統(tǒng)設(shè)計實例對數(shù)據(jù)庫設(shè)計的一般流程進行分析。
實例;數(shù)據(jù)庫;設(shè)計流程
數(shù)據(jù)庫技術(shù)產(chǎn)生于20世紀60年代中期,距今已有四十多年歷史。它是信息資源管理最有效的手段,是計算機學科中一個重要分支,其應(yīng)用領(lǐng)域十分廣泛。數(shù)據(jù)庫設(shè)計就是根據(jù)給定的環(huán)境條件,建立合理規(guī)范的數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠?qū)ζ渲械臄?shù)據(jù)對象進行高效地存儲和管理,從而響應(yīng)用戶需求。文章以某學院學生成績管理系統(tǒng)開發(fā)過程為例,對數(shù)據(jù)庫設(shè)計開發(fā)一般流程進行了闡述。
所謂需求分析,就是根據(jù)用戶的要求進行分析。主要是分析用戶在工作業(yè)務(wù)中數(shù)據(jù)的需求和處理,安全及完整性處理等。最終系統(tǒng)設(shè)計是否實用與優(yōu)化取決于需求分析結(jié)果,看其是否能夠非常準確反映用戶的實際需求[1]。
需求分析的第一步,就是對用戶進行需求調(diào)查,調(diào)查了解用戶的工作部門、工作業(yè)務(wù)、涉及相關(guān)數(shù)據(jù)等信息,從而確定開發(fā)系統(tǒng)的框架。為了取樣準確,調(diào)查常采取的方法有:詢問、跟班、開會、請專人介紹、查閱相關(guān)記錄等。開發(fā)學生成績管理系統(tǒng)之前,需要同學院的一些相關(guān)部門進行溝通協(xié)商,例如,教務(wù)處、學生處、各個系等部門。通過對這些部門日常數(shù)據(jù)分析處理,從而形成數(shù)據(jù)字典,為開發(fā)該系統(tǒng)做好準備。
概念設(shè)計階段是將用戶需求分析抽象為數(shù)據(jù)庫的概念模型。最常用的概念模型的表示方法是實體--聯(lián)系方法(ENTITY-Relationship Approach),簡稱E-R方法[2]。通常,用長方形表示實體,并在框內(nèi)寫上實體名;用橢圓表示實體屬性,并用直線把實體與屬性連接起來;用菱形表示實體間的聯(lián)系,菱形框內(nèi)寫上聯(lián)系名(一對一、一對多、多對多)。若實體之間的聯(lián)系也具有屬性,則把屬性和菱形也用直線連接上。根據(jù)需求分析,在學生成績管理系統(tǒng)中創(chuàng)建有“學生”和“課程”兩個實體集,它們之間的聯(lián)系“選課”為多對多聯(lián)系,用E-R圖描述如圖1所示。
圖1 學生成績管理系統(tǒng)E-R圖
邏輯設(shè)計階段的任務(wù)就是將概念設(shè)計所得到的E-R圖轉(zhuǎn)換成選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型[3]??偨Y(jié)邏輯設(shè)計過程,大致分三步:(1)將概念模型轉(zhuǎn)換為關(guān)系模型,這是邏輯設(shè)計主要工作。(2)將關(guān)系模型再轉(zhuǎn)換為所選用的DBMS支持的數(shù)據(jù)模型。(3)優(yōu)化所得的數(shù)據(jù)模型。
根據(jù)圖1所示學生成績管理系統(tǒng)的E-R圖,將其轉(zhuǎn)換為關(guān)系模型后,表示如下(注:關(guān)系中標有下劃線的屬性為主鍵)(:1)學生(學號,姓名,性別,系部,出生日期,黨員否,獎學金,家庭住址,簡歷,照片);(2)課程(課程編碼,課程名,學時,學分);(3)選修(學號,課程編碼,成績)。將轉(zhuǎn)換后的關(guān)系模型具體到VFP的數(shù)據(jù)庫管理系統(tǒng)中,可以建立多個表,比如:學生基本情況表,成績表,課程表,選修表,社會關(guān)系表等等。
物理設(shè)計階段通常分兩步進行:首先確定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取方法,即數(shù)據(jù)的物理結(jié)構(gòu);其次對采取的物理結(jié)構(gòu)做出綜合評價。
4.1 數(shù)據(jù)存取方法
在關(guān)系型數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)常用的存取方法有索引、分區(qū)及聚簇。根據(jù)這些方法的相關(guān)原則,對于學生成績管理系統(tǒng)中的數(shù)據(jù)需要做到如下設(shè)計。
(1)將使用頻率較高的表中字段定義為索引,比如:學生基本情況表中的“學號”字段,可設(shè)為主索引。學生成績表中的“學號”字段可設(shè)為主索引或候選索引。課程表中的“課程編碼”可設(shè)為主索引等。當然,根據(jù)情況,表中的其它字段也可設(shè)為普通索引或惟一索引等。(2)將學生基本情況表、學生成績表、課程表、選修課表等相關(guān)表建立聚簇存取。這樣可以提高數(shù)據(jù)查詢的效率。
4.2 數(shù)據(jù)存儲結(jié)構(gòu)
時間效率、存儲空間利用率和維護代價三方面的因素是確定數(shù)據(jù)存儲結(jié)構(gòu)的關(guān)鍵。針對這三方面加以考慮,選擇如下設(shè)計(:1)將經(jīng)常用到的表或索引(如學生基本情況表、學生成績表等)放在高速存儲器上(如硬盤),對于不常用的對象(如數(shù)據(jù)備份和日志文件等)放在低速存儲設(shè)備上。(2)為了提高數(shù)據(jù)存取速度,可以將一些大型表存放在不同的兩個磁盤上,這種方法特別實用有效。
4.3 物理結(jié)構(gòu)評價
物理結(jié)構(gòu)是否合理,需要考慮多個因素,例如系統(tǒng)的運行效率、使用空間大小、系統(tǒng)維護費用等,在設(shè)計系統(tǒng)之前,這些問題都應(yīng)該全方位考慮清楚。最后經(jīng)過綜合評價,選擇最優(yōu)方案進行設(shè)計[4]。
5.1 數(shù)據(jù)庫的建立和實施
完成數(shù)據(jù)庫各個階段設(shè)計之后,就進入到具體的數(shù)據(jù)庫實施階段。即:設(shè)計人員根據(jù)之前數(shù)據(jù)庫邏輯設(shè)計和物理設(shè)計,利用某種DBMS提供的數(shù)據(jù)語言,編制相應(yīng)程序,然后經(jīng)過不斷修改生成目標模式,完成數(shù)據(jù)庫創(chuàng)建工作,最后組織數(shù)據(jù)入庫,并運行應(yīng)用程序進行調(diào)試。
根據(jù)我們設(shè)計“學生成績管理系統(tǒng)”的主旨,利用Visual FoxPro 6.0的數(shù)據(jù)庫管理系統(tǒng),完成數(shù)據(jù)庫實施階段,大致可分這幾步完成:(1)創(chuàng)建數(shù)據(jù)資源:包括系統(tǒng)所需的各種表,例如學生基本情況表、學習成績表、個人表現(xiàn)表、社會關(guān)系表等,創(chuàng)建表中的關(guān)系,創(chuàng)建相關(guān)的報表、表單等數(shù)據(jù)資源。(2)創(chuàng)建主程序;(3)創(chuàng)建系統(tǒng)菜單;(4)創(chuàng)建登錄表單;(5)試運行程序并調(diào)試。
5.2 數(shù)據(jù)庫的運行和維護
數(shù)據(jù)庫應(yīng)用系統(tǒng)在試運行階段,由于系統(tǒng)還不穩(wěn)定,有可能發(fā)生軟硬件故障。同時,由于系統(tǒng)操作人員對系統(tǒng)不熟悉,容易造成誤操作。這就要求在試運行時,首先應(yīng)該調(diào)試DBMS的恢復(fù)功能,做好數(shù)據(jù)恢復(fù)工作,一旦故障發(fā)生,可減少對數(shù)據(jù)庫的破壞。
一個數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計不是一次能成功的,需要反復(fù)修改、反復(fù)運行,才能使之達到一個較完善的效果。當然,為了減少麻煩、提高效率,需要從數(shù)據(jù)庫設(shè)計的第一步開始,扎扎實實完成每個環(huán)節(jié)的設(shè)計任務(wù),從而更好的完成任務(wù)。
[1]苗雪蘭,劉瑞新.數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用教程[M].北京:機械工業(yè)出版社,2004.40.
[2]熊發(fā)涯.Visual FoxPro程序設(shè)計[M].北京:中國鐵道出版社,2005.10.
[3]葉小平,湯庸,湯娜,劉玉葆.數(shù)據(jù)庫系統(tǒng)教程[M].北京:清華大學出版社,2008.172.
[4]?,?朱慶華.學生管理系統(tǒng)中的數(shù)據(jù)庫設(shè)計[J].教育教學論壇,2012(43B).245.
(責任編輯 王璟琳)
TP311.13
A
1673-2014(2017)02-0048-02
2017—02—18
楊芬(1973- ),女,山西長治人,講師,碩士,主要從事計算機理論與教學研究。