数据访问模式:数据并发控制(Data Concurrency Control)

  1.数据并发控制(Data Concurrency Control)简介

  数据并发控制(Data Concurrency Control)是用来处理在同一时刻对被持久化的业务对象进行多次修改的系统。当多个用户修改业务对象的状态并试图并发地将其持久化到数据库时,需要一种机制来确保一个用户不会对另一个并发用户的事务状态造成负面影响。
  有两种形式的并发控制:乐观和悲观。乐观并发控制假设当多个用户对业务对象的状态同时进行修改时不会造成任何问题,也称为最晚修改生效(last change wins)。对于一些系统,这是合理的行为。但如果业务对象的状态需要与从数据库中取出的状态保持一致,就需要悲观并发控制。
  悲观并发控制可以有多中风格,可以在检索出记录后锁定数据表,也可以保存业务对象原始内容的副本,然后再进行更新之前将该副本与数据存储中的版本进行比对。确保在这次事务期间没有对该记录进行修改。

  2.数据并发控制的实现示例

  常用的数据并发控制实现方式有两种:数据库实现及代码控制实现。悲观并发控制在数据库实现方面可以有加入数据库锁机制,代码控制实现方面可以增加一个保存版本号字段,用于版本之间的对比。使用版本号来检查在业务实体从数据库中检索出之后是否被修改。更新时,把业务实体的版本号与数据库中的版本号进行比对之后再提交修改。这样确保业务实体在被检索出后没有被修改。

  

数据访问模式:数据并发控制(Data Concurrency Control)

时间: 2024-08-09 07:46:19

数据访问模式:数据并发控制(Data Concurrency Control)的相关文章

在PHP系统里连接MySQL 数据访问,+ + + + + 数据删除

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

继续说说spring security之并发控制(Concurrency Control)

定义,作用,说明: Concurrency Control:并发控制,主要用于避免同一用户多次登录,重复登录以及包括相关的session管理--具体官网---> 先看官网:http://docs.spring.io/autorepo/docs/spring-security/4.0.0.CI-SNAPSHOT/reference/htmlsingle/#session-mgmt 官网的并发控制已经说得比较清楚,但是偏偏有人(例如我)重写了(自定义了)验证的方法,导致了失效的问题,至此,一起说说s

MySQL 的乐观并发控制Optimistic concurrency control

默认情况下, MySQL的Innodb事务隔离级别是重复读 repeatable read, SELECT @@GLOBAL.tx_isolation, @@tx_isolation;REPEATABLE-READ    REPEATABLE-READ 进行以下测试, 同时开两个session, S1 和 S2, 都将autocommit关掉 set autocommit=0; 测试使用的是一张简单的表, 只有一行数据 CREATE TABLE `t1` ( `v1` tinyint(2) NO

MYSQLi数据访问查询数据

单条件查询 <body> <div align="center" style="width:90%;"> <h1>数据查询</h1> <form method="post" action="test-1.php"> <div>请输入汽车品牌:<input type="text" name="name"/>

【设计模式】数据访问对象模式

数据访问对象模式(Data Access Object Pattern)或 DAO 模式用于把低级的数据访问 API 或操作从高级的业务服务中分离出来.以下是数据访问对象模式的参与者. 数据访问对象接口(Data Access Object Interface) - 该接口定义了在一个模型对象上要执行的标准操作. 数据访问对象实体类(Data Access Object concrete class) - 该类实现了上述的接口.该类负责从数据源获取数据,数据源可以是数据库,也可以是 xml,或者

微软-创建数据访问层

简介 https://msdn.microsoft.com/zh-cn/cc964016 作为web 开发人员,我们的工作总是在和数据打交道.我们创建数据库来存储数据,编写代码来检索并修改数据,并创建Web 页面来收集和汇总数据.这是探讨在ASP.NET 2.0 中实现这些常用类型的技巧的系列教程中的首篇教程.我们从创建一个 软件架构 开始,包括使用Typed DataSet 的数据访问层(DAL) .实现自定义业务规则的业务逻辑层(BLL) 和共享同一页面布局的ASP.NET 页面组成的表示层

实体类,数据访问类.字符串攻击.防攻击

程序分三层:界面层.业务逻辑层.数据访问层 这里主要操作的是数据访问层,数据访问层又分为: 1.实体类 2.数据访问类 存放位置:APP_Code文件中 一.实体类 最简单的封装把数据库的表名变成类的类名把数据库的每一个列,变为实体类中的成员变量和属性列名与属性名一致 有几行就有几个实体类 这是一个简单的实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namesp

字符串攻防、实体类、数据访问类

一.字符串攻防 数据库入侵最简单的是字符串入侵,其基本思想是,在输入内容后拼接侵入语句 例 : //侵入 cmd.CommandText = "insert into User values('a');update User set name='jnmks';--');" //防守 cmd.CommandText = "insert into User values(@a);" cmd.Parameters.AddWithValue("@a",n

Oracle数据访问组件ODAC的安装方法

Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库软件的电脑上完成对Oracle数据库的访问. 工具/原料 ODAC安装包 步骤1. 下载ODAC安装包 到Oracle官方网站下载ODAC安装包.在网页上找到你要的版本.我下载的是: 64-bit ODAC 11.2 Release 6 (11.2.0.4.0) Xcopy for Windows