文档库 最新最全的文档下载
当前位置:文档库 › 如何实现数据库事务

如何实现数据库事务

如何实现数据库事务
如何实现数据库事务

如何实现数据库事务

数据库事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务被提交给DBMS,则DBMS需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行

在GeneXus中我们称事务为Logical Unit of Work 。一样是可以使用rollback ,commit 的。那如何实现呢?

举例说明。现有Transaction :Company(公司信息) ,SysUser(系统用户信息)。当新增系统用户数据成功后,需要更新公司信息中"已注册用户数"

1.新建WebPanel :SysUserIns ,在Parttern中选择Transaction,并且选择基于BC .

备注:如果要基于BC ,需要设置Transaction :SysUser 的Business Compnenet 为true 。

选择后如下界面

2.新建Procedure :AddData,此方法就用于事务。

备注:实现数据交互的四种方式:直接利用Transaction ,BC,For each , New EndNew.BC 可以抓取失败情况,所以如果是事务的时候,我们使用BC去更新数据库。

3.在SysUserIns 的确定按钮调用第二步中的AddData 即可。

---------------------------------------------------------------------

知识扩展:

事务不是非得代码写在一个Procedure 中,如第二步中的更新Company 的代码可以写在另一个Procedure 中,然后在当前Procedure中调用也是可以的。但需

要知道的是

每个Procedure 都有一个属性Commit on exit, 表示在退出时执行commit 操作。所有如果是多个Procedure 调用,可以将Procedure 的属性关闭,使用commit 语句直接控制。

数据库概论试题(数据库恢复技术)

第7章数据库恢复技术 1.__事务__是一系列的数据库操作,是数据库应用程序的基本逻辑单元。 2.试述事务的概念及事务的四个特性。 3.为什么事务非正常结束时会影响数据库数据的正确性,请举例说明。 答:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。例如:某工厂的库存管理系统中,要把数量为Q的某种零件从仓库1移到仓库2存放。则可以定义一个事务T,T包括两个操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q。 4.事务处理技术主要包括__数据库恢复___技术和__并发控制__技术。 5.在SQL语言中,定义事务控制的语句主要有__BEGIN__、__TRANSACTION_和__COMMIT___ROLLBACK。 7.事务具有四个特性:它们是__原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)__。这个四个特性也简称为_ACID_特性。 8.数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据? 答:数据库系统中可能发生各种各样的故障,大致可以分以下几类: (1)事务内部的故障; (2)系统故障; (3)介质故障; (4)计算机病毒。 事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。 9.把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态)的功能,这就是__数据库的恢复__。 10.数据库恢复的基本技术有哪些? 答:数据转储和登录日志文件是数据库恢复的基本技术。当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。 11.数据库系统中可能发生各种各样的故障,大致可以分为__事务故障、系统故障、介质故障、计算机病毒___等。 13.建立冗余数据最常用的技术是___数据转储__和_登录日志文件__。通常在一个数据库系统中,这两种方法是一起使用的。 14.什么是日志文件?为什么要设立日志文件? 答:(1)日志文件是用来记录事务对数据库的更新操作的文件。(2)设立日志文件的目的是:进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。 15.转储可分为__静态转储__和__动态转储_,转储方式可以有__海量转储_和_增量转储__。 18.___日志__是用来记录事务对数据库的更新操作的文件。主要有两种格式:以_文件记录_为单位的日志文件和以__数据块_为单位的日志文件。 19.什么是检查点记录,检查点记录包括哪些内容? 答:检查点记录是一类新的日志纪录。它的内容包括: ①建立检查点时刻所有正在执行的事务清单。 ②这些事务的最近一个日志记录的地址。

实时数据库与关系数据库的区别

实时/历史数据库和关系型数据库的区别 一、实时数据库 实时数据库是数据库系统发展的一个分支,它适用于处理不断更新的快速变化的数据及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物。实时数据库最起初是基于先进控制和优化控制而出现的,对数据的实时性要求比较高,因而实时、高效、稳定是实时数据库最关键的指标。 早期实时数据库的概念即我们所说的内存数据库,其相当于数据中枢的作用,将厂级相互孤立的DCS数据有效整合起来,在厂级应用中某个DCS的数据可为其他DCS的工艺算法提供数据支持,其有效解决了数据孤岛问题,拓展了DCS的功能,因而,实时数据库在先进控制和优化控制中起到了尤为重要的作用。 但早期的内存数据库并不能有效的解决实时数据的细时间粒度压缩存储,工业模型对象数值属性高度分类抽象,大容量数据的高效实时检索及处理等关键问题。而实时数据库在数据通信、数据组织、数据存储、数据检索、数据访问、数据处理、数据展现等方面的专业化及产品化,为构建基于大容量实时历史数据之上的分析应用提供了便捷稳定的数据支撑,使应用系统可以从更高更深层次充分利用宝贵的生产实时历史数据。 目前,实时数据库已广泛应用于电力、石油石化、交通、冶金、军工、环保等行业,是构建工业生产调度监控系统、指挥系统,生产实时历史数据中心的不可缺少的基础软件。 二、关系数据库 关系数据库,是指采用了关系模型来组织数据的数据库。关系模型是在1970年由IBM首先提出,在之后的几十年中,关系模型的概念得到了充分的发展并逐渐成为数据库架构的主流模型。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。关系型数据库有着以下特点: 容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解。 使用方便:通用的SQL语言使得操作关系型数据库非常方便,程序员甚至于数据管理员可以方便地在逻辑层面操作数据库,而完全不必理解其底层实现。 易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率。

