国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于“寫時復制”的培養(yǎng)方案管理系統(tǒng)邏輯鎖定方案設(shè)計

2023-06-25 20:53:00呂震宇叢賀張迪
現(xiàn)代信息科技 2023年7期
關(guān)鍵詞:數(shù)據(jù)庫設(shè)計

呂震宇 叢賀 張迪

摘? 要:培養(yǎng)方案管理系統(tǒng)提升了人才培養(yǎng)方案修訂工作的質(zhì)量和效率,然而,該系統(tǒng)在使用過程中也暴露出了專業(yè)間課程獨立修改與數(shù)據(jù)規(guī)范化設(shè)計難以兩全、高并發(fā)環(huán)境下數(shù)據(jù)容易出現(xiàn)不一致、共享課程導致某一專業(yè)培養(yǎng)方案定稿困難等一系列問題。文章引入了“寫入時復制”(Copy-on-Write)技術(shù),增加了專業(yè)鎖、學期鎖、課程鎖等邏輯鎖,利用兩階段鎖協(xié)議等技術(shù)對培養(yǎng)方案管理系統(tǒng)進行重構(gòu),保證了系統(tǒng)的穩(wěn)定高效運行,為此類數(shù)據(jù)庫系統(tǒng)并發(fā)一致性問題提供了解決方案。

關(guān)鍵詞:培養(yǎng)方案管理系統(tǒng);寫時復制;數(shù)據(jù)庫設(shè)計

中圖分類號:TP311? ? 文獻標識碼:A? 文章編號:2096-4706(2023)07-0020-05

Abstract: The Training protocol management system improves the quality and efficiency of talent training protocol revision work, however, the system in the process of use also exposes a series of problems such as professional course independent modification and data standardization design is difficult to both, high concurrency environment data prone to inconsistent, sharing courses lead to a professional training protocol finalized difficulties and so on. This paper introduces the technology of “Copy-on-Write”, adds logic locks such as professional lock, semester lock and course lock, and uses the two-stage lock protocol and other technologies to reconstruct the training protocol management system. It ensures the stable and efficient operation of the system, and provides a solution for the concurrent consistency problem of such database system.

Keywords: training protocol management system; copy-on-write; database design

0? 引? 言

專業(yè)人才培養(yǎng)方案是圍繞一定人才培養(yǎng)目標對學生在校期間的教育、教學、學習、訓練等活動進行設(shè)計和實施的規(guī)劃。人才培養(yǎng)方案制定是一個復雜的過程,人才培養(yǎng)目標、畢業(yè)要求、課程體系、課程大綱之間相互支撐,培養(yǎng)方案制定過程的復雜性、課程編碼的規(guī)范和唯一性要求等,迫切需要通過信息化手段實現(xiàn)培養(yǎng)方案的修訂。

高校不同專業(yè)培養(yǎng)方案修訂往往是同時進行的,不同專業(yè)間存在大量共享課程,培養(yǎng)方案管理系統(tǒng)在設(shè)計之初就必須考慮共享課程在不同專業(yè)間的隔離,即一個專業(yè)對某門課程的修改不能影響另外一個專業(yè);此外一個專業(yè)的培養(yǎng)方案一旦定稿,這些共享課程也必須定稿,其他專業(yè)不得以任何理由進行修改;很多高校培養(yǎng)方案修訂和實施往往是并行執(zhí)行的,因此培養(yǎng)方案管理系統(tǒng)還應該考慮按照學期鎖定培養(yǎng)方案,所有這些大大增加的培養(yǎng)方案管理系統(tǒng)設(shè)計難度,需要精心架構(gòu)邏輯鎖定方案,以確保系統(tǒng)的穩(wěn)定運行。

1? 培養(yǎng)方案管理系統(tǒng)現(xiàn)狀及問題

