未培
(安徽工商職業(yè)學院電子信息系,安徽合肥,230041)
目前我們處于大數據時代,很多軟件系統(tǒng)開發(fā)的最終目的都是對某些數據進行處理[1]。數據庫的設計已經成為軟件開發(fā)的重要內容,如果數據庫設計得不合理,會給軟件開發(fā)留下很大的隱患,這些隱患有的在軟件開發(fā)過程中會體現出來,導致某些功能無法實現,有的隱患會在軟件運行時體現出來,嚴重時會造成軟件運行崩潰[2-5]。當發(fā)現問題時再對數據庫進行優(yōu)化,會困難重重、事倍功半。因此在進行軟件開發(fā)時設計一個結構合理的數據庫非常重要,但如何設計一個合理的數據庫,有些軟件開發(fā)人員并不是非常清楚,很多人是只會操作數據庫但不會設計數據庫。數據庫設計涉及的理論知識很多,理解掌握起來很難,根據多年的數據庫教學經驗及項目經驗,本人對數據庫的設計總結了一套比較簡化的流程,現以某高校教學測評系統(tǒng)數據庫開發(fā)為例,詳細敘述關系數據庫的開發(fā)過程。
關系數據庫的開發(fā)以數據庫理論為基礎,步驟可以用圖1表示。首先是需求分析。需求分析非常重要,目的是分析系統(tǒng)的需求,只有明白了要做什么,所開發(fā)軟件需要實現哪些功能,需要哪些數據,才能動手開發(fā)。該過程的主要任務是從所有用戶那里收集對數據的需求和對數據處理的需求,并把這些需求寫成用戶和設計人員都能接受的說明書。步驟二是概念設計。把現實世界中的客觀對象抽象為概念模型,概念模型是現實世界到機器世界的一個中間層次[3],對于關系型數據庫,簡單的說就是在此階段通過需求分析找出所需要的實體、實體的屬性、實體的關鍵字及實體之間的關系,繪制出 E-R圖。步驟三是實現設計。主要目的是把概念模型轉換為某DBMS支持的結構數據模型[3,6],具體實現的數據模型是根據一定的規(guī)則從概念模型轉化而來的,它決定了數據庫中數據之間聯系的表達方式。對于關系型數據庫主要是將 E-R模型轉換為某一特定的DBMS能夠接受的邏輯模式即數據模型,就是根據相關規(guī)則,把 E-R圖轉化成數據庫中的各個表。最后一個步驟是物理設計。物理設計的目的在于確定數據庫的存儲結構,包括確定數據庫文件、索引文件、訪問路徑等。
圖1 關系數據庫設計過程
某高校為了掌握每個教師的授課情況,在每學期末都會集中學生對授課教師進行教學測評。測評時會發(fā)給每個學生一張表格,如圖2。讓學生按照規(guī)定對給自己上課的教師進行打分,以及選擇自己最喜歡的老師,學生打分之后,學校再對學生的打分情況進行集中匯總。
圖2 某高校教師測評表
從上面描述可以看出,對教師的整個測評過程中使用的都是紙質的人工方式,尤其最后學校需要按照相關規(guī)定對每位教師所獲得的分數進行計算,由于高校學生和教師人數都比較多,每位教師會給多個班級多位學生授課,而每個學生又被多位老師授課,測評最終產生的數據量很大,所以最后計算的工作量非常大。現在我們嘗試開發(fā)一個軟件,能代替這種人工的打分計算方式,每學期結束后讓學生通過軟件對老師進行打分,然后有軟件自動計算每位教師的得分及排名,將會減少很大的工作量。但要做好這個軟件,首先要為這個軟件開發(fā)好一個結構合理的后臺數據庫,下面我們就對教師測評系統(tǒng)的后臺數據庫進行分析和開發(fā)。
1. 需求分析
通過上面的系統(tǒng)描述得知,此軟件的主要功能是每個學生憑學號和密碼進入測評系統(tǒng),限制每個學生只能對自己的授課教師進行打分,打分分為ABCD四個等級,不能重復打分,然后可以在自己的授課教師中選擇兩位最受歡迎的老師。學生打完分后,由軟件再對學生打分的結果進行統(tǒng)計。
此教學測評系統(tǒng)主要的用戶有管理員、教師和學生,應該具有如圖3的各功能模塊。此系統(tǒng)所需要的數據有參與測評的學生信息、教師信息。由于學生只能對自己的任課教師打分,所以系統(tǒng)還需要教師的任課信息、學生所在班級系部等數據信息。
圖3 教師測評系統(tǒng)功能模塊圖
2. E-R圖
通過需求分析得到,此后臺數據庫中主要包含的實體有學生、教師、班級、課程、系部等,其中學生和教師之間為多對多的關系,系部和班級為一對多的關系,班級和學生為一對多的關系,教師和課程為多對多的關系。E-R圖如圖4所示:
圖4 教師測評數據庫E-R圖
3. 實現設計
根據如下規(guī)則將R-E圖轉換成表[5,6]:① 一對一關系:將聯系與任意端實體所對應的關系模式合并,加入另一端實體的碼和聯系的屬性。② 一對多:將聯系與n端實體所對應的關系模式合并,加入1端實體的碼和聯系的屬性。③ 多對多:將聯系轉換成一個關系模式。該聯系相連的各實體的碼和聯系本身的屬性轉換為關系的屬性。
通過對E-R圖分析可知,圖4E-R圖可以轉化成七張表:
系部表(系部編號,系部名稱)、班級表(班級編號,班級名稱,人數,輔導員,系部編號)、學生表(學號,姓名,密碼,班級編號)、教師表(教師編號,姓名,最終得分,排名)、打分表(學號,教師編號,打分等級,是否最受歡迎)、課程表(課程號,課程名稱,課時)、任課表(教師編號,課程號,任課班級編號,任課時間,班級得分,最受歡迎的票數)。
4. 物理設計
根據學校在校學生及教師的人數,此系統(tǒng)后臺數據庫開發(fā)使用SQL SERVER比較合適,SQL SERVER是一個高性能的關系數據庫管理系統(tǒng),它把所有工作負荷分解為服務器上的任務和客戶端任務,客戶端應用程序包含顯示與用戶交互的界面,而對數據庫中數據的進行的處理描述成 T-SQL語句并送至服務器端,服務器執(zhí)行 T-SQL語句后再將結果返回給客戶端的應用程序,數據的安全性和穩(wěn)定性較好。
本文以教師教學測評系統(tǒng)后臺數據庫的開發(fā)為實例,研究了關系型數據庫開發(fā)過程。數據庫設計是軟件開發(fā)項目中非常重要的內容,并且在數據庫開發(fā)過程中會出現與需求不符、字段設置不合理、數據完整性喪失、數據庫可擴展性差等諸多問題。數據庫的設計能夠反映出數據庫管理員對所開發(fā)軟件的全局掌控能力,需要有強大的數據庫理論做后盾。在軟件開發(fā)過程中,如果數據庫設計的不合理,會給軟件開發(fā)帶來很大的難度,并且會造成人力、財力、物力的巨大浪費,希望本文的研究能為大家提供一些幫助。
[1]肖念.淺析SQL數據庫的設計[J].計算機光盤軟件與應用,2013(6):201-202.
[2]馬漢達.在線學習過程監(jiān)控系統(tǒng)設計與實現[J].實驗技術與管理,2011,28(5):93-95.
[3]陳涵,鐘景毛.MIS門診掛號系統(tǒng)數據庫設計與優(yōu)化方案[J].寧波職業(yè)技術學院學報,2012,16(5):50-53.
[4]孫小龍,姜萍,張曉松,等.貴州鄉(xiāng)村文化遺產名錄數據庫設計研究——以黔東南巴拉河流域季刀苗寨為例[J].凱里學院學報,2012,30(2):57-60.
[5]苗玉輝.基于 Web的遠程教育系統(tǒng)數據庫的設計[J].南陽師范學院學報,2011,10(12):85-87.
[6]劉洪江.在線考試系統(tǒng)的數據庫設計與實現[J].電腦知識與技術,2012,8(3):508-511.