CN104765745A - 对数据库中的加载数据进行逻辑验证的方法和系统 - Google Patents
对数据库中的加载数据进行逻辑验证的方法和系统 Download PDFInfo
- Publication number
- CN104765745A CN104765745A CN201410005776.2A CN201410005776A CN104765745A CN 104765745 A CN104765745 A CN 104765745A CN 201410005776 A CN201410005776 A CN 201410005776A CN 104765745 A CN104765745 A CN 104765745A
- Authority
- CN
- China
- Prior art keywords
- data
- rule
- database
- trigger
- mark
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及对数据库中的加载数据进行逻辑验证的方法和系统。提供了一种用于对数据库中的加载数据进行逻辑验证的系统,包括:规则引擎,被配置为响应于用于进行逻辑验证的新规则的添加和更新中的至少之一,找出变动规则,该变动规则包括新规则相对于现有规则的变动部分;对象容器,包含已利用现有规则进行了验证的一个或多个对象实例,其中对象实例仅包含从数据库中提取的与现有规则相关的数据;以及验证引擎,被配置为在确定所述变动规则涉及所述对象实例包含的数据以外的额外数据的情况下从数据库提取所述额外数据并加入到相应的对象实例中,并且利用所述新规则的至少一部分对所述对象容器中的相关对象实例进行逻辑验证。
Description
技术领域
本发明涉及计算机领域,具体地说,本发明涉及一种用于对数据库中的加载数据进行逻辑验证的方法和系统。
背景技术
在应用软件的生命周期中,通常会出现如下的在进行逻辑验证之前预先得到数据对象集合的情况:例如,应用逻辑级别的输入/更新、加载、批量加载、来自客户的数据迁移、来自测试者的出于大数据量目的的数据加载。当前,这种匹配是通过人工方式或者使用内部工具来完成的。
在应用中,每个访问者对业务对象有着不同的验证逻辑。例如,在一个购物网站上,第一开发者可能要求从买家输入的出价需要高于商品的底价,而第二开发者可能要求卖家输入的商品的型号必须是已知型号。图2是示出了应用中的业务对象与数据库中的数据对象之间的映射关系的示意图。一个业务对象可能涉及数据库中的多个表中的多个列。从图2中可以看出,业务对象被映射到数据库中的数据对象的表Object_1_Table,该表中的列分别取自数据库中的实际数据表Element_1_Table、Element_2_Table、Element_3_Table等,并且来自不同开发者的逻辑验证可能涉及Object_1_Table中的不同列。例如,第1开发者的逻辑验证涉及到Element_1_Table的Attr_1列和Element_2_Table的Attr_2列,第2开发者的逻辑验证涉及到Element_1_Table的Attr_1列、Element_2_Table的Attr_2列和Element_3_Table的Attr_3列,第3开发者的逻辑验证涉及到Element_1_Table的Attr_1列、Element_3_Table的Attr_3列和Element_3_Table的Attr_4列。
在现有技术中,当验证规则改变(诸如有验证规则的添加或更新)时,需要利用新的验证规则对数据库中的数据进行重新验证。这种重新验证针对的是整个数据对象表。此外,当发生批量加载、数据库迁移或者SQL插入/更新时,需要对新插入或者更新的数据进行逻辑验证。
批量加载数据通常要求进行业务逻辑验证。在进行逻辑验证时,需要使应用离线,从而在后台对批量加载的数据进行逻辑验证。这样,如何在新的数据或新的规则被加入后能够快速地完成逻辑验证使得应用能够快速地回到在线状态就成为本技术领域的一个挑战。
发明内容
基于以上的描述,希望提供一种用于对数据库中的加载数据进行逻辑验证的系统和方法,该系统和方法通过仅仅利用规则或数据的变动部分来进行验证,能够减少验证的成本从而实现更高的性能。
根据本发明的一个方面,提供了一种用于对数据库中的加载数据进行逻辑验证的系统,包括:规则引擎,被配置为响应于用于进行逻辑验证的新规则的添加和更新中的至少之一,找出变动规则,该变动规则包括新规则相对于现有规则的变动部分;对象容器,包含已利用现有规则进行了验证的一个或多个对象实例,其中对象实例仅包含从数据库中提取的与现有规则相关的数据;以及验证引擎,被配置为在确定所述变动规则涉及所述对象实例包含的数据以外的额外数据的情况下从数据库提取所述额外数据并加入到相应的对象实例中,并且利用所述新规则的至少一部分对所述对象容器中的相关对象实例进行逻辑验证。
根据本发明的另一个方面,提供了一种用于对数据库中的加载数据进行逻辑验证的方法,包括:响应于用于进行逻辑验证的新规则的添加和更新中的至少之一,找出变动规则,该变动规则包括新规则相对于现有规则的变动部分;在确定所述变动规则涉及对象容器中的对象实例包含的数据以外的额外数据的情况下,其中所述对象容器包含已利用现有规则进行了验证的一个或多个对象实例并且对象实例仅包含从数据库中提取的与现有规则相关的数据,从数据库提取所述额外数据并加入到相应的对象实例中;以及利用所述新规则的至少一部分对所述对象容器中的相关对象实例进行逻辑验证。
根据本发明的另一个方面,提供了一种用于对数据库中的加载数据进行逻辑验证的系统,包括:对象容器,包含已利用现有验证规则进行了验证的一个或多个对象实例,其中对象实例仅包含从数据库中提取的与现有验证规则相关的数据;验证引擎,被配置为对于与现有验证规则相关的每个列,在数据库中为该列添加触发器,其中,所述触发器响应于在数据库中该触发器被添加到的列中的数据的添加和更新中的至少之一而发出触发信号;以及规则引擎,被配置为响应于所述触发器的触发信号,从现有验证规则中找出由与添加或更新的数据相关的规则组成的规则子集;其中,所述验证引擎还被配置为,响应于所述触发器的触发信号,把在数据库中添加或更新的所述数据提取到所述对象容器中形成具有第二标记的对象实例,并且利用所述规则子集仅对所述对象容器中具有第二标记的对象实例进行逻辑验证,其中所述第二标记不同于所述对象容器中的其它对象实例所具有的第一标记。
根据本发明的另一个方面,提供了一种用于对数据库中的加载数据进行逻辑验证的方法,包括:对于与现有验证规则相关的每个列,在数据库中为该列添加触发器;所述触发器响应于在数据库中该触发器被添加到的列中的数据的添加和更新中的至少之一而发出触发信号;以及响应于所述触发器的触发信号,从现有验证规则中找出由与添加或更新的数据相关的规则组成的规则子集;把在数据库中添加或更新的所述数据提取到对象容器中形成具有第二标记的对象实例,并且利用所述规则子集仅对所述对象容器中具有第二标记的对象实例进行逻辑验证,其中所述第二标记不同于所述对象容器中的其它对象实例所具有的第一标记,其中,所述对象容器包含已利用现有验证规则进行了验证的一个或多个对象实例,其中对象实例仅包含从数据库中提取的与现有验证规则相关的数据。
采用根据本发明的用于对数据库中的加载数据进行逻辑验证的系统和方法,通过在数据被改变或加载了新数据时或者在输入了新规则时,识别必要的验证规则(下文所述的变动规则)并且仅仅针对该变动规则所影响的数据部分来验证所述变动规则,从而使应用能够快速完成验证并回到在线状态,提高了系统的性能。
另外,当批量数据被加载到系统中时,验证引擎仅仅对与已有验证规则有关的数据进行逻辑验证,而不是对所有加载的数据进行逻辑验证,因为有些加载数据可能与任何验证规则都无关。这样就降低了进行逻辑验证的成本。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2是示出了应用中的业务对象与数据库中的数据对象之间的映射关系的示意图。
图3是示出了根据本发明的一个实施例的用于对数据库中的加载数据进行逻辑验证的系统300的处理的示意图。
图4示意性地示出了对象容器中的数据对象的概念。
图5是示出了根据本发明的另一个实施例的用于对数据库中的加载数据进行逻辑验证的系统300的处理的示意图。
图6是示出了根据本发明实施例的用于对数据库中的加载数据进行逻辑验证的方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参看图3,图3是示出了根据本发明的一个实施例的用于对数据库中的加载数据进行逻辑验证的系统300的处理的示意图。具体地,图3中的示意图示出了系统300响应于用于进行逻辑验证的规则的添加或更新而进行的处理。
根据本发明的系统300包括:规则引擎301、验证引擎302以及对象容器303。在这里首先介绍对象容器303。在一个实施例中,对象容器303可以位于内存中,包含已作为验证对象利用现有规则进行了验证的一个或多个对象实例,其中对象实例仅包含从数据库中提取的与现有规则相关的数据。
图4示意性地示出了对象容器中的数据对象的概念。图4的上部示出了与规则1对应的数据对象1,这表示为了验证规则1需要验证表1的列1_3、表2的列2_1、表3的列3_2和列3_3。图4的中部示出了与规则2对应的数据对象1,这表示为了验证规则2需要验证表1的列1_1和列1_3、表2的列2_2。当分别需要验证规则1和规则2时,通过把与规则1对应的数据对象和与规则2对应的数据对象叠加,得到图4的下部示出的数据对象1,其中列1_3是重合的。
在内存中的对象容器中存储的是数据对象的实例,即,基于数据对象的数据结构的实际数据记录。因为在内存中并没有存储逻辑验证所需的所有表的数据,而仅仅存储逻辑验证涉及到的列的数据,所以可以实现较小的内存占用。此外,因为数据对象实例已在内存中,所以可以不必从数据库中提取数据或者可以提取较少的差异数据就可以完成逻辑验证。
以下,通过一个例子来说明数据对象实例。假定存在下面的订单表和用户表以及规则A。
订单表
OrderID | UserID | ProductID | Status | SubTotal | ... |
900001 | 500001 | 800001 | Completed | 219 | ... |
900002 | 500003 | 800002 | Cancelled | 319 | ... |
用户表
UserID | UserType | |
500001 | Registered | ... |
500002 | Guest | ... |
500003 | Guest | |
... | ... | ... |
规则A:如果订单总价大于300元,那么该订单的相关用户必须是注册用户。
该规则A的验证涉及到用户表的UserType列,以及订单表和用户表的主键列。因此,在这个例子中,数据对象由OrderID、UserID和UserType这三个列组成,并且满足SubTotal>300的数据仅有:
表1
OrderID | UserID | UserType |
900002 | 500003 | Guest |
该数据被实例化为一个数据对象实例,并被放入内存中的对象容器中以由验证引擎进行逻辑验证。该对象实例例如可以为如下形式:
下面返回参照图3,继续对系统300进行说明。根据本发明的规则引擎301被配置为响应于用于进行逻辑验证的新规则的添加和更新中的至少之一,找出变动规则,该变动规则包括新规则相对于现有规则的变动部分(S1)。
在系统的运行中,存在应用已经使用过的一些验证规则,它们被保存在规则池中。规则池例如可以具有如下面的表所示的结构:
表2
规则实例ID | 表的列名称 | 数据过滤条件 | 验证约束 |
1 | User.UserType | Order.SubTotal>300 | UserType=’Registered’ |
2 | Order.Status | Order.SubTotal>50 | Order.Freight=’Free’ |
… | … | … | … |
表2中仅仅给出了规则池的一个例子,本领域技术人员完全可以想到用于它的其它数据结构,例如xml文档。表2中的规则对应于上面所述的现有规则。
一旦向系统300中加入了新的规则或者现有规则被更新(以下统称为新规则),规则引擎301将分析该新规则,从而找出新规则相对于现有规则的变动部分(即,变动规则)。
在根据本发明的一个实施例中,一个规则至少包含以下三个属性:相关表的列名称、数据过滤条件以及验证约束。这对应于表2的第2至4列,并且表2的第5列是可选的。列名称属性是该规则实例的验证所涉及到的列的名称。数据过滤条件用于从数据库中过滤出满足条件的数据,例如可以在if子句中,诸如“if TABLE1.TYPE=4”。验证约束用于执行实际逻辑验证,诸如“range from 1-20”、“LessThan col.B”、“Equal 0”等等。当满足验证约束时,代表逻辑验证成功;当不满足验证约束时,则代表逻辑验证失败。
在根据本发明的一个实施例中,当出现一个新规则时,规则引擎301被配置为通过在规则之间比较所述三个属性来找出所述变动规则。具体地,比较这三个属性以识别哪个或哪些部分不同,并将分析结果输出到验证引擎302。
验证引擎302被配置为在确定所述变动规则涉及所述对象实例包含的数据以外的额外数据的情况下从数据库提取所述额外数据并加入到相应的对象实例中(S2),并且利用所述新规则的至少一部分对所述对象容器中的相关对象实例进行逻辑验证(S3)。
在根据本发明的一个实施例中,如果变动规则仅仅涉及验证约束的不同(这意味着验证仍然针对的是现有的数据对象实例,即,对象容器中的当前内容),则仅附加该验证约束,针对对象容器中的所有对象实例,仅利用该验证约束进行验证。也就是说,所述验证引擎被配置为在所述变动规则仅涉及不同的验证约束的情况下确定所述变动规则不涉及所述对象实例包含的数据以外的额外数据。即,不必从数据库提取额外的数据。这种情况的一个例子是:列名称和数据过滤条件不变,原有验证约束是A<B<C,而新的验证约束是A=0。
另一方面,如果变动规则涉及到列名称和/或数据过滤条件,则验证引擎302确定所述变动规则涉及所述对象实例包含的数据以外的额外数据,此时,需要从数据库提取所述额外数据并加入到相应的对象实例中。
具体地说,如果变动规则仅仅涉及数据过滤条件(这意味着该规则仍然针对现有的数据对象,只是可能需要从数据库提取额外的数据对象实例),则根据该新的数据过滤条件从数据库提取数据从而形成新的数据实例。例如,当过滤条件从“if TABLE1.TYPE=4”变为“ifTABLE1.TYPE=4or TABLE2.TYPE=4”,则在数据库中可能有新的要验证的数据需要被提取。
如果变动规则涉及列名称,则需要参照图4的方式形成新的数据对象,并从数据库中提取该数据对象的实例。这种情况的一个例子是:原有验证约束是A<B<C,而新的验证约束是C<D。在这里,需要把列D加入到数据对象,并且从数据库中的符合要求(满足数据过滤条件)的记录中仅仅取回D列的值,并把它加入到内存中的对象容器中的对应对象实例中。
从以上可见,图3中的步骤S2不一定会被执行。当有新的验证规则被加入到系统中时,规则引擎能够比较它与现有规则,识别验证规则的变动部分,并考虑验证该变动部分是否需要从数据库向对象容器加载额外数据。如果不需要,则不提取数据而对现有数据对象实例进行直接验证,这节省了数据库查询时间。即使需要提取额外数据来进行验证,也只需要提取差异的值。例如,新规则要对列Table1.A、Table1.B和Table2.C的值进行验证,但验证引擎发现Table1.A和Table1.B已经位于对象容器中(已利用现有规则验证过),那么仅需从数据库提取Table2.C的值,这也节省了数据库查询成本。
在使对象容器中的数据对象实例与新验证规则相适应之后,即,在对象容器中的验证对象准备就绪之后,验证引擎302利用所述变动规则对所述对象容器中的相关对象实例进行逻辑验证。例如,在新验证约束是C<D的例子中,仅验证对于相关对象实例是否有C<D。这里,相关对象实例指的是与新验证规则相关的对象实例。例如,促销活动验证规则和员工出勤验证规则可能同时存在,它们所作用于的相关对象实例可能同时存在于对象容器中,但是并无关联。例如,当促销活动验证规则被新加入系统时,利用它仅对对象容器中的所有促销活动对象实例进行逻辑验证。
在根据本发明的一个实施例中,可以为对象容器中的与新验证规则对应的每个对象实例(即,相关对象实例)添加一个标记用来表示是否需要验证,例如“validated=false”,然后仅对具有该标记的对象实例进行验证,并且在验证结束后将该标记修改为“validated=true”。
下面利用一个简单的例子来具体说明图3中的系统300的处理。
例如,在一个购物网站的促销活动中,在已经存在的活动元素中增加一个验证条件,这是因为元素的排列顺序影响促销活动的正常工作。例如,“积分等级”这个元素在活动中的顺序就应该排在“用户组”后面,即,100003.Sequence>100001.Sequence,否则促销活动条件就会出错。例如,数据库中已经存在以下数据:
促销活动表(Activity)
ActivityID | ActivityIDType | Sequence | |
8000001 | ProductRecommendation | 1 |
促销活动元素表(Component)
ComponentID | ActivityID | ComponentType | ComponentValue | Sequence | ComponentNVP |
100001 | 8000001 | User | 用户组 | 100 | 500001 |
100002 | 8000001 | Product | 商品目录 | 200 | 700001 |
100003 | 8000001 | Promotion | 积分等级 | 300 | 5 |
规则池中的现有规则限制了每个活动(Activity)对应的促销活动元素(Component)的类型ComponentType必须为User、Product或Promotion,并且每个元素的Sequence值必须大于0。也就是说,Activity.ActivityID,Component.ComponentID,Component.ComponentType,Component.Sequence这些列都已经在规则池中的现有规则所涉及的“列名称”的范围内。现在,要为系统增加一个新的验证规则N,不涉及新的列。
规则引擎301对比规则N涉及的列名称,发现已被现有规则涉及的列名称所覆盖。于是,验证引擎302不访问数据库。将对象容器303里所有的ProductRecommendationActivity实例(相关对象实例)设置为validated=false。对象容器303中的ProductRecommendationActivity实例例如可以是如下的形式:
然后,验证引擎302在对象容器303中直接用这个新的规则N验证所有的ProductRecommendationActivity实例。
另一方面,在该促销活动的例子中,如果新添加的规则M要求所有ActivityID=8000001的活动的Sequence都大于等于1,则需要查询数据库找到所有ActivityID=8000001的记录,在对象容器303中把对应的对象实例加上一个属性ActivitySequence并把这些对象实例标记为validated=false。然后,验证引擎302利用这个新的规则M来验证这些validated=false的数据。
在根据本发明的一个实施例中,规则引擎301被配置为把添加或更新的规则加入到规则池中从而成为现有规则的一部分(例如,如表2所示)。
在根据本发明的一个实施例中,验证引擎302还被配置为在所述变动规则涉及新的列名称的情况下,在数据库中为该列添加触发器。这里,新的列名称是指现有规则未曾涉及过的列的名称。
规则池的管理以及触发器的添加对于应对规则变动而言并无用处并且是可选的,实际上,进行规则池的管理以及触发器的添加是为了响应于数据的变动而进行自动逻辑验证。
图5是示出了根据本发明的另一个实施例的用于对数据库中的加载数据进行逻辑验证的系统300的处理的示意图。具体地,图5中的示意图示出了系统300响应于数据库中的具有触发器的列中的数据的添加或更新而进行的处理。
在图3所示的处理中,每当有新规则加入时,就在该规则所涉及的数据库中的列上添加触发器。所述触发器响应于在数据库中该触发器被添加到的列中的数据的添加或更新而发出触发信号。
在图5中,响应于所述触发器的触发信号,规则引擎301从规则池中找出由与添加或更新的数据(以下称为新加载数据)相关的规则组成的规则子集(S11)。也就是说,规则引擎301在规则池中检查与该新加载数据相关的所有规则,以形成规则子集。所谓规则子集是相对于规则池这个全集而言的子集。具体地,规则引擎301被配置为基于被触发的触发器所在的列的名称与规则池中的各规则的列名称属性之间的比较,从所述规则池中找出所述规则子集。例如,当新加载数据是上述订单表中的一条订单记录时,添加在列Order.Status上的触发器被触发,规则引擎在例如表2所示的规则池中查找第2列中的列名称包含Order.Status的规则实例,从而找到规则实例2。
此外,响应于所述触发器的触发信号,验证引擎302把在数据库中添加或更新的所述数据(新加载数据)提取到对象容器303中形成具有第二标记的对象实例(S12)。处理S12与规则引擎301的处理S11可以是并行或者串行地执行。
然后,验证引擎302利用所述规则子集仅对所述对象容器中具有第二标记的对象实例进行逻辑验证,其中所述第二标记不同于所述对象容器中的其它对象实例所具有的第一标记。这里,第二标记例如为“validated=false”,第一标记例如为“validated=true”。
在根据本发明的一个实施例中,验证引擎302被配置为在对所述对象容器中具有第二标记的对象实例进行逻辑验证之后,把这些对象实例的第二标记修改为第一标记。通过这样做,在有新数据被加载到系统中时,不会对已验证过的数据进行重复验证。
采用上述技术方案,当数据被加载到系统中时,验证引擎仅仅对带有“validated=false”标记的数据进行验证,而不是对所有加载的数据进行逻辑验证,因为有些加载数据可能与任何验证规则都无关。这样就降低了进行逻辑验证的成本。
在另一个实施例中,可以不考虑上述变动规则,而是对现有规则所涉及的所有列添加触发器。在该实施例中,一种用于对数据库中的加载数据进行逻辑验证的系统包括:对象容器、验证引擎和规则引擎。该对象容器包含已利用现有验证规则进行了验证的一个或多个对象实例,其中对象实例仅包含从数据库中提取的与现有验证规则相关的数据。该验证引擎被配置为对于与现有验证规则相关的每个列,在数据库中为该列添加触发器,其中,所述触发器响应于在数据库中该触发器被添加到的列中的数据的添加和更新中的至少之一而发出触发信号。该规则引擎被配置为响应于所述触发器的触发信号,从现有验证规则中找出由与添加或更新的数据相关的规则组成的规则子集。其中,所述验证引擎还被配置为,响应于所述触发器的触发信号,把在数据库中添加或更新的所述数据提取到所述对象容器中形成具有第二标记的对象实例,并且利用所述规则子集仅对所述对象容器中具有第二标记的对象实例进行逻辑验证,其中所述第二标记不同于所述对象容器中的其它对象实例所具有的第一标记。这样,即使不与图3所示的处理相结合地执行处理,对于新添加或更新的数据,能够仅仅利用与其相关的规则进行验证,从而节约了验证成本,提高了系统的性能。
下面利用一个简单的例子来具体说明图5中的系统300的处理。
假定在其它的数据库中的用户的一些历史订单,需要导入到新数据库的时候,就需要使用已经存在的验证规则来检查新导入的订单是否有效。比如订单中的注册用户、商品数据是否一致,而不需要关心其它的诸如促销优惠等的信息。
假定新增的数据如前面的订单表中所示。这两条新加载数据触发了现有规则添加在列Order.UserID上的触发器,把Order.UserID作为相关列名称发送给规则引擎301。
规则引擎301用列名称Order.UserID在规则池中进行比较,找到了列名称属性中含有Order.UserID的规则实例,诸如具有如下目的的规则实例X:对于订单总价大于300元的订单,需要判断与该订单相关的用户是否为注册用户,如果为非注册用户,则此订单数据不合法。
于是,这个规则实例成为本次逻辑验证所用的规则。根据这条规则实例的数据过滤条件(Order.SubTotal>300),对新加载数据进行过滤,找到其中只有一个订单记录的总额在300元以上(即,上面的订单表中的OrderID=90002的订单记录)。于是,这个数据记录被过滤出来,作为准备要放入对象容器中的数据。验证引擎根据这个规则实例里的preElement,在数据库中查找这个订单90002对应的用户,并获得该用户的UserType。这样,提取出的数据对象具有表1所示的结构和内容。
提取的数据可以被实例化为一个数据对象实例,并被放入内存中的对象容器中并把验证标记设为validated=false。该对象实例例如可以为如下形式:
验证引擎使用这次验证要用的规则实例X,对对象容器中所有validated=false的对象实例进行验证。得到如下结果:OrderID=900002的订单所对应的UserType=Guest,验证结果为内容不合法。然后,返回该结果。此外,在验证之后,把该对象实例的标记“validated=false”修改为“validated=true”。
在这里,仅仅对新加载数据的对象实例(instance1)进行了验证,对于以前验证过的对象实例(instance2、instance3等)不进行验证,从而降低了逻辑验证的成本。
图6是示出了根据本发明实施例的用于对数据库中的加载数据进行逻辑验证的方法的流程图。图6中的方法包括步骤S61-S64。
在步骤S61中,响应于用于进行逻辑验证的新规则的添加和更新中的至少之一,找出变动规则,该变动规则包括新规则相对于现有规则的变动部分。在确定所述变动规则涉及对象容器中的对象实例包含的数据以外的额外数据的情况下(步骤S62中判断结果为是),从数据库提取所述额外数据并加入到相应的对象实例中(S63)。在步骤S64中,利用所述新规则的至少一部分对所述对象容器中的相关对象实例进行逻辑验证。这里,所述对象容器包含已作为验证对象利用现有规则进行了验证的一个或多个对象实例,其中对象实例仅包含从数据库中提取的与现有规则相关的数据。
根据本发明的一个实施例,该方法还包括把添加或更新的规则加入到规则池中从而成为现有规则的一部分。根据本发明的一个实施例,所述规则至少包含以下三个属性:相关表的列名称、数据过滤条件以及验证约束。根据本发明的一个实施例,在所述变动规则仅涉及不同的验证约束的情况下,确定所述变动规则不涉及所述对象实例包含的数据以外的额外数据(步骤S62中的判断为否)。根据本发明的一个实施例,在所述变动规则涉及新的列名称的情况下,在数据库中为该列添加触发器。根据本发明的一个实施例,找出添加或更新的规则相对于现有规则的变动部分包括:通过在规则之间比较所述三个属性来找出添加或更新的规则相对于现有规则的变动部分。
根据本发明的一个实施例,所述触发器响应于在数据库中该触发器被添加到的列中的数据的添加或更新而发出触发信号。响应于所述触发器的触发信号,从所述规则池中找出由与添加或更新的数据相关的规则组成的规则子集;并且响应于所述触发器的触发信号,把在数据库中添加或更新的所述数据提取到所述对象容器中以形成具有第二标记的对象实例,并且利用所述规则子集仅对所述对象容器中具有第二标记的对象实例进行逻辑验证,其中所述第二标记不同于所述对象容器中的其它对象实例所具有的第一标记。
根据本发明的一个实施例,该方法还包括:在对所述对象容器中具有第二标记的对象实例进行逻辑验证之后,把这些对象实例的第二标记修改为第一标记。根据本发明的一个实施例,从所述规则池中找出由与添加或更新的数据相关的规则组成的规则子集包括:基于被触发的触发器所在的列的名称与规则池中的各规则的列名称属性之间的比较,从所述规则池中找出所述规则子集。根据本发明的一个实施例,所述数据过滤条件用于从数据库中过滤出满足条件的数据,并且满足所述验证约束代表逻辑验证成功。
在另一个实施例中,一种用于对数据库中的加载数据进行逻辑验证的方法,在该方法中,对于与现有验证规则相关的每个列,在数据库中为该列添加触发器。所述触发器响应于在数据库中该触发器被添加到的列中的数据的添加和更新中的至少之一而发出触发信号。响应于所述触发器的触发信号,从现有验证规则中找出由与添加或更新的数据相关的规则组成的规则子集,把在数据库中添加或更新的所述数据提取到所述对象容器中形成具有第二标记的对象实例,并且利用所述规则子集仅对所述对象容器中具有第二标记的对象实例进行逻辑验证,其中所述第二标记不同于所述对象容器中的其它对象实例所具有的第一标记。所述对象容器包含已利用现有验证规则进行了验证的一个或多个对象实例,其中对象实例仅包含从数据库中提取的与现有验证规则相关的数据。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种用于对数据库中的加载数据进行逻辑验证的系统,包括:
规则引擎,被配置为响应于用于进行逻辑验证的新规则的添加和更新中的至少之一,找出变动规则,该变动规则包括新规则相对于现有规则的变动部分;
对象容器,包含已利用现有规则进行了验证的一个或多个对象实例,其中对象实例仅包含从数据库中提取的与现有规则相关的数据;以及
验证引擎,被配置为
在确定所述变动规则涉及所述对象实例包含的数据以外的额外数据的情况下从数据库提取所述额外数据并加入到相应的对象实例中,并且
利用所述新规则的至少一部分对所述对象容器中的相关对象实例进行逻辑验证。
2.根据权利要求1所述的系统,其中,所述规则引擎被配置为把添加或更新的规则加入到规则池中从而成为现有规则的一部分。
3.根据权利要求1或2所述的系统,其中,所述规则至少包含以下三个属性:相关表的列名称、数据过滤条件以及验证约束。
4.根据权利要求3所述的系统,其中,所述验证引擎被配置为在所述变动规则仅涉及不同的验证约束的情况下确定所述变动规则不涉及所述对象实例包含的数据以外的额外数据。
5.根据权利要求3所述的系统,其中,所述规则引擎被配置为通过在规则之间比较所述三个属性来找出所述变动规则。
6.根据权利要求3所述的系统,其中,所述验证引擎还被配置为在所述变动规则涉及新的列名称的情况下,在数据库中为该列添加触发器,其中所述触发器响应于在数据库中该触发器被添加到的列中的数据的添加或更新而发出触发信号,并且
响应于所述触发器的触发信号,
所述规则引擎从所述规则池中找出由与添加或更新的数据相关的规则组成的规则子集,并且
所述验证引擎把在数据库中添加或更新的所述数据提取到所述对象容器中形成具有第二标记的对象实例,并且利用所述规则子集仅对所述对象容器中具有第二标记的对象实例进行逻辑验证,其中所述第二标记不同于所述对象容器中的其它对象实例所具有的第一标记。
7.根据权利要求6所述的系统,其中,所述验证引擎被配置为在对所述对象容器中具有第二标记的对象实例进行逻辑验证之后,把这些对象实例的第二标记修改为第一标记。
8.根据权利要求6所述的系统,其中,所述规则引擎被配置为基于被触发的触发器所在的列的名称与规则池中的各规则的列名称属性之间的比较,从所述规则池中找出所述规则子集。
9.根据权利要求3所述的系统,其中,所述数据过滤条件用于从数据库中过滤出满足条件的数据,并且满足所述验证约束代表逻辑验证成功。
10.一种用于对数据库中的加载数据进行逻辑验证的系统,包括:
对象容器,包含已利用现有验证规则进行了验证的一个或多个对象实例,其中对象实例仅包含从数据库中提取的与现有验证规则相关的数据;
验证引擎,被配置为对于与现有验证规则相关的每个列,在数据库中为该列添加触发器,其中,所述触发器响应于在数据库中该触发器被添加到的列中的数据的添加和更新中的至少之一而发出触发信号;以及
规则引擎,被配置为响应于所述触发器的触发信号,从现有验证规则中找出由与添加或更新的数据相关的规则组成的规则子集;
其中,所述验证引擎还被配置为,响应于所述触发器的触发信号,把在数据库中添加或更新的所述数据提取到所述对象容器中形成具有第二标记的对象实例,并且利用所述规则子集仅对所述对象容器中具有第二标记的对象实例进行逻辑验证,其中所述第二标记不同于所述对象容器中的其它对象实例所具有的第一标记。
11.一种用于对数据库中的加载数据进行逻辑验证的方法,包括:
响应于用于进行逻辑验证的新规则的添加和更新中的至少之一,找出变动规则,该变动规则包括新规则相对于现有规则的变动部分;
在确定所述变动规则涉及对象容器中的对象实例包含的数据以外的额外数据的情况下,其中所述对象容器包含已利用现有规则进行了验证的一个或多个对象实例并且对象实例仅包含从数据库中提取的与现有规则相关的数据,从数据库提取所述额外数据并加入到相应的对象实例中;以及
利用所述新规则的至少一部分对所述对象容器中的相关对象实例进行逻辑验证。
12.根据权利要求11所述的方法,还包括把添加或更新的规则加入到规则池中从而成为现有规则的一部分。
13.根据权利要求11或12所述的方法,其中,所述规则至少包含以下三个属性:相关表的列名称、数据过滤条件以及验证约束。
14.根据权利要求13所述的方法,其中,在所述变动规则仅涉及不同的验证约束的情况下,确定所述变动规则不涉及所述对象实例包含的数据以外的额外数据。
15.根据权利要求13所述的方法,其中,找出添加或更新的规则相对于现有规则的变动部分包括:通过在规则之间比较所述三个属性来找出添加或更新的规则相对于现有规则的变动部分。
16.根据权利要求13所述的方法,其中,在所述变动规则涉及新的列名称的情况下,在数据库中为该列添加触发器,其中所述触发器响应于在数据库中该触发器被添加到的列中的数据的添加或更新而发出触发信号,并且
响应于所述触发器的触发信号,
从所述规则池中找出由与添加或更新的数据相关的规则组成的规则子集,以及
把在数据库中添加或更新的所述数据提取到所述对象容器中以形成具有第二标记的对象实例,并且利用所述规则子集仅对所述对象容器中具有第二标记的对象实例进行逻辑验证,其中所述第二标记不同于所述对象容器中的其它对象实例所具有的第一标记。
17.根据权利要求16所述的方法,还包括:在对所述对象容器中具有第二标记的对象实例进行逻辑验证之后,把这些对象实例的第二标记修改为第一标记。
18.根据权利要求16所述的方法,其中,从所述规则池中找出由与添加或更新的数据相关的规则组成的规则子集包括:基于被触发的触发器所在的列的名称与规则池中的各规则的列名称属性之间的比较,从所述规则池中找出所述规则子集。
19.根据权利要求13所述的方法,其中,所述数据过滤条件用于从数据库中过滤出满足条件的数据,并且满足所述验证约束代表逻辑验证成功。
20.一种用于对数据库中的加载数据进行逻辑验证的方法,包括:
对于与现有验证规则相关的每个列,在数据库中为该列添加触发器;
所述触发器响应于在数据库中该触发器被添加到的列中的数据的添加和更新中的至少之一而发出触发信号;以及
响应于所述触发器的触发信号,
从现有验证规则中找出由与添加或更新的数据相关的规则组成的规则子集;
把在数据库中添加或更新的所述数据提取到对象容器中形成具有第二标记的对象实例,并且利用所述规则子集仅对所述对象容器中具有第二标记的对象实例进行逻辑验证,其中所述第二标记不同于所述对象容器中的其它对象实例所具有的第一标记,
其中,所述对象容器包含已利用现有验证规则进行了验证的一个或多个对象实例,其中对象实例仅包含从数据库中提取的与现有验证规则相关的数据。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410005776.2A CN104765745B (zh) | 2014-01-07 | 2014-01-07 | 对数据库中的加载数据进行逻辑验证的方法和系统 |
US14/591,294 US10366058B2 (en) | 2014-01-07 | 2015-01-07 | Performing logical validation on loaded data in a database |
US16/414,953 US11119988B2 (en) | 2014-01-07 | 2019-05-17 | Performing logical validation on loaded data in a database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410005776.2A CN104765745B (zh) | 2014-01-07 | 2014-01-07 | 对数据库中的加载数据进行逻辑验证的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104765745A true CN104765745A (zh) | 2015-07-08 |
CN104765745B CN104765745B (zh) | 2018-03-27 |
Family
ID=53495359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410005776.2A Active CN104765745B (zh) | 2014-01-07 | 2014-01-07 | 对数据库中的加载数据进行逻辑验证的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10366058B2 (zh) |
CN (1) | CN104765745B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107316226A (zh) * | 2017-06-27 | 2017-11-03 | 湖北智灿网络技术有限公司 | 一种电商平台商品交易集合报价管理系统 |
CN107943878A (zh) * | 2017-11-14 | 2018-04-20 | 北京思特奇信息技术股份有限公司 | 一种业务规则引擎实现方法和系统 |
CN108376064A (zh) * | 2016-11-24 | 2018-08-07 | 阿里巴巴集团控股有限公司 | 规则引擎系统及规则引擎的相关方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765745B (zh) | 2014-01-07 | 2018-03-27 | 国际商业机器公司 | 对数据库中的加载数据进行逻辑验证的方法和系统 |
US20150370848A1 (en) * | 2014-06-23 | 2015-12-24 | Auvik Networks Inc. | System and method for managing data integrity in electronic data storage |
US10135874B1 (en) * | 2016-11-16 | 2018-11-20 | VCE IP Holding Company LLC | Compliance management system and method for an integrated computing system |
CN109840196B (zh) * | 2017-11-29 | 2022-08-12 | 北京京东尚科信息技术有限公司 | 测试业务逻辑的方法和装置 |
US11165777B2 (en) | 2019-05-30 | 2021-11-02 | Bank Of America Corporation | Controlling access to secure information resources using rotational datasets and dynamically configurable data containers |
US11138328B2 (en) | 2019-05-30 | 2021-10-05 | Bank Of America Corporation | Controlling access to secure information resources using rotational datasets and dynamically configurable data containers |
US11153315B2 (en) | 2019-05-30 | 2021-10-19 | Bank Of America Corporation | Controlling access to secure information resources using rotational datasets and dynamically configurable data containers |
CN111708759B (zh) * | 2020-06-12 | 2023-07-07 | 北京思特奇信息技术股份有限公司 | 一种大表数据移植的优化方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040123101A1 (en) * | 2002-12-18 | 2004-06-24 | Rineer Brian C. | Computer-implemented system and method for managing data integrity validation rules |
US20070100659A1 (en) * | 2005-10-27 | 2007-05-03 | Preiss Erik G | Management of clinical data exceptions in clinical information systems |
US20080222631A1 (en) * | 2007-03-09 | 2008-09-11 | Ritu Bhatia | Compliance management method and system |
CN103210390A (zh) * | 2010-10-05 | 2013-07-17 | 贝克休斯公司 | 用于有效执行设计变更的方法及装置 |
CN103412749A (zh) * | 2013-07-29 | 2013-11-27 | 福建联迪商用设备有限公司 | 一种基于关系型数据库的代码生成方法及代码生成器 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272589B1 (en) | 2000-11-01 | 2007-09-18 | Oracle International Corporation | Database index validation mechanism |
US20030191731A1 (en) * | 2002-04-04 | 2003-10-09 | Daleen Technologies, Inc. | Method and system for rule based validation prior to committing data to a database system |
US7711753B2 (en) * | 2003-12-08 | 2010-05-04 | Oracle International Corporation | Systems and methods for validating design meta-data |
US7953651B2 (en) * | 2006-02-27 | 2011-05-31 | International Business Machines Corporation | Validating updated business rules |
US9524296B2 (en) | 2006-12-29 | 2016-12-20 | Teradata Us, Inc. | Managing events in a computing environment |
EP2045767B1 (en) * | 2007-10-01 | 2012-08-29 | Accenture Global Services Limited | Mobile data collection and validation systems and methods |
US8996441B2 (en) * | 2013-02-19 | 2015-03-31 | Solid Earth, Inc. | System and method for governing data entry into a network database by multiple entities having varying data requirements |
GB2517932B (en) * | 2013-09-04 | 2021-05-05 | 1Spatial Group Ltd | Modification and validation of spatial data |
CN104765745B (zh) | 2014-01-07 | 2018-03-27 | 国际商业机器公司 | 对数据库中的加载数据进行逻辑验证的方法和系统 |
-
2014
- 2014-01-07 CN CN201410005776.2A patent/CN104765745B/zh active Active
-
2015
- 2015-01-07 US US14/591,294 patent/US10366058B2/en not_active Expired - Fee Related
-
2019
- 2019-05-17 US US16/414,953 patent/US11119988B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040123101A1 (en) * | 2002-12-18 | 2004-06-24 | Rineer Brian C. | Computer-implemented system and method for managing data integrity validation rules |
US20070100659A1 (en) * | 2005-10-27 | 2007-05-03 | Preiss Erik G | Management of clinical data exceptions in clinical information systems |
US20080222631A1 (en) * | 2007-03-09 | 2008-09-11 | Ritu Bhatia | Compliance management method and system |
CN103210390A (zh) * | 2010-10-05 | 2013-07-17 | 贝克休斯公司 | 用于有效执行设计变更的方法及装置 |
CN103412749A (zh) * | 2013-07-29 | 2013-11-27 | 福建联迪商用设备有限公司 | 一种基于关系型数据库的代码生成方法及代码生成器 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376064A (zh) * | 2016-11-24 | 2018-08-07 | 阿里巴巴集团控股有限公司 | 规则引擎系统及规则引擎的相关方法 |
CN107316226A (zh) * | 2017-06-27 | 2017-11-03 | 湖北智灿网络技术有限公司 | 一种电商平台商品交易集合报价管理系统 |
CN107943878A (zh) * | 2017-11-14 | 2018-04-20 | 北京思特奇信息技术股份有限公司 | 一种业务规则引擎实现方法和系统 |
CN107943878B (zh) * | 2017-11-14 | 2022-03-15 | 北京思特奇信息技术股份有限公司 | 一种业务规则引擎实现方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104765745B (zh) | 2018-03-27 |
US20150193474A1 (en) | 2015-07-09 |
US20190272261A1 (en) | 2019-09-05 |
US11119988B2 (en) | 2021-09-14 |
US10366058B2 (en) | 2019-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104765745A (zh) | 对数据库中的加载数据进行逻辑验证的方法和系统 | |
US20170236130A1 (en) | Emulating Manual System of Filing Using Electronic Document and Electronic File | |
US11093521B2 (en) | Just-in-time data quality assessment for best record creation | |
US9031967B2 (en) | Natural language processing system, method and computer program product useful for automotive data mapping | |
CN109344154B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
WO2022134583A1 (zh) | 一种保险数据信息的生成方法、装置、服务器及存储介质 | |
US20240087000A1 (en) | System and method for identifying and enabling data marketplace purchases and sales of integrated data | |
KR101253335B1 (ko) | 데이터 웨어하우스를 이용한 데이터베이스 구축 방법 및 그 시스템 | |
EP2535852A1 (en) | Case-based retrieval framework | |
CN103714062A (zh) | 基于依赖关系导入实体-联系模型数据的方法和系统 | |
CN109558619B (zh) | 基于建筑信息模型的数据处理方法、终端及可读存储介质 | |
CN104182414A (zh) | 用于在多租户系统中管理数据库的方法和设备 | |
CN114722789B (zh) | 数据报表集成方法、装置、电子设备及存储介质 | |
CN115600972A (zh) | 一种不良资产的核销方法、装置、设备及存储介质 | |
CN113052727A (zh) | 基于购房资格核验的购房推荐装置及方法 | |
CN112348403A (zh) | 风控模型构建方法、装置及电子设备 | |
CN111080209A (zh) | 一种bom的验证方法、系统、设备以及存储介质 | |
US11481859B2 (en) | Methods and systems for scheduling a user transport | |
US20230281693A1 (en) | Method for generating personalized recommendation by optimizing transaction mode for a product search | |
US11875374B2 (en) | Automated auditing and recommendation systems and methods | |
US11436500B2 (en) | Schema correspondence rule generation using machine learning | |
US20230237189A1 (en) | Data categories for purpose-based processing of personal data | |
US20220050956A1 (en) | Context specific document recommendation system for automotive retail | |
US20220398669A1 (en) | Workflow management system for customer communication solutions | |
CN117807084A (zh) | 指标配置数据的校验方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |