国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

并發(fā)操作與數(shù)據(jù)的不一致性

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 15:13:52
文檔

并發(fā)操作與數(shù)據(jù)的不一致性

并發(fā)操作與數(shù)據(jù)的不一致性:最近做的《選修課系統(tǒng)》需要考慮這樣一個問題:數(shù)據(jù)庫的并發(fā)操作帶來的數(shù)據(jù)庫數(shù)據(jù)不一致問題因?yàn)槭侨P赃x修課,同一時間點(diǎn)大批學(xué)生選課,那么必然存在多名學(xué)生同時對同一數(shù)據(jù)進(jìn)行操作是的問題,如果這種并發(fā)操作不加以控制的話,必會造成數(shù)據(jù)的不一致。 一
推薦度:
導(dǎo)讀并發(fā)操作與數(shù)據(jù)的不一致性:最近做的《選修課系統(tǒng)》需要考慮這樣一個問題:數(shù)據(jù)庫的并發(fā)操作帶來的數(shù)據(jù)庫數(shù)據(jù)不一致問題因?yàn)槭侨P赃x修課,同一時間點(diǎn)大批學(xué)生選課,那么必然存在多名學(xué)生同時對同一數(shù)據(jù)進(jìn)行操作是的問題,如果這種并發(fā)操作不加以控制的話,必會造成數(shù)據(jù)的不一致。 一

最近做的《選修課系統(tǒng)》需要考慮這樣一個問題:數(shù)據(jù)庫的并發(fā)操作帶來的數(shù)據(jù)庫數(shù)據(jù)不一致問題因?yàn)槭侨P赃x修課,同一時間點(diǎn)大批學(xué)生選課,那么必然存在多名學(xué)生同時對同一數(shù)據(jù)進(jìn)行操作是的問題,如果這種并發(fā)操作不加以控制的話,必會造成數(shù)據(jù)的不一致。 一

最近做的《選修課系統(tǒng)》需要考慮這樣一個問題:數(shù)據(jù)庫的并發(fā)操作帶來的數(shù)據(jù)庫數(shù)據(jù)不一致問題——因?yàn)槭侨P赃x修課,同一時間點(diǎn)大批學(xué)生選課,那么必然存在多名學(xué)生同時對同一數(shù)據(jù)進(jìn)行操作是的問題,如果這種并發(fā)操作不加以控制的話,必會造成數(shù)據(jù)的不一致。

一直知道有這種問題,并且知道這種問題的解決方法——加鎖;但是有些東西之前了解的并不是很透徹,于是好好研究了一天,覺得理解的還可以,先總結(jié)一部分。

1,什么是并發(fā)操作?

數(shù)據(jù)庫的一個重要特征是:支持?jǐn)?shù)據(jù)共享,也就是說允許多個用戶程序并行地存取數(shù)據(jù)庫中的數(shù)據(jù);那么,多用戶或多事物可能同時對同一數(shù)據(jù)進(jìn)行操作,這成為并發(fā)操作。

2,并發(fā)操作可能帶來的影響?

如果不對并發(fā)操作進(jìn)行控制的話,那么就會存取不正確的數(shù)據(jù),破壞數(shù)據(jù)的完整性。——為什么這么說?下面進(jìn)行介紹

在此之前,先說一下事務(wù)的概念。

3,什么是事務(wù)?

對一件完整的事兒,要么做完整,要么都不做。例如:學(xué)生選課—學(xué)生選上課時,需要將選課信息寫入選課表的同時,更新課程表中的課程余量;如果在添加選課信息時,中斷了(不能進(jìn)行余量更新),那么就會事務(wù)回滾,即,數(shù)據(jù)回滾到?jīng)]選課之前。

Begin Transaction

選課表中添加選課信息;

更新課程表中的課程余量;

Commit

RollBac

事務(wù)的SQL語句:

Begin Transaction開始事務(wù)

Commit提交事務(wù)

RollBack回滾

(注:事務(wù)中的多條SQL語句也是一條條執(zhí)行的,當(dāng)所有語句執(zhí)行完后,提交事務(wù),如果其中一條中斷,則事務(wù)回滾所有操作回到語句執(zhí)行之前)

事務(wù)的并發(fā)主要是為了提高效率,但是,同時它也帶來了一定問題

4,并發(fā)操作帶來的問題?

之前講過并發(fā)操作——多用戶或多事務(wù)同時對同一數(shù)據(jù)進(jìn)行操作;

因?yàn)槭聞?wù)中的語句也是一條條執(zhí)行的,所以存在多用戶多事務(wù)同時對同一數(shù)據(jù)進(jìn)行操作的情況;

