摘要:本文主要針對教務管理系統的功能需求展開了分析,從信息管理、課程管理、成績管理、教學計劃四個方面入手并做出各自的模塊設計,此外還對系統中最難攻克的數據完整性有關問題詮釋了課程數據完整性的基本內涵,探究了課程數據完整性受到破壞的主要原因,并提出了保證課程數據完整性的一些對策。
關鍵詞:教務管理系統 課程 數據管理 數據完整性
0 引言
當今的科技迅速發展,管理系統已經完全通過計算機實現,因此需要根據外界的不斷變化來完善管理系統,設計適應其發展的數據庫管理系統,提高其性能,完善其功能。通過計算機進行教務管理是現代化管理的必然趨勢,現通過課程設計來實現一個較小的較為簡單的教務管理系統,使得學校的教務管理人員可以更加高效地進行諸如制定教學計劃、安排課表和教室及考試管理等活動。
1 教務管理系統功能需求
1.1 需求分析 為了高效率的教務教學的管理,滿足對學生教師信息、學生成績等的查詢及其他相關操作的實現,決定開發設計教務管理系統,使教務管理工作系統化、規范化、自動化,從而達到提高管理效率的目的。使辦公人員可以輕松快捷地完成教務管理的任務。具體分析如下:
學院包括理學院、人文學院、電信學院、計算機系、外語系等若干二級院系。首先,由各二級院系制定教學計劃,由此得出開課計劃,這樣就有了排課的基本信息,即可生成課表;一個學期結束后,教師從網上錄入成績,系統自動對此數據進行統計和處理。輔助學生的評優工作。系統包括學生學籍管理、教師基本信息管理、Web成績錄入和查詢、選課、考試信息發布等。
1.2 系統功能分析 教務管理系統是一個能夠管理教師及學生信息的系統,除此之外,它還應該能夠對學生及教師提供一定的查詢功能,如:成績查詢、獲獎情況查詢、課程查詢、畢業情況查詢等。教務系統還應該對學生每學期的選課進行管理。具體功能可歸納為以下幾點:①教務處以及各二級院系可以對在籍的每個學生的學籍,包括對學生的成績、畢業、學生獎勵及處分情況進行動態管理。②系統提供Web成績錄入和查詢。③系統對學生選課進行管理。④對教師信息、教學計劃進行管理、維護和調整。⑤通過此系統,進行考務管理。
1.3 系統相關圖
圖1 用例圖
圖1說明:UML的用例圖較詳細和確切地描述了用戶的功能需求,使系統責任明確到位,奠定UML對系統建模的基礎,這樣,其他模型圖的構造和發展依賴于用例圖中所描述的內容,直至系統能夠實現用例圖中描述的功能。
圖2 類圖
圖2說明:將該系統分為六個類:成績管理、信息管理、教學計劃管理(這三個類完成系統管理的三個主要功能,是三個管理模塊)、二級學院、教師、學生。
圖3 順序圖
圖3說明:學院首先制定教學計劃自動排課生成課表,學生可以登錄系統進行選課;每次進行考試先由成績管理系統進行安排,考試完畢教師將成績錄入系統,學生登錄系統便可以進行成績的查詢;信息管理系統對學生信息的管理主要在學籍、獎勵處分情況和畢業情況方面進行管理。
圖4說明:活動圖是UML中描述系統動態行為的圖之一,它用于展現參與行為的類的活動和動作。圖中的活動用圓角矩形表示。該圖反映了各個類在不同時刻完成的操作。
2 數據完整性問題
2.1 問題的提出
高校在課程數據管理中存在著諸多數據異常錯誤或問題,主要表現在:
一是重復設課。在課程庫中對實屬同一門課程設置了多個課程號,造成在分年級、分專業教學計劃中對同一課程引用了不同的課程號,導致教學運行環節中課程安排、學生選課、課程重修、考試安排、畢業審查等管理工作經常出現重復課程,需要進行課程替換或合并等雜亂情況。
二是課程信息維護不完全或不準確。對課程數據的一些關鍵屬性,比如課程類型、學分、學時等,沒有全面維護或維護不準確,導致其它子系統對課程引用發生偏差或錯誤。
三是成績庫中出現一課多學分并存或已修學分發生變化。課程管理員隨意修改課程庫中的課程學分,而成績子系統對課程學分刷新或記載存在不同步的差異,導致成績庫中一門課程出現多學分并存或已修學分發生變化的學分不一致的情況。
四是數據表中出現無課程號數據。在教學計劃、成績、教學任務書等數據表中莫名出現有數據但無課程號的情況,這種情況是由于對課程庫刪除了被引用的課程導致,造成其它數據表中產生垃圾數據或異常錯誤。
種種問題的出現,造成教務管理系統中課程數據混亂或異常錯誤,嚴重影響著教務管理系統數據的準確性和系統運行效果。筆者認為,產生這些問題的主要根源在于高校對課程數據管理存在一定程度的隨意性、盲目性,無論是系統控制還是業務規則都缺乏對課程數據完整性的約束。
2.2 課程數據完整性的涵義與約束
數據完整性約束一般包括三類:
2.2.1 實體完整性
實體完整性約束的目的是確保數據庫中所有實體的唯一性,也就是不應使用完全相同的數據記錄。實體完整性要求一個關系或表中主碼的屬性不能取空值,也不能有重復值,即一個元組(關系表中的一行或一條記錄)表示唯一的實體對象。
2.2.2 引用完整性
引用完整性是用來維護相關數據表之間數據一致性的手段,通過實現引用完整性,可以避免因一個數據表的記錄改變而使另一個數據表內的數據變成無效的值。
保證課程數據引用完整性要注意幾個問題:
一是外碼是否可以接受空值。外碼能否為空是依賴于應用環境的,如上述成績關系中的外碼“課程號”。
二是刪除課程元組時的考慮。有時想要刪除課程庫中一個元組,但存在引用關系中(計劃、成績等)若干元組的外碼值與被刪除的被引用關系中的元組主碼值相對應,這時要進行級聯刪除,如果引用關系同時又是另一個關系的被引用關系則這種級聯刪除應該級聯下去。
三是修改課程屬性時的考慮。有時需要修改課程元組的某些屬性,應注意的是,級聯刪除、級聯修改是很危險的,可能涉及不同的業務管理范圍,需經各方面的確認。
2.2.3 用戶自定義完整性
任何關系數據庫系統都應該支持實體完整性和引用完整性。除此之外,不同的關系數據庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。
2.3 課程數據完整性受到破壞的原因
通過分析課程數據管理中存在的問題可以發現,造成課程數據完整性受到破壞,既存在系統功能不完善的原因,也存在人為操作不當的因素。
2.3.1 在客觀上存在系統功能性的欠缺
該教務管理系統已提供了一些數據完整性的約束機制,但仍然存在嚴重缺陷,不能有效保障課程數據的完整性、可靠性。潛在的功能缺陷有:
一是缺少數據錄入時的完整性檢驗。目前,系統除了對課程號錄入時具有“不能為空”的檢驗外,并未對課程其它必要屬性做出“不能為空”的定義。在添加數據時系統應通過程序控制確定課程必填項目,比如學時、學分、開課單位、課程類型等。
二是缺少對數據修改、刪除操作的檢驗和級聯處理。根據引用完整性的要求,課程數據一經被其它表引用,有些屬性就是“不可變”的,而該教務系統在進行課程數據修改和刪除時沒有對該數據進行引用檢驗,更沒有級聯修改和刪除的功能。有時系統缺乏對用戶操作的規范控制,就可能造成非法數據進入數據庫,這樣數據完整性受到破壞就在所難免。
2.3.2 在主觀上存在人為操作的隨意性、盲目性
課程管理員在進行課程數據處理時,操作隨意性大,對數據維護可能造成錯誤的“風險”意識不足,比如隨意修改課程數據的學分、學時等關鍵屬性;或隨意刪除課程數據;或數據信息維護不完整;或數據庫管理員不經過應用程序,而通過數據庫后臺直接對數據庫進行刪除、修改和插入等操作,使得一些不符合缺省規則的數據進入數據庫,破壞了數據的完整性。
2.4 保證課程數據完整性的對策
在絕大多數情況下可以利用系統提供的數據完整性技術來保證數據的一致性,使得數據處于正確的狀態,然而它并不是解決問題的全部方法,也難以避免人為因素,還需要通過業務規則和操作規范進行控制。
2.4.1 強化應用系統對數據完整性的控制是保障數據完整性最有效的手段
強化課程數據完整性可以利用Oracle數據庫系統自身提供的完整性約束與觸發器功能和應用程序執行完整性檢驗等方法來實現。應用系統應提供一些限制規則,這些規則規定用戶在對數據庫進行更新操作時,系統按照制定的規則檢驗操作的合法性,若不符合規則需進行相應的錯誤校驗處理。限制規則可以分為三類:①完整性約束。②觸發條件。③違約響應。
2.4.2 建立業務規則是保證數據完整性的最重要保障
如果軟件功能不能從源頭上對數據質量進行控制,那么建立業務規則來強制數據完整性就成為最后的屏障。
首先,要科學設置課程編碼。課程是以課程代碼進行標識的,課程代碼必須保證同一門課程僅有一個唯一的代碼,遵循同一性原則。
其次,要提高管理人員的責任意識,遵守操作規范。由于系統未做到或不能完全做到對數據進行完整性約束,因此,必須通過強化操作規范進行行為控制,避免隨意性、盲目性人為錯誤的發生。
3 結論
為了保證教務管理系統切實有效地工作,在需求分析階段必須做到充分了解學校的工作實情和具體需求,對于教務管理的每一個環節都必須做到了解透徹,特別是基礎數據的采集與準備。這樣在做系統設計時才能使得后期的課程數據等得到有效的保障,從而從根本上解決系統存在的問題,達到充分提高教務管理工作效率的目的。
參考文獻:
[1]方紀旋.高校教務系統(課程管理)的開發與使用中的若干問題[J].教育信息化,2002(7).
[2]湯娟等.數據庫應用系統中數據完整性的研究[J].交通與計算機,2002(1).
[3]王能斌.數據庫系統原理[M].北京:電子工業出版社,2000.