• 
    

    
    

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

      《數(shù)據(jù)庫原理》并發(fā)控制教學(xué)案例設(shè)計

      2017-12-09 23:20:59王玨徐靜吳瓊金莉羅海艷
      科技視界 2017年23期
      關(guān)鍵詞:數(shù)據(jù)庫原理

      王玨+徐靜+吳瓊+金莉+羅海艷

      【摘 要】并發(fā)控制是數(shù)據(jù)庫管理系統(tǒng)重要的組成部分。允許多個用戶同時對數(shù)據(jù)庫進(jìn)行訪問,有可能出現(xiàn)多個用戶同時存取同一數(shù)據(jù)的情況。如果對其不加控制就有可能破壞數(shù)據(jù)庫的一致性,出現(xiàn)丟失修改、不可重復(fù)讀以及讀取臟數(shù)據(jù)的情況,所以需要對數(shù)據(jù)庫進(jìn)行并發(fā)控制。封鎖是實現(xiàn)并發(fā)控制的一項重要技術(shù)。本文設(shè)計幾個教學(xué)案例,幫助學(xué)生更好地理解封鎖機(jī)制,從而為掌握數(shù)據(jù)庫的并發(fā)控制打下堅實基礎(chǔ)。

      【關(guān)鍵詞】并發(fā)控制技術(shù);教學(xué)案例設(shè)計

      中圖分類號: TP311.13-4 文獻(xiàn)標(biāo)識碼: A 文章編號: 2095-2457(2017)23-0054-002

      【Abstract】Concurrency control is an important part of the database management system.The database allows multiple users to use the database system at the same time. In this case,multiple users possibly access the same data currently. There may be the situations of lost update,not repeatable and read dirty data,if there is no control. So concurrency control of the database is very important.Blocking is a key technique for concurrency control.This article designed several case studies to help students understand the block mechanism better. This will lay a solid foundation for students to master the concurrency control of the database.

      【Key words】Concurrent control technology;Teaching case design

      0 引言

      數(shù)據(jù)庫具有高共享性,即多個用戶可以同時使用數(shù)據(jù)庫,這樣在數(shù)據(jù)庫系統(tǒng)中,同一時刻可以并發(fā)運行多個事務(wù)。根據(jù)系統(tǒng)中處理機(jī)的個數(shù),并發(fā)執(zhí)行有兩種方式,它們分為交叉并發(fā)方式和同時并發(fā)方式。交叉并發(fā)方式是指在單處理機(jī)系統(tǒng)中,多個事務(wù)輪流交叉運行,多個事務(wù)并沒有真正并行執(zhí)行,但這種執(zhí)行方式減少了處理機(jī)的空閑時間,從而提高系統(tǒng)效率。同時并發(fā)方式是指在多個處理機(jī)系統(tǒng)中,每個事務(wù)運行在一個處理機(jī)上,多個事務(wù)同時運行在多個處理機(jī)上,從而實現(xiàn)多個事務(wù)真正的并行運行。本文中數(shù)據(jù)庫系統(tǒng)并發(fā)控制技術(shù)是以單處理機(jī)系統(tǒng)為基礎(chǔ)。當(dāng)多個用戶同時訪問數(shù)據(jù)庫就可能出現(xiàn)多個事務(wù)同時存取或存儲數(shù)據(jù)的情況。若不對并發(fā)操作加以控制就會破壞事務(wù)的一致性從而存取或存儲不正確的數(shù)據(jù),因此并發(fā)控制是數(shù)據(jù)庫管理系統(tǒng)必不可少的組成部分。封鎖機(jī)制是并發(fā)控制的重要技術(shù),本文基于SQL Server 2012設(shè)計幾個教學(xué)案例幫助學(xué)生更好地理解鎖,從而掌握并發(fā)控制機(jī)制。

      1 SQL server 2012并發(fā)控制技術(shù)

      SQL Sever是企業(yè)級產(chǎn)品,一個重要功能是要支持多用戶的并發(fā)操作,這些操作有讀取數(shù)據(jù)及修改數(shù)據(jù),如果一個用戶要讀取正在被其他用戶修改的數(shù)據(jù),或者一個用戶要修改其他用戶正在修改的數(shù)據(jù),就需要某種機(jī)制規(guī)范這些操作,使得在保證數(shù)據(jù)一致性的情況下,又不會對并發(fā)性產(chǎn)生較大影響。

      SQL Server主要通過鎖的機(jī)制實現(xiàn)對并發(fā)操作的規(guī)范,在訪問資源時,根據(jù)資源類型和操作類型,要先在訪問資源上獲得合適的鎖,才能完成資源訪問操作。一個操作如何使用鎖,與操作類型、資源類型、是否使用索引以及事務(wù)隔離級別有很大關(guān)系。數(shù)據(jù)庫中常用的鎖有共享鎖、排他鎖。

      共享鎖(S鎖) 若事務(wù)T對數(shù)據(jù)對象A加上S鎖,則事務(wù)T可以讀A但不能修改A,其他事務(wù)只能再對A加S鎖,直到T釋放A上的S鎖。這就保證了其他事務(wù)可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。

      排他鎖(X鎖) 若事務(wù)T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其他任何事務(wù)都不能再對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務(wù)在T釋放A上的鎖之前不能再讀取和修改A。

      2 教學(xué)案例設(shè)計

      本小節(jié)設(shè)計幾個教學(xué)案例幫助學(xué)生更好地理解解鎖的概念。教學(xué)案例采用SQL Server最常用的隔離級別read committed。數(shù)據(jù)庫stuDB中有Student表及Course表,其中Student表的屬性包括學(xué)號(sno)、姓名(sname)、性別(ssex)、年齡(sage)、所在系(sdept)。Course表有屬性課程號(cno)、課程名(cname)、先行課號(cpno)、學(xué)分(ccredit)。

      Student Course

      啟動兩個連接,首先運行事務(wù)A,緊接著運行事務(wù)B。2.1 排它鎖實例

      事務(wù)A對Student表200215121學(xué)生記錄的年齡進(jìn)行修改,故對其加X鎖,并將操作延時30秒。事務(wù)B對200215121學(xué)生記錄進(jìn)行讀操作,故對其加S鎖。S鎖和X鎖不相容,所以要等事務(wù)A結(jié)束,釋放X鎖后,事務(wù)B才能執(zhí)行。

      2.2 共享鎖實例

      事務(wù)A讀取Student表中200215121學(xué)生記錄,故對其加S鎖,并將操作延時30秒。事務(wù)B對200215121學(xué)生記錄的學(xué)號和姓名進(jìn)行讀操作,故對其加S鎖。S鎖和S鎖相容,所以事務(wù)B不必等到事務(wù)A完成即可執(zhí)行。

      2.3 死鎖實例

      事務(wù)A進(jìn)行兩個操作,第一個操作對200215121學(xué)生記錄的年齡進(jìn)行修改操作,故對其加X鎖,延時10秒,進(jìn)行第二個操作對1號課程的學(xué)分進(jìn)行修改,對其加X鎖。事務(wù)B進(jìn)行兩個操作,第一操作對1號課程的學(xué)分進(jìn)行修改,對其加X鎖,延時10秒,進(jìn)行第二個操作,對學(xué)生表中200215121學(xué)生記錄的年齡進(jìn)行修改操作,對其加X鎖。事務(wù)A執(zhí)行后,立刻執(zhí)行事務(wù)B,事務(wù)A獲得對學(xué)生200215121記錄的X鎖,事務(wù)B獲得對1號課程記錄的X鎖,事務(wù)A申請對1號課程記錄加X鎖,事務(wù)B申請對學(xué)生200215121學(xué)生記錄加X鎖。由于X鎖互不相容,事務(wù)A等待事務(wù)B釋放1號課程記錄的X鎖,事務(wù)B等待事務(wù)A釋放200215121學(xué)生記錄上的X鎖,形成了事務(wù)A和事務(wù)B互相等待對方釋放資源上的X鎖的情況,使得事務(wù)A和事務(wù)B形成相互等待的情況,事務(wù)A和事務(wù)B都無法完成,從而形成死鎖。

      3 結(jié)束語

      本文基于SQL Server 2012設(shè)計了幾個教學(xué)案例來加深學(xué)生對共享鎖(S鎖)及排他鎖(X鎖)的理解。這些教學(xué)案例很好地詮釋了對某一數(shù)據(jù)對象在何種操作下加何種類型的鎖,并進(jìn)一步熟悉鎖的相容矩陣。最后一個教學(xué)案例表明,使用封鎖機(jī)制對并發(fā)操作進(jìn)行控制,會帶來死鎖問題。這些教學(xué)案例能夠幫助學(xué)生深入理解封鎖機(jī)制,為進(jìn)一步學(xué)習(xí)并發(fā)控制打下良好的基礎(chǔ)。

      【參考文獻(xiàn)】

      [1]王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論[M].第四版,北京:高等教育出版社,2006.

      [2]李紅.數(shù)據(jù)庫原理及應(yīng)用[M].北京:高等教育出版社,2003.

      [3]王珊,李紅.數(shù)據(jù)庫系統(tǒng)原理教程[M].北京:清華大學(xué)出版社,1998.

      [4]鄭阿奇.SQL Server實用教程(SQL Server 2012版)[M].第四版,電子工業(yè)出版社,2015.

      [5]吳曉剛.基于項目驅(qū)動的數(shù)據(jù)庫課程自主探究式教學(xué)模式[J].計算機(jī)教育,2008(22).endprint

      猜你喜歡
      數(shù)據(jù)庫原理
      工程認(rèn)證背景下數(shù)據(jù)庫課程教學(xué)改革
      科技視界(2017年11期)2017-08-29 11:11:18
      算法類課程的微課視頻設(shè)計
      “數(shù)據(jù)庫原理”課程教學(xué)資源建設(shè)研究
      數(shù)據(jù)庫原理及應(yīng)用課程教學(xué)改革與實踐
      《數(shù)據(jù)庫原理與應(yīng)用》與課程設(shè)計結(jié)合教學(xué)模式研究
      基于《數(shù)據(jù)庫原理》課程網(wǎng)站前臺設(shè)計與開發(fā)
      數(shù)據(jù)庫原理核心課程建設(shè)研究
      《數(shù)據(jù)庫原理》課程研究性教學(xué)改革探索
      基于多維立體化模式的數(shù)據(jù)庫原理教學(xué)改革與實踐
      基于海洋特色的數(shù)據(jù)庫原理案例教學(xué)設(shè)計與實踐
      考試周刊(2016年39期)2016-06-12 16:11:42
      商水县| 连云港市| 洪湖市| 宁津县| 民和| 龙游县| 大城县| 泰和县| 马公市| 龙川县| 南陵县| 尤溪县| 乌拉特中旗| 时尚| 临邑县| 宝丰县| 永济市| 景洪市| 龙南县| 瓦房店市| 景泰县| 寻乌县| 沂源县| 六盘水市| 定西市| 兰溪市| 福安市| 达拉特旗| 微山县| 永清县| 龙井市| 宜良县| 汾西县| 肥西县| 饶平县| 靖远县| 察雅县| 华亭县| 屏东县| 车险| 宽甸|