分布实时数据库系统中事务处理的研究

收稿日期:2001203205 基金项目:广东省重点攻关资助项目(99B01702G ) 分布实时数据库系统中事务处理的研究 3 钟远明1, 奚建清2 (11菲奈特系统网络公司,广东广州510665;21华南理工大学计算机科学与工程系,广东广州 510641) 摘 要:分布实时数据库系统中,事务的执行受到时间期限的约束。在分析原有理论的基础上,对分布实时数据库系统中的事务处理进行了研究,重点探讨了提交处理和并发控制两方面,并结合乐观法和虚拟锁等技术的思想,提出了几种新的设计构思。 关键词:事务;执行期限;分布;实时;提交处理;并发控制中图法分类号:TP391172;TP39311 文献标识码:A 文章编号:100123695(2002)022******* Study on Transaction Processing in Distributed Real 2time Database System ZH ONG Y uan 2ming 1,XI Jian 2qing 2 (11Fenet Royalstone Lompany Ltd.,Guangzhou Guangdong 510665,China ;21Dept.o f Computer Science &Engineering ,South China University o f Technology ,Guangzhou Guangdong 510641,China ) Abstract :T ransactions need to meet the deadline constraint in Distributed Real 2time Database System.T he paper presents the research in transaction processing in DRT DBS with focus on b oth commit processing and concurrency control.S ome feasible designs and meth ods are als o addressed in this paper based on the idea of Optimistic C ontrol and Virtual Lock scheme etc 1K ey w ords :T ransaction ;Deadline ;Distributed ;Real 2time ;C ommit Processing ;C oncurrency C ontrol 把一组相关的数据分布在计算机网络中,由DDBMS 统一管理的系统,称为分布式数据库系统[1]。随着实时应用的普及,在原有数据库系统的基础上引入了执行期限(Deadline )概念,称为分布实时数据库系统(Distributed Real T ime Database System ,简称DRT 2DBS )。在DRT DBS 中,事务如果在Deadline 前没能完成则被认为是无效的或无意义的,将被立即停止(K illed )和废弃(Discarded )[2]。本文对DRT DBS 中的事务提交处理和事务并发控制进行了研究,提出了一些新的设计构思。 1 传统的分布事务提交协议 对于传统的分布事务模型,定义主事务(M aster )和子 事务(C ohorts )的概念如下: 主事务 事务的主进程,它在事务提交(Subm it )的节点上运行。 子事务 事务的子进程的集合,它在事务要访问的各个分布的节点上运行。 子事务结束任务后,会发送一个W ORK DONE 消息给主事务;当主事务收到所有子事务的W ORK DONE 消息后,开始调用提交处理协议对事务进行提交处理,保证事务的ACID 准则 。经典的分布事务提交协议有二阶段提 交协议(2PC )和三阶段提交协议(3PC )。1.1 二阶段提交协议 二阶段提交协议(2PC )中,主事务和子事务之间有两次消息交互,如图1所示。 图1 二阶段提交协议(2PC ) 基于讨论的问题,这里只考虑分布事务成功的情况。当子事务发出NOT OK 消息给主事务后,子事务可自行回卷;当子事务发出OK 消息后,子事务就进入一个预提交状态(Prepared S tate ),直至收到主事务的C OM MIT 或ABORT 消息,才相应转到提交状态或终止状态。 2PC 由于简单实用,在分布数据库系统中有广泛应用,已成为事实上的工业标准。但在DRT DBS 中却有很大局限性,因为子事务在预提交状态时,它所持有的全部锁和数据资源是不会释放的,其它事务会因此而阻塞,实时性能降低。 下面研究的重点就是对预提交状态的处理进行优化,结合乐观法和Snapshot 机制等的优点,提出扩展的、可行的协议方案。1.2 三阶段提交协议 三阶段提交协议(3PC )是为了解决2PC 中的事务阻塞问题[3,4]。3PC 在一定程度上避免了阻塞,但实现

