<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如何學(xué)好java

    如何學(xué)好java,其實(shí)很簡單,只要用心體會,慢慢積累!
    posts - 106, comments - 7, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    一.什么是事務(wù)  
         事務(wù)是應(yīng)用程序中一系列嚴(yán)密的操作,所有操作必須成功完成,否則在每個(gè)操作中所作的所有更改都會被撤消。也就是事務(wù)具有原子性,一個(gè)事務(wù)中的一系列的操作要么全部成功,要么一個(gè)都不做。
        事務(wù)的結(jié)束有兩種,當(dāng)事務(wù)中的所以步驟全部成功執(zhí)行時(shí),事務(wù)提交。如果其中一個(gè)步驟失敗,將發(fā)生回滾操作,撤消撤消之前到事務(wù)開始時(shí)的所以操作。
            二.事務(wù)的 ACID
        事務(wù)具有四個(gè)特征:原子性( Atomicity )、一致性( Consistency )、隔離性( Isolation )和持續(xù)性( Durability )。這四個(gè)特性簡稱為 ACID 特性。
    1 、原子性
        事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包含的各操作要么都做,要么都不做
    2 、一致性  
         事 務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。因此當(dāng)數(shù)據(jù)庫只包含成功事務(wù)提交的結(jié)果時(shí),就說數(shù)據(jù)庫處于一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng) 運(yùn)行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成事務(wù)對數(shù)據(jù)庫所做的修改有一部分已寫入物理數(shù)據(jù)庫,這時(shí)數(shù)據(jù)庫就處于一種不正確的狀態(tài),或者說是 不一致的狀態(tài)。  
    3 、隔離性
        一個(gè)事務(wù)的執(zhí)行不能其它事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其它并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。
    4 、持續(xù)性
       也稱永久性,指一個(gè)事務(wù)一旦提交,它對數(shù)據(jù)庫中的數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其它操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。

    數(shù)據(jù)庫系統(tǒng)必須維護(hù)事務(wù)的以下特性 ( 簡稱 ACID) :

       原子性 (Atomicity)

      一致性 (Consistency)

      隔離性 (Isolation)

      持久性 (Durability)

    原子性 (Atomicity)

    事務(wù)中的所有操作要么全部執(zhí)行,要么都不執(zhí)行;

    如果事務(wù)沒有原子性的保證,那么在發(fā)生系統(tǒng)

    故障的情況下,數(shù)據(jù)庫就有可能處于不一致狀

    態(tài)。

     

    原子性 (Atomicity)

    如果故障發(fā)生在 write(A) 和 read(B) 之間,則將有可能造成帳戶 A 的余額已經(jīng)減去 50 元錢,而帳戶 B 的余額卻沒有改變,憑空就少了 50 元錢。值得注意的是,即使沒有故障發(fā)生,系統(tǒng)在某一時(shí)刻也會處于不一致狀態(tài)。原子性的要求就是這種不一致狀態(tài)除了在事務(wù)執(zhí)行當(dāng)中出現(xiàn)外,在其他任何時(shí)刻都 是不可見的。保證原子性是 DBMS 的責(zé)任:即事務(wù)管理器和恢復(fù)管理器的責(zé)任。

     

    一致性 (Consistency)

    主要強(qiáng)調(diào)的是,如果在執(zhí)行事務(wù)之前數(shù)據(jù)庫是一致的,那么在執(zhí)行事務(wù)之后數(shù)據(jù)庫也還是一

    致的;所謂一致性簡單地說就是數(shù)據(jù)庫中數(shù)據(jù)的完整性,包括它們的正確性。對于圖中的事務(wù) Ti 來說,一致性要求就是事務(wù)的執(zhí)行不改變帳戶 A 和帳戶 B 的和。否則的話事務(wù)就會創(chuàng)造或銷毀錢!單個(gè)事務(wù)的一致性是由對該事務(wù)進(jìn)行編鍵的應(yīng)用程序員的責(zé)任,但是在某些情況下利用 DBMS 中完整性約束 ( 如觸發(fā)器 ) 的自動(dòng)檢查功能有助于一致性的維護(hù)。

     

    隔離性 (Isolation)

    即使多個(gè)事務(wù)并發(fā)(同時(shí))執(zhí)行,每個(gè)事務(wù)都感覺不到系統(tǒng)中有其他的事務(wù)在執(zhí)行,因而也

    就能保證數(shù)據(jù)庫的一致性;事情的起因 : 即使每個(gè)事務(wù)都能保持一致性和原子性,但如果幾個(gè)事務(wù)并發(fā)執(zhí)行,且訪問相同的數(shù)據(jù)項(xiàng),則它們的操作會以人們所不希望的某種方式交叉執(zhí)行,結(jié)果導(dǎo)致不一致的狀態(tài)!訪問相同數(shù)據(jù)項(xiàng)的兩個(gè)事務(wù)并發(fā)執(zhí)行

    解決辦法 :

    如果幾個(gè)事務(wù)要訪問相同的數(shù)據(jù)項(xiàng),為了保證數(shù)據(jù)庫的一致性,可以讓這幾個(gè)事務(wù):

    ① 串行執(zhí)行:即一個(gè)接著一個(gè)地執(zhí)行事務(wù);

    ② 并發(fā)執(zhí)行:即同時(shí)執(zhí)行多個(gè)事務(wù),但用并發(fā)控制機(jī)制來解決不同事務(wù)間的相互影響。隔離性的保證 :

    事務(wù)的隔離性能夠確保事務(wù)并發(fā)執(zhí)行后的系統(tǒng)狀態(tài)與這些事務(wù)按某種次序串行執(zhí)行后的狀態(tài)是等價(jià)的。

    保證隔離性也是 DBMS 的責(zé)任:即并發(fā)控制管理器的責(zé)任。

     

    持久性 (Durability)

    事務(wù)成功執(zhí)行后它對數(shù)據(jù)庫的修改是永久的,即使系統(tǒng)出現(xiàn)故障也不受影響。

    持久性的含義是說:一旦事務(wù)成功執(zhí)行之后,它對數(shù)據(jù)庫的更新是永久的。可以用以下兩種

    方式中的任何一種來達(dá)到持久性的目的:

    以犧牲應(yīng)用系統(tǒng)的性能為代價(jià)

    以多占用磁盤空間為代價(jià)

    以犧牲應(yīng)用系統(tǒng)的性能為代價(jià):要求事務(wù)對數(shù)據(jù)庫系統(tǒng)所做的更新在事務(wù)結(jié)束前已經(jīng)寫入磁盤;以 多占用磁盤空間為代價(jià):要求事務(wù)已經(jīng)執(zhí)行的和已寫到磁盤的、對數(shù)據(jù)庫進(jìn)行更新的信息是充分的(例如,數(shù)據(jù)庫日志的信息就足夠的多),使得 DBMS 在系統(tǒng)出現(xiàn)故障后重新啟動(dòng)系統(tǒng)時(shí),能夠 ( 根據(jù)日志 ) 重新構(gòu)造更新。保證持久性也是 DBMS 的責(zé)任:即恢復(fù)

    管理器的責(zé)任。

     

    事物的狀態(tài)有如下幾種:

    ⑴ 中止事務(wù):執(zhí)行中發(fā)生故障、不能執(zhí)行完成的

    事務(wù);

    ⑵ 事務(wù)回滾:將中止事務(wù)對數(shù)據(jù)庫的更新撤消

    掉;

    ⑶ 已提交事務(wù):成功執(zhí)行完成的事務(wù)。

     

    系統(tǒng)的恢復(fù)步驟是:

    1 、反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)

    的更新操作。

    2 、對該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄 “ 更新前的值 ” 寫

    入數(shù)據(jù)庫。這樣,如果記錄中是插入操作,則相當(dāng)于做刪除操

    作;若記錄中是刪除操作,則做插入操作;若是修改操作,則相

    當(dāng)于用修改前的值代替修改后的值。

    3 、繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做和 2

    一樣的同樣處理。

    4 、如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,事務(wù)的故障恢復(fù)就

    完成了。

    事務(wù)的隔離級別

    隔離級別定義了事務(wù)與事務(wù)之間的隔離程度。

    隔離級別與并發(fā)性是互為矛盾的:隔離程度越高,數(shù)據(jù)庫的并發(fā)性越差;隔離程度越低,數(shù)

    據(jù)庫的并發(fā)性越好。

    ANSI/ISO SQL92 標(biāo)準(zhǔn)定義了一些數(shù)據(jù)庫操作的隔離級別

       未提交讀( read uncommitted )

       提交讀( read committed )

       重復(fù)讀( repeatable read )

       串行讀( serializable )

    隔離級別的效果更新丟失( lost update ):當(dāng)系統(tǒng)允許兩個(gè)事務(wù)同時(shí)更新同一數(shù)據(jù)是,發(fā)生更新丟失。臟讀( dirty read ):當(dāng)一個(gè)事務(wù)讀取另一個(gè)事務(wù)尚未提交的修改時(shí),產(chǎn)生臟讀。

    不可重復(fù)讀取( nonrepeatableread ):同一查詢在同一事務(wù)中多次進(jìn)行,由于其他提交事務(wù)所做的修改或刪除,每次返回不同的結(jié)果集,此時(shí)發(fā)生不可重復(fù)讀取。

    幻像( phantom read ):同一查詢在同一事務(wù)中多次進(jìn)行,由于其他提交事務(wù)所做的插入操作,每次返回不同的結(jié)果集,此時(shí)發(fā)生幻像讀。


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费精品国自产拍在线播放| 亚洲成AV人片久久| 性做久久久久久免费观看| 在线观看亚洲精品国产| 国产精品美女久久久免费| 免费A级毛片无码专区| 亚洲精品乱码久久久久久按摩 | 亚洲乱码日产一区三区| 一级免费黄色毛片| 久久亚洲高清综合| 最近2019中文免费字幕在线观看| 国产亚洲成av片在线观看| 国产午夜精品久久久久免费视| 国产AV无码专区亚洲AV毛网站| 日韩精品免费视频| 亚洲春色在线观看| 成人免费视频观看无遮挡| 美女被免费网站视频在线| 亚洲精品免费观看| 亚洲天堂一区二区三区四区| 91免费资源网站入口| 亚洲精品无码av中文字幕| 国产成人免费片在线视频观看| 一区二区三区在线免费| 久久综合图区亚洲综合图区| 最近中文字幕完整免费视频ww| 亚洲一区二区三区精品视频| 日本免费无遮挡吸乳视频电影| 成人免费观看男女羞羞视频| 亚洲国产精品无码专区影院| 免费h片在线观看网址最新| 亚洲国产高清国产拍精品| 不卡精品国产_亚洲人成在线| 三年片在线观看免费观看大全一 | 久久亚洲精品高潮综合色a片| 亚洲精品高清一二区久久| 免费无码又爽又刺激一高潮| 亚洲人成网站在线观看播放动漫 | 日本亚洲欧洲免费天堂午夜看片女人员 | 四虎国产精品永久免费网址 | 亚洲一区电影在线观看|