摘要:在任何學生管理信息系統中,數據庫的地位是絕對不容忽視的。筆者在廣泛征求意見和了解各部門工作流程的前提下,設計了系統的數據結構。本文重點對系統的數據庫概念模型、邏輯模型和數據庫物理結構進行了詳細地設計。
關鍵詞:數據庫設計;概念模型;邏輯模型;物理結構
中圖分類號:G717 文獻標志碼:A 文章編號:1674-9324(2012)12-0244-02
數據庫結構的設計,重則會決定軟件系統的成敗,輕則也會直接影響系統運行速度及系統的使用率。在設計數據庫時,不但要考慮存取速度,還要考慮數據的冗余和一致性等問題。可以肯定的說:數據庫設計的好壞,對將來程序的設計和系統的最終功能實現都起著非常重要的作用。數據庫設計的第一步就是需求分析,即確定存儲哪些數據,建立哪些應用,常用的操作及對象有哪些。根據對系統的初步需求分析與調研,對學生管理系統的總體功能進行如下設計:信息管理模塊、考勤管理模塊、宿舍管理模塊、崗前實習管理模塊、有處分學生學習班管理模塊和系統管理模塊。
一、數據庫概念模型設計
根據前面對系統功能的細化分析,設計系統的數據流圖,最后得到系統全局實體—關系模型。全局實體—關系模型必須滿足所有的系統需要,還要恰當地展示一個一致的數據庫模型。
二、數據庫邏輯結構設計
實體—關系模型是對用戶需求的一種抽象的表達形式,它不能為任何一個具體的數據庫管理系統所支持,它是獨立于任何一種具體的數據模型的。為了能夠建立起最終的物理系統,接下來的任務是:將概念結構通過轉化規則轉化為本系統設計的數據結構,然后根據數據庫管理系統的特點,選定的數據庫管理系統支持下的數據模型,最后通過優化算法得到優化的數據模型。這些模式在功能性、完整性和一致性約束及數據庫的可擴充性等方面應滿足用戶的各種要求。設計數據庫邏輯結構有下面三個步驟:首先,將通過概念設計所得的實體—關系圖轉換為關系模型;就需要將實體、屬性和聯系轉換為相應的關系模型;其次,將轉換來的關系模型向特定DBMS支持下的數據模型轉換;最后,優化處理得到的關系模型。
(一)實體模型轉換為關系模型
鑒別數據庫中的數據元素、關系,以及定義所需的數據庫表和各個數據庫表中的項目這些初始工作之后,所做的細化的過程就是范化。任何數據庫的設計都需要滿足特殊的約定,這會使數據庫既簡潔又結構明晰,反之數據庫結果會非?;靵y,所造成的直接后果是給數據的更新帶來麻煩,給數據庫帶來大量冗余信息,給編程人員帶來不便并造成不可避免的錯誤。
(二)實體—關系圖模式向關系模式的轉換
數據庫表中的每一個屬性都是不可以再分解的,這些屬性(字段)由基本類型構成,包括數字類型、日期時間類型和字符串類型。數據庫表部分設計如下:
①學生信息(學生編號,密碼,曾用名,籍貫,戶籍性質,照片,家庭住址,郵政編碼,家庭座機,學生手機,父親姓名,父親手機,母親姓名,母親手機)
②專業信息(班級名稱,校區,二級學院,所屬系,專業,入學日期,學制)
③班級信息(班級名稱,學生編號,班主任,學生姓名,性別,民族,身份證號,出生日期,政治面貌,類別,入學分數,是否住宿,輔導員,實習單位,處分標志,在校情況)
④考勤處分極限(處分名稱,處分級別,違紀數量)
⑤考勤信息(教師編號,學生編號,學年,學期,日期,節次,違紀內容,違紀數量)
……
另外還有課程管理庫表、教職工登錄庫表、崗前實習處分信息庫表、崗前實習處分極限庫表、崗前實習小結信息庫表、宿舍處分極限庫表、宿舍管理分配庫表、學生住宿分配庫表、宿舍違紀分值庫表、宿舍處分信息庫表、學生處分信息庫表、有處分學生學習班信息庫表,這里不再一一列舉。
(三)對關系模型進行優化處理
在以上的設計中,由于學生信息實體的信息量較大,而實際系統運行時,不是所有信息都需要,如果都調入內存會占用系統資源,而且安全性也會遭到威脅。通過以上分析,特把“學生信息”數據庫表分為兩個數據庫表,即“學生登錄”數據庫表和“學生信息”數據庫表,“學生登錄”數據庫表具體設計如下:
學生登錄(學生編號,密碼)
原“學生信息”表對應減少密碼項,避免發生數據冗余和數據的不一致性。
三、數據庫物理結構設計
由于數據庫的物理結構是與開發環境和選定的數據庫管理系統軟件產品有關的,因此數據庫的物理設計依賴具體的數據庫管理系統產品。數據庫物理設計步驟如下圖,后面會給出詳細的解釋。不論是對數據庫的物理結構的確定,還是對物理結構進行評價,必須滿足原始設計要求(需求分析),如果不滿足就需要退回重新設計或修改,直到設計出符合要求的具體數據庫。
(一)數據庫的物理結構設計
1.確定數據的存儲結構。在物理結構中,存儲記錄是數據的基本存取單位,存儲記錄結構包括記錄的組成、數據項的類型和長度以及邏輯記錄到存儲記錄的映射。下面舉兩個例子來簡要說明存取時間、空間和維護代價是決定存儲結構的主要因素:(1)假設現在需要查詢計算機技術系的所有學生名單,如果將同一個系的學生集中存放,則會顯著地減少訪問磁盤的次數。聚簇后不必重復存儲的聚簇碼值,可以減少部分存儲空間。(2)任課教師要按課程更新學生上課考勤信息,操作涉及學生和教師關系的連接操作,為提高效率,可把具有教師關系和學生關系在物理上聚簇在一起。根據以上設計思想,做如下部分設計:(1)學生基本信息、考勤處分極限、宿舍處分極限、崗前實習處分極限、教職工登錄、班級、課程管理、宿舍清單、宿舍的分配:在一定時間內變動不大,更新速度相對較慢,考慮到查找的方便性,進行聚簇存儲。(2)考勤信息、宿舍處分信息、崗前實習處分信息、學生處分信息:最經常的操作是查找、插入、刪除,為提高效率,考慮建立“B+樹”索引,則平均查找次數為“B+樹”的層數,故對數據庫設計到有索引的物理存儲。
2.存取路徑的設計。為了提高系統的性能,根據應用情況,如數據的異變部分和穩定部分、存取效率較高和較低等進行劃分,可以進行如下設計:(1)各種文件的存放位置設計;(2)為保證讀寫速度,考慮表和索引的存放;(3)設計大表存放形式,用以加快存取速度;(4)將不同學院的學生放在不同磁盤上,如果教師集中錄入考勤時,速度不會影響太大。
3.數據存放位置的設計。通過數據存放位置的規劃來提高系統的性能,為保證讀寫速度考慮表和索引的存放。如考勤信息、宿舍處分信息、學生處分信息表的索引。
4.系統配置的設計。數據庫管理系統的每個參數都有默認值,我們一般很少對默認初始值進行設置。但是根據不同系統的特點,這些默認參考值不一定都很恰當,需要我們根據最初的需求分析和實際的數據庫表設計,適當調整參數的初始值,讓我們設計的系統占用空間最小,系統運行速度最快。通常情況下,這些配置變量包括:同時打開的數據庫對象數量,使用的緩沖區長度、個數、時間片大小、數據庫的大小、裝填因子、鎖的數目,等等。
我們對這些參數值重新設置后,就能最大限度的保證系統運行效率。經過初步設計后,在系統真正投入運行或運行一段時間后,根據系統實際運行情況再做出調整,通過這種不斷地調整,使學生管理軟件系統的性能達到最優狀態。(1)登錄系統的極限數值設計。新生入學時,要求他們輸入自己的個人信息,設計要求最多可以有120人同時打開學生基本信息庫進行操作(通常打開3個機房共學生使用);平時同時使用的數據庫還有考勤庫、處分庫等,考慮到老師們中午或下午課程結束后,可能會統一進行考勤錄入,估算最多有200人同時打開學生考勤庫進行操作;有50人同時打開學生處分庫進行操作;對于其他數據庫,由于同時操作的可能性不會太大,設計成最多可以有100人同時打開相應數據庫進行操作;參考學院教職工和學生數。綜上所述,設置max_connecionts為300。(2)同時打開數據庫表個數的最初參數非常重要,如鎖的數目等。本文設計的學生管理系統目前共涉及數據庫表的個數為17,設計初期可以使用系統默認的數值。
(二)評價數據庫的物理結構
系統運行的效率、占用的空間、維護系統所花費的代價,都是我們在設計系統的初期需要考慮的事情。
四、結束語
一個數據庫應用系統的設計需要反復幾次,才能達到比較理想的狀態,這個反復的時間可能比最初設計系統的時間還要長,花費還要多,這也正是軟件系統設計的規律。所以,在最初的調研階段,要真正做好需求分析,不同階段做好不同的文檔設計,最后才可能得到性能高的數據庫。
參考文獻:
[1]伯樂.數據庫系統教程[M].北京:高等教育出版社,2003.
[2]羅宇.操作系統[M].北京:機械工業出版社,2005:319-352.
[3]薩師煊,王珊.數據庫系統概論[M].北京:高等教育出版社,2009.
[4]劉愛喜.基于領域知識的數據庫模式匹配技術研究[M].哈爾濱:哈爾濱工程大學,2009.
基金項目:YYK2011002