数据库实验报告:事务与并发控制

1.实验七:事务与并发控制 1.1.实验目的 1.掌握事务机制,学会创建事务。 2.理解事务并发操作所可能导致的数据不一致性问题,用实验展现四种数据不一致性 问题:丢失修改、读脏数据、不可重复读以及幻读现象。 3.理解锁机制,学会采用锁与事务隔离级别解决数据不一致的问题。 4.了解数据库的事务日志。 1.2.实验内容 假设学校允许学生将银行卡和校园卡进行绑定,在student数据库中有如下的基本表,其中校园卡编号cardid即为学生的学号: icbc_card(studcardid,icbcid,balance) //校园卡ID,工行卡ID,银行卡余额campus_card(studcardid,balance) //校园卡ID,校园卡余额 数据创建的代码: use student createtable campus_card ( studcardid Char(8), balance Decimal(10,2)) createtable icbc_card ( studcardid Char(8), icbcid Char(10), balance Decimal(10,2) )

insertinto campus_card values('20150031', 30) insertinto campus_card values('20150032', 50) insertinto campus_card values('20150033', 70) insertinto icbc_card values('20150031','2015003101', 1000) insertinto icbc_card values('20150032','2015003201', 1000) insertinto icbc_card values('20150033','2015003301', 1000) 针对以上数据库按照要求完成下列实验: 1.编写一个事务处理(begin tran)实现如下的操作:某学号为20150032的学生要从银 行卡中转账200元到校园卡中,若中间出现故障则进行rollback。(15分)settransactionisolationlevel repeatableread

数据库事务日志清除操作指南

SQL Server事务日志备份的清除操作指南 事务日志清除目的:SQL Server数据库由一个.mdf文件与.ldf文件组成,mdf 是主数据存储的文件,ldf是数据库日志存储的文件。对于日志文件,因每次SQL 发生的操作(插入、更新、删除)都会把操作日志记录到日志文件中(以备可通过日志还原),因此日志文件每天都会增长(增长速度会明显比mdf文件快,有时一个月没清除就会达到几个G的大小),因此需要对事务日志中已有的历史不活动的日志做清除,以防止数据库ldf文件的无限彭胀。(目前还未用过ldf文件来做恢复的,况且用他恢复也不安全,因此ldf文件中数据可以清除).SQL通过对事务日志备份动作来对不活动的日志进行清除截断。 在定义数据库的事务日志清除前,请先确保Sql server服务器端 Sql Server agent服务是否开启,只有服务器端的Sql Server agent服务开启才能进行如下述的服务库端的自动备份。 第一步:找到需设置事务日志备份的数据库:如lm_hr

点击鼠标右 键先选择”所 第二步:在备份四个选项中,请选择“事务日志”项目 在备份 四个选项中,第三步:选择好“事务日志”之后,点击“添加”按钮

选择好 “事务日 如’备份到’下 方已有指定文 件的路径,请第四步:设置文件名以及选择文件名的存储路径

点击“” 按钮,选择 注意:存储路径最 好不要指向C盘(系 统文件盘),防止系 统重新安装时,文 件被格式化!存放 第五步:设置好文件的存储路径和名称后,点击“确定”

设置好文 件的存储第六步:选择“重写”中的“重写现有媒体”选项 选择“重写现 有媒体”,这种第七步:选择“调度”对日志备份进行时间调度设置

实时数据库的事务调度策略分析

