閑聊編程與Oracle一致性和“保鏢”事務

來源:互聯網
上載者:User

標籤:通過命令   llb   串列   資料庫伺服器   cti   提交   重要   變化   好的   

最近很火的話題,為什麼學Python?

    很多人說火啊!又能人工智慧,又能大資料的,當然很火喜歡學習的人很多,高薪職位更容易帶動潮流。這個觀點首先我不反對,我大學只學習過兩門shell與java,真正學習都是自學,目的不是開發,為了鍛煉自己的編程思想而學習,為了以後學習編程少走一些彎路而學習。

    自己也是選擇Python,為什麼,實習後發展發展方向是資料庫,後期可能DBA,也可能走資料分析等業務路線,這都不要緊重要的是要為以後結合工作把自己能力提升,個人競爭力提前打好路線,無論做DBA資料庫伺服器營運SHELL指令碼和Pyhton與perl無疑最優選擇,那麼如果走資料分析等Python也可以發揮自己能用處,對於自己的職業發展規劃有很大協助,很實用的意義,為了幾年後更好的用於工作,我感覺這才是一個不熱衷於編程,不對編程狂熱的技術人員出發點!不要以這兩年火,發展前景,底薪高等為學習的基礎點,這樣空洞無規劃學習,心態首先是不端正,其次你會隨時代變化而落後!

    昨天淺談了一下資料的的完整性,那麼就是資料的精確性和可靠性,我們要保證實體完整,參照完整,域完整,使用者自訂完整,這時候回過頭看一看約束真是重要!

    一致性都是啥意思?

        咱們從實際出發,一致性字面意思聽,都知道資料是一致的,在地點一查詢銀行卡餘額是100元,換個地方查詢卻不失100元,這是我們不可接受的。那麼資料在資料庫中會時時刻刻伴隨著資料讀寫操作,這就對資料庫的狀態要求特別高,也就是說資料庫每次操作改變,都可以被接受,讀取也都是正常的,就是資料庫的一致性體現,有些時候不是資料庫真實可靠狀態,那麼就認為不一致。

    “保鏢”出場

        說起來Oracle這些完整性啊,一致性啊也都算是Oracle內建的"大老闆",都配有保鏢來保護,那麼我們來說一說完整性的保鏢交易管理。

         交易管理可不簡單,保證資料庫中資料一致性,在前面我們說到,當用提交和復原操作都是一個事務的提交或者事務的復原,我們的SQL語句是被事務語所包含。事務關鍵字是transaction來表示,而且有life cycle,事務開始,執行和結束,而事務的開始是隱式的,結束則用指令動作去完成。

      Oracle中控制事務常用的命令:

        1、commit

            英語字面翻譯過來就是提交,這是作為事務結束的標誌,使用這個命令的時候意味著什麼,意味著本次事務的資料將會被儲存到我們的磁碟裡,改變資料庫的狀態可靠的可接受的狀態,對於開發來說最安全有效方式是顯示資料提交,在提交前,其實資料庫已經更新了但是沒有得到資料庫的認可,通過事務結束命令來認可操作,提交佔用資源非常少,1條於1000條花費的提交資料庫資源是一樣的。

        2、rollback

            英語字面翻譯過來復原,我們在事務提交之前發出的撤銷命名,這時候資料庫更新沒有得到認可,當事務結束rollback時候會復原當前包含的資料,回到上一次的commit狀態,這個過程會先讀取復原段資訊,利用這些資訊將資料庫中已發生的修改重新恢複,如果用了delete命令刪除資料,那麼在rollback時候就會insert into資料,對於資料庫來說每次rollback是很耗費資源的,適用於異常處理操作,所以應該在提交事務之前認真核對操作來代替復原!

       3、savepoint 和 rollback savepoint

            在rollback的背景下,rollback復原當前事務所有操作,那麼我們通過命令savepoint在事務中建立標起點,只允許使用者復原之後的動作,rollback savepoint則是復原標點以後的資料,兩者是彌補rollback極端命令一種方式,交易回復更靈活和可控性。

      事務的屬性和隔離等級

          1、read only --將無法在事務內修改資料,而且這能在事務的開頭使用,資料庫狀態將被凍結,資料庫狀態與事務開始狀態一致

          2、read write --可讀可寫狀態,資料庫預設是此狀態

          3、serializable --隔離等級,指定序列化事務,可以實現與唯讀功能相同,隔離其他資料庫狀態的影響,但是允許DML操作,不識別其他事務對資料庫的修改,即使提交,但是不代表無視原表資料的修改,表資料其實已經修改,只是本事務不識別

          4、read commited --隔離等級的預設層級,只能讀取其他事務已經提交修改的,對於未提交的資料,只有修改事務本身才可以進行讀取。

      交易處理原則

          1、原子性(Atomicity)

          2、一致性(Consistency)

          3、隔離性(Lsolation)

          本文章會後續持續更新

      

閑聊編程與Oracle一致性和“保鏢”事務

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.