現(xiàn)有培養(yǎng)方案管理系統(tǒng)多以驅(qū)動教務系統(tǒng)運轉(zhuǎn)為目的,片面突出了培養(yǎng)方案系統(tǒng)在教務管理中的作用,缺少對培養(yǎng)方案科學制定過程的有效支撐。H高校2016年開發(fā)了培養(yǎng)方案管理系統(tǒng)1.0版,規(guī)范了培養(yǎng)方案修訂過程,實現(xiàn)了培養(yǎng)方案文檔的自動化生成。然而該系統(tǒng)由于缺乏對共享課程的有效隔離,且沒邏輯鎖定機制,導致無法處理諸如專業(yè)培養(yǎng)方案定稿、鎖定某些學期的培養(yǎng)方案等問題,一個專業(yè)對課程的修改有可能會影響到另外一個專業(yè),高并發(fā)環(huán)境下難以保證數(shù)據(jù)的一致性。具體體現(xiàn)在:

1.1? “數(shù)據(jù)冗余”與“并發(fā)控制”兩難的問題

培養(yǎng)方案管理的核心是計劃進程表管理,計劃進程表用于記錄不同專業(yè)在不同學期的課程開設(shè)情況。按照數(shù)據(jù)規(guī)范化理論,滿足3NF的培養(yǎng)方案核心數(shù)據(jù)表設(shè)計應圍繞專業(yè)與課程的多對多關(guān)系展開,如圖1所示。

該設(shè)計方案的優(yōu)點是符合數(shù)據(jù)規(guī)范化要求,消除了數(shù)據(jù)冗余,為數(shù)據(jù)“并發(fā)控制”奠定了基礎(chǔ),但缺點是兩個不同的專業(yè)可能引用同一門課程(例如“工商管理”專業(yè)和“信息管理與信息系統(tǒng)”專業(yè)均開設(shè)“高等數(shù)學”課程),一個專業(yè)對課程的修改將導致另外一個專業(yè)課程也發(fā)生改變。

解決該問題的一種辦法是將課程表與培養(yǎng)方案課程表合并,如圖2所示。

該方案雖然能夠確保一個專業(yè)對共享課程的修改不會影響另外一個專業(yè),但引入了大量的數(shù)據(jù)冗余將導致潛在的插入異常、刪除異常和更新異常的發(fā)生。

1.2? 專業(yè)培養(yǎng)方案定稿困難

當多個專業(yè)同時修訂培養(yǎng)方案時,部分專業(yè)修訂完成后需要執(zhí)行“定稿”操作。一旦培養(yǎng)方案定稿,就不能再對其做任何的修改。然而由于不同專業(yè)間課程的高度共享性,一門課程可能在多個專業(yè)同時開設(shè),如何保障未定稿專業(yè)對該課程的修改不影響到已定稿專業(yè),是一個需要解決的問題。

1.3? 學期鎖定問題

本科培養(yǎng)方案是對本科生4-5年在校學習課程的計劃,實際操作過程中可能存在邊制定培養(yǎng)方案邊予以實施的情況。例如,先將專業(yè)培養(yǎng)方案前兩個學期的課程定稿,導入教務系統(tǒng)予以實施,然后允許專業(yè)負責人對3學期及以后的培養(yǎng)方案繼續(xù)進行修訂。這種做法會極大地增加系統(tǒng)管理的復雜度。例如A專業(yè)在第2學期開設(shè)了《高等數(shù)學》,而同一門《高等數(shù)學》B專業(yè)在第3學期開設(shè)。鎖定前兩個學期意味著B專業(yè)不能再對《高等數(shù)學》課程做任何修改(因為已經(jīng)被A專業(yè)導入教務系統(tǒng)并實施),但可以調(diào)整開課學期(只能調(diào)整到3學期及以后學期)。

1.4? 課程鎖定問題

培養(yǎng)方案管理系統(tǒng)中的課程一旦導入教務系統(tǒng),就意味著該課程不能再做任何修改,如何通過建立課程鎖定機制限制意外修改也是系統(tǒng)在設(shè)計過程中需要加以考慮的問題。

在實際應用過程中,專業(yè)鎖定(培養(yǎng)方案定稿)、學期鎖定、課程鎖定往往是交疊進行的,可能同時存在專業(yè)鎖定、學期鎖定、課程鎖定的情況,此時業(yè)務處理還需要考慮不同類型鎖定的優(yōu)先級問題,所有這些都大大增加了系統(tǒng)設(shè)計的復雜度。