实时数据库的事务调度策略分析3 蔡 振1) 蔡世洪2) 申志强3) (重庆邮电大学1) 重庆 400065)(重庆重钢三峰软件有限公司2) 重庆 400039)(重庆大学3) 重庆 400030) 摘 要 实时数据库系统的事务调度策略是系统用来处理实时事务的调度方法。基于调度事务的不同类别产生各异的策略,分析目前各类事务调度策略的优缺点及适应类型,提出新的定时调度和传统的优先级调度相结合的想法。 关键词 事务 策略 优先级调度 定时调度 中图分类号 TP311.138 1 引言 实时数据库系统(RT DBS)是数据库和实时系统相结合的一种新型数据库,是数据和事务都可以有定时特性或显式的定时限制的数据库系统。系统的正确性不仅依赖于事务的逻辑结果,而且依赖于该逻辑结果所产生的时间。所以,实时系统与非实时系统在设计上的一个重要区别在于实时系统将时间看成系统中的一个主要资源。系统中的实时任务都具有多个时间特征,例如,我们所说的时间戳,包括起始时间、运行时间、截止时间等。 由于实时系统的时间特征,使RT DBS设计比较复杂,需要对很多问题进行研究与决策:数据和数据库的结构与组织;事务时限的软硬性;事务模型及其结构特征;事务的调度策略(优先级分派、并发控制的协议与算法);I/O调度、恢复、通信的协议与算法;查询处理算法等,其中事务的调度策略也是近年来国内外学者研究比较多的一个方向。本文探讨和分析实时事务的调度策略。 2 实时数据库的事务调度问题 实时数据库系统是一个用来处理具有定时限制的工作负载的事务处理系统,主要目标是满足事务的截止时间,包括事务对各种资源的调度,即对多个事务占用CP U的调度,多个并发运行事务之间的数据、I/O和内存等资源的调度。 在实时数据库系统的研究中,事务处理(Transacti on Pr ocessing)一直是研究的重点和难点,受到普遍重视。在事务处理中,事务调度策略是最为重要的,其中常用的调度方法是分派事务优先级。这样调度方法的指导思想是通过一定的优先级分派策略使实时事务在事务调度队列中排队来等待调度。 优先级的分派策略都有其适应的特点,采用一种固定优先级分派策略进行调度并不能为实时事务的截至期提供可靠保证,而且采用优先级的调度方法不能准确地指定事务的执行时机[1]。很多优先级分配策略各有其优点和缺陷,所以,在选用优先级分派策略时,还要因地制宜。在进行事务调度时,还要考虑事务的一些要求和特点,其中比较重要的,如执行事务具有的时间约束和依赖性、紧迫程度不同的事务处理要求的异样性等。 3 优先级分配策略及其优缺点 目前普遍研究的调度方法是优先级调度策略,其思想是将待调度的事务在调度队列中采用排队的方式进行排队,然后调度时由调度程序装载队列首的事务进行运行。优先级事务调度策略的亮点就在于组织事务的调度队列,使队列结构和有效元素按优先级有序排列。文献[2]指出在通常的实时系统中使用的优先级指派策略。 3.1 最早放行最优先 该策略以释放时间(release ti m e)为标准安排事务的优先级,所谓释放时间是指事务真正开始运行的时间。该策略类似于“先来先服务”,使“可以开始执行时间”最早的事务具有最高的优先级,做法简单易行。对于实时数据库来说,其缺点是显而易见的,由于没有考虑事务的截止时间,可能会使 56 第35卷(2007)第12期 计算机与数字工程 3收到本文时间:2007年3月27日 作者简介:蔡 振,男,硕士研究生,研究方向:实时数据库系统的理论与应用。蔡世洪,男 ,高级工程师,研究方向: 计算机控制。申志强,男,博士研究生,研究方向:控制理论。

实时数据库和关系型数据库的区别

实时/历史数据库和关系型数据库的区别 实时数据库 实时数据库是数据库系统发展的一个分支,它适用于处理不断更新的快速变化的数据及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物。实时数据库最起初是基于先进控制和优化控制而出现的,对数据的实时性要求比较高,因而实时、高效、稳定是实时数据库最关键的指标。 早期实时数据库的概念即我们所说的内存数据库,其相当于数据中枢的作用,将厂级相互孤立的DCS数据有效整合起来,在厂级应用中某个DCS的数据可为其他DCS的工艺算法提供数据支持,其有效解决了数据孤岛问题,拓展了DCS的功能,因而,实时数据库在先进控制和优化控制中起到了尤为重要的作用。 但早期的内存数据库并不能有效的解决实时数据的细时间粒度压缩存储,工业模型对象数值属性高度分类抽象,大容量数据的高效实时检索及处理等关键问题。而实时数据库在数据通信、数据组织、数据存储、数据检索、数据访问、数据处理、数据展现等方面的专业化及产品化,为构建基于大容量实时历史数据之上的分析应用提供了便捷稳定的数据支撑,使应用系统可以从更高更深层次充分利用宝贵的生产实时历史数据。 目前,实时数据库已广泛应用于电力、石油石化、交通、冶金、军工、环保等行业,是构建工业生产调度监控系统、指挥系统,生产实时历史数据中心的不可缺少的基础软件。 关系数据库 关系数据库,是指采用了关系模型来组织数据的数据库。关系模型是在1970年由IBM首先提出,在之后的几十年中,关系模型的概念得到了充分的发展并逐渐成为数据库架构的主流模型。简单来说,关系模型指的就是二维表格模型,而一个关系

