一种数据库表单记录加锁方法和装置的制作方法

文档序号:6355443阅读:249来源:国知局
专利名称:一种数据库表单记录加锁方法和装置的制作方法
技术领域
本发明涉及数据库技术应用领域,特别是指一种数据库表单记录的加锁控制方法和装置。
背景技术
在数据库的使用过程中,往往存在多用户同时访问同一数据库数据的情况。多个客户端同时调用同一数据库的相同数据,而多用户同时对同一数据库的数据并发操作容易导致数据误读、数据不可重复读取,甚至数据丢失等现象。为了解决因数据共享而产生的冲突,确保数据的一致性和准确性,软件开发人员通常采用数据库现有的封锁指令锁死记录,对数据库并发操作进行控制。数据库封锁方式分共享锁、独占锁和更新锁三种,其中共享锁和独占锁用于表封锁,更新锁用于行封锁。共享锁保证查询数据的一致性,其原理是对数据库表中的所有数据进行封锁,共享该表的所有用户只能查询表中的数据,不能对表进行更新。独占锁保证数据的一致性,其原理是封锁表中所有数据,拥有该独占锁的用户,既可以查询该表,也可以更新该表,其他用户可以查询该表,但不能对该表施加任何封锁,也不能更新该表。更新锁是对一个表的一行或多行进行封锁,也称行级封锁。拥有行级封锁的用户,既可以查询也可以更新被封锁的数据行,其他用户只能查询但不能更新被封锁的数据行。其他用户如果要更新该数据行,也必须对该数据行施加更新锁。当多个用户对该数据行施加更新锁时,也不允许两个事务同时对一个表进行更新。当用户I在某行上进行更新操作时,用户2只有等待用户I提交事务后,才能更新自己所封锁的行。传统的封锁机制实现了一种并发控制,可以满足一般数据库应用对并发控制的要求,但还是存在一些缺陷表级封锁保证了数据的一致性,但却减弱了操作数据的并行性;行级封锁确保在用户取得被更新的行到该行进行更新这段时间内不被其它用户所修改,在提高数据操作的并发性的同时保证了数据的一致性,但如果要对一系列数据库表单行数据进行加锁时,程序设计非常繁琐,系统开销太大,软件维护也比较困难。