2? 培養(yǎng)方案管理系統(tǒng)核心業(yè)務表格設(shè)計

為了確保在消除數(shù)據(jù)冗余的同時解決兩個專業(yè)修改共享課程造成的并發(fā)控制問題,引入COPY ON WRITE算法,在表中增加引用計數(shù)器字段,實現(xiàn)了數(shù)據(jù)規(guī)范化和并發(fā)控制的平衡;通過將學期從字段提升為實體,并在數(shù)據(jù)庫相應表格中增加專業(yè)鎖、學期鎖、課程鎖字段,配合鎖定算法,實現(xiàn)根據(jù)業(yè)務邏輯對數(shù)據(jù)進行鎖定,避免意外修改。

2.1? 核心業(yè)務數(shù)據(jù)庫設(shè)計

在核心業(yè)務表數(shù)據(jù)庫設(shè)計過程中重點考慮了如下因素:

1)專業(yè)、課程、學期表均設(shè)有“是否鎖定”字段,允許實現(xiàn)業(yè)務邏輯上的鎖定操作。如某一專業(yè)培養(yǎng)方案已經(jīng)定稿,而其他專業(yè)尚在修改中,可以鎖定該專業(yè),避免意外的修改;如果某一學期的課程計劃已經(jīng)開始實施,可以鎖定該學期,確保該學期下的所有課程不會再發(fā)生更改;如果某一課程已經(jīng)錄入教務系統(tǒng),可以鎖定該課程,禁止對該課程任何形式的修改。

2)課程表中增加了“引用計數(shù)”字段。該字段用于同步記錄有多少個專業(yè)開設(shè)該課程,同時該字段也用于指導COPY ON WRITE的修改動作。例如引用計數(shù)為1的時候,說明只有1個專業(yè)引用該課程,那么可以在該課程記錄上直接進行修改操作;如果引用計數(shù)大于1,說明有多個專業(yè)引用該課程,那么在修改時先要拷貝一份出來進行修改,同時對引用計數(shù)減1。

3)課程表中設(shè)置了自動增長型字段“課程內(nèi)部編號”作為主鍵,而“課程編號”為非主鍵。這主要考慮課程編號后期可能會統(tǒng)一編排,系主任在調(diào)整培養(yǎng)方案時可以不受課程編號是否唯一的限制,也為“COPY ON WRITE”提供克隆課程的基礎(chǔ)。用戶可以通過系統(tǒng)提供的錯誤檢查功能發(fā)現(xiàn)潛在的課程編號重復問題并加以修正。

計劃進程核心業(yè)務表邏輯數(shù)據(jù)庫設(shè)計如圖3所示。

2.2? COPY ON WRITE算法設(shè)計

通過COPY ON WRITE算法和引用計數(shù)器,解決“數(shù)據(jù)冗余”與“并發(fā)控制”兩難的問題。如果多個專業(yè)開設(shè)了相同的課程,它們將通過培養(yǎng)方案課程表引用到同一條課程記錄。同時為了后續(xù)操作方便,在課程表中增加了“引用計數(shù)”字段記錄有多少個專業(yè)開設(shè)該課程。表1、表2、表3分別展示了專業(yè)、課程、培養(yǎng)方案課程之間的關(guān)系??梢钥闯觯ど坦芾?、信息管理與信息系統(tǒng)專業(yè)均開設(shè)了高等數(shù)學與英語課程,只是開課學期不完全相同。此時高等數(shù)學、英語兩門課程的引用計數(shù)均為2,說明各有兩個專業(yè)開設(shè)了該課程。

若信息管理與信息系統(tǒng)專業(yè)決定將高等數(shù)學的學時從80學時提高到96學時,由于目前高等數(shù)學引用計數(shù)大于1,因此首先將高等數(shù)學課程拷貝一份并進行修改,然后修改原有高等數(shù)學課程的引用計數(shù),最后修改培養(yǎng)方案課程表中信息管理與信息系統(tǒng)專業(yè)高等數(shù)學的課程內(nèi)部編號。具體結(jié)果如表4和表5所示。其中,括號的內(nèi)容表示新修改的值。