型数据库就是由二维表及其之间的联系组成的一个数据组织。关系型数据库有着以下特点: 容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、 层次等其他模型来说更容易理解。 使用方便:通用的SQL语言使得操作关系型数据库非常方便,程序员甚至于数 据管理员可以方便地在逻辑层面操作数据库,而完全不必理解其底层实现。 易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率。 目前,关系数据库广泛应用于各个行业,用于构筑管理信息系统,如ERP, MIS,EAM等重要系统,是构建管理信息系统,存储及处理关系数据的不可缺少基础软件。 两种数据库之间的一些差别 数据的组织方式 实时数据库可以简单地理解为它是这样的数据库:由测点信息表、实时数据表、历史数据表三个数据库组成。 测点信息含有一个测点基本信息字段的一张表,这个表以测点标签作为关键字,对应一条测点基本信息的记录包含一条测点的基本配置信息,如压缩偏差,例外偏差,测点描述等。用户可从此数据库中查询测点的基本信息。 实时表是内存快照,反映了生产实时数据的时间戳、数值、质量等秒级变化。 用户可从此数据库中查询生产实时数据的实时数据值(值,时间戳,质量)。

数据库概论考题大全

(一)简答题 1.试述数据、数据库、数据库系统、数据库管理系统的概念。 答:( l)数据:描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。( 2 )数据库:数据库是长期储存在计算机的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。( 3 )数据库系统:数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。( 4 )数据库管理系统:数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。 2.试述数据库系统的特点。 答:( l )数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。( 2 )数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。 ( 3 )数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。( 4 )数据由DBMS 统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。为此,DBMS 必须提供统一的数据控制功能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。 3.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性? 答:数据与程序的逻辑独立性:当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据与程序的逻辑独立性。 数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。 数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 4.试述视图的优点。 答: ( l )视图能够简化用户的操作;( 2 )视图使用户能以多种角度看待同一数据;( 3 )视图对重构数据库提供了一定程度的逻辑独立性;( 4 )视图能够对数据提供安全保护。 5.试述事务的概念及事务的4 个特性。恢复技术能保证事物的哪些特征? 答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。 事务具有4 个特性:原子性、一致性、隔离性和持续性。 恢复技术能保证的事物特征有:原子性、一致性、持续性。 6.数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据? 答:数据库系统中可能发生各种各样的故障,大致可以分以下几类: (1)事务部的故障;(2)系统故障;(3)介质故障;(4)计算机病毒。 事务故障、系统故障和介质故障影响事务的正常执行; 介质故障和计算机病毒破坏数据库数据。

SQL与Oracle对数据库事务处理的差异性(doc 8页)

SQL与Oracle对数据库事务处理的差异性(doc 8页)

SQL 和Oracle对数据库事务处理的差异性 作者: Jake, 出处:IT专家网论坛,责任编辑: 陈子琪, 2009-10-11 13:00 在吉日嘎拉的软件编程走火入魔之:数据库事务处理入门(适合初学者阅读)文章中关于MS SQL Server和Oracle对数据库事务处理的差异性引起一些争论,因此记录我对数据库事务处理的想法。 背景 在吉日嘎拉的软件编程走火入魔之:数据库事务处理入门(适合初学者阅读)文章中关于MS SQL Server和Oracle对数据库事务处理的差异性引起一些争论,因此记录我对数据库事务处理的想法。 简介 本文讲述MS SQL Server和Oracle对数据库事务处理的差异性,以及Oracle如何对事务处理的实现。 什么是事务

帐就不平了。也例如有些销售系统的汇总表和明细表,是一个主表和一个从表,需要同步更新。 2.并发时分离不同事务操作。例如编辑过程中的数据不给其他事务查询到。这也是相对的,在特效需求下可能要支持dirty read(脏读),但不是这里讨论的范围了。 SQL Server 2008 的事务类型 1.自动提交事务Autocommit Transactions 这是SQL Server默认的事务类型,每一条单独的SQL语句(SQL statement)都是单独的一个事务,语句执行完毕后自动提交。调用方不需要手工控制事务流程。 2.显示事务Explicit Transactions 调用方需要调用API或者使用T-SQL的BEGIN TRANSACTION语句来打开事务。需要调用COMMIT或者ROLLBACK TRANSACTION 来提交或者回滚。 3.隐式事务Implicit Transactions

实时数据库系统之实时事务调度算法

