宋 翔,劉新強
(西安鐵路職業技術學院 陜西 西安 710014)
學生管理系統是高職院校學生管理中不可缺少的部分,它的所提供的信息對于院校的決策者和管理者來說都至關重要,所以學生管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統的人工的方式管理文檔,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產生大量的紙質文件,給統計管理帶來了不少的困難。而使用計算機對學生信息進行管理,具有手工管理所無法比擬的優點。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優點能夠極大地提高學生管理的效率,也是院校的科學化、正規化管理的重要途徑。
盡管目前市場上也有一些學生信息管理的軟件,但不能完全適應我院的實際情況,因此,筆者根據我院的實際情況,利用Asp.net和iis+sql2005技術,自行開發出了一個適合我院實際的基于B/S[1]的學生信息管理系統。
設計一個內容完整、結構緊湊、邏輯清晰、性能優良的數據庫是開發學生信息管理系統的基礎和關鍵。有了這樣一個數據庫,可以為開發信息系統提供一個數據存儲的平臺、學生管理的所有操作均會轉換為對數據庫中一個或多個表、視圖的添加、修改、刪除,以及查詢統計,數據庫設計的好壞直接決定了該信息系統的開發、應用的成敗[2]。筆者結合自己學院自己開發的學生信息管理系統,探討高職院校學生信息數據庫設計的思路、原則,并以我院學生信息數據庫實例進行了較詳細的分析。
在信息系統的開發之前,需求分析和功能分析是數據庫設計的依據。然后展開數據庫的概念設計、實體關系設計、數據庫的表、視圖設計。最終為開發學生管理系統提供數據基礎。
高職院校一般通過院系二級實現學生信息的管理,學院的學生口職能部門一般設置學生工作部,下設學生科、獎懲助貸科和宿管科統籌管理全院的學生事務、獎勵懲處和住宿,整體構建學生的基本信息;各系下設學生輔導辦,輔導辦通過輔導員、班主任落實班級管理,跟蹤學生的日常行為,錄入學生的基本信息,并完善信息系統的日常維護。通過調研了解到:
1)學院可以從招生數據中一次導入一個年級的新生基本信息;
2)學院希望能夠統計全部分年級、系別、專業、班級、民族、性別、生源地等分類或組合分類的統計信息;
3)系部輔導員、班主任可以錄入、維護本系各專業、各班級、各學生的基本信息;
4)系部輔導員可以統計系內的各項分類或組合分類的統計信息;
5)管理員可以設置學院級用戶、各系輔導辦的輔導員、班主任等用戶,系統可以為每個學生生成學生用戶,可以進行各種用戶的權限設置;
6)學生用戶可以查看每個學生的基本信息和綜合信息。
通過對學院各部門的需求進行分析可知,學籍管理系統主要為方便學生填寫或修改學籍信息,相關管理人員查詢統計學生信息,因此該系統將要具備以下6大功能。
1.2.1 系統登錄功能
分為學生、班主任老師、系輔導員、超級管理員4種角色的用戶登錄,超級管理員登錄后臺進行系統管理與維護,如圖1所示。