如果此時工商管理專業(yè)決定將高等數(shù)學學時提高到88,由于其所引用的課程內(nèi)部編號為1的課程引用計數(shù)為1,因此可以直接在原地進行修改。再次修改后的課程表如表6所示,培養(yǎng)方案課程表不變。其中,括號的內(nèi)容表示新修改的值。

若工商管理最終決定將高等數(shù)學課程修改為96學時,修改后的課程與信息管理與信息系統(tǒng)專業(yè)保持一致,此時將觸發(fā)相同課程的“合并”操作,同時引用計數(shù)也將進行合并。最終修改結(jié)果如表7和表8所示。其中,括號的內(nèi)容表示新修改的值。

2.3? 業(yè)務邏輯鎖定設(shè)計

在數(shù)據(jù)庫設(shè)計中,分別在專業(yè)、學期、課程表中增加了是否鎖定字段,用于構(gòu)建專業(yè)鎖、學期鎖、課程鎖三種虛擬業(yè)務邏輯鎖,這些鎖相互交疊,確保“定稿”后的培養(yǎng)方案不會因為并發(fā)問題而被意外修改。專業(yè)鎖、學期鎖、課程鎖的具體加鎖、解鎖流程如圖4和圖5所示。

2.3.1? 專業(yè)鎖

專業(yè)鎖用于鎖定某一專業(yè)的計劃進程表。一旦某專業(yè)被鎖定,該專業(yè)將無法繼續(xù)編輯(包括插入、刪除、修改)計劃進程表中的課程,同時該專業(yè)計劃進程表引用的課程將一并鎖定,不允許任何人對這些課程繼續(xù)進行修改。鎖解鎖時,所引用課程通常可以一并解鎖,除非以下情況:課程被其他已鎖定專業(yè)鎖定;在鎖定的學期中有該課程。

2.3.2? 學期鎖

學期鎖用于鎖定某一學期。一旦某學期被鎖定,該學期所開設(shè)過的課程將無法繼續(xù)編輯(包括刪除、修改);計劃進程表中課程的開課學期如果處于非鎖定學期,則只能更改至其他非鎖定學期;計劃進程表中課程的開課學期如果處于鎖定學期,則無法繼續(xù)編輯課程開課學期等任何信息。學期鎖解鎖時,所引用課程通常可以一并解鎖,除非以下情況:課程被已鎖定專業(yè)鎖定;在其他鎖定學期中引用了該課程。如圖6和圖7所示。

2.3.3? 課程鎖

課程鎖用于鎖定某一課程。一旦某課程被鎖定將無法再進行刪除,但可以通過COPY ON WRITE的方式進行編輯。在以下情況鎖定的課程不能被解鎖:課程被已鎖定專業(yè)鎖定;在鎖定學期中引用了該課程。通常情況下不直接鎖定課程或解鎖課程,多為鎖定學期或鎖定專業(yè)等操作伴隨的課程鎖定。當課程被同步到教務系統(tǒng)時,系統(tǒng)會對已同步課程強制觸發(fā)課程加鎖動作。

3? 系統(tǒng)實現(xiàn)

上述設(shè)計方案已經(jīng)成功應用在了H高校培養(yǎng)方案管理系統(tǒng)中。系統(tǒng)使用SQL Server作為后臺數(shù)據(jù)庫,將專業(yè)、學期的鎖定與解鎖動作封裝為存儲過程并用事務包裹,確保了操作的原子性。在對80多個專業(yè)同時修訂培養(yǎng)方案、多個專業(yè)同時引用并修改相同課程的場景考驗下,COPY ON WRITE算法運行穩(wěn)定。數(shù)據(jù)庫設(shè)計方案在確保了數(shù)據(jù)規(guī)范化的同時,配合并發(fā)一致性設(shè)計方案,使所有培養(yǎng)方案數(shù)據(jù)的內(nèi)在邏輯關(guān)系都得到了有效保障。

4? 結(jié)? 論