实时数据库系统之实时事务调度算法 实时数据库技术是实时系统和数据库技术相结合的产物,研究人员希望利用数据库技术来解决实时系统中的数据管理问题,同时利用实时技术为实时数据库提供时间驱动调度和资源分配算法。然而,实时数据库并非是两者在概念、结构和方法上的简单集成。需要针对不同的应用需求和应用特点,对实时数据模型、实时事务调度与资源分配策略、实时数据查询语言、实时数据通信等大量问题作深入的理论研究。 实时事务调度策略定义如何为事务分配优先级,而调度的最重要目标是保证尽可能多的事务能够满足截止期。大部分实时任务调度算法并不能直接用于调度实时事务,原因在于:这些算法通常要求任务到达时间、截止期与最坏情况执行时间与关键性等参数是已知的。而实时事务调度中广泛存在的不可预测因素,主要包括数据存取的动态性、磁盘I/O、事务夭折与回滚等,导致事务的最坏情况执行时间很难估计。因此,很多实时数据库采用主内存数据库模型,以消除I/O操作所带来的影响。另一方面,实时数据库通常应用于开放环境,系统的负载变化是不可预知的且可能在较大范围内变化,给实时事务调度带来更多的困难。 Abbott等[ABB88]最先基于一个内存驻留的实时数据库模型,综合研究了FCFS(First Come First Serve)、EDF(Earliest Deadline First)与LSF(Least Slack First)三种优先级分配方法以及串行执行(Serial Execution)、2PL-HP(2PL-High Priority)与2PL-CR(2PL-Conditional Restart)三种并发控制协议,仿真实验结果表明:就调度算法而言,EDF算法表现出最好的性能;并发控制中2PL-CR表现出最好的性能,但是其性能很大程度地受到事务估计执行时间精度的影响。进一步地,Abbott等[ABB92]也在磁盘驻留的实时数据库模型之上对上面的算法与协议进行了测试,结果表明LSF优先级分配算法表现出最好的性能,而2PL-WP协议与LSF或者EDF配合使用都优于2PL-HP协议,并且采用优先级驱动的I/O调度相对于FIFO 方式具有很大的性能改进。无论如何,当系统负载采用步进方式递增时,EDF算法是性能最好的调度算法,而2PL-HP协议表现最佳。最后,Abbott等指出CPU调度算法是实时事务调度处理中最重要的策略,而在并发控制中使用优先级信息解决数据冲突有利于改进系统的性能。 Huang等[HUA89]基于一个实时数据库测试床RT-CARAT,针对实时事务调度算法与冲突解决策略进行了实验研究,结果表明:实时事务调度算法必须综合考虑事务的截止期与关键性(或者价值),并且在冲突解决策略中考虑这些信息能够改进系统性能;事务截止期与关键性的分布情况也在很大程度上影响系统的性能。因此,在随后的研究中,许多算法都把事务的关键性或者重要性看作调度算法中必须考虑的重要因素。 上个世纪九十年代,实时事务调度的研究基本上是从基于价值的事务调度、基于准入控制的事务调度、满足时态一致性的事务调度等几个方面发展,并且进一步地在调度中考虑不同的事务模型以及过载消解方法。最近几年,反馈控制方法也被应用到实时事务的调度中,

JAVA中数据库事务处理的实现

Java中数据库事务处理的实现 摘要本文介绍在Java中进行事务处理的方法,通过实例分别讲述了如何采用JavaBean、Ejb组件实现J2EE应用服务器支持的JDBC事务、JTA(Java Transaction API)事务。 关键词JavaBean,EJB,数据库,事务处理,JTA JavaBean JavaBean是用Java语言编写的与平台无关的组件。它是描述Java的软件组件模型,有点类似于Microsoft的COM组件的概念。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。JavaBean可以实现代码的重复利用,对于程序的易维护性也有重大的意义。非可视化的JavaBean,在JSP程序中常用来封装事务逻辑、数据库操作等,可以很好的实现业务逻辑和前台程序的分离。JavaBean在服务器端的应用方面表现出了越来越强的生命力。 EJB EJB技术定义了一组可重用的组件:Enterprise JavaBeans。你可以利用这些组件,像搭积木一样的建立你的分布式应用程序。当你把代码写好之后,这些组件就被组合到特定的文件中去。每个文件有一个或多个Enterprise Beans,在加上一些配置参数。最后,这些Enterprise Beans被配置到一个装了EJB容器的平台上。客户能够通过这些Beans的home接口,定位到某个beans,并产生这个beans的一个实例。这样,客户就能够调用Beans的应用方法和远程接口。EJB技术简化了用JAVA语言编写的企业应用系统的

开发、配置和执行。有三种类型的Enterprise beans:Session beans、entity beans和Message-driven Beans。 事务处理 信息是任何企事业单位的重要资产,任何企业部门都包含着信息的流入、流出,任何企业部门都控制着某些信息。同时,信息必须在适当的时机传播给需要的人。而且,信息还需要安全约束,通常根据信息的类型和内容实施访问控制。为了保证数据的安全有效和正确可靠,数据库管理系统(DBMS)必须提供统一的数据保护功能。 事务是现代数据库理论中的核心概念之一。如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务。当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交。由于其中的一部分或多步执行失败,导致没有步骤被提交,则事务必须回滚(回到最初的系统状态)。事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。持久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。 在下面我们列举一个使用SQL Server数据库进行事务处理的例子。主表

