事务数据oracle 锁-1

工作之余抽点时间出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一起学习一下事务数据

    一、锁(lock)

    1、锁的念概:

            数据库是一个多户用应用的同享资源。当多个户用发并的存取数据时,在数据库中就存在多个事务同时存取一同数据的况情。如果对种这发并操纵不加以控制就可能会读取和存储不正确的数据,坏破数据的一致性。

            锁加是实现数据库发并控制的一个非常重要的技巧,当事务在对某个数据对象停止操纵前,先向系统发送求请,对其锁加,锁加后事务就对该对象有了必定的控制,在该事务释放锁之前,其他事务不能对数据对象停止操纵。

            在oracle数据库中,它并非对某个表加上锁或者某几行加上锁,锁是以数据块的一个属性存在,也就是说,每一个数据块就存储着自己数据块中数据的息信,这个地方叫ITL(Interested Transaction List),凡在这个数据块上有活动的事务,它的息信就就会录记在里面供后续的操纵查询,以保障事务的一致性。

    2、锁的分类:

    按照户用来分

        a)、动自锁(Automatic Locks):当停止一项数据库操纵时,在缺省况情下,系统动自为此数据库操纵得获有所须要的锁。动自锁分DML锁,DDL锁,system locks。

        b)、表现锁(Manual Locks):在某些况情下,户用要需表现的锁定数据库操纵用到的数据,才能使数据库操纵更好的行执,表现锁是户用为数据库对象设定的。

    按照锁级别来分

       a)、同享锁(S):同享锁使一个事务对特定数据库资源停止同享问访——另一个事务也可以对此资源停止问访或得获雷同的同享锁,同享锁为事务高提发并性。

    每日一道理
盈盈月光,我掬一杯最清的;落落余辉,我拥一缕最暖的;灼灼红叶,我拾一片最热的;萋萋芳草,我摘一束最灿的;漫漫人生,我要采撷世间最重的———毅力。

       b)、排他锁(X):事务置设排他锁后,该事务独自的取获资源,另一个事务不能在此事务提交之前得获雷同对象的同享锁或排他锁。

    按照操纵来分

    a)、DML锁:用于控制发并事务中的数据操纵,保障数据的一致性和完整性,DML锁要主用于掩护发并况情下数据的完整性。它又分为:

          TX锁(事务锁或行级锁):

                   TX锁要主对一个表中一行录记停止锁加,当停止Insert 、update、delete、merge和select ……for update           时,系统会动自取获TX锁,直到此事务commit或rollback,才能事务该锁。

                   当一个事务得获了行级锁(TX锁)时,同时此事务也会取获该行对应表级锁,表级锁可以止阻DDL的操纵,以保障数据的完整性。

          TM锁(表级锁):

                当一个事务在停止Insert、update、delete、merge和select ……for update时,系统会动自为该事务配分一个表级锁(TM锁)

          

    

文章结束给大家分享下程序员的一些笑话语录: 一条狗在街上闲逛,看见橱窗里一张告示:「招聘程序员。会编程,有团队精神,至少精通两种语言。均等机会。」
  那条狗就进去申请,但是被拒绝了。
  「我不能雇一条狗在公司里做事。」经理说。
  狗不服气,指着告示上「均等机会」几字抗议。
  经理没法,叹了口气,不屑地问道:「你会编程吗?」
  那条狗默默地走到电脑前,编了个程序,运作准确。
  「你有团队精神吗?」经理问。
  那条狗掉头看了看门外,一大群野狗在外面虎视耽耽。
  「我真的不能雇狗做这份工作。」经理气急败坏地说。
  「就算会编程、有团队精神,但是我需要的雇员至少要能精通两种语言。」
  那条狗抬头看着经理说:「喵-噢。」

posted @ 2013-05-05 22:40  坚固66  阅读(201)  评论(0)    收藏  举报