亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

數(shù)據(jù)庫(kù)的ACID特性術(shù)語(yǔ)詳解

 更新時(shí)間:2015年02月13日 09:36:28   投稿:junjie  
這篇文章主要介紹了數(shù)據(jù)庫(kù)的ACID特性術(shù)語(yǔ)詳解,ACID就是:原子性(Atomicity )、一致性( Consistency )、隔離性( Isolation)和持久性(Durabilily),本文分別解釋了它們,需要的朋友可以參考下

ACID就是:原子性(Atomicity )、一致性( Consistency )、隔離性( Isolation)和持久性(Durabilily)。

1. 原子性

原子性屬性用于標(biāo)識(shí)事務(wù)是否完全地完成,一個(gè)事務(wù)的任何更新要在系統(tǒng)上完全完成,如果由于某種原因出錯(cuò),事務(wù)不能完成它的全部任務(wù),系統(tǒng)將返回到事務(wù)開(kāi)始前的狀態(tài)。

讓我們?cè)倏匆幌裸y行轉(zhuǎn)帳的例子。如果在轉(zhuǎn)帳的過(guò)程中出現(xiàn)錯(cuò)誤,整個(gè)事務(wù)將會(huì)回滾。只有當(dāng)事務(wù)中的所有部分都成功執(zhí)行了,才將事務(wù)寫(xiě)入磁盤(pán)并使變化永久化。

為了提供回滾或者撤消未提交的變化的能力,許多數(shù)據(jù)源采用日志機(jī)制。例如,SQL Server使用一個(gè)預(yù)寫(xiě)事務(wù)日志,在將數(shù)據(jù)應(yīng)用于(或提交到)實(shí)際數(shù)據(jù)頁(yè)面前,先寫(xiě)在事務(wù)日志上。但是,其他一些數(shù)據(jù)源不是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),它們管理未提交事務(wù)的方式完全不同。只要事務(wù)回滾時(shí),數(shù)據(jù)源可以撤消所有未提交的改變,那么這種技術(shù)應(yīng)該可用于管理事務(wù)。

2. 一致性

事務(wù)在系統(tǒng)完整性中實(shí)施一致性,這通過(guò)保證系統(tǒng)的任何事務(wù)最后都處于有效狀態(tài)來(lái)實(shí)現(xiàn)。如果事務(wù)成功地完成,那么系統(tǒng)中所有變化將正確地應(yīng)用,系統(tǒng)處于有效狀態(tài)。如果在事務(wù)中出現(xiàn)錯(cuò)誤,那么系統(tǒng)中的所有變化將自動(dòng)地回滾,系統(tǒng)返回到原始狀態(tài)。因?yàn)槭聞?wù)開(kāi)

始時(shí)系統(tǒng)處于一致?tīng)顟B(tài),所以現(xiàn)在系統(tǒng)仍然處于一致?tīng)顟B(tài)。

再讓我們回頭看一下銀行轉(zhuǎn)帳的例子,在帳戶轉(zhuǎn)換和資金轉(zhuǎn)移前,帳戶處于有效狀態(tài)。如果事務(wù)成功地完成,并且提交事務(wù),則帳戶處于新的有效的狀態(tài)。如果事務(wù)出錯(cuò),終止后,帳戶返回到原先的有效狀態(tài)。

記住,事務(wù)不負(fù)責(zé)實(shí)施數(shù)據(jù)完整性,而僅僅負(fù)責(zé)在事務(wù)提交或終止以后確保數(shù)據(jù)返回到一致?tīng)顟B(tài)。理解數(shù)據(jù)完整性規(guī)則并寫(xiě)代碼實(shí)現(xiàn)完整性的重任通常落在開(kāi)發(fā)者肩上,他們根據(jù)業(yè)務(wù)要求進(jìn)行設(shè)計(jì)。

當(dāng)許多用戶同時(shí)使用和修改同樣的數(shù)據(jù)時(shí),事務(wù)必須保持其數(shù)據(jù)的完整性和一致性。因此我們進(jìn)一步研究A C I D特性中的下一個(gè)特性:隔離性。