发明内容
本发明的目的是要提供一种简单、灵活的数据库表单记录加锁控制方法和装置,实现对“以某一字段为主KEY的涉及一系列数据库表单行数据”加锁,降低了技术开发的工作量,灵活添加锁定范围,而无须每次对数据表中的每行记录进行加锁操作,且保证了加锁后,在以主KEY为关键字的相关数据库表不能进行任何新增修改删除操作,不影响主KEY外的其他数据库表的操作,保证加锁操作目标准确。本发明一种数据库表单记录加锁控制方法和装置内容包括一种数据库表单记录加控制的方法,包括一种数据库表单记录加锁控制方法是对一个与主KEY关联的一组数据库表进行加锁控制,包括
在数据库表中设置主KEY,含相同主KEY的一组数据库表的集合根据指定记录中的锁定字段状态执行加锁和解锁指令;编辑任意一条数据库表记录时,首先判断该记录所对应的锁定状态字段的标识是否为加锁状态,若为是,则需要先解锁。若为否,则成功防问记录;成功访问记录时,主表记录的锁定状态字段标识为加锁状态,同时相关联的数据表集合也自动标识为加锁状态;正常退出数据库记录时,主表记录的锁定状态字段释放加锁标识,其余字段为空;非正常退出数据库记录时,主表记录的锁定状态字段仍标识为加锁状态,其余字段记录保持加锁状态时相应的信息。其中,所述的在数据库表中设置主KEY关联的一组字段包括含有该主KEY的主表添加锁定状态字段、用户ID字段和MAC地址字段。其中,所述的解锁,只有当以主KEY关联的数据库表单中的用户ID和MAC地址与客户端本次登陆的用户ID和MAC地址同时匹配时,该记录自动标识为非加锁状态,否则不能完成解锁程序。其中,所述的正常退出数据库是指没有链接正常退出通道而退出该记录。其中,所述的非正常退出数据库是指没有链接设计的退出通道退出该记录,包括直接点击IE本身的关闭按钮、直接链接退出登入页面、直接链接其它模块。本发明还公开了一种数据库表单行记录加锁控制的装置,该装置是对与一个关键字组合相关的多数据库表多行记录集合进行加锁控制的装置,包括申请访问数据库单元,发送操作数据库表单记录的申请给接收单元;接收申请单元,接收访问申请单元发送的编辑操作数据库表单记录的申请信息;判断单元,根据接收申请单元中接收到的申请访问的数据库表单的记录信息,判断是否允许访问该记录,若不允许访问,则向解锁单元发送解锁申请,若允许访问,则向存储单元发送访问状态; 存储单元,保存被访问的数据库表单记录信息;解锁单元,接收访问判断单元发送的解锁申请信息,将申请人所属的用户ID字段、MAC地址字段信息于所访问的数据库表单记录的信息进行匹配,并将解锁后的数据库表单记录的信息发送到存储单元;与现有技术相比,本发明具有以下优点I、灵活闻效的记录加锁功能。通过在主表上对指定关键字组合建立锁定标识和用户ID、MAC字段标识,实现与主表上的关键字组合相同的一系列附表的多行记录的某种特定操作的加锁,使加锁过程更加灵活高效;2、保证记录信息的时效性、避免了数据丢失、实现数据重复可读性。保证了同时只能有一个用户ID、使用一个客户端更新数据库记录信息,保证记录信息的实时同步更新,防止误读数据,实现根锯锁死目标严格锁死的过程;3、开辟灵活高效的解锁通道,开辟了手工的解锁过程,也同样保证同时只能由一 个用户ID、使用一个客户端解锁,实现记录信息的实时同步更新,防止误读数据,实现根据解锁目标严格解锁的过程。


