• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            數據庫中的-臟讀,幻讀,不可重復讀

            Posted on 2010-03-17 00:10 Prayer 閱讀(489) 評論(0)  編輯 收藏 引用 所屬分類: 數據庫,SQLDB2

            一.丟失更新
            當兩個或多個事務選擇同一行,然后基于最初選定的值更新該行時,會發生丟失更新問題。每個事務都不知道其它事務的存在。最后的更新將重寫由其它事務所做的更新,這將導致數據丟失。   

            e.g.事務A和事務B同時修改某行的值,

             1.事務A將數值改為1并提交

                   2.事務B將數值改為2并提交。

            這時數據的值為2,事務A所做的更新將會丟失。

             

            解決辦法:對行加鎖,只允許并發一個更新事務。

            二.未確認的相關性(臟讀)
              當第二個事務選擇其它事務正在更新的行時,會發生未確認的相關性問題。第二個事務正在讀取的數據還沒有確認并且可能由更新此行的事務所更改。

                  e.g.

                    1.Mary的原工資為1000, 財務人員將Mary的工資改為了8000(但未提交事務)         2.Mary讀取自己的工資 ,發現自己的工資變為了8000,歡天喜地!

                 3.而財務發現操作有誤,回滾了事務,Mary的工資又變為了1000

                  像這樣,Mary記取的工資數8000是一個臟數據。

             

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


            三.不一致的分析(非重復讀)
              當第二個事務多次訪問同一行而且每次讀取不同的數據時,會發生不一致的分析問題。不一致的分析與未確認的相關性類似,因為其它事務也是正在更改第二個事務正在讀取的數據。然而,在不一致的分析中,第二個事務讀取的數據是由已進行了更改的事務提交的。而且,不一致的分析涉及多次(兩次或更多)讀取同一行,而且每次信息都由其它事務更改;因而該行被非重復讀取。

                  在一個事務中前后兩次讀取的結果并不致,導致了不可重復讀。


            e.g.

            1.在事務1中,Mary 讀取了自己的工資為1000,操作并沒有完成

            2.在事務2中,這時財務人員修改了Mary的工資為2000,并提交了事務.

            3.在事務1中,Mary 再次讀取自己的工資時,工資變為了2000


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


             四.幻像讀     

              當對某行執行插入或刪除操作,而該行屬于某個事務正在讀取的行的范圍時,會發生幻像讀問題。事務第一次讀的行范圍顯示出其中一行已不復存在于第二次讀或后續讀中,因為該行已被其它事務刪除。同樣,由于其它事務的插入操作,事務的第二次或后續讀顯示有一行已不存在于原始讀中。

               e.g. 目前工資為1000的員工有10人。

            1.事務1,讀取所有工資為1000的員工。

            2.這時事務2向employee表插入了一條員工記錄,工資也為1000

            3.事務1再次讀取所有工資為1000的員工 共讀取到了11條記錄,

             

            解決辦法:如果在操作事務完成數據處理之前,任何其他事務都不可以添加新數據,則可避免該問題


            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/d8111/archive/2008/06/29/2595635.aspx

            亚洲国产天堂久久久久久 | 久久久久亚洲AV成人网人人网站| 久久国产乱子伦免费精品| 久久久无码一区二区三区| 麻豆一区二区99久久久久| 99久久er这里只有精品18| 国产精品日韩欧美久久综合| 亚洲精品tv久久久久| 国产精品美女久久久久| 日本国产精品久久| 少妇久久久久久被弄高潮| 久久久久国产一级毛片高清板| 天堂久久天堂AV色综合| 亚洲国产精品成人久久蜜臀| 成人免费网站久久久| 久久人人爽人人爽人人AV东京热| 国内精品久久久久久久亚洲| 亚洲av日韩精品久久久久久a| 日韩十八禁一区二区久久| 蜜臀久久99精品久久久久久| 国产成人久久777777| 国内精品久久久久久麻豆| 精品国产热久久久福利| 久久久无码精品亚洲日韩软件| 久久不射电影网| 亚洲精品tv久久久久久久久久| 久久久久久毛片免费看| 久久亚洲国产成人精品无码区| 久久一本综合| 久久精品国产91久久麻豆自制| 久久精品人人槡人妻人人玩AV | 99久久精品免费| 热99RE久久精品这里都是精品免费| 久久综合色之久久综合| 欧美午夜精品久久久久免费视| 国产精品美女久久久m| 亚洲精品无码久久久| 国产精品久久一区二区三区| 亚洲欧洲中文日韩久久AV乱码| 久久久女人与动物群交毛片| 久久精品国产精品亚洲人人|