并發(fā)操作帶來的問題:

(1)丟失修改

(2)臟讀

(3)不可重復(fù)讀

4.1丟失修改

當(dāng)兩個或多個事務(wù)(或兩個或多個用戶)選擇同一行,然后基于最初選定的值更新該行時,會發(fā)生丟失更新問題。每個事務(wù)都不知道其它事務(wù)的存在(或每個用戶操作時并不會考慮同一時刻是否有別的用戶進(jìn)行著同樣的操作)。最后的更新將重寫由其它事務(wù)所做的更新,這將導(dǎo)致數(shù)據(jù)丟失。  

例子1:事務(wù)T1,事務(wù)T2,數(shù)據(jù)庫中數(shù)據(jù)R=1000

a.t1時刻,事務(wù)T1讀取R=1000;

b.過了一會兒 t2時刻,事務(wù)T2讀取R=1000;

c.t3時刻,事務(wù)T1修改R=R-200(那么R=800)寫入數(shù)據(jù)庫(此時,數(shù)據(jù)庫中R=800);

d.過了一會兒 t4時刻,事務(wù)T2修改R=R-100(因?yàn)樵趖2時刻讀到的數(shù)據(jù)為R=1000,那么修改后R=900)寫入數(shù)據(jù)庫(此時,數(shù)據(jù)庫中R=900)

那么最終,數(shù)據(jù)庫中R=900;數(shù)據(jù)對嗎?當(dāng)然不對,因?yàn)門1、T2分別對R進(jìn)行了-200 -100操作,最終數(shù)據(jù)應(yīng)為R=700;事務(wù)T2的修改覆蓋了T1的修改 ——丟失修改問題

例子2:選課:學(xué)生A、學(xué)生B、課程1的余量=20

a.學(xué)生A選擇課程1時,先讀出課程余量20

b.然而同一時刻(也可是不同時刻,只要在學(xué)生A更新數(shù)據(jù)之前),學(xué)生B也讀出了課程1的余量20,

c.學(xué)生A選擇此課程,課程1余量-1,寫入數(shù)據(jù)庫,此時課程1的余量=19;

d.學(xué)生B選擇此課程,課程1余量-1(因?yàn)橹白x出的課程1余量為20,-1后為19),寫入數(shù)據(jù)庫,此時課程1的余量=19;

課程余量=19 數(shù)據(jù)正確嗎?不正確。實(shí)際情況課程余量應(yīng)更新為18;——B的修改覆蓋了A的修改 —— 丟失修改問題。

解決辦法:加鎖,只允許并發(fā)一個更新事務(wù)。

4.2臟讀

當(dāng)一個事務(wù)正在訪問數(shù)據(jù),并且對數(shù)據(jù)進(jìn)行了修改,而這種修改還沒有提交到數(shù)據(jù)庫中,這時,

另外一個事務(wù)也訪問這個數(shù)據(jù),然后使用了這個數(shù)據(jù)。因?yàn)檫@個數(shù)據(jù)是還沒有提交的數(shù)據(jù),那么另外一個

事務(wù)讀到的這個數(shù)據(jù)是臟數(shù)據(jù),依據(jù)臟數(shù)據(jù)所做的操作可能是不正確的。

例子1:事務(wù)T1,事務(wù)T2,數(shù)據(jù)庫中數(shù)據(jù)R=1000;

T1:

Begin Transaction開始事務(wù)T1

ReadR=1000;(1)

R=R-200;(2)此時R=800

R=R+100;(3)此時R=900

Commit提交事務(wù)T1

a.當(dāng)事務(wù)T1進(jìn)行到第(2)后,即,數(shù)據(jù)庫中的數(shù)據(jù)R=800時;

b.事務(wù)T2開始讀R的值,讀出的值為R=800;但此時事務(wù)T1還沒有進(jìn)行完整,還未提交事務(wù);

c.之后事務(wù)T1進(jìn)行第(3)步R=R+100,此時R=900 事務(wù)T1提交,此時數(shù)據(jù)庫中R=900;

那么在事務(wù)T1提交事務(wù)之前,事務(wù)T2讀出的數(shù)據(jù)(R=800)為臟數(shù)據(jù);

例子2:

a.張三的工資為2000,元老板把張三的工資改為了8000元(但未提交事務(wù))

2.張三查看自己的工資 ,發(fā)現(xiàn)工資變?yōu)榱?000元

3.而后老板發(fā)現(xiàn)改錯了,回滾了事務(wù),張三的工資又變回了2000元