实时数据库和关系数据库区别

实时数据库和关系数据库的区别 数据库和关系数据库 数据库是指按照一定数据结构和模型来组织、存储和管理数据的仓库。采用关系模型建立起来的数据库叫做关系数据库。关系数据库是建立在集合代数基础上,应用数学方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。由于关系数据库的广泛使用,人们习惯把关系数据库简称为数据库,但是数据库绝不仅仅是关系数据库。比如:嵌入式数据库、内存数据库、实时数据库、面向对象数据库、文档数据库等都是数据库。 实时数据库和关系数据库 实时数据库是采用实时数据模型建立起来的数据库,用于处理不断更新的快速变化的数据及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,利用数据库技术来解决实时系统中的数据管理问题,同时利用实时技术为实时数据库提供时间驱动调度和资源分配算法。主要应用于工业监控,如:电力、石化、化工、钢铁、冶金、造纸、交通控制和证券金融等工业领域的监控。 传统的关系数据库系统旨在处理永久、稳定的数据,强调维护数据的完整性、一致性, 其性能目标是高系统吞吐量和低代价,但对处理的定时限制没有严格要求。而实时数据库系统需要结合实时数据处理技术和数据库技术,并同时满足数据实时性和一致性的要求。实时数据库系统的主要目标是使尽量多的事务在规定的时间要求内完成,而不是公平地分配系统资源,从而使得所有事务能得以执行。概括地讲,实时数据库系统有如下特点: 1)时间约束: 实时数据库是其数据和事务都有明确的时间限制的数据库。在实时系统中,具有时间约束的数据主要是来自于外部的动态数据,以及由这些数据求导出的新

北邮数据库原理与应用阶段作业

一、单项选择题(共10道小题,共分) 1. 数据库事务的隔离性通过_______实现。 2. 1.DBMS的事务管理子系统 2.应用程序员 3.DBMS的并发控制机制 4.DBMS的恢复子系统 知识点:事务的概念 学生答案:[C;] 标准答 案: C; 得分:[10]试题分值: 提示:? 3. 数据库的一致性状态由_______来负责。 4. 1.DBMS的事务管理子系统 2.应用程序员 3.DBMS的并发控制机制 4.DBMS的恢复子系统 知识点:事务的概念 学生答案:[B;] 标准答 案: B; 得分:[10]试题分值: 提示:? 1. 事务开始前,数据库处于一致性的状态;事务结束后,数据库必须仍处

于一致性状态。这指的是事务的_____。 2. 1.一致性 2.隔离性 3.持久性 4.原子性 知识点:事务的概念 学生答案:[A;] 标准答 案: A; 得分:[10]试题分值: 提示:? 1. 一个事务一旦提交之后,它对数据库的影响必须是永久的,无论发生何种系统故障。这指的是事务的____。 2. 1.一致性 2.隔离性 3.持久性 4.原子性 知识点:事务的概念 学生答案:[C;] 标准答 案: C; 得分:[10]试题分值: 提示:? 1. 系统必须保证事务不受其它并发执行事务的影响,这指的是事务的________。 2.

2.隔离性 3.持久性 4.原子性知识点:事务的概念 学生答案:[B;] 标准答 案: B; 得分:[10]试题分值: 提示:? 1. 一个事务中所有对数据库的操作是一个不可分割的操作序列。每个事务的操作序列要么都被成功地执行,要么一个也不被执行,这指的是事务的______。 2. 1.一致性 2.隔离性 3.持久性 4.原子性 知识点:事务的概念 学生答案:[D;] 标准答 案: D; 得分:[10]试题分值: 提示:? 1. DBS运行的最小逻辑单位是__________。 2. 1.事务 2.表 3.属性

实时数据库比较

国外实时数据库比较,不包含phd,因为honeywell卖的pi比osi卖的还多。 前言 实时数据库是数据库系统发展的一个分支,它适用于处理不断更新的快速变化的数据及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,实时数据库系统的主要内容包括: l 实时数据库模型; l 实时事务调度:包括并发控制、冲突解决、死锁等内容; l 容错性与错误恢复; l 内存组织与管理; l 访问准入控制; l I/O与磁盘调度; l 主内存数据库系统; l 不精确计算问题; l 放松的可串行化问题; l 实时SQL; l 实时事务的可预测性; l 研究现状与发展。 因为国内的实时数据库产品不论在技术性能、用户功能扩展等方面远不如国外的产品先进、成熟、稳定,所以对于国内的产品不予考虑。 目前在国内比较流性的国外实时数据库产品有美国Wonderware公司的Industrial SQL,美国OSIsoft公司的PI ( Plant Information System ) ,美国AspenTech公司的I P21 ( InfoPlus 。21 )。以5000点数据库和20客户端应用为例,几个数据库价格分别是: PI----10万美元,每个接口6000美元,OPC接口收费; InfoPlus.21----11万美元,每个接口1万美元,OPC接口不收费; Industrial SQL Server----6.5万美元,每个IDAS1200美元,OPC Link免费。下面对以上数据库产品的性能、技术特点做逐一介绍。 Industrial SQL Server 公司简介