圖1 系統登錄界面Fig.1 System login interface
1.2.2 學生基本信息填寫
學生登錄后可進入填寫基本信息的頁面,在權限允許的情況下,可填寫或修改自己的基本信息表、學歷及社會經歷表、家庭主要成員表和主要社會關系表。
1.2.3 學生綜合信息填寫
學生綜合信息由班主任老師填寫,班主任老師登錄后會看到該班級學生列表,點擊列表后的鏈接進入該生綜合信息填寫頁面,可填寫或修改學生在校綜合表現記錄表,獎懲記錄表、技能證書表。
1.2.4 用戶管理模塊
該部分由超級管理員使用,可以查看所有用戶及密碼設置。
1.2.5 權限控制模塊
該部分由超級管理員使用,動態的控制學生、班主任、系管理員的使用權限。
1.2.6 學生管理模塊
該部分由超級管理員使用,主要包括注冊(增加)學生,快速查找學生,刪除學生。
學院對系統性能無特殊的要求,只要查詢的時候沒有明顯的延遲就可以了,學院目前有多屆學生需要管理,查詢時間不能超過5 s,在無重大改動的條件下正常運行五年以上,各種用戶可以分別使用,信息維護要求在校園網上進行,學生個人信息查詢可以延伸到互聯網進行。
數據庫中的各種對象的命名,應采用大小寫敏感的形式,命名長度不要超過30個字符。
大型數據庫有兩種索引即簇索引與非簇索引,一個沒有簇索引的表是按堆結構存儲數據,所有的數據均添加在表的尾部。而建立了簇索引的表,其數據在物理上會按照簇索引鍵的順序存儲,一個表只允許有一個簇索引,添加任何一種索引均能提高按索引列查詢的速度。但也會降低插入、更新、刪除操作的性能,尤其是當填充因子(fill factor)較大時。所以對索引較多的表進行頻繁的插入、更新、刪除操作時,建表與索引時應設置較小的填充因子,以便在各數據頁中留下較多的自由空間,減少頁分割及重新組織的工作[3]。
表間關聯是一種強制性措施,建立后對父表(Parent Table)和子表(Child Table)的插人、更新、刪除操作均要占用系統開銷,另外,最好不要用Identify屬性字段作為主鍵與子表關聯。如果數據冗余低,數據的完整性容易得到保證,但增加了表間連接查詢的操作。為了提高系統的響應時間,合理的數據冗余也是必要的。使用Rule和Check來防止系統操作人員誤輸人,造成數據的錯誤是設計人員的另一種常用手段,但是,不必要的規則和約束也會占用系統的不必要開銷。
數據庫設計是系統設計工作中的一項十分重要而又復雜的工作,數據庫設計的關鍵問題是如何建立一個數據模型,使其能夠正確反映用戶的現實環境,包括向用戶及時、準確、全面地提供所需要的信息和支持用戶對所有需要處理的數據進行處理,并且還要使其具有易于維護、易于理解和較高的運行效率[4]。
用戶的需求具體體現在各種信息的提供、保存、更新和查詢,這就要求數據庫結構能充分滿足各種信息的輸入和輸出。收集基本數據、數據結構以及數據處理的流程,組成一份詳盡的數據字典,為后面的具體設計打下基礎。
根據對系統數據的分析,該學生信息數據庫涉及3類實體,可設計為:用戶、部門、學生信息、輔助信息3類實體。其中用戶表與信息表為一對多的關系,輔助存儲表為信息表提供信息選擇[5]。
3.2.1 用戶表
包括用戶表、角色表、權限表。
3.2.2 信息表
包括學生基本信息表、學歷經歷表、家庭成員表、社會關系表、綜合表現表、獎懲記錄表、技能證書表。
3.2.3 輔助存儲表
包括系部表、專業表、班級表、獎懲和證書分類表。
根據對系統的分析,系統可分為用戶(學生用戶、老師用戶、管理員)和信息(基本信息、綜合信息、輔助信息)兩種實體[6]。它們之間的關系如圖2和圖3所示。

圖2 信息實體關系圖Fig.2 Relationship diagram of information entity

圖3 用戶實體關系圖Fig.3 Relationship diagram of user entity
根據我院學生管理的實際,學生管理系統數據庫設計為基礎信息和學生信息兩部分。其中,基礎信息包括入學年份表、獎懲證書分類表、說明表等數據表[7]。表間關系如圖4所示。
學生信息包括學生基本信息以及支持基本信息相關的輔助表。表間關系如圖4所示。
回顧該系統的開發,從選題,到調研、需求分析、設計、編碼實現、測試等,論文的撰寫,這一系列連貫的過程,感想頗多,收獲也很多。設計開發一個軟件,首先要通過調研了解用戶的現狀。在開發一個系統時,前期的分析準備工作非常的重要。對于系統的需求要明確,這樣才能做到有的放矢。特別是于系統中數據的存儲和重要算法的設計,要盡量減少數據的冗余度,否則不僅浪費存儲空間,還影響查詢效率。在設計的初期,對一個功能模塊的設計,至少要設計出兩種方案,這樣可以進行比較,從而選擇更佳的設計方案。相信本系統的開發經驗可為同類院校相關軟件的開發提供一定的幫助。

圖4 基礎數據表Fig.4 Basic data table

圖5 學生信息表Fig.5 Student information form
[1]韓勇.基于B/S結構的新生報到系統設計[J].電子科技,2011(6):75-77.
HAN Yong.The design of the B/S structure-based freshmen registration system[J].Electronic Science and Technology,2011(6):75-77.
[2]郭靖.ASP.NET開發技術大全[M].北京:清華大學出版社,2009.
[3]劉乃麗.完全手冊 ASP.NET 2.0網路開發詳解 [M].北京:電子工業出版社,2008.
[4]鄭健.庖丁解牛:縱向切入asp.net 3.5控件和組件開發技術[M].北京:電子工業出版社,2009.
[5]孫踐知.網絡程序設計案例教程—ASP.NET+SQL Server[M].北京:清華大學出版社.2008.
[6]陳偉.SQL Server 2005數據庫應用與開發教程 [M].北京:清華大學出版社,2007.
[7]章立民.大師講堂-ASP.NET 3.5開發范例精講精析[M].北京:科學出版社,2009.