那么,張三讀取的工資8000元就是臟數(shù)據(jù)。

解決辦法:如果在第一個事務(wù)提交前,任何其他事務(wù)不可讀取其修改過的值,則可以避免該問題。

4.3不可重復(fù)讀

  當(dāng)?shù)诙€事務(wù)多次訪問同一行而且每次讀取不同的數(shù)據(jù)時,會發(fā)生不一致的分析問題。不一致的分析與未確認(rèn)的相關(guān)性類似,因?yàn)槠渌聞?wù)也是正在更改第二個事務(wù)正在讀取的數(shù)據(jù)。然而,在不一致的分析中,第二個事務(wù)讀取的數(shù)據(jù)是由已進(jìn)行了更改的事務(wù)提交的。而且,不一致的分析涉及多次(兩次或更多)讀取同一行,而且每次信息都由其它事務(wù)更改;因而該行被非重復(fù)讀取。

在一個事務(wù)中前后兩次讀取的結(jié)果并不致,導(dǎo)致了不可重復(fù)讀。

例子1:事務(wù)T1、事務(wù)T2、張三的工資=1000

a.事務(wù)T1中,張三讀取了自己的工資為1000元,操作并沒有完成

b.此時(事務(wù)T1讀取了張三工資為1000元)事務(wù)2中,修改了張三的工資為2000元,并提交了事務(wù).

c.此時(事務(wù)T1讀取了張三工資為1000元,事務(wù)T2修改了張三的工資為2000元)在事務(wù)1中,張三再次讀取自己的工資時,工資變?yōu)榱?000

那么,同一個事務(wù)中,前后讀取的數(shù)據(jù)不一致 —— 不可重復(fù)讀問題。

解決辦法:如果只有在修改事務(wù)完全提交之后才可以讀取數(shù)據(jù),則可以避免該問題。

總結(jié):

(1)事務(wù)的并發(fā)主要是為了提高效率,但是,同時它也帶來了一定問題——丟失修改、讀臟數(shù)據(jù)、不可重復(fù)讀

(2)結(jié)合生活中實(shí)例,理解丟失修改、讀臟數(shù)據(jù)、不可重復(fù)讀問題。

個人理解,如果哪里有理解偏差,忘糾正!

下篇博客會總結(jié)“鎖”的概念,并解釋“鎖”是如何解決并發(fā)造成的數(shù)據(jù)不一致問題。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

并發(fā)操作與數(shù)據(jù)的不一致性

并發(fā)操作與數(shù)據(jù)的不一致性:最近做的《選修課系統(tǒng)》需要考慮這樣一個問題:數(shù)據(jù)庫的并發(fā)操作帶來的數(shù)據(jù)庫數(shù)據(jù)不一致問題因?yàn)槭侨P赃x修課,同一時間點(diǎn)大批學(xué)生選課,那么必然存在多名學(xué)生同時對同一數(shù)據(jù)進(jìn)行操作是的問題,如果這種并發(fā)操作不加以控制的話,必會造成數(shù)據(jù)的不一致。 一
推薦度:
標(biāo)簽: 操作 數(shù)據(jù) 需要
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 91在线看片 | 伊人网中文字幕 | 亚洲国产成人久久一区www妖精 | 欧美日本道免费一区二区三区 | 久久免费视频观看 | 99精品视频在线观看免费播放 | a级免费在线观看 | 亚洲欧美日韩精品高清 | 国产性做久久久久久 | 殴美aⅴ | 久久久久久久国产精品毛片 | 国产精品久久毛片蜜月 | 国产一区二区三区欧美 | 成人国产精品久久久免费 | 日韩aa在线观看 | 国产一级α片 | 亚洲第8页 | 一久久 | 97精品国产91久久久久久久 | 欧美成人伊人久久综合网 | 欧美日韩亚洲一区二区三区在线观看 | 国产免费一区二区三区免费视频 | 一区国严二区亚洲三区 | 日本aⅴ精品一区二区三区久久 | 中文字幕另类 | 亚洲欧美日韩高清一区二区一 | 亚洲视频五区 | 日韩欧美精品一区二区三区 | 国产日韩欧美在线观看不卡 | 国产伦精一区二区三区 | 欧洲亚洲欧美国产日本高清 | 欧美日韩成人在线视频 | 孕交videos小孕妇xx另类 | 精品亚洲一区二区 | 国产精选免费视频 | 国产精品一区二区三区免费 | 国产一区二区不卡免费观在线 | 国产精彩视频在线观看 | 欧美一区二区三区免费高 | 99久久久国产精品免费 | 狠狠色狠狠色综合日日不卡 |