载货车辆称重管理系统中并发控制机制的研究和实现

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:lialianing
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:载货车辆称重管理系统在大型厂矿企业中占据重要的地位。在该系统中,通常一些用户拥有相同的使用权限,如果这些用户不加以合理控制会破坏数据库一致性,因此怎样避免数据共享中的冲突通常是在系统开发过程中需要解决的关键问题。本文针对称重管理中多用户共享访问实时数据库数据时出现的问题,探讨了并发控制机制和解决并发控制的方法。
  关键词:数据库;并发控制;事务;游标;称重管理
  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)33-1307-03
  Research and Implementation of the Laden Vehicle Weight Management System of Concurrency Control Indatabase System
  YANG Shu-qing, SUN Pei-yan
  (North University of China ,School of Electronics and Computer Science and Technology,Taiyuan 030051,China)
  Abstract:The weight management system of Laden vehicle takes an important position in large factories . Usually , some users have the same right of use in the system, if these users are not been controlled reasonablly, the database consistency can been breaken, so how to avoid conflict of Data sharing is usually an important problem,which?need solved in the system development processing. After studing the theories of database concurrency control ,the paper explores the implementation of concurrency control in weighing in weight management system of Laden vehicle of multi-user database to share real-time data access problems database system .
  Key words: Database;concurrency control; transaction; cursor; weight management
  1 简介
  载货车辆称重管理系统主要是针对大型厂矿中原料采购、成品销售及厂内物资调拨过程进行的计量管理,可以通过网络实现数据共享。本系统可以自动采集称重仪表中毛重、皮重、车辆牌照等信息,这些信息不能手工输入,杜绝人为因素的干扰,防止大车过磅小车回皮或小车过磅大车回皮的现象发生,杜绝司机的作弊行为。管理人员在查询磅房的历史称重记录时,可同时调出当时的现场图片和重量两组信息可供对比,确保称重过程的准确可靠,透明,公正。通过该系统可以提高企业管理水平,防止称重作弊,堵塞管理漏洞,有效控制成本,提高工作效率,起到了非常积极的作用。
  数据库是一个共享资源,当多个用户并发地访问数据库时就会产生多个事务同时存取同一数据的情况。若此时对并发操作不加控制就可能导致读取和存储不正确的数据,破坏数据库的一致性。所以在数据库系统中提供并发控制机制是必须的。
  本文旨在研究数据库并发控制理论的基础上,结合实际的数据库系统对系统中的并发控制的实现方法进行一些研究。
  2 多用户并发控制理论
  2.1 事务定义及其特性
  数据库中一个重要概念是事务,它是一系列要么都做,要么都不做的数据库操作的集合。事务具有四个基本特性:原子性,一致性,隔离性和持久性四个特性。事务并发操作带来的数据不一致性包括:丢失修改,不可重复读和读“脏”数据,这是因为并发操作破坏了事务的特性。保证事务的调度执行满足上述四个性质是所有的数据库管理系统必须的,这样才能确保数据库始终从某个一致性状态转变到另一个一致性状态。
  2.2 事务并发控制机制
  常用的并发控制机制有:基于锁协议的并发控制机制,冲突图检测并发控制机制,时间戳并发控制机制,乐观并发控制机制。
  2.2.1 基于锁协议的并发控制机制
  基本的锁类型有两种:排它锁(简称X锁)和共享锁(简称S锁)。若事务T对数据元素A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加上任何类型的锁,直到T释放A上的锁。这样就保证了其他事务在T释放A上的锁之前不能再读取和修改A。若事务T对数据元素A加上S锁,则T只可以读A,其他任何事务只能再对A加上S锁,而不能加X锁,直到T释放A上的S锁。这样就保证了其他事务可以读A,但在T释放A上的S锁之前不能再对A做任何修改。在某些特殊的条件下,数据库中还会引入更新锁和增量锁。
  两段锁协议(2PL)是最常用的一种锁协议。所谓两段锁协议,是指所有事务必须分两个阶段对数据元素加锁和解锁。在对任何数据元素进行读、写操作之前,首先要申请并获得对该数据元素的加锁;在释放一个锁后,事务不再申请和获得其他锁。“两段”的含义是,事务分两个阶段,第一阶段是加锁阶段,也称为扩展阶段。在加锁阶段中,事务可以申请获得任何数据元素上的任何类型的锁,但是不能释放锁。第二阶段是解锁阶段,也称为收缩阶段。在解锁阶段,事务可以释放任何数据对元素上的任何类型的锁,但是不能再加任何锁。可以证明,若并发执行的所有事务均遵守两段锁协议,则任何对并发事务的调度算法都是可串行化的1。
  2.2.2 冲突图检测并发控制机制
  检测并发控制机制的首要问题是构造冲突图。冲突图中的结点表示处于活跃状态的事务。对于处于活跃状态的事务p 和 q,在对数据元素 x 进行并发操作时,如果至少存在一个关于x 的写操作,且没有其它事务对x 进行操作,则称p 和 q 是冲突事务。若事务 p 的冲突操作在 q的冲突操作之前,则在冲突图中有从结点p 到q 的一条有向边。以活跃事务结点,以所有处于活跃状态的冲突事务为有向边,就构成了冲突图。通过检测在冲突图不存在环路,可以保证并发时数据的一致性,实现事务并发调度2。
  2.2.3 时间戳法并发控制机制
  在时间戳并发控制机制中,调度器需要在每个事务赋予一个唯一的数值(时间戳)。该数值必须在事务首次通知调度器时按升序发出。对于数据库中的每个元素,都与两个时间戳联系起来,这两个时间戳分别为读取数据元素x的事务中最大时间戳,即最近一次读取x的事务时间戳,记做 RTM(x),写数据元素x的事务中最大时间戳即最近一次写x的事务时间戳,记做WTM(x)。调度器负责维护当前的活动事务及其时间戳表。
  2.2.4 乐观并发控制
  乐观方法的基本思想是:对事务运行时可能发生的冲突操作不预处理,待事务结束时再进行检测。
  乐观方法与悲观方法(如2PL)的区别主要在于对数据库并发事务发生冲突概率的假设不同,乐观方法认为不同用户之间所需的数据资源发生冲突的可能性很小,所以允许事务执行后验证,悲观方法则相反。根据实际应用环境的不同,乐观方法和悲观法的并发调度性能有不同的表现。
  以上的并发控制机制各有利弊,对于不同的应用,使用的并发控制机制也不同。虽然冲突图检测并发控制机制有很多优点,但是,在确定环路存在的情况下,必须通过强制事务中终止的方式来保证冲突图中不存在环路,确保数据的一致性。时间戳法并发控制机制虽然没有延迟事务,但导致其重启的可能性远大于锁协议的回滚。重启在某中程度上是延迟事务的一种更严重的形式,消耗了更多的系统性能4。
  
  
  表1 载货车辆信息(autotable)
  
  3 载货车辆称重系统中并发控制机制的实现方法
  3.1 载货车辆称重管理系统模块以及存在的并发操作
  载货车辆称重管理系统中,包括四个模块:①安全检查模块②称重管理模块③仓库管理模块④监控中心模块
  在此系统的几个模块中,存在多用户对同一数据访问的情况:
  1)在安全检查模块①中,大型厂矿出入门不只一个,同时会有两个或多个用户更改同一车辆的出入厂信息。
  2)在模块④和模块②中,监控中心要查看统计相应的载货车辆称重的信息,同时称重处正在称重,此时对于称重处相应的事务要加上锁,不允许别的用户访问,等待此事务执行完毕才允许监控中心用户进行操作,这些控制是必需的。
  3.2此系统中并发控制的实现方法
  以便下面控制机制实现方法的介绍,引入载货车辆信息表的各个数据项如表1。
  对于本系统可以采用更新游标、显式加锁、更改事务隔离级别等并发控制。在使用时应注意事项有:①只有在数据一致性要求特别严格、并发度要求不高时采用可重复读与可串行读的隔离级别; ②在同一个事务当中,要适当根据需要来变更数据的锁定级别,但一般不使用TABLOCK这样粗粒度的封锁; ③在包含客户交互的操作中使用游标,并尽可能缩短交互时间。
  介于上述四种并发机制和对载货车辆称重管理系统的研究,使用锁机制和更新游标控制来实现的并发控制更适合于这个系统。使用更新游标的方法实现称重管理员对载货车辆的车辆编号和车辆净重等信息的浏览和修改,下面代码是C语言编写的3 ,
  EXEC SQL DECLAREautocursorCURSOR FOR autoNO, netweight /*定义车辆游标autocursor,
  SELECT FROMautotableFOR UPDATE;并将游标autocursor与查询的结果相关联*/
  EXEC SQL OPEN autocursor; ∥将车辆游标打开
  for(;; ) ∥使用for 循环来读取游标中的全部记录
  {EXEC SQL FETCH autocursor INTO: autoNO: netweight;∥推进游标,从游标中读记录,送相应的主变量
  If(code < >SUCCESS)break;∥如果记录取完,则退出循环
  ……∥将所有记录的内容显示
  EXEC SQL UPDATEautotable SET autoNO = :”要输入的值” ∥更新数据
  WHERE CURRET ofautocursor;
  }
  EXEC SQL CLOSE autocursor ∥关闭游标
  上面的方法的缺点是即使用户不对当前记录进行修改,也要对当前的记录加锁,这样就影响了事务并发度,此时可采用另一种方法:定义一个滚动游标来完成查询;获取游标的一个记录,显示给用户;用户浏览记录,直到要修改或者删除的记录;当用户选择修改一个记录时,为用户想要修改的记录定义一个更新游标;使用更新游标获取记录,并重新显示锁定的记录;更新这个记录。那么上面的代码可以更改为:
  EXEC SQL DECLARE autocursor SCROLL CURSOR for
  SELECT autoNO:auto-netweightFROM autotable;
  EXEC SQL OPEN autocursor
  for( ; ;)
  {EXEC SQL FETCH autocursor INTO: autoNO: netweight;
  …∥显示记录内容给用户
  EXEC SQL DECLARE autocursor update CURSOR FOR SELECT netweight
  FROM autotable WHERE autoNO = :”修改之后的值”; ∥定义更新游标
  EXEC SQL FETCH autocursor UPDATE INTO: netweight; ∥读取数值
  EXEC SQL UPDATE autotable SET auto-netweight = :”新的值” WHERE CURRENT ofautocursorUPDATE;
  系统中还需要用其它的控制机制,提高系统并发度,从而提高系统的性能,这一点还是很重要的,这有待于继续研究。
  4 结论
  本文主要采用了锁机制和游标控制方法实现数据的并发控制,但是实现并发控制机制的方法还有很多,例如有借助于表的修改,借助于新的开发工具等。这些方法将更好的提高本系统中的并发机制,同时成为进一步研究内容。
  
  参考文献:
  [1] 萨师煊,王珊.数据库系统概论[M](第3版).北京:高等教育出版社,2000.
  [2] 王能斌.数据库系统原理[M].北京:电子工业出版社,2001.
  [3] 董迎红.信息管理系统中多用户并发控制理论及应用[J].现代情报,2005.12(12).
  [4] 段玉春,孙玉强.数据库管理系统中并发事务的控制方法[J].信阳师范学院学报,2004.7(17).
其他文献
谈毛泽东思想与毛泽东同志的思想黄瑞华国内外部有一些人常常把毛泽东思想与毛泽东同志的思想混为一谈,这其实是很大的错误。毛泽东思想与毛泽东同志的思想确实存在着十分密切
‘明珠1号’属早中熟甜瓜品种,果实发育期35~40 d.植株生长势中等,综合抗性好,容易坐果,丰产性好,果实圆形、白色、光皮,单果质量1.5 kg左右,耐贮运.果肉白色,厚4 cm左右,腔小
舆论监督是新闻媒体的重要功能之一,作为一种快捷、最具影响力的大众传播手段,受到各级党政部门的关注与人民群众的欢迎。目前由于法律不健全,记者的知情权、监督权缺乏实际保障
本文引入一类新的随机集值相补问题,讨论这类问题的存在性以及由算法所产生的序列的收敛性,本文所得结果推广和发展了近期一些作者的主要工作。
贵州版《战国策》全译本译文错误指正康泰贵州人民出版社1994年出版的《战国策》文白对照,全译足本中有一些错误,现择其要者指正如下。一、错译1、原文:淳于髡一日而见七人于宣王…
摘要:基于网络技术的网络教研在全国范围內得到了广泛的应用。通过问卷调查发现在广州中小学老师中尽管常规教研活动占据主要地位。但绝大部分老师都已经参加过网络教研活动,而且很看好网络教研的前景,对网络教研抱有很大的参与热情。对于其中存在的问题,则可以通过增强教师人际关系、相应扩大教研范围、开展相应技术培训、开展形式多样的网络教研活动、着重知识管理等措施来解决。
采用发达国家已经大量应用的潮水式(Ebb & Flow)底面灌施营养液栽培系统,以盆栽杜鹃品种‘Mission Bell&#39;作为试材,筛选出适合杜鹃盆花无土栽培用基质配方.混有草炭的M1(
[摘要]作为古丝绸之路上的重镇,武威在其悠久的历史发展过程中,遗留有诸多灿烂辉煌的文化遗迹,令人叹为观止。本文从谢家园、墨家园、贾坛故居等武威古民居的保护现状入手,描绘并分析古代民居的范式、形制等状况。  [关键词]武威;古民居;谢家园;墨家园;贾坛故居  [中图分类号]K878.3 [文献标识码]A [文章编号]1005—3115(2012)16—0047—03  武威地处甘肃省
采用87个白菜品种,于春夏和秋冬两生长季节在镉(Cd)污染土壤中进行植株地上部Cd积累差异研究.结果表明,不同品种间镉含量存在极显著差异,且春夏季高于秋冬季.