3. 隔離性

在隔離狀態(tài)執(zhí)行事務(wù),使它們好像是系統(tǒng)在給定時(shí)間內(nèi)執(zhí)行的唯一操作。如果有兩個(gè)事務(wù),運(yùn)行在相同的時(shí)間內(nèi),執(zhí)行相同的功能,事務(wù)的隔離性將確保每一事務(wù)在系統(tǒng)中認(rèn)為只有該事務(wù)在使用系統(tǒng)。

這種屬性有時(shí)稱為串行化,為了防止事務(wù)操作間的混淆,必須串行化或序列化請(qǐng)求,使得在同一時(shí)間僅有一個(gè)請(qǐng)求用于同一數(shù)據(jù)。

重要的是,在隔離狀態(tài)執(zhí)行事務(wù),系統(tǒng)的狀態(tài)有可能是不一致的,在結(jié)束事務(wù)前,應(yīng)確保系統(tǒng)處于一致?tīng)顟B(tài)。但是在每個(gè)單獨(dú)的事務(wù)中,系統(tǒng)的狀態(tài)可能會(huì)發(fā)生變化。如果事務(wù)不是在隔離狀態(tài)運(yùn)行,它就可能從系統(tǒng)中訪問(wèn)數(shù)據(jù),而系統(tǒng)可能處于不一致?tīng)顟B(tài)。通過(guò)提供事

務(wù)隔離,可以阻止這類事件的發(fā)生。

在銀行的示例中,這意味著在這個(gè)系統(tǒng)內(nèi),其他過(guò)程和事務(wù)在我們的事務(wù)完成前看不到我們的事務(wù)引起的任何變化,這對(duì)于終止的情況非常重要。如果有另一個(gè)過(guò)程根據(jù)帳戶余額進(jìn)行相應(yīng)處理,而它在我們的事務(wù)完成前就能看到它造成的變化,那么這個(gè)過(guò)程的決策可能

建立在錯(cuò)誤的數(shù)據(jù)之上,因?yàn)槲覀兊氖聞?wù)可能終止。這就是說(shuō)明了為什么事務(wù)產(chǎn)生的變化,直到事務(wù)完成,才對(duì)系統(tǒng)的其他部分可見(jiàn)。

隔離性不僅僅保證多個(gè)事務(wù)不能同時(shí)修改相同數(shù)據(jù),而且能夠保證事務(wù)操作產(chǎn)生的變化直到變化被提交或終止時(shí)才能對(duì)另一個(gè)事務(wù)可見(jiàn),并發(fā)的事務(wù)彼此之間毫無(wú)影響。這就意味著所有要求修改或讀取的數(shù)據(jù)已經(jīng)被鎖定在事務(wù)中,直到事務(wù)完成才能釋放。大多數(shù)數(shù)據(jù)庫(kù),例如SQL Server以及其他的RDBMS,通過(guò)使用鎖定來(lái)實(shí)現(xiàn)隔離,事務(wù)中涉及的各個(gè)數(shù)據(jù)項(xiàng)或數(shù)據(jù)集使用鎖定來(lái)防止并發(fā)訪問(wèn)。

4. 持久性

持久性意味著一旦事務(wù)執(zhí)行成功,在系統(tǒng)中產(chǎn)生的所有變化將是永久的。應(yīng)該存在一些檢查點(diǎn)防止在系統(tǒng)失敗時(shí)丟失信息。甚至硬件本身失敗,系統(tǒng)的狀態(tài)仍能通過(guò)在日志中記錄事務(wù)完成的任務(wù)進(jìn)行重建。持久性的概念允許開(kāi)發(fā)者認(rèn)為不管系統(tǒng)以后發(fā)生了什么變化,完成的事務(wù)是系統(tǒng)永久的部分。

