盧峰 林灃


【摘 要】本文針對計算機網絡技術成熟發展的現狀,指出大學生義工信息管理系統應立足于大學生義工的實際需求,后臺數據庫開發工具采用SQL Server 2008系統,優化處理數據庫的各項信息,使該系統具有相對穩定、便于維護和更新等優點。
【關鍵詞】大學生義工 管理系統 優化數據庫 存儲方式
在管理義工的過程中,準確把握義工的特點和能力、活動信息等,在數據量日益增多的信息化時代,要求也越來越高。采用互聯網手段,對大學生義工活動進行數字化管理已是必然,這樣做既能從根本上解決義工管理上的疏漏,又能大大提高工作效率,增加數據的安全性和可維護性。使用義工管理系統中的數據還能對其數據進行系統的分析,減少義工重復工作和完成質量低的問題,改進義工管理業務的處理效率。同時,發揮互聯網快速便捷、存儲分布式、數據安全性高的優勢,提高管理效率。
一、數據初始化
大學生義工管理系統的數據庫用戶和功能因組織而異,但總體上來說管理項目是大體類似的,主要涉及以下三方面的數據。
(一)義工信息數據
義工信息數據可以從分特征去定義,一個是義工的專業特征,另一個是義工個人的擅長領域。盡可能地設計更多的字段去記錄義工的信息,這樣就能在后期數據分析和派遣上有所傾向。
(二)義工項目數據
義工項目數據中主要是對項目的分類和活動的分派等進行記錄。項目分類主要依據是勞動的類型,體力勞動如打掃場地、搬運物件;腦力勞動如整理文件、錄入數據,這里就存在著對義工能力特征的需求類型不一,要求數據庫中項目的分類與義工的能力特征關聯。數據初始化過后,在運行一段時間,組織者記錄每一次活動的情況,數據庫可以對數據進行整理,以便能在以后的活動中形成準確的關聯。當然,也會存在一些小問題,例如項目分類被修改、項目分類不明確,但通過調整,直到相對完善。
(三)評價管理數據
評價是客觀反映義工完成效果,完成質量的記錄,也需要與項目數據和義工信息數據建立聯系。在評價體系中,項目的難易和義工的能力是需要平衡的,必須通過優化,盡可能地讓項目難易度與義工能力匹配度一致,保證高標準高要求完成。
二、數據庫模型
在系統開發的過程中,要提高系統的實際性能,降低客戶端和服務器端的編程和維護的難度,所以設計一個合理的數據庫模型就顯得尤為重要。
數據庫模型采用多對多的關聯關系,用工部門可以發布多個義工項目,每個義工可以對應多個項目,每個項目也可以對應多個義工,通過分析構建大學生義工管理系統實體類關系圖,如圖1所示。
三、數據庫設計
數據庫管理員和數據庫設計師都很熟悉的技術就是對數據庫進行分區設計,分區設計具備了可以減少特定SQL操作中數據的讀寫總量,減少響應時間等多種效果。
分區跟分表一樣,就是按特定的規則對數據庫進行分解。主要的區別在于分表是用若干個實體表代替一個達標,分區則是分散在多個位置存儲數據。既可以是在同一個物理磁盤內,也可以是在其他的機器中。進行分區過后,數據雖然分散存儲在不同的位置上,但實際上是通過數據庫系統自動組織分區的數據去操作一張表,在數據庫進行讀寫的時候跟一張大表沒有區別。
當表中的數據變得非常大時,讀取數據和查詢數據的效率就會非常低。但是如果進行分表保存數據又會使得操作上會變得復雜,這其中的原因是在做CRUD操作時,所涉及的表增多,要進行跨表操作。如果使用分區就能較好地避免這種情況的出現。因為分區是將表的數據按設定的規則保存在不同的分區中,這樣既可以保障數據的范圍相對統一地劃在同一區域中,又可以避免跨表的查詢,操作起來就相對容易,并且具備數據量少、運算速度快和方法簡單等特點,對程序透明,程序不需要做任何修改。
大學生義工管理系統數據庫初始規模約為40M,之后要考慮每年2GB的數據增長量。因此必須對數據庫服務器進行合理的配置規劃。首先,在一般情況下系統盤不作為數據庫存儲盤,這樣系統數據和數據庫數據互不受影響。其次,數據庫的事務日志文件要與數據文件分開保存在不同的盤中,這樣做的原因主要是可以避免在服務器出現硬件故障的時候導致數據丟失,有利于數據的恢復。最后,每年的數據增長率,如果在不考慮輔助數據文件的情況下,可以略微縮減,如果考慮輔助數據文件,那需要另外存儲。這樣將主文件、事務日志文件和輔助文件獨立存儲在三個不同的盤或者磁盤陣列上,數據庫的讀取性能、穩定性和安全性都將大大地提高。
四、數據表的設計
數據表在進行設計的時候要考慮具體的問題。(1)數據行的長度是有限制的,長度過長會造成數據存儲的碎片產生,降低查詢的效率。(2)編號和聯系方式等采用數字字段存儲,因為數字的比較會比字符串的比較簡單(數字是一次比較,字符串是逐個比較),這樣既能提高查詢和鏈接的性能,又能減少存儲的開銷。(3)在存儲字符類型時,對可變字符類型varchar和不可變字符類型char從查詢速度、存儲空間和靈活度上來說也是有較大區別的,用戶名、密碼這類長度、規則相對固定的可以采用char存儲,評價內容等變化較大的文本可以選擇varchar。(4)名稱相對較短的字段名也能提高查詢的效率,同時在建立索引時也能有效地減少計算資源的損耗。(5)第三范式是數據庫設計應遵循的最佳規則,但是往往在設計基本表及其字段的關系時,會出現不能完全滿足的情況,此時為了讓數據庫更高效地運行,適當地使用低標準的范式,即使增加了數據冗余,但是效率上可以彌補。(6)數據表有一個特點是可以處理多對多的關系,但是不容易識別多對多的關系,盡可能地在表與表之間避免多對多的關系是在設計表的時候要考慮的,這里采用的方法是在兩個表之間增加第三個表來消除。通過這樣的操作可以用兩個一對多的關系去代替一個多對多的關系,并且用三個表來表示的屬性也比原有的兩個表要分配得更合理一些。(7)主鍵作為表與表之間的連接工具,它的取值也是要在設計時考慮的,因為它既可以是沒有任何聯系和意義的通過自動增長來實現的數字串,也可以是具有某種意義的字段名或者字段名組合,但是通常第一種比第二種更利于查詢。因為使用字段名或字段名組合時,容易因為字段個數的關系導致索引占用空間大,速度慢。
此外,還要分清一個概念就是主鍵與外鍵的重復出現不屬于數據冗余,數據冗余只有非鍵字段的重復才算,這種重復性的冗余只是單純的字段重復出現,而不是字段的派生出現,屬于低級冗余。
根據數據庫模型和字段的設計規則,大學生義工管理系統包含四個數據表,分別為義工信息表(VTS_Info):字段有學號、姓名、性別、身份證號碼、聯系方式、所在院系、所在班級、參與活動次數和活動類型等;義工項目表(PR_Info):字段有項目編號、項目類型、參與人員等;評價表(COM_INFO):字段有開始時間、完成時間、完成情況和存在問題等;用戶信息表(US_Info):字段有用戶編號、身份角色和密碼等。
五、使用存儲過程代替直接操作
存儲過程是一組SQL語句在大型數據庫系統中完成特定的功能,用戶編寫好存儲過程后,只需要根據存儲過程的名稱,并搭配所需參數編譯一次,之后再次使用便不需要重新編譯,這是大多數設計優良的數據庫應用程序都使用的方法,特別是在一些操作相對復雜、使用頻次比較高的邏輯業務中,采用存儲過程代替復雜的SQL語句是優化數據庫訪問的重要手段。
把大學生義工活動的查詢操作使用系統的存儲過程具備以下優點:第一,例如將項目活動的派遣設計為存儲過程,創建標準組件并進行編譯后,在使用時只需要調用和執行,而不需要再次去重寫存儲過程的SQL語句,而且數據庫管理員還能在運行后對存儲過程進行調整,調整的同時不會涉及后端程序編碼,大大提高了存儲過程的可移植性。第二,例如義工活動評價這一類需要進行復雜的連表操作,又或者是需要執行多條T-SQL語句完成的,使用存儲過程就要比用批處理簡單很多。第三,例如多用戶同時操作數據庫時,網絡流量會增加,對數據對象的讀寫速度會慢,但是如果把這一操作用到的T-SQL語句編寫成為存儲過程,那么網絡中不會執行所有的SQL語句,只會是傳遞調用CALL語句而已,這樣就能降低網絡的負載力,對網絡的流量壓力也減輕了。第四,數據庫重視安全,存儲過程也屬于安全機制的一種,數據庫管理員可以通過存儲過程的權限限制數據的訪問,有效地避免一些未經授權的用戶去讀寫數據,充分地保障了數據的安全性。
六、分布式部署數據庫
大型網站的業務需求是不斷在增長的,只采用一個服務器將無法適應發展的要求,特別是如果進行讀寫分離后,一個數據庫服務器被劃分為兩個或兩個以上的數據庫服務器,還不能滿足業務不斷增長的需要,那么可采用分布式部署數據庫時解決分割網站數據庫的方法。
分布式部署數據庫就是將數據表保存在不同的數據庫中,在將數據庫放置在不同的服務器中(如圖2所示)。處理請求時,需要同時調用多個數據表,那么就可以通過多個服務器協同處理,進而改善處理效率。
通過一系列的調試與運行,數據庫使用的過程穩定,實現對用戶分角色管理的同時,還兼具安全性,真實地反映了實時的數據,實現了實時對人員和項目活動等重要信息的管理,有效地提高了大學生義工團體的管理效率和工作效率,從資源整合、信息共享的角度對系統進行了優化,降低了網絡負載量,提高了訪問的速度。當然,隨著系統不斷的運行,數據的存儲量不斷增多的同時,還要進一步完善數據結構,讓系統支持更為靈活、安全和高效的存儲方式。
【參考文獻】
[1]付文哲,韓震,司玉杰.大學生青年志愿者管理系統的設計與實現[J].電腦知識與技術,2020(32).
[2]孫玲玲.SQL數據庫設計與安全維護優化研究[J].電子制作,2020(14).
[3]張靜.圖書管理系統數據庫的優化設計研究[J].黑龍江科學,2018(20).
【作者簡介】盧 峰(1985— ),男,廣西岑溪人,廣西機電職業技術學院講師,研究方向為軟件工程技術、大學生思想政治教育;林 灃(1982— ),男,廣西南寧人,廣西機電職業技術學院副教授,工程師,研究方向為Web應用開發和軟件技術。
(責編 黃桂嬋)