通過將COPY ON WRITE算法引入培養(yǎng)方案管理系統(tǒng)數(shù)據(jù)庫設(shè)計,解決了“數(shù)據(jù)冗余”與“并發(fā)控制”的兩難問題;通過引入專業(yè)鎖、學期鎖、課程鎖三種虛擬業(yè)務邏輯鎖,解決了培養(yǎng)方案定稿、培養(yǎng)方案部分定稿等業(yè)務中,共享課程間相互交疊課程鎖定問題;通過在數(shù)據(jù)庫設(shè)計中添加引用計數(shù)字段,幫助COPY ON WRITE判斷修改時是否需要復制或合并。實踐結(jié)果表明,該培養(yǎng)方案管理系統(tǒng)邏輯鎖定方案達到了預期設(shè)計目標,能夠在大規(guī)模數(shù)據(jù)訪問中保持數(shù)據(jù)的一致性。

參考文獻:

[1] 曹宇新.“強基計劃”人才培養(yǎng)模式的高校政策再制定研究——基于36所試點高?!皬娀媱潯迸囵B(yǎng)方案的文本分析 [J].教育理論與實踐,2022,42(3):3-7.

[2] 劉云.“數(shù)據(jù)庫原理與應用”課程思政教學設(shè)計與實踐探索 [J].現(xiàn)代商貿(mào)工業(yè),2022,43(12):140-141.

[3] 孫群,溫伯威,陳欣.多源地理空間數(shù)據(jù)一致性處理研究進展 [J].測繪學報,2022,51(7):1561-1574.

[4] 姜文,劉立康.Oracle數(shù)據(jù)庫死鎖問題研究 [J].計算機技術(shù)與發(fā)展,2014,24(3):97-101.

[5] 蘇學斌.基于聚類的數(shù)據(jù)庫事務并發(fā)控制算法研究 [D].哈爾濱:哈爾濱工業(yè)大學,2020.

作者簡介:呂震宇(1976—),男,漢族,山東安丘人,教授,碩士,研究方向:信息管理與信息系統(tǒng)、數(shù)據(jù)分析與挖掘;叢賀(1992—),男,漢族,內(nèi)蒙古赤峰人,碩士在讀,研究方向:數(shù)據(jù)庫并發(fā)一致性控制;張迪(1999—),女,漢族,河北滄州人,本科,研究方向:計算機軟件、信息管理。

猜你喜歡
數(shù)據(jù)庫設(shè)計
醫(yī)療設(shè)備信息管理系統(tǒng)的設(shè)計與實現(xiàn)
圖書館入館教育考試系統(tǒng)分析與設(shè)計
試論數(shù)據(jù)庫設(shè)計在網(wǎng)站開發(fā)中的應用
基于WEB的科研信息管理系統(tǒng)的設(shè)計與實現(xiàn)
軟件開發(fā)中數(shù)據(jù)庫設(shè)計理論的實踐
面向等級考試,探討高校理工科計算機基礎(chǔ)課程教學改革
考試周刊(2016年47期)2016-06-29 22:15:13
網(wǎng)站管理系統(tǒng)中數(shù)據(jù)庫設(shè)計的應用研究
《數(shù)據(jù)庫原理及應用》在線考試系統(tǒng)的設(shè)計
基于PHP+MySql的學生請銷假系統(tǒng)的設(shè)計
農(nóng)村宅基地確權(quán)數(shù)據(jù)自動提取方法研究與應用
登封市| 凌海市| 惠东县| 彭泽县| 泰安市| 十堰市| 怀宁县| 教育| 淳化县| 北流市| 阳谷县| 天气| 柘城县| 托克逊县| 汉中市| 霍邱县| 苗栗市| 开原市| 安丘市| 越西县| 河东区| 赣州市| 永清县| 绍兴县| 巴林左旗| 锡林郭勒盟| 云霄县| 正镶白旗| 芜湖市| 浑源县| 灵寿县| 仪陇县| 肇州县| 台北县| 荆门市| 玛曲县| 金溪县| 揭东县| 崇州市| 思茅市| 昌吉市|