数据库事务是指作为单个逻辑工作单元执行的一系列 *** 作。
设想网上购物的一次交易,其付款过程至少包括以下几步数据库 *** 作:
· 更新客户所购商品的库存信息
· 保存客户付款信息--可能包括与银行系统的交互
· 生成订单并且保存到数据库中
· 更新用户相关信息,例如购物数量等等
正常的情况下,这些 *** 作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态--库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。
数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。
[编辑本段]数据库事务的ACID属性
事务处理可以确保除非事务性单元内的所有 *** 作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关 *** 作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性:
· 原子性 (atomic)
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。通常,与某个事务关联的 *** 作具有共同的目标,并且是相互依赖的。如果系统只执行这些 *** 作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理 *** 作子集的可能性。
· 一致性 (consistent)
事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。某些维护一致性的责任由应用程序开发人员承担,他们必须确保应用程序已强制所有已知的完整性约束。例如,当开发用于转帐的应用程序时,应避免在转帐过程中任意移动小数点。
· 隔离性 (insulation)
由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。当事务可序列化时将获得最高的隔离级别。在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。由于高度隔离会限制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量。
· 持久性 (Duration)
事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。
[编辑本段]DBMS的责任
企业级的数据库管理系统(DBMS)都有责任提供一种保证事务的物理完整性的机制。就常用的SQL Server2000系统而言,它具备锁定设备隔离事务、记录设备保证事务持久性等机制。因此,我们不必关心数据库事务的物理完整性,而应该关注在什么情况下使用数据库事务、事务对性能的影响,如何使用事务等等。
本文将涉及到在net框架下使用C#语言 *** 纵数据库事务的各个方面。
体验SQL语言的事务机制
作为大型的企业级数据库,SQL Server2000对事务提供了很好的支持。我们可以使用SQL语句来定义、提交以及回滚一个事务。
事务的原子性是指一个事务中的所有 *** 作是不可分割的,必须是一个逻辑单元,只能是全部执行成功或者全部执行失败。
事务的原子性是指事务必须是一个原子的 *** 作序列单元。事务中包含的各项 *** 作在一次执行过程中,只允许出现两种状态之一,要么都成功,要么都失败任何一项 *** 作都会导致整个事务的失败,同时其它已经被执行的 *** 作都将被撤销并回滚,只有所有的 *** 作全部成功,整个事务才算是成功完成。
事务原子性是如何保证的
MySQL事务的原子性是通过undo log来实现的。磁盘存数据采用的是随机存储的方式,这就使得在存放数据的时候不仅需要记录下存放的数据值,还需要记录存放数据的地址,存储速度相对比较慢。而日志存储是连续存储,因此在存数据的时候只需要记录下首地址即可,其余数据记录偏移量,可以进一步提高性能。
每一个写事务,都会修改BufferPool,从而产生相应的Redo/Undo日志,这些日志信息会被记录到日志文件中。在MySQL中,任何BufferPool中的页被刷新到磁盘之前,都会先写入到日志文件中,如果BufferPool中的数据提交,此时数据库挂了,那么在数据库再次启动之后,就可以通过Redo日志来将其恢复出来,以此来保证写的数据不会丢失。
如果数据没有提交,此时数据库挂了,就需要通过Undo日志来实现。每一条数据变更(insert/update/delete) *** 作都伴随一条undo log的生成,并且回滚日志必须先于数据持久化到磁盘上。所谓的回滚就是根据回滚日志做逆向 *** 作,比如delete的逆向 *** 作为insert,insert的逆向 *** 作为delete,update的逆向为update等。
简述数据库事物的4个基本要素。
正确答案:事务的 *** 作比较严格,他必须满足ACID,ACID是指数据库事务正确执行的四个基本要素的缩写,这些要素包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),接下来针对这四个基本要素进行详细解释。原子性:表示事务是一个不可再分割的工作单位,事务中的 *** 作要么全部成功,要么全部失败回滚。一致性:表示事务开始之前和结束之后,数据库的完整性没有被破坏。也就是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。隔离性:表示并发的事务是相互隔离的,也就是一个事务内部的 *** 作都必须封锁起来,不会被其他事务影响到。持久性:表示事务一旦提交后,该事务对数据做的更改便持久保存在数据库中,并不会被回滚,即使出现了断电等事故,也不会影响数据库中的数据。
ACID,指数据库事务正确执行的四个基本要素的缩写包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求
原子性
整个事务中的所有 *** 作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性
在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
隔离性
两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间某一时刻的数据。
持久性
在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
本条目介绍一下全球免费让公众使用的化合物及药物分子数据库,对化学及药物研究特别有用。
(注意:以下信息来自于美国MedKooBiosciences,Inc。)
1美国国家医学图书馆化学身份z(CHEMIDPLUS)数据库
该网页可检索药物化学结构,本网站可以用药物名称查找其化学结构此外,本数据库还可以查看毒性,理化性质,药品代码等。
2美国国家医学图书馆PUBCHEM数据库可检索药物化学结构
本数据库是美国国家健康研究所(NIH)和美国国家医学图书馆(NLM)的大型药物分子库。NIH是美国医学研究机构,下设27个机构和中心,也是美国健康与人类服务部的一个组成部分。它是一个重要的联邦机构,执行和支持基础、临床及可转化医学研究,调查普通及罕见疾病的原因、治疗及治愈情况。PubChem数据库是美国国家卫生署分子库路线图计划的一个组成部分,是由NIH国家生物技术信心中心开发的一个化学结构及分子生物活性综合数据库
3。美国国家癌症研究所(NCI)抗癌药药物词典
该数据收集了4000多条与癌症医学相关的术语和化合物性质。
4药物合成数据库(Drug)
该数据是这个药物在线网推出的数据库本数据库提供近7000种已上市或在研药物的药物合成相关的信息,如药品名、结构式、化学名、CAS登记号、分子式、分子量、化学活性、开发阶段、研究机构等。最大的优点是快速检索合成路线,并给出参考文献来源。
检索条件支持模糊查询,各输入条件间的检索关系为逻辑与(即AND关系)。检索条件选择其一即可查询。检索方法包括:
药物名称:(注:包含通用名、商标名、研发代号、异名等)。如Loratadine、Cefpirome
化学名称:(注:包含CA命名、普通命名等)。
CAS登记号:(注:美国化学文摘登记号)。
5有机合成方法数据库
Since1921,hasprovidedthechemistrycommunitywithannualcollectionsofdetailed,reliable,andcarefullycheckedproceresforthesynthesisoforganiccompoundsSomeproceresdescribepracticalmethodsforofspecificcompoundsofinterest,whileotherimportantsyntheticmethodswithgeneralutilityEachprocereiswritteninmoredetailascomparedtotypicalinotherjournals,andeachreactionandalldatahasbeencarefullycheckedforinthelaboratoryofamemberoftheBoardofEditors
Organicmaybeaessedeitherviathetablesofcontentsof(journalmode)orbyconctingstructureand(databasemode)SpecificindivialprocerescanbeaessedviathetableofcontentsforeithertheoriginalannualvolumevolumeinwhichtheprocereappearedDatabasemodeallowsuserstosearchallvolumesofOrganicSynthesesbykeywordsorbyinputtingstructuresandStructuretheChemDrawpluginwhichcanbedownloadedaordingtofoundintheleftmarginArticlesfromfuturevolumesofOrganicSynthesesthatarenotyetincorporatedinthesearchabledatabasecanbeaessedontheOrgSynExpresspage
6有机合成人名反应
该数据库是药物在线网推出的数据库TheOrganicNameReactions(ONR)sectionisintendedtoservetheprofessionalchemistandstudentbydescribingorganicchemicalreactionswhichhavecometoberecognizedandreferredtobynamewithinthechemistrycommunityAselectgrouphasbeenchosenforadditiontothissectionEachreactiondescriptionisdesignedtobeinformativeandrepresentativeofthepertinentliterature;however,itisnotmeanttobecomprehensiveThedescriptionsarecomposedofthefollowing:(1)name(s)associatedwiththereaction,(2)theoriginaland/orprimarycontributor(s)connectedwiththediscoveryand/ordevelopmentofthereaction,(3)aconcisedescriptionofthetransformation,(4)areactionscheme,(5)keyreferences,and(6)crossreferencestootherONRbasedoncommonalitiesTheindexincludedinthissectionalsolistssupplementaryterms
7有机合成反应库
该数据可是这个药物在线网推出的数据库含有400多个有机合成人名反应。
8化学物质索引数据库(ChemicalIndexDatabase)
该数据库是药物在线网推出的数据库。本数据库为化学物质特性数据库,包含大量具药理活性及生物活性的物质性质信息数据。检索条件支持模糊查询,各输入条件间的检索关系为逻辑与(即AND关系)。化学结构式为矢量格式,可利用系统自带预览工具或支持该格式的工具进行无损缩放查看。检索结果包括:(a)索引信息:如物质名称、化学结构式图、化学文摘登记号(CAS)、CA名称、商标名、化学结构式、分子式、分子量、元素组成等。(b)参考文献:提供公开物质理化性质、制备方法、分析方法、药理药效、临床研究等的重要期刊、专利、综述等极具参考价值的文献。(c)物质特性:包括理化特性数据,如熔点、沸点、闪点、溶解性、多晶物质状态、光谱吸收特征数据、药物治疗分类等
其检索的方法有:
物质名称(英文名):(包含化学名、通用名、商标名、异名等的全名或部分(大于3个字符),如Ceftriaxone,Adefovir)
CA登记号(CASRegistryNumber):
注:美国化学文摘登记号
参考文献(LiteratureReferences)
药理活性(Keywords)
用途(Usages)
治疗分类(TherapeuticCategory)
分子式(MolecularFormula)
分子量(MolecularWeight)
熔点(MeltingPoint)
注:熔点值,以摄氏度为单位
沸点(BoilingPoint)
注:沸点值,以摄氏度为单位
解离常数(pKa)
比旋度(OpticalRotation)
油水分配系数(LogP)
最大吸收值(AbsorptionMaximum)
密度(Density)
折光率(IndexofRefraction)
毒性数据(Toxicity)
程序的原子性指:整个程序中的所有 *** 作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。
原子性 *** 作:原子性在一个 *** 作是不可中断的,要么全部执行成功要么全部执行失败,有着“同生共死”的感觉。及时在多个线程一起执行的时候,一个 *** 作一旦开始,就不会被其他线程所干扰。
扩展资料:
redis的原子性:
Redis所有单个命令的执行都是原子性的,这与它的单线程机制有关;
Redis命令的原子性使得我们不用考虑并发问题,可以方便的利用原子性自增 *** 作 实现简单计数器功能;
redis 实现事务的原理:
批量 *** 作在发送 EXEC 命令前被放入队列缓存
收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令都不会被执行
在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中
参考资料:
数据库不用必须具有的特征是具有很高的安全性。数据库必须具备的四个特性有:一、原子性,二、一致性,三、隔离性,四、持久性,当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不被其他事务的 *** 作所干扰,多个并发事务之间要相互隔离。
不并发控制的话会带来一系列问题:数据冗余、更新异常、插入异常、删除异常等
并发控制保证事务4个特性,acid:A:原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸 *** 作要么全做,要么全不做。C:一致性(Consistency) 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。I:隔离性 (Isolation) 一个事务的执行不能被其他事务干扰。 D:持续性/永久性(Durability) 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
以上就是关于数据库中不仅包括描述事物的数据本身,还包括相关事物之间的联系怎么理解全部的内容,包括:数据库中不仅包括描述事物的数据本身,还包括相关事物之间的联系怎么理解、事务的原子性是指什么、简述数据库事物的4个基本要素。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)