Wonderware公司创建于90年代初,提供工控软件、实时数据库软件、设备管理软件、资源跟踪管理系统等工业生产过程的多种应用软件,有近千名员工,属于世界第三大自控系统供应商Invensys集团,是上市公司。在中国设有北京和上海两个代表处。其产品主要客户端软件已发布中文版本。 Wonderware公司的Industrial SQL是由数据采集、数据圧缩、生产动态浏览和历史数据归档等功能构成一个完整的实时数据库系统,实时数据和历史数据用专门的文件保存;数据库服务器内嵌了微软公司的MS SQL Server,使其具备了关系型数据库特性,增强了复制功能,集成了Mail 和Intetnet。它是第一个可满足工厂对数据采集速度、存储量的要求的实时关系型数据库,并比常规关系型数据库的数据采集速度、存储量的数百倍。I ndustrial SQL扩展了SQL语句,使其具有了时间特性。 Industrial SQL的运行性能与所用的硬件系统有关,它可以在1秒中内完成6万个点的取数或存储。这个速度与数据存贮方式无关,采用的周期性存储(以固定的多少毫秒存储一次)或增量存储(数据的变化超过设定百分比时存一次)。Industrial SQL可以每秒存储6万点(均值)或每100毫秒存2000点数据。Industrial SQL的最小分辨率3。3毫秒。 Industrial SQL对模拟量和开关量均可以采用增量存或周期性存方式,根据工厂数据冗余的特点进行压缩,数据存贮空间仅是传统关系型数据库的2%,它具有极快的生产数据采集速度和数据存储量,在数据采集同时对数据正确性进行校验。它集成了MS SQL Se rver,支持标准SQL语句并突破了SQL语言的限制,增加了数据时间特性等,还集成了工厂事件、概要、生产和配置等数据。 InSQL服务器运行于:Windows NT、Windows2000 Server,客户端软件可运行于:Windows 3。1, 95, 98, 和Windows NT。 Industrial SQL的运行性能与所用的硬件系统有关,它可以在1秒中内完成6万个点的取数或存储。这个速度与数据存贮方式无关,采用的周期性存储(以固定的多少毫秒存储一次)或增量存储(数据的变化超过设定百分比时存一次)。Industrial SQL可以每秒存储6万点(均值)或每100毫秒存2000点数据。Industrial SQL的最小分辨率3.3毫秒。 Industrial SQL对模拟量和开关量均可以采用增量存或周期性存方式,根据工厂数据冗余的特点进行压缩,数据存贮空间仅是传统关系型数据库的2%,它具有极快的生产数据采集速度和数据存储量,在数据采集同时对数据正确性进行校验。它集成了MS SQL Se rver,支持标准SQL语句并突破了SQL语言的限制,增加了数据时间特性等,还集成了工厂事件、概要、生产和配置等数据。

数据库的恢复 习题答案

第七章数据库的恢复 习题解答和解析 1. 1.试述事务的概念及事务的4个特性。 答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单 位。事务具有4个特性:原子性(Atomicity)、一致性(Consistency )、隔离性(Isolation)和持续性(Durability)。这4个特性也简称为ACID特性。 ??原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么 都不做。 ??一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致 性状态。 ??隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使 用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 ??持续性:持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库 中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有 任何影响。 2.为什么事务非正常结束时会影响数据库数据的正确性,请列举一例说明之。 答:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。 例如某工厂的库存管理系统中,要把数量为Q的某种零件从仓库1移到仓库2存放。 则可以定义一个事务T,T包括两个操作;Q1=Ql-Q,Q2=Q2+Q。如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q。 3.数据库中为什么要有恢复子系统?它的功能是什么? 答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。 恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态(亦 称为一致状态或完整状态)。 4.数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障 破坏数据库数据? 答:数据库系统中可能发生各种各样的故障,大致可以分以下几类: (1)事务内部的故障; (2)系统故障; (3)介质故障; (4)计算机病毒。 事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。 5.数据库恢复的基本技术有哪些? 答:数据转储和登录日志文件是数据库恢复的基本技术。当系统运行过程中发生故障,

相关文档
相关文档 最新文档