一 事务处理介绍
事务是这样一种机制,它确保多个SQL语句被当作单个工作单
元来处理。事务具有以下的作用:
一致性:同时进行的查询和更新彼此不会发生冲突,其他
用户不会看到发生了变化但尚未提交的数据。
可恢复性:一旦系统故障,数据库会自动地完全恢复未完
成的事务。
二 事务与一致性
事务是完整性的单位,一个事务的执行是把数据库从一个一
致的状态转换成另一个一致的状态。因此,如果事务孤立执行时
是正确的,但如果多个事务并发交错地执行,就可能相互干扰,
造成数据库状态的不一致。在多用户环境中,数据库必须避免同
时进行的查询和更新发生冲突。这一点是很重要的,如果正在被
处理的数据能够在该处理正在运行时被另一用户的修改所改变,
那么该处理结果是不明确的。
一个分布式数据库在用户面前为单个逻辑数据库,但实际上是由存储在多台计算机上的一组数据库组成
在几台计算机上的数据库通过网络可同时修改和存取,每一数据库受它的局部的DBMS控制
分布式数据库中每一个数据库服务器合作地维护全局数据库的一致性
在系统中的每一台计算机称为结点
如果一结点具有管理数据库软件,该结点称为数据库服务器
如果一个结点为请求服务器的信息的一应用,该结点称为客户
在ORACLE客户,执行数据库应用,可存取数据信息和与用户交互
在服务器,执行ORACLE软件,处理对ORACLE数据库并发、共享数据存取
ORACLE允许上述两部分在同一台计算机上,但当客户部分和服务器部分是由网连接的不同计算机上时,更有效
分布处理是由多台处理机分担单个任务的处理
在ORACLE数据库系统中分布处理的例子如:客户和服务器是位于网络连接的不同计算机上
单台计算机上有多个处理器,不同处理器分别执行客户应用
SQLNET是ORACLE网络接口,允许运行在网络工作站的ORACLE工具和服务器上,可存取、修改、共享和存储在其它服务器上的数据
SAQLNET可被认为是网络通信的程序接口
SQLNET利用通信协议和应用程序接口(API)为OARCLE提供一个分布式数据库和分布处理
SQLNET驱动器为在数据库服务器上运行的ORACLE进程与ORACLE工具的用户进程之间提供一个接口
参与分布式数据库的每一服务器是分别地独立地管理数据库,好像每一数据库不是网络化的数据库
每一个数据库独立地被管理,称为场地自治性
场地自治性有下列好处:◆系统的结点可反映公司的逻辑组织
◆由局部数据库管理员控制局部数据,这样每一个数据库管理员责任域要小一些,可更好管理
◆只要一个数据库和网络是可用,那么全局数据库可部分可用
不会因一个数据库的故障而停止全部 *** 作或引起性能瓶颈
◆故障恢复通常在单个结点上进行
◆每个局部数据库存在一个数据字典
◆结点可独立地升级软件
可从分布式数据库的所有结点存取模式对象,因此正像非分布的局部的DBMS,必须提供一种机制,可在局部数据库中引用一个对象
分布式DBMS必须提供一种命名模式,以致分布式数据库中一个对象可在应用中唯一标识和引用
一般彩在层次结构的每一层实施唯一性
分布式DVMS简单地扩充层次命名模型,实施在网络上唯一数据库命名
因此一个对象的全局对象名保证在分布式数据库内是唯一
ORACLE允许在SQL语句中使用佤对象名引用分布式数据库中的模式对象(表、视图和过程)
在ORACLE中,一个模式对象的全局名由三部分组成:包含对象的模式名、对象名、数据库名、其形式如:SCOTT
EMP@SALES
DIVISION3
ACME
COM其中SCOTT为模式名,EMP为表名,@符号之后为数据库名
一个远程查询为一查询,是从一个或多个远程表中选择信息,这些表驻留在同一个远程结点
一个分布式查询可从两个或多个结点检索数据
一个分布式更新可修改两个或两个以上结点的数据
一个远程事务为一个事务,包含一人或多个远程语句,它所引用的全部是在同一个远程结点上
一个分布式事务中一个事务,包含一个或多个语句修改分布式数据库的两个或多个不同结点的数据
在分布式数据库中,事务控制必须在网络上直辖市,保证数据一致性
两阶段提交机制保证参与分布式事务的全部数据库服务器是全部提交或全部回滚事务中的语句
ORACLE分布式数据库系统结构可由ORACLE数据库管理员为终端用户和应用提供位置透明性,利用视图、同义词、过程可提供ORACLE分布式数据库系统中的位置透明性
ORACLE允许在SELECT(查询)、INSERT、UPDATE、DELETE、SELECTFORUPDATE和LOCKTABLE语句中引用远程数据
对于查询,包含有连接、聚合、子查询和SELECTFORUPDATE,可引用本地的、远程的表和视图
对于UPDATE、INSERT、DELETE和LOCKTABLE语句可引用本地的和远程的表
注意在引用LONG和LONGRAW列、序列、修改表和封锁表时,必须位于同一个结点
ORACLE不允许作远程DDL语句
在单场地或分布式数据库中,所有事务都是用COMMIT或ROLLBACK语句中止
ORACLE提供两种机制实现分布式数据库中表重复的透明性:表快照提供异步的表重复;触发器实现同步的表的重复
在两种情况下,都实现了对表重复的透明性
当数据库需要处理 *** 作量大、复杂度高的数据的时候需要用到事务。用事务是为了保证数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行。
一个数据库事务通常包含了一个序列的对数据库的读/写 *** 作。它的存在包含有以下两个目的:
1、为数据库 *** 作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
2、当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的 *** 作互相干扰。
当事务被提交给了数据库管理系统,则数据库管理系统需要确保该事务中的所有 *** 作都成功完成且其结果被永久保存在数据库中,如果事务中有的 *** 作没有成功完成,则事务中的所有 *** 作都需要被回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。
扩展资料:
数据库事务ACID性质:
1、原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的 *** 作要么全部被执行,要么都不执行。
2、一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态,一致状态的含义是数据库中的数据应满足完整性约束。
3、隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
4、持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。
参考资料来源:
百度百科-数据库事务
百度百科-数据库
已提交的事务就是已经成功执行,并也入到对应的数据表中。数据库在执行事务的过程是不会在实际的数据表中 *** 作数据的。只有当你事务执行成功,才会提交事务。否则,事务就会回滚,此时事务对数据表无任何作用。数据库 已提交的事务,什么是已提交的事务?已提交的事务是否是已经写入数据库的?就是已提交的事务
就我的理解应该是不行的,这个很好说明,比如说在java中:数据库的事务是通过Connection对象的setAutoComit方法设置是否自动提交,comit方法提交事务,两个连接Connection对象就是两个事务了。不过在分布式事务中一个事务允许有多个连接,这个也比较好理解,因为分布式事务处理时不是在一台机器上面完成的,也许一台机器在北京,一台机器在上海,它们分别在各自的事务中完成的,但是整体算是一个事务(任何一个事务失败,整个事务就失败了)。
数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库 *** 作序列构成。
一个数据库事务通常包含了一个序列的对数据库的读/写 *** 作。它的存在包含有以下两个目的:
为数据库 *** 作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的 *** 作互相干扰。
当事务被提交给了DBMS(数据库管理系统),则DBMS(数据库管理系统)需要确保该事务中的所有 *** 作都成功完成且其结果被永久保存在数据库中,如果事务中有的 *** 作没有成功完成,则事务中的所有 *** 作都需要被回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。
但在现实情况下,失败的风险很高。在一个数据库事务的执行过程中,有可能会遇上事务 *** 作失败、数据库系统/ *** 作系统失败,甚至是存储介质失败等情况。这便需要DBMS对一个执行失败的事务执行恢复 *** 作,将其数据库状态恢复到一致状态(数据的一致性得到保证的状态)。为了实现将数据库状态恢复到一致状态的功能,DBMS通常需要维护事务日志以追踪事务中所有影响数据库数据的 *** 作。
以上就是关于怎样使用数据库事务处理全部的内容,包括:怎样使用数据库事务处理、有哪些分布式数据库,实现最终一致性的(分布式数据库与集中式数据库的区别)、数据库 *** 作的时候,什么情况下需要用到事务等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)