快速掌握oracle数据库基础知识

上传人:dao****ing 文档编号:243354756 上传时间:2024-09-21 格式:PPT 页数:51 大小:502.79KB
返回 下载 相关 举报
快速掌握oracle数据库基础知识_第1页
第1页 / 共51页
快速掌握oracle数据库基础知识_第2页
第2页 / 共51页
快速掌握oracle数据库基础知识_第3页
第3页 / 共51页
点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,Dareway,Software,Corporation,单击此处编辑母版标题样式,Oracle,基础,主要内容,ORACLE,体系结构,1,数据库对象,2,事务和锁,3,ORACLE,体系结构,Oracle,简称甲骨文,,是,仅次于微软公司的世界第二大软件公司,,公司,成立于,9,年,是加利福尼亚州的第一家在世界上推出以关系型数据管理系统(,RDBMS,)为中心的一家软件公司。,Oracle,不仅在全球最先推出了,RDBMS,,并且事实上掌握着这个市场的大部分份额,。,他,们,的,RDBMS,被广泛应用于各种操作环境:,Windows NT,、基于,UNIX,系统的小型机、,IBM,大型机以及一些专用硬件操作系统平台,。,Oracle,数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将,Oracle,作为其应用数据的处理系统。,Oracle,数据库是基于“客户端服务器”(,Client/Server,)模式结构。客户端应用程序执行与用户进行交互的活动。其接收用户信息,并向“服务器端”发送请求。服务器系统负责管理数据信息和各种操作数据的活动。,ORACLE,体系结构,Oracle,数据库有如下几个强大的特性:,支持多用户、大事务量的事务处理,数据安全性和完整性的有效控制,支持分布式数据处理,可移植性很强,Oracle,大体上分两大块,一块是应用开发,一块是系统管理。,开发,主要是写写存储过程、触发器什么的,还有就是用,Oracle,的,Develop,工具做,form,。有点类似于程序员,需要有较强的逻辑思维和创造能力。管理则需要对,Oracle,数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会丢失整个数据库,相对前者来说,后者更看重经验。,Oracle Server,通常所说的,oracle,主要是指,Oracle Server,即,oracle,数据库服务器。,Oracle Server,主要是由实例(,instance,)和数据库(,database,)两部组成,.,一般来说一个实例只能加载一个数据库,在特殊情况下,比如,RAC,环境,一个库可以有多个例程访问。,实例:一组内存结构(,SGA,)和后台进程的集合。,数据库:一组数据文件的集合。主要由数据文件,,控制,文件和重做日志文件,.,ORACLE,体系结构,口令文件,实例,SGA,日志缓冲区,共享缓冲区,数据字典,库缓冲区,DBWR,SMON,PMON,CKPT,LGWR,Others,用户进程,服务器进程,PGA,控制文件,数据文件,数据库,数据缓冲区,重做日志文件,Java,池,其他,参数文件,归档日志文件,ORACLE,体系结构,1.,实例是一组内存结构(,SGA,)和后台进程的集合,.,2.,一个实例只能打开一个库,.,后台进程结构,内存结构,实例,SGA,重做日志缓冲区,共享缓冲区,数据字典缓冲区,库缓冲区,DBWR,SMON,PMON,CKPT,LGWR,Others,数据缓冲区,Java,池,Large,池,ORACLE,体系结构,ORACLE,的实例,1.,建立一个用户连接,2.,创建一个会话,3.,连接方式。(,jdbc,,,sqlplus,),会话创建,数据库用户,用户进程,服务器进程,连接建立,Oracle,服务器,ORACLE,体系结构,连接,ORACLE SERVER,ORACLE,体系结构,数据库物理结构,数据库在物理上结构主要由数据文件(,dbf,),控制文件(,ctl,),重做日志文件(,log,)组成。,口令文件,参数文件,归档日志文件,控制文件,数据文件,重做日志文件,Oracle,数据库,数据库物理结构,1,、数据文件,用于存储数据库的数据。包括系统数据,用户数据等。当建库或建表空间时,数据文件是由,DATAFILE,选项指定的。数据库逻辑上的一个或多个表空间组成,表空间物理上是由一个和多个数据文件组成。,数据库,表空间,数据文件,逻辑,物理,ORACLE,体系结构,2,、重做日志,用于记录数据库变化,当进行实例恢复或者介质恢复时需要使用重做日志。当进行数据,DML,,,DDL,等操作时,事务变化被写到重做日志缓冲区,在特定时刻,LGWR,进程会将重做日志缓冲区内容写入重做日志。一般情况下,数据库有三个重做日志组。并且循环使用。,3,、控制文件,用于记录和维护数据库的物理结构,并并且每个数据库至少包含一个控制文件。,Oracle,实例访问数据库正是通过控制文件建立关联的,,oracle,实例会根据控制文件记录的信息打开所有数据文件和重做日志。,ORACLE,体系结构,数据库逻辑结构,数据库的数据物理上存放在数据文件中,而逻辑上则存放在了表空间中,,oracle,是使用表空间、段,区,数据块等逻辑结构来管理对象空间。关系图:,数据库,表空间,段,逻辑,区,数据块,物理,数据文件,OS,块,ORACLE,体系结构,ORACLE,体系结构,表空间,段,区,块的组成层次,表空间,数据文件,段,块,区,段,ORACLE,体系结构,表空间是数据库中最大的逻辑单位,一个,Oracle,数据库至少包含一个表空间,就是名为,SYSTEM,的系统表空间。,每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。,表空间的大小等于构成该表空间的所有数据文件大小之和。,CREATE TABLESPACE tablespacename,DATAFILE filename SIZE integer K|M,AUTOEXTEND OFF|ON;,创建表空间的语法是:,ORACLE,体系结构,主要内容,ORACLE,体系结构,1,数据库对象,2,事务和锁,3,数据库对象,2024/9/21,模式是对用户所创建的数据库对象,(模式对象),的总称,通常一个模式对应一个用户。,主要介绍数据库对象,用户,表,视图,物化视图,索引,序列,同义词,触发器,用户和权限,Oracle,使用角色的方法来限定各种用户的权力,在系统中可以有许多用户,各种用户有各种不同的角色,拥有不同的权力。实践表明与其很明确的赋一组权限给一个角色,不如赋给一个角色,然后把这个角色赋给一组用户。这样就可以实现动态的权限管理,当这组用户的权限必须改变时,只需改变角色的权限就可以了,。,要连接到Oracle数据库,就需要,创建,一个用户帐户,每个用户都有一个默认表空间和一个临时表空间,CREATE USER,命令用于创建新用户,CREATE USER username,IDENTIFIED BY password,DEFAULT TABLESPACE tablespace,TEMPORARY TABLESPACE tablespace;,用户和权限,权限指的是执行特定命令或访问数据库对象的权利,权限,有,两种类型,,系统权限和对象权限,系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限,对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作,角色是一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理。,表,表的记录,(,行,row),和字段,(,列,column),构成,是数据库中存储数据的结构。要进行数据的存储和管理,首先要在数据库中创建表,即表的字段,(,列,),结构。有了正确的结构,就可以用数据操作命令,插入、删除表中记录或对记录进行,修改。,数据完整性,约束,表的数据有一定的取值范围和联系,多表之间的数据有时也有一定的参照关系。在创建表和修改表时,可通过定义约束条件来保证数据的完整性和一致性。约束条件是一些规则,在对数据进行插入、删除和修改时要对这些规则进行验证,从而起到约束作用。,完整性包括数据完整性和参照完整性,数据完整性定义表数据的约束条件,参照完整性定义数据之间的约束条件。数据完整性由主键,(PRIMARY KEY),、非空,(NOT NULL),、惟一,(UNIQUE),和检查,(CHECK),约束条件定义,参照完整性由外键,(FOREIGN KEY),约束条件定义。,表,创建表的语法,表,的创建需要,CREATE TABLE,系统权限,表的基本创建语法如下:,CREATE TABLE,表名,(,列名 数据类型,(,宽度,)DEFAULT,表达式,COLUMN,CONSTRAINT,.,TABLE CONSTRAINT,TABLE_PARTITION_CLAUSE,),;,通过,子查询创建表,如果要创建一个同已有的表结构相同或部分相同的表,可以采用,以下的语法:,CREATE TABLE,表名,(,列名,.) AS SQL,查询语句,;,表,修改表结构,增加,新列,增加新列的语法如下:,ALTER TABLE,表名,ADD,列名数据类型,DEFAULT,表达式,COLUMN CONSTRAINT;,如果要为表同时增加多列,可以按以下格式进行:,ALTER TABLE,表名,ADD (,列名 数据类型,DEFAULT,表达式,COLUMN,CONSTRAINT.);,表,修改,列,修改列的语法如下:,ALTER TABLE,表名,MODIFY,列名 数据类型,DEFAULT,表达式,COLUMN,CONSTRAINT,如果要对表同时修改多列,可以按以下格式进行:,ALTER TABLE,表名,MODIFY (,列名 数据类型,DEFAULT,表达式,COLUMN,CONSTRAINT,.);,其中,列名是要修改的列的标识,不能修改。如果要改变列名,只,能先删除该列,然后重新增加。其他部分都可以进行修改,如果没有给,出新,的定义,表示该部分属性不变。,表,删除,列,删除列的语法如下:,ALTER TABLE,表名,DROP COLUMN,列名,CASCADE CONSTRAINTS,;,如果要同时删除多列,可以按以下格式进行:,ALTER TABLE,表名,DROP(COLUMN,列名 数据类型,DEFAULT,表达,式,COLUMN CONSTRAINT.),CASCADE CONSTRAINTS;,当删除列时,列上的索引和约束条件同时被删除。但如果列,是多列约束的一部分,则必须指定,CASCADE CONSTRAINTS,才,能删除约束条件。,表,分区表,在,某些场合会使用非常大的表,比如人口信息统计表。如果,一个表很大,就会降低查询的速度,并增加管理的难度。一旦发,生磁盘损坏,可能整个表的数据就会丢失,恢复比较困难。根据,这一情况,可以创建分区表,把一个大表分成几个区,(,小段,),,对,数据的操作和管理都可以针对分区进行,这样就可以提高数据库,的运行效率。分区可以存在于不同的表空间上,提高了数据的可,用性。,表,表分区的依据,分区,的,依据可以,是一列或多列的值,这一列或多列称为分区关键字,或分区,列。,所有,分区的逻辑属性是一样的,(,列名、数据类型、约束条件等,),,但,每个,分区可以有自己的物理属性,(,表空间、存储参数等,),。,分区有三种:范围分区、,哈希分区和列表分区。,范围,分区,(RANGE PARTITIONING),:根据分区关键字值的范围,建立分区,。比如,根据省份为人口数据表建立分区。,哈,希,分区,(HASH PARTITIONING),:在分区列上使用,HASH,算法,进行分区,。,列表分区,(List,PARTITIONING,),:根据预先定义好的分区键数值确定记录被分配到哪个分区。,视图,视图,的概念,视图,是基于一张表或多张表或另外一个视图的逻辑表。视图不,同于表,视图本身不包含任何数据。表是实际独立存在的实体,是用,于存储数据的基本结构。而视图只是一种定义,对应一个查询语句。,视图的数据都来自于某些表,这些表被称为基表。通过视图来查看,表,就像是从不同的角度来观察一个,(,或多个,),表。,视图有如下一些优点:,*,可以,提高数据访问的安全性,通过视图往往只可以访问数据库,中表的特定部分,限制了用户访问表的全部行和列,。,*,简化,了对数据的查询,隐藏了查询的复杂性。视图的数据来自,一个复杂的查询,用户对视图的检索却很简单。,视图,*,一,个视图可以检索多张表的数据,因此用户通过访问一个视,图,可完成对多个表的访问。,*,视图,是相同数据的不同表示,通过为不同的用户创建同一个,表的,不同视图,使用户可分别访问同一个表的不同部分。,视图,可以在表能够使用的任何地方使用,但在对视图的操作上,同表,相比有些限制,特别是插入和修改操作。对视图的操作将传递到,基表,,所以在表上定义的约束条件和触发器在视图上将同样起作用。,视图,视图,的创建,创建视图需要,CREAE VIEW,系统权限,视图的创建语法如下:,CREATE OR REPLACE FORCE|NOFORCE VIEW,视图名,(,别名,1,,别名,2.),AS,子查询,WITH CHECK OPTION CONSTRAINT,约束名,WITH READ ONLY,其中:,OR REPLACE,表示替代已经存在的视图。,FORCE,表示不管基表是否存在,创建视图。,NOFORCE,表示只有基表存在时,才创建视图,是默认值,。,视图,的查看,USER_VIEWS,字典中包含了视图的定义。,物化视图,物化,视图是一种特殊的物理表,“物化”,(Materialized),视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,,Oracle,都实际上转换为视图,SQL,语句的查询。这样对整体查询性能的提高,并没有实质上的好处。,物化,视图的类型,ON DEMAND,、,ON COMMIT,。二者的区别在于刷新方法的不同,,ON DEMAND,顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新,(REFRESH),,即更新物化视图,以保证和基表数据的一致性;而,ON COMMIT,是说,一旦基表有了,COMMIT,,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。物化视图可以分为以下三种类型:包含聚集的物化视图;只包含连接的物化视图;嵌套物化视图。三种物化视图的快速刷新的限制条件有很大区别,而对于其他方面则区别不大,。,物化视图,创建物化视图时可以指定多种,选项,创建,方式(,Build Methods,):包括,BUILD IMMEDIATE,和,BUILD DEFERRED,两种。,BUILD IMMEDIATE,是在创建物化视图的时候就生成数据,而,BUILD DEFERRED,则在创建时不生成数据,以后根据需要在生成数据。默认为,BUILD IMMEDIATE,。,查询,重写,(Query Rewrite),:包括,ENABLE QUERY REWRITE,和,DISABLE QUERY REWRITE,两种。分别指出创建的物化视图是否支持查询重写。查询重写是指当对物化视图的基表进行查询时,,Oracle,会自动判断能否通过查询物化视图来得到结果,如果可以,则避免了聚集或连接操作,而直接从已经计算好的物化视图中读取数据。默认为,DISABLE QUERY REWRITE,。,在,建立物化视图的时候可以指定,ORDER BY,语句,使生成的数据按照一定的顺序进行保存。不过这个语句不会写入物化视图的定义中,而且对以后的刷新也无效。,物化视图,物化视图和普通视图的区别,普通,视图不存放数据,物化视图存放数据,在,使用视图进行查询时,是通过,View,中的,SQL,查询原表的数据,不能提高查询性能。在通过物化视图进行查询时,直接读取物化视图的数据,提高查询性能。,对,普通视图应用更新、删除操作会影响原表的数据。只读物化视图不能进行,DML,操作。可更新物化视图可进行,DML,操作,并且在刷新时操作会被推送回原表。可写物化视图可进行,DML,操作,但刷新后所有修改操作在刷新后全部丢失,索引,Oracle,数据库的,索引,索引,(INDEX),是为了加快数据的查找而创建的数据库对象,,特别是对大表,索引可以有效地提高查找速度,也可以保证数据,的惟一性,。,索引,是对数据库表中一列或多列的值进行排序的一种结构使用索引可快速访问数据库表中的特定信息。,索引不论逻辑上和物理上都与相关的表的数据无关,索引需要独立的存储空间,所以索引在创建之初就需要设置对应的表空间,在,创建,PRIMARY KEY,和,UNIQUE,约束条件时,系统将,自动为,相应的列创建惟一,(UNIQUE),索引。索引的名字同约束的名字,一致,。,索引,索引,的创建,创建索引不需要特定的系统权限。建立索引的语法如下:,CREATE UNIQUE|BITMAP INDEX,索引名,ON,表名,(,列名,1,,,列名,2,,,.),;,其中:,UNIQUE,代表创建惟一索引,不指明为创建非惟一索引。,BITMAP,代表创建位图索引,如果不指明该参数,则创建,B*,树索,引。,列,名是,创建索引的关键字列,可以是一列或多列,。,删除索引的语法是:,DROP INDEX,索引名;,索引,索引有各种类型,除了标准索引外,还有一些特殊类型的,索引的类型,基于函数的索引,反向键索引,位图索引,唯一索引,组合索引,索引,唯一索引,1,、 何时创建:当某列任意两行的值都不相同,2,、 当建立,Primary Key(,主键,),或者,Unique constraint(,唯一约束,),时,唯一索引将被自动建立,3,、 语法:,CREATE UNIQUE INDEX index ON table (column);,组合,索引,1,、 何时创建:当两个或多个列经常一起出现在,where,条件中时,则在这些列上同时创建组合索引,2,、 组合索引中列的顺序是任意的,也无需相邻。但是建议将最频繁访问的列放在列表的最前面,3,、 语法:,CREATE,INDEX,index ON table (,column1,,,column2);,索引,位图,索引,1,、何时,创建:,列,中有非常多的重复的值时候。例如某列保存了 “性别”信息。,Where,条件中包含了很多,OR,操作符。,较少的,update,操作,因为要相应的更新所有的,bitmap,2,、 结构:位图索引使用位图作为键值,对于表中的每一数据行位图包含了,TRUE(1),、,FALSE(0),、或,NULL,值。,3,、 优点:位图以一种压缩格式存放,因此占用的磁盘空间比标准索引要小得多,4,、 语法:,CREATE BITMAP INDEX index ON table (column, column.);,5,、 例子,:,create table bitmaptable as select * from indextable where owner in(SYS,PUBLIC);,索引,分区,索引,分区,索引就是简单地把一个索引分成多个片断。通过把一个索引分成多个片断,可以访问更小的片断,(,也更快,),,并且可以把这些片断分别存放在不同的磁盘驱动器上,(,避免,I/O,问题,),。,创建分区索引的方法:,createindexIDX_PART_RANGE_IDONT_PARTITION_RANGE(id)local(,partitioni_range_p1tablespacetbspart01,partitioni_range_p2tablespacetbspart01,partitioni_range_p3tablespacetbspart02,partitioni_range_pmaxtablespacetbspart02,);,序列,序列是用于生成唯一、连续序号的对象,序列可以是升序的,也可以是降序的,使用,CREATE SEQUENCE,语句创建序列,SQL CREATE SEQUENCE seq_toys,START WITH 10,INCREMENT BY 10,MAXVALUE 2000,MINVALUE 10,NOCYCLE,CACHE 10;,指定第一个序号从,10,开始,指定序号之间的间隔为,10,表示序列的最大值为,2000,表示序列的最小值为,10,在达到最大值后停止生成下一个值,指定内存中预先分配的序号数,序列,创建和删除序列,SQL ALTER SEQUENCE seq_toys MAXVALUE 5000 CYCLE;,使用,ALTER SEQUENCE,语句修改序列,,不能更改序列的,START WITH,参数,使用,DROP SEQUENCE,语句删除序列,SQL DROP SEQUENCE seq_toys;,同义词,同义词,(SYNONYM),是为模式对象起的别名,可以为表、视图、,序,列、过程、函数和包等数据库模式对象创建同义词。,同义词有两种:公有,同义词和私有同义词。公有同义词是对所有用户都可用的。创建,公有同义词,必须拥有系统权限,CREATE PUBLIC SYNONYM,;创建,私有同义词,需要,CREATE SYNONYM,系统权限。私有同义词只对拥有同义词的,账,同义词的创建和使用,同义词,的创建语法如下:,CREATE PUBLIC SYNONYM,同义词名,FOR ,模式名,.,对象名,数据库链路名,;,其中:,PUBLIC,代表创建公有同义词,若省略则代表创建私有同义,词。,模式名代表拥有对象的模式账户名。,同义词,数据库链路名是指向远程对象的数据库链接。,删除同义词的语法如下,DROP SYNONYM,同义词名;,删除同义词的人必须是同义词的拥有者或有,DROP ANY,SYNONYM,权限的人。删除同义词不会删除对应的对象。,触发器,触发器,是特定事件出现的时候,自动执行的代码块。类似于存储,过程,,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的,。,触发器,必须由事件才能触发。触发器的触发事件分,可为,3,类,分别是,DML,事件、,DDL,事件和数据库事件,。,触发器,的类型可划分为,4,种:数据操纵语言,(DML,),触发器,、替代,(INSTEAD OF),触发器、,数据定义语言,(,DDL),触发器和数据库事件触发器,。各触发器的作用:,主要内容,ORACLE,体系结构,1,数据库,对象,2,事务和锁,3,数据库事务,事务的概念:,事务,用于保证数据的一致性,它由一组相关的,dml,语句组成,该组的,dml,语句要么全部成功。要么全部失败,。,DML(,数据操作语言,增删改,),事务的特性有四个:,ACID,原子性,atomicity,:,语句级原子性,过程级原子性,事务级原子性,一致性,consistency,:,状态一致,同一事务中不会有两种状态,隔离性,isolation,:,事务间是互相分离的互不影响,(,这里可能也有自治事务,),持久性,durability,:,事务提交了,那么状态就是永久的,数据库事务,事务,的优点:,* 把逻辑相关的操作分成了一个组。,* 在数据永久改变前,可以预览数据变化。,* 能够保证数据的读一致性,。,COMMIT,操作把多个步骤对数据库的修改,一次性地永久写入数据库,代表数据库事务的成功执行。,ROLLBACK,操作在发生问题时,把对数据库已经作出的修改撤消,回退到修改前的状态。在操作过程中,一旦发生问题,如果还没有提交操作,则随时可以使用,ROLLBACK,来撤消前面的操作。,SAVEPOINT,则用于在事务中间建立一些保存点,,ROLLBACK,可以使操作回退到这些点上边,而不必撤销全部的操作。一旦,COMMIT,完成,就不能用,ROLLBACK,来取消已经提交的操作。一旦,ROLLBACK,完成,被撤消的操作要重做,必须重新执行相关操作语句。,数据库事务,事务,和锁,当执行事务操作时,(dml,语句,),oracle,会在被作用的表上加锁,防止其他用户改变表的结构 。,提交事务,当执使用,commit,语句可以提交事务,.,当执行了,commit,语句之后,会确认事务的变化、结束事务、删除保存点、释放锁,当使用,commit,语句结束事务之后,其他会话将可以查看到事务变化后的新数据,;,savepoint,保存点名称,; -,创建一个保存点,rollback to,保存点名称,; -,回滚到保存点,回滚事务,当执行,rollback,时,通过指定保存点可以回退到指定的点,rollback,-,取消全部事务,commit,之后不能,rollback,数据库事务,数据库锁,Oracle,数据库中的锁机制,数据库,是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。,在,数据库中有两种基本的锁类型:排它锁(,Exclusive Locks,,即,X,锁)和共享锁(,Share Locks,,即,S,锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改;加了共享锁的数据对象可以被其他事务读取,但不能修改。,数据库事务,Oracle,数据库,锁分类(,根据保护对象的,不同):,(1) DML lock,(,data locks,,数据锁):用于保护数据的完整性;,(2) DDL lock,(,dictionary locks,,字典锁):用于保护数据库对象的结构(例如表、视图、索引的结构定义);,(3) Internal locks,和,latches,(内部锁与闩):保护内部数据库结构;,(4) Distributed locks,(分布式锁):用于,OPS,(并行服务器)中;,(5) PCM locks,(并行高速缓存管理锁):用于,OPS,(并行服务器)中。,在,Oracle,中最主要的锁是,DML,(也可称为,data locks,,数据锁)锁。,DML,锁的目的在于保证并发情况下的数据完整性。在,Oracle,数据库中,,DML,锁主要包括,TM,锁和,TX,锁,其中,TM,锁称为表级锁,,TX,锁称为事务锁或行级锁,。,数据库事务,锁,出现在数据共享的场合,用来保证数据的一致性。当多个,会话同时修改一个表时,需要对数据进行相应的锁定,。锁,有“ 只读锁” 、“ 排它锁” ,“ 共享排它锁” 等多种类型,,而且,每种类型又有“ 行级锁”,(,一次锁住一条记录,),,“ 页级锁”,(,一次,锁住,一页,即数据库中存储记录的最小可分配单元,),,“ 表级锁”,(,锁住,整个表,),。,若,为“ 行级排它锁” ,则除被锁住的行外,该表中其他行均可被其,他的用户进行修改,(Update),或删除,(delete),。若为“ 表级排它锁” ,则所有其他用户只能对该表进行查询,(select),操作,而无法对其中的任何记录进行,修改或删除。当程序对所做的修改进行提交,(commit),或回滚,(rollback,),后,,锁住的资源便会得到释放,从而允许其他用户进行操作,。,如果两个事务,分别锁定一部分数据,而都在等待对方释放锁才能完成事务操作,这种情况下就会发生死锁。,谢谢观看!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!