简单地说:“交易”和“非交易”有什么区别?
在我的例子中,我在阅读“MDM”的定义时提出了这个问题:
“在计算中,主数据管理”(MDM)包括一组流程和工具,这些流程和工具一致地定义和管理组织的非事务性数据实体(其中可能包括参考数据)。
发布于 2013-10-12 18:01:33
我认为理解事务数据和非事务数据之间区别的最好方法是通过示例来理解。
非-Transactional (这些信息对企业的持续时间比事务数据更长)。
事务性(具有时间维度,并且一旦事务完成就成为历史)
发布于 2016-03-11 14:36:15
当您将一组操作收集起来并包装成一个操作时,您的操作组是原子,任何子操作失败都将最终得到一个整体的回滚,这使得操作集变得可靠。这种运算结构的性质称为transactional.。
给出了一个关于事务的例子;
想想你有一个处理客户订单、付款和其他账单的数据库,所以数据是非常重要的。您提供了一个web和web调用的业务包类和方法。这些方法在完成bi任务后,还将调用dao ( data access object)类,以便处理crud操作。因此,后端服务器构建了一个n层应用程序模型,并且存在dom对象(域对象模型的缩写),它将数据从服务端点以两种方式上下传输到数据库。
在一个用户想要更新一些信息的场景中,比如电话号码、支付类型和信用卡。当服务器更新其中三个数据时,如果其中一个数据出现问题怎么办?假设,支付类型和电话号码被更新,但是在更新信用卡时发生了错误?你将结束的一天或一个月,一个不成功的调度计费。
但是如果您有一种机制,将所有的信息更新包装到一个信息更新组中,那么在任何错误的情况下,整个更新都会被回滚。这是一个transaction.的例子
如果没有事务机制,假设您将所有信息保存在您处理io机制的自定义文件中,那么您的应用程序将不得不处理所有可能的错误场景。
关于更多的信息,你应该查看这些有用的维基百科文章;
发布于 2016-03-16 10:24:23
基本上,事务是一个或多个添加、更新、删除、修改数据库的更改,这些更改必须全部完成,或者不应执行任何步骤。当数据完整性很重要时,事务性数据库非常有用。如果事务中的一个步骤失败,则必须将这些步骤回滚到数据库未进行更改的状态。
您何时需要交易的一个例子是,当您进行银行交易时,将资金从一个帐户转移到另一个帐户。事务由两个操作组成。
1)从帐户A取钱
2)将这笔钱存入帐户B。
如果你不能从账户A中取出钱,那么交易就失败了,没有钱从账户A中移走,也没有钱放在账户B中。
如果您成功地从帐户A中取出资金,但没有将钱添加到帐户B中,则交易失败,交易必须回滚,这样钱就不会从帐户A中提取。
只有当资金从帐户A中移除并添加到帐户B时,事务才会将更改提交到数据库。
下面是用于使用SQLTransaction对象开始事务、提交事务并在失败时回滚的代码示例链接:https://stackoverflow.com/a/21285747/311749
非事务性数据库可能有更好的性能,因为它不必担心回滚更改。非事务性数据库中的单个数据可能不像管理银行帐户之间的货币那样需要事务处理。
可能的非事务性列表的例子包括:客户列表、联系信息、供应商信息、位置列表和部件列表。
主数据服务旨在支持要与多个应用程序共享的非事务性数据。
例如,您可能希望使用公司成员联系人信息的单个主列表,并使不同的应用程序能够访问该信息。如果您有很多应用程序需要这些相同的信息,这比尝试为每个应用程序维护不同的联系人列表要好得多。
补充资料来源:事务
https://dba.stackexchange.com/questions/17246/diff-in-transactional-and-non-transactional-tables
https://stackoverflow.com/questions/18884728
复制相似问题