图I是本发明数 据库表单记录加锁控制方法的流程示意图;图2是访问数据库记录时内部的匹配过程图;图3是断开数据库访问记录时数据的记录过程图;图4是本发明数据库表单记录加锁控制装置的结构框图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下面结合附图和具体实施方式
对本发明作进一步详细的说明。图I示出了本发明数据库表单记录加锁控制的方法的流程,包括以下步骤步骤S101,客户端申请访问数据库某条记录,将用户ID字段信息、客户端MAC地址字段信息发送至接收申请单元202 ;步骤S102,数据库端判断该数据记录的锁定字段状态的标志是否为加锁状态,若为是,则执行步骤S104,若为否,则成功访问该记录信息,锁定状态字段、用户ID字段信息、客户端MAC地址信息自动标识为加锁状态,并记录该用户ID和MAC地址;步骤S103,客户端断开数据库记录连接时,程序/数据库端判断其断开执行过程从而识别并保存该记录的锁定状态字段信息、用户ID字段信息和MAC地址字段信息;步骤S104,是手动解除加锁状态的触发程序,接受客户端发送的用户ID字段信息和客户端MAC地址字段信息,并与数据库该条记录相应字段信息进行匹配,若匹配成功,则完成手动解锁,该条记录标识为非加锁状态;若匹配不成功则保持加锁状态。优选地,在执行步骤S104时,需要匹配用户ID字段信息、MAC字段信息,匹配结果为如下定义匹配成功是指申请方的用户ID字段信息和MAC字段信息同时与已有记录完全一致;匹配不成功是指申请方的用户ID字段信息、MAC字段信息不同时或部不与已有记录完全一致。包括以下三种情形(I)申请方的用户ID字段信息和MAC字段信息中只有申请方的用户ID字段信息与已有记录一致,申请方的MAC字段信息与已有记录不一致;(2)申请方的用户ID字段信息和MAC字段信息只有申请方的MAC字段信息与已有记录一致,申请方的用户ID字段信息与已有记录不一致;(3)申请方的用户ID字段信息和MAC字段信息都与已有记录不一致。图2示出了步骤S102防问数据库记录时内部的匹配过程,包括以下步骤步骤S1021,数据库端接收申请访问的用户的ID字段信息、MAC地址字段信息,等待匹配;步骤S1022,调出该数据库记录的锁定状态字段信息,判断该数据库记录的锁定状态,若锁定状态字段标识为加锁状态,则执行步骤S1024 ;若为非加锁状态,则执行步骤S1023 ;步骤S1023,成功访问该数据库记录,自动将该数据库记录标识为加锁状态,并记录步骤S1021接收到的用户ID字段信息利MAC地址字段信息;
步骤S1024,发送指令执行步骤S104,同时接收步骤S104反馈的解锁信息,并将解锁信息返回给步骤S1022优选地,所述步骤S1024,发送指令执行步骤S104,程序/数据库端将发送来的用户ID字段信息、MAC字段信息与数据库中该条记录保存的用户ID字段信息、MAC字段信息进行一致性匹配,当两个字段信息同时匹配成功时,将匹配信息发送回S1024 ;当两个字段信息没有同时匹配成功时,则仍旧止步于S1023步骤。图3示出了步骤S103断开数据库访问记录时,数据的记录过程图,包括以下步骤步骤S1031,断开数据库连接时,程序/数据库端字段判断断开链接申请是否有异常。若判断结果为否,则执行步骤S1032 ;若判断结果为是,则执行步骤S1033 ;步骤S1032,断开申请为正常断开,数据库该条记录的锁定状态字段、用户ID字段、MAC地址字段值均为NULL,并将该记录标记为正常准许防问记录。步骤S1033,断开申请为异常断开,数据库该条记录的锁定状态字段、用户ID字段、MAC地址字段值分别记录为locked、用户ID、MAC地址,并将该记录标识为加锁状态。图4示出了本发明数据库表单记录加锁控制的装置结构框图,具体包括访问数据库申请单元201,发送申请访问数据库指令及申请访问信息至接收申请单元202,并接收来自判断单元203的反馈的数据库表单记录锁定状态信息,若为加锁状态,则发送解锁指令信息至解锁单元205 ;接收申请单元202,接收来自访问数据库申请单元201的申请访问数据库表单记录指令及信息,临时存储该指令信息,等待判断;判断单元203,判断该数据库表单记录的锁定状态。存储单元204,存储数据库表单记录信息。解锁单元205,接收来自访问数据库申请单元201发送的解锁指令信息,并与存储单元204的信息进行解锁匹配,若匹配成功,则解锁成功,并将结果返回给防问数据库申请单元201,否则不能执行解锁指令。优选地,所述访问数据库申请单元201中,申请访问数据库表单记录指令信息包括用户ID字段信息、MAC地址字段信息以及指定要访问的数据库表单记录信息。优选地,所述访问数据库申请单元201中,解锁指令信息包括用户ID字段信息和MAC地址字段信息。优选地,所述判断单元203中,若判断结果为加锁状态,则将加锁状态信息反馈给访问数据库申请单元201,并由访问数据库申请单元201发送解锁指令至解锁单元205 ;若判断结果为非加锁状态,则将非加锁状态信息反馈给接收申请单元202。接收申请单元202释放其临时存储信息,并对该数据库表单记录同步加载加锁状态标识,临时记录用户ID信息和客户端MAC地址信息。优选地,所述存储单元204中,若该数据库表单记录为异常存储,则数据库表单记录的锁定状态字段、用户ID字段、MAC地址字段值分别标记为Locked、用户ID、MAC地址,并将存储的记录信息发送给解锁单元205,等待处理;若该数据库表单记录为正常存储,则数据库表单记录的锁定状态字段、用户ID字段、MAC地址字段值均为NULL。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,凡在本发明的精神和原则之内所作的任何修改、等同 换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据库表单记录加锁控制方法,其特征在于,所述方法包括 在数据库表中设置主KEY,与主KEY数据关联的一整套数据库表的集合根据主表中指定的锁定字段状态执行加锁和解锁指令; 编辑任意一条数据库表记录时,首先判断该记录所对应的锁定状态字段的标识是否为加锁状态,若为是,则需要先解锁。若为否,则成功访问记录; 成功访问记录时,主表记录的锁定状态字段标识为加锁状态,同时相关联的数据表集合也自动标识为加锁状态; 正常退出数据库记录时,主表记录的锁定状态字段释放加锁标识,其余字段为空;非正常退出数据库记录时,主表记录的锁定状态字段仍标识为加锁状态,其余字段记录保持加锁状态时相应的信息。
2.如权利要求I所述的数据库表单记录加锁控制方法,其特征在于,所述的在数据库表中设置主KEY关联的一组字段包括含有该主KEY的主表添加锁定状态字段、用户ID字段和MAC地址字段。
3.如权利要求I所述的数据库表单记录加锁控制方法,其特征在于,所述的解锁,只有当以主key关联的数据库表单中的用户ID和MAC地址与客户端本次登陆的用户ID和MAC地址同时匹配时,该记录自动标识为非加锁状态,否则不能完成解锁程序。
4.如权利要求I所述的数据库表单记录加锁控制方法,其特征在于,所述的正常退出数据库记录是指链接正常退出通道退出该记录。
5.如权利要求I所述的数据库表单记录加锁控制方法,其特征在于,所述的非正常退出数据库是指没有链接正常退出通道而退出该记录。
6.如权利要求5所述的数据库表单记录加锁控制方法,其特征在干,所述的没有从链接设计的退出通道退出该记录,包括直接点击IE本身的关闭按钮、直接链接退出登入页面、直接链接其它模块。
7.一种数据库表单记录加锁控制装置,其特征在于,包括 申请访问数据库单元,发送操作数据库表单记录的申请给接收单元; 接收申请単元,接收访问申请单元发送的编辑操作数据库表单记录的申请信息; 判断単元,根据接收申请单元中接收到的申请访问的数据库表单的记录信息,判断是否允许访问该记录,若不允许防问,则向解锁单元发送解锁申请,若允许访问,则向存储单元发送访问状态; 存储单元,保存被访问的数据库表单记录信息; 解锁单元,接收访问判断单元发送的解锁申请信息,将申请人所属的用户ID字段、MAC地址字段信息于所访问的数据库表单记录的信息进行匹配,并将解锁后的数据库表单记录的信息发送到存储单元;
8.如权利要求7所述的数据库表单记录加锁控制装置,其特征在干,所述的数据库表单的记录信息包括锁定状态字段、ID字段、客户端MAC地址字段。
全文摘要
本发明公开了一种数据库表单记录加锁控制方法和装置。该方法包括在数据库表中设置主KEY,含相同主KEY的一组数据库表的集合根据指定记录中的锁定字段状态执行加锁和解锁指令;编辑数据库表中任意一条相关记录时,判断该记录所对应的锁定状态字段的标识是否为加锁状态,若为是,则需要先解锁。若为否,则成功访问记录;成功访问记录时,主表记录的锁定状态字段标识为加锁状态,同时相关联的数据表集合也自动标识为加锁状态;正常退出数据库记录时,主表记录的锁定状态字段释放加锁标识,其余字段为空;非正常退出数据库记录时,主表记录的锁定状态字段仍标识为加锁状态,其余字段记录保持加锁状态时相应的信息。
文档编号G06F17/30GK102651006SQ201110051430
公开日2012年8月29日 申请日期2011年2月25日 优先权日2011年2月25日
发明者王飞, 陆曙芸 申请人:上海网环信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1