关系数据库中聚合代数约束的高效发现算法
——AAC-Hunter
2021-03-18,2,2*,2
计算机应用 2021年3期
关键词:规则
,2 ,2* ,2
(1.浙江大学计算机科学与技术学院,杭州 310027;2.浙江省大数据智能计算重点实验室(浙江大学),杭州 310027)
0 引言
给定一个关系数据库,聚合代数约束(Aggregation Algebraic Constraint,AAC)是一个定义在该数据库中两列的聚合运算结果之间的模糊代数约束。聚合代数约束仅约束数据库中的大多数而非全部记录。
本文研究如何从关系数据库中自动发现聚合代数约束。该技术在智慧审计领域具有广泛的应用前景。考虑一个简化的报销数据表,该表包含5个字段:(员工,部门,交通费,住宿费,杂费),表中每一条记录是包含上述5 个字段信息的报销记录。审计员希望从该表中找出违规的报销记录,该审计过程能够顺利实施的关键在于审计员能否发现报销数据表中存在的模糊约束,即作用于数据表中的大多数而非全部记录之间的约束。如果模糊约束的逻辑较简单,则一般可以通过专家经验给出。例如,如果审计员通过先验知识得知大多数正常的报销记录满足如下约束:交通费+住宿费<1 000,那么该审计员可以通过标准的结构化查询语言(Structured Query Language,SQL)找出违反上述约束关系的记录集,然后逐一检查该记录集每一条记录是否是违规报销。
然而,如果报销数据表存在聚合代数约束,由于聚合代数约束中包含聚合运算且和数据表中数据的分布高度相关,审计员很难通过通用的先验知识发现该约束。报销数据表中的一个聚合代数约束c1如下所示:

该聚合代数约束表明,按照部门字段对报销记录进行分组,大多数部门的平均住宿费和平均杂费之和在特定的区间[1000,2 000]以及[3 000,5 000]内。……
登录APP查看全文
