• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      呂震宇 叢賀 張迪

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

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

      中圖分類號(hào):TP311? ? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):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)目標(biāo)對(duì)學(xué)生在校期間的教育、教學(xué)、學(xué)習(xí)、訓(xùn)練等活動(dòng)進(jìn)行設(shè)計(jì)和實(shí)施的規(guī)劃。人才培養(yǎng)方案制定是一個(gè)復(fù)雜的過(guò)程,人才培養(yǎng)目標(biāo)、畢業(yè)要求、課程體系、課程大綱之間相互支撐,培養(yǎng)方案制定過(guò)程的復(fù)雜性、課程編碼的規(guī)范和唯一性要求等,迫切需要通過(guò)信息化手段實(shí)現(xiàn)培養(yǎng)方案的修訂。

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

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

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

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

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

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

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

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

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

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

      1.3? 學(xué)期鎖定問(wèn)題

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

      1.4? 課程鎖定問(wèn)題

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

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

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

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

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

      在核心業(yè)務(wù)表數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中重點(diǎn)考慮了如下因素:

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

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

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

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

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

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

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

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

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

      2.3? 業(yè)務(wù)邏輯鎖定設(shè)計(jì)

      在數(shù)據(jù)庫(kù)設(shè)計(jì)中,分別在專業(yè)、學(xué)期、課程表中增加了是否鎖定字段,用于構(gòu)建專業(yè)鎖、學(xué)期鎖、課程鎖三種虛擬業(yè)務(wù)邏輯鎖,這些鎖相互交疊,確?!岸ǜ濉焙蟮呐囵B(yǎng)方案不會(huì)因?yàn)椴l(fā)問(wèn)題而被意外修改。專業(yè)鎖、學(xué)期鎖、課程鎖的具體加鎖、解鎖流程如圖4和圖5所示。

      2.3.1? 專業(yè)鎖

      專業(yè)鎖用于鎖定某一專業(yè)的計(jì)劃進(jìn)程表。一旦某專業(yè)被鎖定,該專業(yè)將無(wú)法繼續(xù)編輯(包括插入、刪除、修改)計(jì)劃進(jìn)程表中的課程,同時(shí)該專業(yè)計(jì)劃進(jìn)程表引用的課程將一并鎖定,不允許任何人對(duì)這些課程繼續(xù)進(jìn)行修改。鎖解鎖時(shí),所引用課程通??梢砸徊⒔怄i,除非以下情況:課程被其他已鎖定專業(yè)鎖定;在鎖定的學(xué)期中有該課程。

      2.3.2? 學(xué)期鎖

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

      2.3.3? 課程鎖

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

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

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

      4? 結(jié)? 論

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

      參考文獻(xiàn):

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

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

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

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

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

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

      猜你喜歡
      數(shù)據(jù)庫(kù)設(shè)計(jì)
      醫(yī)療設(shè)備信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      圖書館入館教育考試系統(tǒng)分析與設(shè)計(jì)
      試論數(shù)據(jù)庫(kù)設(shè)計(jì)在網(wǎng)站開發(fā)中的應(yīng)用
      基于WEB的科研信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      軟件開發(fā)中數(shù)據(jù)庫(kù)設(shè)計(jì)理論的實(shí)踐
      面向等級(jí)考試,探討高校理工科計(jì)算機(jī)基礎(chǔ)課程教學(xué)改革
      考試周刊(2016年47期)2016-06-29 22:15:13
      網(wǎng)站管理系統(tǒng)中數(shù)據(jù)庫(kù)設(shè)計(jì)的應(yīng)用研究
      《數(shù)據(jù)庫(kù)原理及應(yīng)用》在線考試系統(tǒng)的設(shè)計(jì)
      基于PHP+MySql的學(xué)生請(qǐng)銷假系統(tǒng)的設(shè)計(jì)
      農(nóng)村宅基地確權(quán)數(shù)據(jù)自動(dòng)提取方法研究與應(yīng)用
      漳浦县| 瑞丽市| 民权县| 井陉县| 潮州市| 永平县| 贺兰县| 即墨市| 连南| 邛崃市| 定襄县| 张家川| 稷山县| 佛学| 城固县| 清水河县| 东兰县| 南投市| 三亚市| 无锡市| 西城区| 剑阁县| 石柱| 佛山市| 黄山市| 栾城县| 凉城县| 美姑县| 仲巴县| 龙游县| 新平| 江都市| 湖北省| 湾仔区| 朝阳市| 枝江市| 望谟县| 新密市| 泰州市| 洛扎县| 铅山县|