相關(guān)文章

  • 常見(jiàn)的SQL優(yōu)化面試專題大全

    常見(jiàn)的SQL優(yōu)化面試專題大全

    面試中如何被問(wèn)到SQL優(yōu)化,看這篇就對(duì)了,下面這篇文章主要給大家介紹了關(guān)于SQL優(yōu)化面試的相關(guān)資料,文中將答案介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • 如何解決VisualSVN Server 安裝提示錯(cuò)誤 Repositories is not a valid short file name

    如何解決VisualSVN Server 安裝提示錯(cuò)誤 Repositories is not a valid shor

    最近在程序中安裝VisualSVN Server時(shí),總是提示“'Repositories' is not a valid short file name”這個(gè)問(wèn)題,難為了好長(zhǎng)時(shí)間,最終解決,下面小編把我的解決辦法分享給大家,供大家參考
    2015-09-09
  • IndexedDB瀏覽器內(nèi)建數(shù)據(jù)庫(kù)并行更新問(wèn)題詳解

    IndexedDB瀏覽器內(nèi)建數(shù)據(jù)庫(kù)并行更新問(wèn)題詳解

    這篇文章主要為大家介紹了IndexedDB瀏覽器內(nèi)建數(shù)據(jù)庫(kù)并行更新問(wèn)題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • dbeaver工具連接達(dá)夢(mèng)數(shù)據(jù)庫(kù)的完整步驟

    dbeaver工具連接達(dá)夢(mèng)數(shù)據(jù)庫(kù)的完整步驟

    DBeaver數(shù)據(jù)庫(kù)連接工具是我用了這么久最好用的一個(gè)數(shù)據(jù)庫(kù)連接工具,擁有的優(yōu)點(diǎn),支持的數(shù)據(jù)庫(kù)多、快捷鍵很贊、導(dǎo)入導(dǎo)出數(shù)據(jù)非常方便,下面這篇文章主要給大家介紹了關(guān)于dbeaver工具連接達(dá)夢(mèng)數(shù)據(jù)庫(kù)的完整步驟,需要的朋友可以參考下
    2023-05-05
  • 一些關(guān)于數(shù)據(jù)存儲(chǔ)和查詢優(yōu)化的想法

    一些關(guān)于數(shù)據(jù)存儲(chǔ)和查詢優(yōu)化的想法

    今天咨詢了一下高手,關(guān)于數(shù)據(jù)存儲(chǔ)和查詢的問(wèn)題,最終目的就是快,大家可以適當(dāng)?shù)氖褂?/div> 2012-05-05
  • SQL查詢的底層運(yùn)行原理深入分析

    SQL查詢的底層運(yùn)行原理深入分析

    這篇文章主要給大家介紹了關(guān)于SQL查詢的底層運(yùn)行原理,文中通過(guò)實(shí)例代碼結(jié)束的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • sql left join 命令詳解

    sql left join 命令詳解

    左向外聯(lián)接的結(jié)果集包括 LEFT OUTER 子句中指定的左表的所有行,而不僅僅是聯(lián)接列所匹配的行。如果左表的某行在右表中沒(méi)有匹配行,則在相關(guān)聯(lián)的結(jié)果集行中右表的所有選擇列表列均為空值。
    2009-07-07
  • 你真的知道怎么優(yōu)化SQL嗎

    你真的知道怎么優(yōu)化SQL嗎

    這篇文章主要給大家介紹了關(guān)于優(yōu)化SQL的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Django項(xiàng)目?jī)?yōu)化數(shù)據(jù)庫(kù)操作總結(jié)

    Django項(xiàng)目?jī)?yōu)化數(shù)據(jù)庫(kù)操作總結(jié)

    這篇文章主要介紹了Django項(xiàng)目中優(yōu)化數(shù)據(jù)庫(kù)操作總結(jié),有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家共進(jìn)步,早日升職加薪
    2021-09-09
  • 通過(guò)一分鐘快速了解索引技巧

    通過(guò)一分鐘快速了解索引技巧

    這篇文章主要給大家介紹了如何通過(guò)一分鐘快速了解索引技巧的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用索引具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評(píng)論