关系数据中函数依赖检测方法 - wowbigdata.com.cn ·...

16
µÚ 402017CHINESEJOURNAL OFCOMPUTERS Vol.40 No.1 Jan.2017 쫕룥죕웚2015 11 20 퓚쿟돶냦죕웚2016 04 10. 놾뿎쳢뗃떽맺볒뻅웟죽훘뗣믹뒡퇐뺿랢햹맦뮮쿮쒿믹뷰2012CB316203 )、 맺볒ퟔ 좻뿆톧믹뷰61332006 61472321 )、 컷놱릤튵듳톧믹뒡퇐뺿믹뷰3102014JSJ0013 3102014JSJ0005 1985쓪짺늩쪿퇐 뺿짺훐맺볆쯣믺톧믡CCF 믡풱훷튪퇐뺿랽쿲캪쫽뻝맜샭.E mail aassaa2003 163.com. 샮햽뮳1961쓪짺늩쪿뷌쫚훷튪퇐 뺿쇬폲캪쫽뻝뿢샭싛폫벼쫵1976쓪짺늩쪿뷌쫚훷튪퇐뺿쇬폲캪퓆볆쯣춼쫽뻝맜샭맘쾵쫽뻝훐몯쫽틀삵볬닢랽램 샮햽뮳 컷놱릤튵듳톧볆쯣믺톧풺 컷낲 710129 퓚쫽뻝훊솿퇐뺿훐몯쫽틀삵놻맣랺폃폚맘쾵쫽뻝늻튻훂탔뗄탞뢴좻뛸늻튻훂탞뢴컊쳢쏦쇙뗄튻룶훷 튪쳴햽쫇죧뫎듓냼몬폐듭컳뗄맘쾵쫽뻝훐ퟔ뚯랢쿖폐킧뗄몯쫽틀삵FunctionalDependence FD 쒿잰믹폚춳볆 뛈솿훃탅뛈뗄 FD ퟔ뚯랢쿖랽램뺭뎣헒돶듳솿뷼쯆돉솢떫컞킧뗄 FD. 죧맻횱뷓샻폃헢킩 FD 탞뢴쫽뻝믡닺짺룼 뛠듭컳헫뛔룃컊쳢컄훐쳡돶쇋튻훖믹폚쫽뻝폯틥럖컶뗄몯쫽틀삵볬닢랽램룃랽램춨맽쳵볾룅싊살럖컶쫴탔횵 뫍풪ퟩ뗄쫽뻝훃탅뛈뷸뛸볆쯣몯쫽틀삵돉솢뗄훃탅뛈컄훐춬쪱쳡돶쇋샻폃맘쾵쫽뻝릹붨십뛻뿆럲첺놴튶쮹췸 싧폃틔볆쯣쫽뻝훃탅뛈뗄랽램ퟮ뫳컄훐춨맽쪵퇩퓚쒣쓢쫽뻝뫍헦쪵쫽뻝짏퇩횤쇋믹폚쫽뻝폯틥뗄훃탅뛈볆쯣랽 램퓚ퟔ뚯볬닢훐뗄뺫좷뛈폅폚믹폚춳볆뗄볆쯣랽램늢쟒퓚붻뮥쪽볬닢펦폃뎡뺰훐쫽뻝폯틥뗄훃탅뛈쯹탨폃뮧릤 ퟷ솿짙폚믹폚춳볆뗄랽램맘볼듊 쫽뻝훊솿몯쫽틀삵쫽뻝훃탅뛈쳵볾룅싊 훐춼램럖샠뫅 TP311 DOI10.11897 SP.J.1016.2017.00207 Functional De endencies Checkin Method inRelational Data ZHONGPing LI Zhan Huai CHEN Qun De artment Com uterScience NorthwesternPol technicalUniversit Xi an 710129 Abstract Indataqualityresearch FunctionalDependencies FDs havebeen widelyusedto repair inconsistent relational data.However themainchallenge of repairing inconsistent data is howtodiscovervalidfunctionaldependenciesfrom errorousrelationaldata.Theexisting FD discoverymethods whicharebasedonstatistical confidence measurement usuallyfind many approximately correct but actually invalidFDs.Directlyapplying thesediscoveredFDs to repair inconsistent relational datamay introducemore data errors.To address this issue wepropose novel approachforFDconfidence measurementbasedondatasemanticsanalysis.It firstuses conditional probabilities tomeasure confidence of an attribute value and then aggregate themfor estimating the confidence level of givenFD.Wealsoprovideanefficientmethodtoconstruct Markov blanket Bayesiannetworks for every relational data attribute and thenuseMarkovblanket Bayesiannetworks to compute conditional probabilities.Our experimental study onboth synthetic and real worlddata shows that the proposed approach achieves considerablyhigher accuracy than the statistics based approach.Furthermore wedesignedan interactiveapplicationscenario that each iteration consults user on verifying theFDswithhighest confidence.Our experiment results also showour approach requires fewermanualworks than statistics based approach in interactive application scenario. Keywords data quality functional dependency data confidence conditional probability

Upload: others

Post on 06-Aug-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

书书书

第40卷 第1期

2017年1月计  算  机  学  报

CHINESE JOURNAL OF COMPUTERSVol.40 No.1

Jan.2017 

收稿日期:2015-11-20;在线出版日期:2016-04-10.本课题得到国家“九 七 三”重 点 基 础 研 究 发 展 规 划 项 目 基 金(2012CB316203)、国 家 自

然科学基金(61332006,61472321)、西北工业大学基础研究基金(3102014JSJ0013,3102014JSJ0005)资助.钟 评,男,1985年生,博 士 研

究生,中国计算机学会(CCF)会员,主要研究方向为数据管理.E-mail:aassaa2003@163.com.李战怀,男,1961年生,博士,教授,主要研

究领域为数据库理论与技术.陈 群,男,1976年生,博士,教授,主要研究领域为云计算,图数据管理.

关系数据中函数依赖检测方法

钟 评 李战怀 陈 群(西北工业大学计算机学院 西安 710129)

摘 要 在数据质量研究中函数依赖被广泛用于关系 数 据 不 一 致 性 的 修 复.然 而,不 一 致 修 复 问 题 面 临 的 一 个 主

要挑战是如何从包含有错误的关 系 数 据 中 自 动 发 现 有 效 的 函 数 依 赖(Functional Dependence,FD).目 前 基 于 统 计

度量置信度的FD自动发现方法经常找出大量近似成立 但 无 效 的FD.如 果 直 接 利 用 这 些FD修 复 数 据,会 产 生 更

多错误.针对该问题,文中提出了一种基于数据语义分析的函数依赖检测方法.该方法通过条件概率来分析属性值

和元组的数据置信度,进而计算函数依赖成立的置信度.文 中 同 时 提 出 了 利 用 关 系 数 据 构 建 马 尔 科 夫 毯 贝 叶 斯 网

络用以计算数据置信度的方法.最后文中通过实验在模拟数据和真实数据上验证了基于数据语义的置信度计算方

法在自动检测中的精确度优于基于统计的计算方法,并且在交互式检测应用场景中数据语义的置信度所需用户工

作量少于基于统计的方法.

关键词 数据质量;函数依赖;数据置信度;条件概率

中图法分类号 TP311   DOI号 10.11897/SP.J.1016.2017.00207

A Functional Dependencies Checking Method in Relational Data

ZHONG Ping LI Zhan-Huai CHEN Qun(Department of Computer Science,Northwestern Polytechnical University,Xi’an 710129)

Abstract In data quality research,Functional Dependencies(FDs)have been widely used torepair inconsistent relational data.However,the main challenge of repairing inconsistent data ishow to discover valid functional dependencies from errorous relational data.The existing FDdiscovery methods,which are based on statistical confidence measurement,usually find manyapproximately correct but actually invalid FDs.Directly applying these discovered FDs to repairinconsistent relational data may introduce more data errors.To address this issue,we propose anovel approach for FD confidence measurement based on data semantics analysis.It first usesconditional probabilities to measure confidence of an attribute value,and then aggregate them forestimating the confidence level of a given FD.We also provide an efficient method to constructMarkov blanket Bayesian networks for every relational data attribute,and then use Markov blanketBayesian networks to compute conditional probabilities.Our experimental study on both syntheticand real-world data shows that the proposed approach achieves considerably higher accuracy thanthe statistics-based approach.Furthermore,we designed an interactive application scenario thateach iteration consults user on verifying the FDs with highest confidence.Our experiment resultsalso show our approach requires fewer manual works than statistics-based approach in interactiveapplication scenario.

Keywords data quality;functional dependency;data confidence;conditional probability

Page 2: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

1 引 言

当前 数 据 不 一 致 是 关 系 数 据 中 普 遍 存 在 的

问题[1].从 关 系 数 据 中 发 现 函 数 依 赖(FunctionalDependence,FD),再通过删除或修改不一致数据使

其满足给定函数依赖,是当前不一致性修复的常用

方法.然而,在当前不一致性修复中,FD自动发现算

法得到的近似 成 立FD不 一 定 是 真 实 成 立 的.在 给

定数据和FD集 都 含 有 错 误 的 情 况 下,如 果 数 据 违

反了FD,则有两种可能 原 因:(1)FD成 立,数 据 违

反函数依赖需要 修 复;(2)FD本 身 不 成 立,数 据 不

需要修复.本文主要研究在数据含有错误的情况下

FD的检测问题.以表1为例,假设表1中存在两个近似成立FD,

记为φ1与φ2,分别有

φ1:City,CountyState,

φ2:Zip CodeCounty,其中数据元组t1不满足函数依赖φ1,但是通过实际

验证可以发现,t1虽然City(城市名),County(郡名)属性与t3,t4,t5,t6取 值 相 同,但 是 实 际 中 却 是 同 名

的不同城市,因此该FD在实际语义中不成立.与φ1相比,对违反φ2的元组t9验证可知,t9中County属

性值 现 实 中 确 实 是 错 误 应 当 修 改,φ2成 立.由 此 可

见,FD检测 通 常 需 要 涉 及 到 关 系 数 据 在 现 实 世 界

中的语义.虽然现实世界中的语义信息无法完全和

精确获取,但本文通过在给定的关系数据中寻找能

够反映现实世界语义的信息,即数据语义作为解决

当前问题依据.目前,仅有 部 分 不 一 致 性 修 复 研 究 考 虑 了FD

不成立的情况[2-4],针对关系数据的FD自动挖掘仍

主要采用基于统计的置信度[5]计算方法.该方法假

定数据中错误 仅 占 很 小 一 部 分,因 此FD中 不 一 致

数据越少,其成立的可能性越大.然而,由于该方法

没有考虑数据语义,除包含真实成立的FD以外,检

测结果通常也会包含很多无效的FD,因此总体的检

测精确度仍有可能很低.如第6节图4(e)~(h)实验

所示,在真实 数 据hospital的 精 确 度 实 验 中 置 信 度

前20%的近似FD中真实成立的FD不到30%.本文贡献如 下:(1)针 对 关 系 数 据 提 出 了 一 种

基于数据语义 分 析 的FD检 测 方 法.该 方 法 通 过 条

件概率定义属性值和元组的数据置信度,提出相应

的FD置 信 度 计 算 方 法;(2)提 出 了 构 建 并 使 用 马

尔科 夫 毯 贝 叶 斯 网 络 来 计 算 数 据 置 信 度 的 方 法;

(3)通过在 模 拟 数 据 和 真 实 数 据 集 上 的 实 验,验 证

了基于数据语义的置信度计算方法在自动检测中精

确度高于统计置信度方法,并且在交互式检测应用

场景中数据语义的置信度所需用户工作量少于基于

统计的方法.本文第2节为相关工作;第3节 概 述FD概 念

以及FD检测问题;第4节介绍数据置信度和FD数

据语义分析置信度的定义;第5节介绍使用数据构

建马尔科夫毯贝叶斯网络用以计算数据置信度的方

法;第6节通过实验验证该方法对函数依赖的检测

效果;第7节为结论.

2 相关工作

目前,关系数据中不一致性的修复主要通过函

数依赖实现.文献[1,6]对不一致性修复进行了综述

性介绍.文献[7]首先提出了直接修复数据值的代价修

复模型.该模型 通 过 寻 找 一 个 满 足 给 定FD集 并 且

修复代价最 小 的 修 复 方 案 来 修 复 数 据.文 献[8]对

FD在语义上扩展提出了条件函数依赖(ConditionalFunctional Dependence,CFD),CFD可以 看 做 是 一

种局部的FD,文献[9]提出了基于代价修复模型使

用FD和CFD共同修复数据的方法.文献[10]对代

价模型修复算法进行优化,提出了近似最优修复的

方法.文献[11-12]提出使用采样的方法对海量数据

进行修 复.此 外,文 献[13-15]分 别 提 出 了 不 同 于

FD和CFD的其他数据修复方法.关系数据不一致性修复首先需要自动发现数据

中的FD.文献[16]介绍 了FD自 动 发 现 研 究 现 状,文献[17-18]等 分 别 提 出 了 从 数 据 中 发 现 最 小FD集的算法.文 献[17]提 出 的 TANE算 法 使 用 分 层

搜索策略,将FD搜 索 空 间 按 照FD中 属 性 数 分 层

并逐层搜索,同时在搜索过程中对搜索空间剪枝.并证明该 方 法 对 数 据 量 有 良 好 扩 展 性.文 献[18]提

出算法FastFDs通 过 计 算 各 数 据 元 组 的 不 一 致 集

来发现FD集,该 方 法 对 数 据 中 属 性 数 量 有 良 好 扩

展,但复杂度是数据量的平方.文献[19]将FD自动

发现算法扩 展 到CFD,提 出 了 分 别 基 于 TANE算

法 和 FastFDs算 法 的 CFD 发 现 算 法 CTANE和

CFDMiner.文献[20]提 出 一 种 深 度 优 先 的 发 现 算

法,该方法能 够 用 于 数 据 量 较 大 条 件 下 的 发 现.文

献[21]实验评估了当前多种发现算法的效率.当 前 数 据 修 复 流 程 主 要 是 首 先 通 过 上 述 文 献

[17-19]中函数依赖发现算法发现数据中成立或 近

802 计  算  机  学  报 2017年

Page 3: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

似成立的FD或CFD等规则.再使用文献[7-15]方

法对不满足规则的数据进行修复.但这样的方法面

临一个问题是FD或CFD发 现 方 法 得 到 的 规 则 不

是语义上成立的,无法直接应用于数据修复.当前衡

量规则是否成立主要采用文献[5]基于统计的置信

度的方法,置信度是近似函数依赖[15](ApproximateFunctional Dependence,AFD)中 使 用 的 概 念.该 方

法假定数据中 错 误 仅 占 很 小 一 部 分,则FD中 不 一

致数据越少,其成立的可能性越大.该方法发现的近

似成立FD中通常含有大量无效的FD,需要进一步

的人工判定.文献[22]分析了FD,CFD与关联规则

(Association Rale,AR)之 间 的 层 级 关 系,并 指 出

AR发现算法可适用于所有依赖发现问题.由于近似 成 立 的FD不 一 定 在 语 义 上 真 实 成

立,直接应用 其 对 数 据 修 复 会 引 入 更 多 错 误.文 献

[2-3]研究了给定FD集 不 完 全 成 立 条 件 下 的 修 复

方法,同时考虑FD和数据的修复代价,但研究局限

于修复代价的优化问题上.文献[4]提出的增量式修

复方法通 过 人 为 定 义FD的 统 计 特 征 作 为 分 类 特

征,通过人工标注的函数依赖作为训练集进行增量

式的有监督学 习 和 修 复,再 检 测 其 他FD是 否 成 立

并进行数据修复.该方法特征选取有主观性,忽略了

不同FD可能包含的不同语义.而且,该方式是有监

督学习方法,需要人工进行样本标注.本文针对上述检测FD是否成立的问题进行了

研究,提出了一种自动检测FD方法,实验结果显示

本文方法得到的FD集拥有较高的精确度.

3 函数依赖概念与检测问题

3.1 函数依赖概念与定义

设数据库 关 系 模 式R 由m 个 属 性 组 成,记 为

(A1,A2,…,Am).Dom(A)记为属性A的域,I表示

数据库 中 由|I|个 元 组 组 成 的 实 例.则 每 一 个 元 组

都属于空 间Dom(A1)×…×Dom(Am).对 于 元 组

t∈I,记为t[A],表示元组t在A 属性的取值.R上的一个FD表示为X→Y,其中X,YR.

其中X称 作FD的 左 部(Left-Hand-Side,LHS),Y称作FD的右部(Right-Hand-Side,RHS).一个FD在数据库实例I上成立(记为IX→Y),当且仅当

t,t′∈r,t[X]=t′[X]t[Y]=t′[Y].在R上FD集合Σ如果是一个最小覆盖(minimal cover),则满

足Σ中每个FD都是简化的形式X→A(即FD右部

仅有一个属性),并且任意φ∈Σ不会被Σ-φ蕴涵.

以表1为例,表1为美国医院数据中的部分信

息,主要包含医院所在地、邮编和联系方式等.假设

有FD:Zip Code→States.表 示 数 据 集 中 所 有ZipCode(邮编)取值相同的元组,其对应属性States(所

在州)的取值必须相同.如果不相等,则该数据是违

反函数依赖的不一致数据.

表1 美国医院地址信息

City  County  State Zip Code  Phonet1 LOUISVILLE  JEFFERSON  GA  30434  4786257000t2 MILLEN  JENKINS  GA  30442  4784784221t3 LOUISVILLE  JEFFERSON  KY  40202  5025874011t4 LOUISVILLE  JEFFERSON  KY  40202  5026296560t5 LOUISVILLE  JEFFERSON  KY  40202  5025623000t6 LOUISVILLE  JEFFERSON  KY  40207  5028978100t7 Baltimore  BaltimoreCity  MD  21201  4103288667t8 Baltimore  BaltimoreCity  MD  21201  4102258996t9 Baltimore Ketchikan Gateway MD  21201  4106057016

3.2 函数依赖检测问题

FD的 检 测 问 题 可 以 形 式 化 描 述 为:给 定 FD候选集Σ 以 及 数 据 库 实 例I,对 每 一 个 函 数 依 赖

φ∈Σ,置信函数f:f(φ,I)将Σ中每个FD和I作为

输入,映射得到一个实数d(φ)∈[0,1],作为函数依

赖成立的度量.当前数据修复领域通常使用 AFD中的置信度

概念来度量FD成立的可能性.在数据库设计中,当

允许一个FD含 有 部 分 不 一 致 数 据 时,则 该 函 数 依

赖是一个AFD.置 信 度 用 来 衡 量 一 个 AFD与 对 应

FD在数据上 的 近 似 程 度,当 前 主 流 方 法 是 统 计 一

个AFD同对应FD元组上的相似比例,一个函数依

赖φ:X→Y 的置信度con(φ)标准形式为

 con(φ)=

∑x∈∏

X(I)max cXY(x,y):y∈∏

(I( ))

|I|(1)

式(1)中∏X

(I)表示属性X 在数据库实例I上的投

影,cX(x)表示属性X的取值x在I上的元组数.以

表1中φ2:Zip Code→County为例,可以计算出置

信度con(φ2)=1+1+3+1+2

9=89.

与基于统计的置信度计算方法不同 ,本文提出

通过分析I中违反待检测FD的数据项是否需要修

复来计算FD成立的置信度.为区别起见,本文将基

于数据语义分析置信度(Data Semantic Confidence,

DSC)简称DSC置 信 度,传 统 基 于 统 计 的 置 信 度 称

为SC置信度(Statistical Confidence,SC).

9021期 钟 评等:关系数据中函数依赖检测方法

Page 4: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

4 基于数据语义分析的FD检测方法

本文目标是通过从给定数据中寻找数据所包含

的语义信息来解决检测问题.贝叶斯网络作为一种

描述数据因果关系的模型,其网络结构蕴含了数据

的因果关系.基于贝叶斯网的数据语义信息本文提

出判断不一致数据是否需要修改的方法———数据置

信度.本文依 据 第3节 中 检 测 问 题 定 义,使 用 违 反

FD元组的数据置信度来定义FD成立的可能性,即

FD的DSC置信度.本章介绍数据置信度和DSC置

信度的定义.第5节介绍使用马尔科夫毯贝叶斯网

络计算数据置信度的方法.4.1 数据置信度

以表1中为 例,元 组t1属 性City,County取 值

虽然与t3~t6相 同,但 是Zip code与Phone取 值 有

很大差异,可以作为支持t1是同名的不同城市的证

据.本文通过 为 该 属 性 构 建 贝 叶 斯 网 络,并 利 用 网

络中相关属 性E 的 值t[E]=e计 算 元 组t当 前 值

t[A]=a的条件概率p(a|e)来推测t[A]是否需要

修改.其中证据 属 性E 通 过 贝 叶 斯 网 络 构 建 获 得.具体方法在第5节介绍.

本节首先定义元组单个属性的数据值置信度,对于元组t,其属性 A∈U 取 值t[A]=a的 数 据 值

置信度定义如下.定义1. 数 据 元 组t∈I,I中 所 有 属 性 记 为

U,属性A的取值a=t[A],证据e=t[E],其中EU/A,则元组t中属性A 的数据值置信度定义为

r(t,A)= p(a|e)-p(a)max(p(a|e),p(a))

(2)

式(2)中p(a|e)-p(a)代表的意义可以用分类

的观点解释:将A 的取值范围a∈Dom(A)中 每 一

个值看作一个类标签,p(a)代表没有任何额外信息

时,元组t分到类a的概率.P(a|e)为当知道作为证

据的属性E取值信息时分类为a的概率.当已知该

元组证据 属 性E 取 值e时,e使 得 该 元 组 分 类 为

t[A]=a的概率发生了变化.p(a|e)-p(a)越 大,说明证据属性 取 值 在 概 率 上 越 支 持 当 前 值,则a=t[A]置信度越大.反之如果P(a|e)-p(a)越小,则

认为当前值更应当修改.式(2)中r(t,A)取 值 范 围

为-1<r(t,A)<1,为了方便后续计算和排序,因此

将r(t,A)进 行 归 一 化,得 到 归 一 化 后 的 数 据 值 置

信度:

r′(t,A)=r(t,A)+1

2(3)

式(2)定义单个属性t[A]的 数 据 值 置 信 度 后,需要定义元组t的数据置信 度.对 于 一 个 违 反FD:

X→Y 的 元 组t,集 合X∪Y 中 属 性 都 可 能 发 生 错

误,t的数据 置 信 度 应 当 由 所 有 可 能 发 生 错 误 的 属

性定义.元组中一个属性值有错时,整个元组被看作

是不一致数据.因此一 个 元 组t的 数 据 置 信 度 定 义

为所有可能错误属性的数据值置信度最小值:

r(t,I,φ)=min(r′(t,A),A∈X∪Y) (4)以表1中元组和φ2:Zip Code→County为例,

要计算违反φ2元组t9的数据置信度,则需要计算t9中所有φ2相关属性的属性值置信度并取最小值.即

r(t9,I,φ2)=min(r′(t9,Zip Code),r′(t9,County)).假设Zip Code的证据属性为State,则

r(t9,Zip Code)=p(21201|MD)-p(21201)max(p(21201|MD),p(21201))

该条件概率的计算方法将在第5节介绍.4.2 数据语义的FD置信度计算

当给定数 据 置 信 度 之 后,可 以 进 一 步 定 义FD的数据语义 置 信 度(Data Semantic C,DSC),任 意

函数依赖φ的DSC置信度d为

d(φ)=f′(r(t1,I,φ)…r(tn,I,φ)) (5)其中ti∈I为不满足φ的数据元组.r(ti,I,φ)为元组

的数据置信度,可简写为ri.置信函数f′(r1,…,rn)利用不一致元组的数据置信度,计算φ成立置信度.

式(5)定义一个FD的DSC置信度需要通过所

有不一致数据的数据置信度来计算.在数据修复应

用中,若给定一个FD成立,所有违反该FD的不一

致数据将被 修 复.因 此 本 文 根 据 以 下 原 则 定 义FD的数据语义分析置信度:一个FD成立的DSC置信

度越高,则违反 该FD的 不 一 致 数 据 中 被 修 复 部 分

平均数据置信度越低,因为当FD没有错误的时候,数据必然发生了错误.因此计算DSC置信度需要首

先使用式(3)和(4)对函数依赖的不一致部分计算数

据置信度,再通过各违反元组的置信度利用式(5)计算FD的DSC置信度.

假设元 组 集VI为 使 用 FD修 复 数 据 后 会

发生改变的元组集合.对于FD:X→Y,将I中所有

元组按照属 性X 的 取 值xi∈X 划 分 成 等 价 类.明

显的,数据中与FD一致部分不属于集合V.对于不

一致部分,本文假设不一致数据所在的等价类中支

持度低的 部 分 需 要 修 复,如 图1(a)中 可 认 为t={JEFFERSON,KY}元 组 支 持 度 最 大 没 有 错 误,称

为主模式(major pattern),记为major(xi),主模式

中元组t∈major(xi)不 需 修 复.而{JEFFERSON,

012 计  算  机  学  报 2017年

Page 5: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

GA}需要修复,这种情况下仅需要计算主模式外的

其他元组的数据置信度.但是如图1(b)和(c)所示,即支持度最高的模式不存在或不唯一.在这种情况

下需要对所有不一致数据元组进行检测.并计算每

个模式(即函数依赖属性的不同取值)的数据置信度

之和.并从中找出支持度最大且数据置信度最大的

模式作为主模式.因主模式不需修复,则不包含于集

合V 中.最 终,单 个 函 数 依 赖 成 立 的 数 据 置 信 度

d(φ)可以定义如下.

图1 函数依赖不一致数据

定义2. 对于函数依赖φ,以及发生改变的元

组集V,函数依赖成立的DSC置信度为

d(φ)=1-∑t∈Vr(t,I,φ)

|V|(6)

其中|V|表示V 中元组数.

5 数据置信度计算方法

为计算数据置信度,需要计算式(2)中条件概率

p(a|e)与先验概率p(a).其中p(a)可以通过数据

直接统计得到.对于p(a|e)的 计 算,由 于 数 据 各 属

性之间的互相影响会降低判断的准确性,本文采用

概率图模型方法由数据集I为每个属性构建马尔科

夫毯贝叶斯 网 络[23]用 以 计 算 每 个 元 组 取 值 的 条 件

概率.5.1 贝叶斯网络及其推理

贝叶斯网络[24]是 一 种 表 示 随 机 变 量 集 联 合 分

布的概率图模型方法.一个贝叶斯网络由网络结构

BS以及条件概率表(Conditional Probability Table,

CPT)组成.网络结构BS是 一 个 如 图2所 示 有 向 无

环图,图中每个顶点对应随机变量中的一个变量.两个节点间的有向边表示对应变量之间的直接依赖关

系.图中点A与点D 之间没有边相连,则表示当已

知D在BS中的双亲C 取值时,D 取值概率与A、B独立,p(D|CAB)=p(D|C).

在当前应用中,关系数据中的每个属性被看作

贝叶斯网络中的一个节点.对于每个变量节点X 都

图2 贝叶斯网络结构

有一个对应的CPT,CPT表项记录该节点的双亲节

点parent(X)相 对 于X 的 条 件 概 率.假 设 图2中

ABCD四个 节 点 都 代 表 一 个2值 变 量,其 取 值 为

{absence,present}.则其条件概率表如表2所示.

表2 条件概率表

(a)节点C的条件概率表

A  present  present  absent  absentB  present  absent  present  absent

present  0.6  0.15  0.375  0.75absent  0.4  0.85  0.625  0.25

(b)节点D的条件概率表

C  present  absentpresent  0.7  0.9absent  0.3  0.1

贝叶斯网络的优点在于其简化了计算条件概率

所涉及到的属性,假设贝叶斯网中n个节点集合为

(X1,X2,…,Xn),且Xi的双亲节点序号小于i.其一

个实例(X1=x1,…,Xn=xn)根据链式规则,联合概

率表示为

P(x1,x2,…,xn)=p(x1)×p(x2|x1)×…×p(xn|x1,…,xn-1)

=∏iP(xi|x1,…,xn) (7)

  由贝叶斯网络的条件独立假设,节点的条件概

率只与其双亲节点相关,则联合概率可以简化为

P(x1,x2,…,xn)=∏iP(xi|parent(xi)) (8)

式(8)简 化 了 计 算 过 程,同 时 贝 叶 斯 网 络 降 低 了 属

性之间 互 相 关 联 带 来 的 影 响.例 如 图2中 各 节 点

ABCD的联合概率

p(ABCD)=P(A)P(B)P(C|AB)P(D|C).不同于传统的贝叶斯网络推理,本文应用场景

中计算条件概率p(a|e)在通常情况下元组t中 各

属性不包含 空 值,条 件 概 率 可 以 通 过 式(8)中 概 率

P(x1,x2,…,xn,a)边缘化得到

P(a|x1,x2,…,xn)=P(x1,x2,…,xn,a)

∑ai∈AP(x1,x2,…,xn,ai)

(9)

以图2和 表2为 例,假 设 已 知 图 中 节 点A=present,B=present,D=absent时计算节点C 的概

1121期 钟 评等:关系数据中函数依赖检测方法

Page 6: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

率分布.为简便将absent记为a,present记为p.首

先通过表2的 条 件 概 率 求 的C各 个 取 值 的 联 合 概

率分布:

p(A=p,B=p,C=a,D=a)=0.4×0.1=0.04,

p(A=p,B=p,C=p,D=a)=0.6×0.3=0.18.对这两个联合按照式(9)进行概率归一化后求得当

前条件C的条件概率分布为

p(C=a|A=p,B=p,C=a)=0.04/(0.04+0.18)

≈0.182,

p(C=a|A=p,B=p,C=a)=0.18/(0.04+0.18)

≈0.818.由 于 当 前 应 用 中 绝 大 多 数 属 性 没 有 属 性 值 缺

失,同时本文在构建网络时按照下文5.2节方法限

制节点的最大邻居数maxSize,因此式(9)可以快速

计算出条件概率,无需其他推理算法.maxSize可以

通过经验选取,本文实验中使用maxSize=4.对于

所推理元组t的条件 属 性 含 有 空 值 时,只 需 将 该 属

性对应 的 节 点 从 网 络 中 去 除,条 件 概 率 仍 可 通 过

式(9)快速计算.引理1. 在 数 据 值 没 有 缺 失 并 且 限 制 网 络 最

大邻居数时计算条件概率P(a|x1,x2,…,xn)的时

间复杂 度 为Ο(r),其 中r=max(|Dom(A)|,A∈U),即数据中所有属性取值数量的最大值.

证明. 计 算 式(8)中 联 合 概 率P(x1,x2,…,

xn,a)的时间复杂度由公式为Ο(p+c),p和c分别

代表A 属性在网络中parent集合与children集合

大小.由于p+c<maxSize.则式(8)计算复杂度为

常量.计算式(9)条件概率的复杂度为Ο((p+c)×r),则P(a|x1,x2,…,xn)时间复杂度为Ο(r). 证毕.

定理1. 使 用 式(5)计 算DSC置 信 度 的 时 间

复杂度为Ο(T×m×r).证明. 根据 式(6),设 数 据 中 违 反FD:X→Y

的元组数为T=|V|,FD中属性个数为|XY|,由于

|XY|<m,则计算一个FD的DSC置信度复杂度为

Ο(T×m×r). 证毕.5.2 贝叶斯网络的建立

贝叶斯网络可以通过学习当前数据集得到网络

结构BS和条件概率表CPT.在结构学习方面,由于

当前应用需要计算任意一个属性值t[A]的 数 据 置

信度,统一的网络结构使得一些局部属性相邻节点

过少,影响推理准确性.针对该问题本文采用为每个

属性建立一个马尔科夫毯贝叶斯网络(MBBN)来推

理条件概率.马尔科夫毯是指在贝叶斯网络中,由于条件独

立假设任何一个节点Xi的概率仅受其双亲节点、孩

子节点和孩子节点的双亲这3类节点影响,称为Xi的马尔科夫毯.因此当推理任意一个节点Xi的条件

概率时,仅需要计算对应的马尔科夫毯作为网络结

构.图2中C节点的马尔 科 夫 毯 为{A,B,D},A 节

点为{B,C},D节点为{C}.本文对文献[24]中 MBBN的3步 构 建 算 法 进

行修改,使其更符合当前应用要求.修改后的算法依

然使用3步 构 建,但 基 于 效 率 考 虑 做 出 如 下 修 改:(1)使用信息增益度量属性间相关性;(2)没有使用

计算复杂的贝叶斯概率函数确定加入节点是双亲还

是孩子,而是通过属性在数据中取不同值的数量作

为判断 依 据 预 先 给 定 顺 序.给 定 顺 序 依 据 主 要 是

parent的属性取值不应过多,如果parent中属性过

多会导致所生成条件概率表中条件过多而每个条件

下对应的不 同 概 率 过 少,不 利 于 条 件 概 率 的 判 断;(3)由于节 点 过 多 会 导 致 计 算 过 于 复 杂,因 此 人 为

限制网络中每个节点最大相邻节 点 数maxSize.最

大邻居节点主要通过经验设定,本文中设为4,原因

在于大于4时 大 多 数 节 点 会 出 现 双 亲 节 点 取 值 过

多,造成与上述(2)中相同的CPT条件过多的情况.两个属 性X 与Y 的 信 息 增 益IG(X,Y)可 以 通 过

计算:

IG(X,Y)=H(X)-H(X|Y)=H(Y)-H(Y|X)(10)

H(X),H(X|Y)分别代表随机变量的熵与条件熵.为了推理任意属性X∈U 的数据置信度,需要对属

性X构建 MBBN.算法1描述了为X 建立 MBBN的过程.

算法1. Create_MBBN_for_X.输入:属性X,数据集I,最大邻居数maxSize输出:网络结构mbbn

1.mbbn,parent(X),children(X),none←

2.计算每个IG(Y,Z),Y,Z∈U 且Y≠Z

3.IGLIST(X)←对X′∈U/X按照IG(X,X′)排序

4.FOR EACHX′∈IGLIST(X)

5.IF(|parent(X)|+|children(X)|<maxSize)

6.  THEN IF(|Dom(X)|>|Dom(X′)|)

7.    THENparent(X)=parent(X)∪X′

8.    ELSEchildren(X)=children(X)∪X′

9.    END IF

10.   ELSE none=none∪X′

11. END IF

12.END FOR

13.mbbn=mbbn∪parent(X)

212 计  算  机  学  报 2017年

Page 7: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

14.FOR EACHC∈children(X)

15.parent(C),children(C)←16.IGLIST(C)←对C′∈parent(X)∪non按照

IG(C,C′)排序

17.FOR EACHC′∈IGLIST(C)

18. IF(|parent(C)|+|children(C)|<maxSize)

19. THEN IF(|Dom(C)|>|Dom(C′)|)

20. THENparent(C)=parent(C)∪C′

21. ELSEchildren(C)=children(C)∪C′

22. END IF

23. END IF

24. END FOR

25.END FOR

26.FOR EACHC∈children(X)

27.IGLIST(C)←对C′∈children(X)/

C按照IG(C,C′)排序

28. FOR EACHC′∈IGLIST(C)

29. IF(|parent(C)|+|children(C)|<maxSize)

30. THEN IF(|Dom(C)|>|Dom(C′)|)

31. THENparent(C)=parent(C)∪C′

32. ELSEchildren(C)=children(C)∪C′

33. END IF

34. END IF

35. END FOR

36.mbbn=mbbn∪parent(C)

37.END FOR

38.RETURN mbbn

算法中|Dom(X)|表 示 属 性X 在 数 据 集 中 不

同值的数量.算法分为3个步骤:(1)算法第4到12行,计算属性X 与其余属性的联系并排序,依次将

最相关的属 性 加 入X 节 点 的 双 亲 或 孩 子 集,记 为

parents集合和children集合;(2)算 法 第14至25行使用 第(1)步 相 同 方 法 对children每 个 节 点 在

children集合外的双亲;(3)算法第26至37行.步

骤1方 法 确 定children节 点 在children 集 合 外 的

双亲.完成网 络 结 构 的 构 建 后,需 要 使 用 数 据 计 算

该结 构 下 的 条 件 概 率 表 CPT,当 前 应 用 中 构 建

CPT面临两个 问 题:(1)组 合 爆 炸 问 题.在 没 有 简

化的 情 况 下,MBBN 中 任 意 节 点 CPT 的 大 小 是

∏Y∈parent(X)

|dom(Y)|·|dom(X)|.例如表2中二值属

性节点C的CPT大小为23=8,如果节点属性值数

量为100,则CPT大小为1003.FD检测应用中使用

数据的属性值数量通常较大,会导致CPT过大降低

存储和计算效率;(2)过拟合问题.由于使用同一数

据建立的CPT再对数据自身元组数据置信度进行

推测,推测结果必定会出现过拟合.因此计算元组t数据置信度 时 需 要 将 元 组 自 身 的 影 响 从 对 应CPT中去除,如表1中计算t1的条件概率,其使用的CPT仅由t2~t9统计得到.组合爆炸问题的 解 决 方 法 是

使用简 化 的CPT,即CPT仅 记 录 数 据 中 出 现 的 数

据值组合.由于简化没有改变条件概率的分布情况,因此不会对算法的检测结果产生影响.为解决过拟

合,本文在实现 MBBN时并没有直接生成每个节点

的条件概率,而是统计各属性值出现的频率f,通过

p(a|parent(a))=f(a,parent(a))f(parent(a))

(11)

计算条件概率.在计算元组t的条件概率时,通过减

去其出现的频率对CPT修正去除t本身的影响.算

法2描述了通过网络结构计算CPT的过程.算法对

每个数据元组t∈I,在对应的 MBBN网络结构中记

录其式(11)中频率f(a,parent(a)),f(parent(a)).其中a∈Dom(A),为元组t中A 属性的取值.

算法2.Compute_CPT.输入:数据实例I,mbbn输出:cpt

1.cpt←2.FOR EACHt∈I

3. FOR EACH X∈U

4. FOR EACH A,parent(A)∈MBBN(X)

5. cpt记录f(a,parent(a)),f(parent(a))频率

6. END FOR

7. END FOR

8.END FOR

9.RETURNcpt

定理2. 给定网络结构与数据I,计算CPT的

时间复杂度为O(nm2).其中n为数据元组数,m 为

数据I中不同属性数.证明. 计算CPT实质为统计网络中所有节点

出现的频率f(a,parent(a)).对 单 一 数 据 元 组,统

计该频 率 需 要 对 每 一 个 属 性A∈U 对 应 的 MBBN中每个节点进行一次操作,计算量为Ο(ms),其中s为 MBBN节点数.又因为s<m,则单一元组复杂度

为Ο(m2).对数据I,计算CPT复杂度为Ο(nm2).证毕.

6 实验及分析

本节通过实验对比评估使用数据语义分析置信

度的方法(Data Semantic Confidence,DSC)和统计置

信度的方法(Statistical Confidence,SC).实验算法使

3121期 钟 评等:关系数据中函数依赖检测方法

Page 8: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

用Java编写,运行在使用Intel酷睿i3-3.3GHz的

CPU,4GB内存的 Windows计算机上.实验使用两

个数据集,分 别 是 模 拟 数 据 TPC-H① 和 真 实 数 据

Hospital② 数据.6.1节中分别提出了自动和交互式

的两种应用场景,实验分别比较了DSC和SC方法

对相同FD待 检 测 集 使 用top-K 排 序 进 行 自 动 检

测,以及交互式检测两种应用场景下检测的结果.此外本文同时对CFD集合进行检测,检测结果表明本

文提出的DSC方法同时适用于CFD检测.实验 分 别 使 用 两 个 数 据 集:(1)模 拟 数 据 集

TPC-H:本 实 验 选 取 TPC-H 参 数Scale Factor为

0.002时自动生 成 交 易 记 录.为 了 增 加 表 中 的 函 数

依赖,实验选取生成数据中Order和Lineitem两表

进行join操作,并从选取16个属性构成关于订单和

项目的数据表LineitemOrder,表中包含的元组大小

为11 957;(2)Hospital为美国医院数据,实验选择

了其 中 Outpatient_Imaging_Efficiency表 项,从 该

表中选取11个属性,共包含29 668条记录.实验假

定两个数据集没有错误,实验中根据错误 率e人 为

引入噪声数 据.具 体 方 法 为:数 据 集 中 元 组 数 记 为

n,生成噪声方法为元组t中任意一个属性值t[a],更改为t[a′],其中a,a′∈A 且a≠a′.生 成 噪 声 的

数量为e×n.实验结果中DSC表示数据语义分析置

信度,SC表示统计置信度方法.6.1 自动检测与交互式检测应用

6.1.1 自动检测

在自动检测的应用中,通常应用场景为:给定一

个待检测集,自动发现方法从待检测集中找出判定

为成立的FD集合.考虑FD应用于数据修复时,一

个FD:A→B,往往比FD集合{AC→B,AD→B,

ACD→B,…}更有效.因此为了避免发现重复的冗

余FD,本文限定待检测FD集Σ为最小(Minimal)集合.

本文算法通过 式(6)方 法 计 算FD的 置 信 度 并

排序.算法没有给出直接检测结果,通过人工设定一

个top-K 值,对 返 回 的 前top-K(实 验 中 按 照 百 分

比计算)个FD检测为成立.6.2节中实验比较了不

同数据集合和不同错误率情况下检测精确度.6.1.2 交互式检测

当需要精确 发 现 错 误 数 据 中FD时,无 法 仅 靠

自动检测完成.因此本文提出通过DSC方法对候选

集进行排序 通 过top-K 形 式 返 回 给 用 户 并 由 用 户

交互最终发现所有成立的FD集,并通过6.3节 实

验结果证明使用DSC方法在交 互 式 系 统 中 可 以 有

效降低用户工作量.本文提出了图3中所示的交互

式检测 流 程.在 该 流 程 中,通 过 从 待 检 测 集Σ中 计

算置 信 度 并 排 序,返 回 给 用 户top-K 个 最 小 覆 盖

FD集,记为S.在用户对FD进行确认后,得到用户

检测为成立的FD集F′并加入结果集F.通过F′对

待检测FD集Σ 进 行 剪 枝.即 对 于 任 意 函 数 依 赖

φi∈Σ,如果φi∈F′+,则φi应 当 从 待 检 测 集Σ 中 删

除.其中F′+ 为集 合F′的 闭 包.随 后 通 过 待 检 测 集

再次计算top-K 排序返回给用户交互,直到待检测

集为空时 结 束.对 于 待 检 测 集Σ,每 次 交 互 都 保 证

将至少k个(全 部 不 成 立 时)FD从Σ中 删 除,Σ内

待检测FD数量不会增加,因此该流程最终必 然 会

终止.

图3 函数依赖检测流程

交互式检测方法中,核心部分在于用户确认后

使用检 测 成 立 的FD集 对 原 有 待 检 测 集Σ进 行 剪

枝.剪 枝 按 照 Armstrong规 则(Armstrong rules),使用类似于FD发 现 算 法 中 的 剪 枝 方 法.主 要 针 对

两种情况剪枝:(1)对于函数依赖X→A成立,则所

有XZ→A应当从待检测集中删除;(2)若X→A成

立,则检测XAY→B,只用检测XY→B是否成立.其中X∩Y≠,A,BX,A,BY 且A≠B.6.2 top-K 自动检测精确度评估

为了评估算法对同一待检测数据集检测的精确

性.精确度定义为排序前top-K 个候选中真实成立

FD所占 比 例.实 验 通 过 以 下 方 法 生 成 待 检 测 集:(1)对 带 噪 声 的 数 据 集,使 用 函 数 依 赖 挖 掘 算 法

412 计  算  机  学  报 2017年

①②TPC-H.http://www.tpc.org/tpchhospital compare.http://data.medicare.gov/data/hospi-tal-compare

Page 9: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

TANE,挖掘所有置信度大于θ的函数依赖,实验中

θ=0.95;(2)对 挖 掘 结 果 计 算 最 小 函 数 依 赖 集,得

到待检测 集.实 验 计 算 置 信 度 并 排 序,将 前top-K个FD判定为成立.算 法 同 时 比 较 了DSC和SC两

种置信 度 在 对CFD的 精 确 度.CFD检 测 精 确 度 实

验通过使用文献[25]中方法FACD作为挖掘算法.待检测集的生 成 同FD待 检 测 集 生 成 方 法 相 同.使

用FACD 作 为 挖 掘 算 法 的 原 因 在 于 其 挖 掘 到 的

CFD都是常量CFD,即CFD中各属性取值固定.这样做的原因在于含有变量的CFD可以被看作多个

常量CFD的集合,不便于统计结果.因此 待 检 测 集

合中CFD统一为常量CFD.FD实验结果如图4所示,图中x轴表示top-K

的百分比大小,y轴表示返回top-K 的精确度.图中

可以看到,DSC置信度排序方法在不同错误率下返

回效果均优于置信度方法(SC)排序.其中最显著的

是在hospital数据中,DSC置信度返回前20%内的

FD完全准确.对于图中SC置信度曲线和置信度曲

线随着top-K 数量增大而逐渐趋近,是因为成立的

FD已经基本 发 现 完 毕,在 余 下 部 分 中 没 有 成 立 的

FD,因而两者准确率会趋于一致.图4(e)、(f)中,SC曲线在前10%的候选中精确度较高,但是直到40%候选的排 序 中,都 没 有 包 含 真 实 成 立 的FD,因 此

精确度下降.最后由于随着候选比例增大所有真实

成立的FD最终都会被发现,因此在top-K 为60%时精确度增加.图4(d)在e=0.08时,DSC曲 线 走

向与前3个的不同是由于实验将使用FD发现算法

从数据中发现的近似FD中confidence>0.95的候

选FD作为候选集,在e=0.2~0.6中前10%判断

错误 的FD在 错 误 率 增 大 后 其confidence小 于 了

0.95而没有成为候选集,因此e=0.08时曲线在前

10%上升.CFD实验结果如图5所示.DSC方法在各种条

件下均优于SC方法.图5(a)、(e)中图形 与 相 同 数

据集下的其他结果相差较大,这主要是因为错误率

较小时,生成的待检测CFD集与其他错误率时待检

测集差异较大.同时可以发现统计置信度方法在错

误率小时CFD检测精确度较高,而DSC方法受 错

误率影响较小.DSC随着top-K 增大曲线下降的原

因与FD中相同.图5(h)中两条曲线趋于相同,主要

是由于错误率增大后其候选集也同时增大,但是成

立的CFD数没有改变,因此top-K 同比例下的绝对

数量增大,导致所有成立的FD在top-K=40%时已

经全部发现,因此两条曲线趋于相同.

6.3 交互式检测

为评估交互式方法对人工工作量的节省程度,实验数据集通过对带噪声的数据集,使用函数依赖

挖掘算法TANE,挖掘所有置信度大于θ的函数依

赖作 为 待 检 测 集,实 验 中θ=0.95.交 互 过 程 按 照

6.1.2节中描述 过 程 进 行.其 中 人 工 工 作 量 定 义 为

人工确认FD是 否 成 立 的 次 数.即 实 验 中 每 返 回 一

次top-K 集合,用户的人工工作量增加k.与6.2节 自 动 检 测 方 法 不 同,在 交 互 过 程 中

top-K 选取可能 对 实 验 结 果 产 生 影 响.其 原 因 在 于

当top-K 取值太大时,返回给用户的FD最小覆盖

集合S中可能存在φi,φj∈S,使得φj被φi和已成立

的结果集F 所共同包含,这样φi被用户判定为成立

时φj仍需要 用 户 确 认 造 成 重 复 的 工 作.由 此 可 知,因此top-K 不能 太 大.可 以 看 到,如 果 每 次 仅 返 回

一个数据,即top-K=1重复判断次数最少.但由于

算法模拟的是一个返回给用户的过程,每次仅返回

1个FD可 能 造 成 用 户 交 互 次 数 太 多,因 此 实 验 中

经验选取top-K=5作为返回.在交互式的应用场景中实验对用户确认进行模

拟,并 比 较 用 户 工 作 量(user efforts)和 发 现 的FD比率(即 召 回 率recall)之 间 的 关 系.实 验 结 果 如

图6、图7所示,图6中x轴表示发现成立FD比例,

y轴代表发现 这 些FD所 需 要 的 用 户 工 作 量.实 验

结果证 明 交 互 式 应 用 中 DSC方 法 在 不 同 数 据 集

合以及错误率的情况下用户工作量均少于置信度排

序.图中可以看到,除了(a)、(b)两图中用户工作量

达到50%以 外,其 余 用 户 工 作 量 都 在20%~40%之间,说明DSC方法的交互式检测方法可以有效降

低人的工作量.同时从图中可以看到,SC方法往往

在刚开始 时 效 果 较 好,但 是 随 着recall增 加,其 需

要的用户工作量大幅增加.这是因为置信度隐含的

假设是待检测FD中 不 一 致 数 据 越 少,其 真 实 成 立

可能越大.因此 当FD待 检 测 集 中 少 部 分 满 足 该 假

设的FD被发现后,置信度的检测效果变差.相比之

下使用DSC方 法 的 检 测 并 没 有 受 到 太 大 影 响,在

hospital数据更是保持在线性增长.在hospital数据

中,DSC曲线开始时有一小段效果差于置信度排序,这是由于FD之间互相影响使得有一些FD虽然不成

立,但是其不一致部分数据可能被包含在另外一个真

实成立FD中,因此计算DSC排序靠前所致.CFD的检测同样使用FACD方法挖掘候选集,

使用相同方法进行检测.在图7的CFD检测中可以

发现,DSC曲线在各图中趋势较为一致.而SC曲线

5121期 钟 评等:关系数据中函数依赖检测方法

Page 10: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

图4 FD检测精确度

612 计  算  机  学  报 2017年

Page 11: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

图5 CFD检测精确度

7121期 钟 评等:关系数据中函数依赖检测方法

Page 12: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

图6 用户工作量与FD发现

812 计  算  机  学  报 2017年

Page 13: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

图7 用户工作量与CFD发现

9121期 钟 评等:关系数据中函数依赖检测方法

Page 14: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

则显得不稳定,如 图7(e)表 现 较 好 与DSC曲 线 相

似,但是DSC在大多数情况下优于SC方法,其原因

与图5(e)相 似,都 是 因 为 错 误 率 较 少 时CFD所 产

生的候选集与其他错误率下产生候选集差异较大.另外CFD检测曲线中尾部效果变差的原因主要在

于CFD实验所使用的待检测集中真实成立的CFD所占比例较小,仅占全部成立CFD的20%左右.因

此部分CFD排序靠后所致.6.3 性能分析

本节对 MBBN快 速 构 建 算 法 以 及 检 测 算 法 进

行性能 评 估,结 果 如 图8所 示.MBBN构 建 算 法 主

要比较了简化算法和原算法的时间效率扩展性.检

测算法给出了时间效率的扩展性以及CPT是否简

化时内存占用情况的实验结果,并讨论了检测算法

在大数据场景中的应用方法.图8(a)、(b)为 MBBN快速构建算法和原算法

时间效率比较结果.图中FC-MBBN表示 MBBN快

速构建算法(Fast Constructing MBBN),base-MBBN表示原算法.实验结果表明快速构建算法在时间比

原算法有数量级上的改善.在时间对比中,快速算法

基本上在数百毫秒至数秒内可以完成网络的构建,具有良好的扩展性.

  图8(c)为 检 测 算 法CPT内 存 占 用 比 较 实 验,图中CPT-S(CPT-Simplified)为本文所使用的简化

CPT方法,CPT-O(CPT Original)为没有简化CPT的方法.图中结果显示简化后CPT长度在不同数量

数据下均比原来的CPT长度减少数个数量级.这是

因为简化方法避免了组合爆炸问题,使得大量在数

据中未曾出现的取值组合不需要被CPT记录.图8(d)为整个检测过程的扩展性实验,结果显

示算法在扩展性上并非完全的线性扩展,其主要原

因在于检测算法运行时间主要的数据违反FD部分

的大小所决定,而非受数据元组数的直接影响.虽然

对于大数据应 用 而 言 直 接 计 算FD的DSC置 信 度

耗时较大,但是由于DSC表示的是所有违反FD数

据需要修复的概率均值,因此对于大数据可以通过

对违反FD的 数 据 元 组 进 行 抽 样,通 过 将 式(6)中

V 更换为V 的 样 本V′计 算 近 似 值.在 大 数 据 检 测

中,检测过程由于 并 非 线 性 扩 展,可 能 导 致 计 算 过

程耗时 较 长.由 于 DSC置 信 度 代 表 所 有 违 反FD的数据需 要 修 复 的 概 率 平 均 值,大 数 据 条 件 下 检

测算法可以通过对违反FD部 分 数 据 进 行 抽 样,根

据样 本 计 算 公 式(6)置 信 度 的 近 似 值,降 低 运 行

时间.

图8 算法性能分析结果

022 计  算  机  学  报 2017年

Page 15: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

7 结 论

针对数据修复中在函数依赖和数据都含有错误

的情况下,本文提出了一种基于数据语义分析的函

数依赖置信度计算方法,该方法使用条件概率定义

的数据语义分析置信度作为数据是否含有错误的依

据,同时可应用于自动检测和交互式检测两种场景

使得检测问题可以有效解决.

参 考 文 献

[1] Li Jian-Zhong,Liu Xian-Min.An important aspect of bigdata:Data usability.Journal of Computer Research and

Development,2013,50(6):1147-1162(in Chinese)(李建中,刘显敏.大数据的一个重要方面:数据可用性.计

算机研究与发展,2013,50(6):1147-1162)[2] Chiang F,Miller R J.A unified model for data and constraint

repair//Proceedings of the 2011IEEE 27th International

Conference on Data Engineering(ICDE).Hannover,Germany,

2011:446-457[3] Golab L,Ilyas I F,Beskales G,Galiullin A.On the relative

trust between inconsistent data and inaccurate constraints//

Proceedings of the 2013IEEE International Conference on

Data Engineering (ICDE).Brisbane,Australia,2013:

541-552[4] Volkovs M,Chiang F,Szlicht J,Miller R J.Continuous

data cleaning//Proceedings of the 2014IEEE 30th Interna-

tional Conference on Data Engineering (ICDE).Chicago,

USA,2014:244-255[5] Giannella C,Robertson E.On approximation measures for

functional dependencies.Information Systems,2004,29(6):

483-507[6] Hu Yan-Li,Zhang Wei-Ming,Luo Xu-Hui,et al.Depend-

encies theory and its application for repairing inconsistent

data.Computer Science,2009,36(10):11-15(in Chinese)(胡艳丽,张维明,罗旭辉等.基于数据依赖的数据修复研究

进展.计算机科学,2009,36(10):11-15)[7] Bohannon P,Fan Wenfei,Flaster M,Rastogi R.A cost-

based model and effective heuristic for repairing constraints

by value modification//Proceedings of the 2005ACM SIGMOD

International Conference on Management of Data(SIGMOD’05).

Chicago,USA,2005:143-154[8] Fan Wenfei,Geerts F,Jia Xibei,Kementsietsidis A.Condi-

tional functional dependencies for capturing data inconsistencies.

ACM Transactions on Database Systems,2008,33(2):

Article 6[9] Cong G,Fan Wenfei,Geerts F,et al.Improving data quality:

Consistency and accuracy//Proceedings of the 33rd Interna-

tional Conference on Very Large Data Bases(VLDB).Vienna,

Austria,2007:315-326

[10] Kolahi S,Lakshmanan L V S.On approximating optimum

repairs for functional dependency violations//Proceedings

of the 12th International Conference on Database Theory(ICDT’09).New York,USA,2009:53-62

[11] Beskales G,Ilyas I F,Golab L.Sampling the repairs of

functional dependency violations under hard constraints//

Proceedings of the 36th International Conference on Very

Large Data Bases(VLDB).Singapore,2010:197-207

[12] Wang J,Krishnan S,Franklin M J,et al.A sample-and-clean

framework for fast and accurate query processing on dirty

data//Proceedings of the 2014ACM SIGMOD International

Conference on Management of Data(SIGMOD).New York,

USA,2014:469-480

[13] Chu X,Ilyas I F,Papotti P.Discovering denial constraints//

Proceedings of the 36th International Conference on Very

Large Data Bases(VLDB).Riva del Garda,Italy,2013:

1498-1509

[14] Chu X,Ilyas I F,Papotti P.Holistic data cleaning:Putting

violations into context//Proceedings of the IEEE International

Conference on Data Engineering(ICDE).Brisbane,Australia,

2013:458-469

[15] Fan W,Li J,Ma S,et al.Towards certain fixes with editing

rules and master data.The International Journal on Very

Large Data Bases,2012,21(2):213-238

[16] Liu J,Li J,Liu C,Chen Y.Discover dependencies from

data—A review.IEEE Transactions on Knowledge and Data

Engineering,2012,24(2):251-264

[17] Huhtala Y,Krkkinen J,Porkka P,Toivonen H.TANE:

An efficient algorithm for discovering functional and approxi-

mate dependencies.The Computer Journal,1999,42(2):

100-111

[18] Wyss C,Giannella C,Robertson E L.FastFDs:A heuristic-

driven,depth-first algorithm for mining functional dependencies

from relation instances-extended abstract//Proceedings of the

3rd International Conference on Data Warehousing and

Knowledge Discovery(DaWaK).London,UK,2001:101-

110

[19] Fan Wenfei,Geerts F,Li Jianzhong,Xiong Ming.Discovering

conditional functional dependencies.IEEE Transactions on

Knowledge and Data Engineering,2011,23(5):683-698

[20] Abedjan Z,Schulze P,Naumann F.DFD:Efficient func-

tional dependency discovery//Proceedings of the Internation-

al Conference on Information and Knowledge Management

(CIKM).Shanghai,China,2014:949-958

[21] Papenbrock T,et al.Functional dependency discovery:An

experimental evaluation of seven algorithms//Proceedings of

the 41st International Conference on Very Large Data Bases

(VLDB).Hawaii,USA,2015:1082-1093

[22] FerréS,Rudolph S.A unified hierarchy for functional

dependencies, Conditional functional dependencies and

association rules.Proceedings of the 7th International

1221期 钟 评等:关系数据中函数依赖检测方法

Page 16: 关系数据中函数依赖检测方法 - wowbigdata.com.cn · 似成立的FD或CFD等规则.再使用文献[7-15]方 法对不满足规则的数据进行修复.但这样的方法面

Conference on Formal Concept Analysis(ICFCA).Darmstadt,

Germany,2009:98-113

[23] Madden M G.Evaluation of the performance of the Markov

blanket Bayesian classifier algorithm.Galway:National

University of Ireland,Technical Report:No.NUIG-IT-011002,

2002

[24] Heckerman D.Learning in Graphical Models.Netherlands:

Springer,1998

[25] Li J,Liu J,Toivonen H,et al.Effective pruning for the

discovery of conditional functional dependencies.Computer

Journal,2013,56(3):378-392

ZHONG Ping,born in 1985,Ph.D.

candidate.His research interests focus

on data management.

LI Zhan-Huai,born in 1961,Ph.D.,professor.His

research interests include database theory and technology.

CHEN Qun,born in 1976,Ph.D.,professor.His

research interests include cloud computing and graph data

management.

Background

Data inconsistency has been a serious data quality

problem in relational data.The major method to repair the

inconsistent data is using functional dependencies to modify

data value.

In data repairing researchers have a challenge of repairing

inconsistent data is how to discover valid functional

dependencies from errorous relational data.The existing FD

discovery methods,which are based on statistical confidence

measurement,usually find many approximately correct but

actually invalid FDs.Directly applying these discovered FDs

to repair inconsistent relational data may introduce more data

errors.

In recent years,Inconsistent data repairing focus on

repair model and constraint discovering algorithm.Only a

few researches are related to this issue.Fei Chiang and

Lukasz Golab referred this problem in their repair model.

They both study cost-model repair on the assumption that the

given FD may have errors.Their methods extended cost-

repair model but did not consider whether the data is wrong.

Volkovs M.proposed a supervised method to repair both

data and FD.His study use statistical features of FD as

features for classification.This method have a flaw that the

features selected manually are subjective selected and the

supervised methods need human efforts to label the training

FD.On the other hand,current methods on discovering FDs

from a data which contains errors use confidence measure

based on statistical to find approximate FD.However,this

confidence measure did not consider data semantics;the

discovering result contains plenty of invalid FD.Directly

applying these discovered FDs to repair inconsistent relational

data may introduce more data errors.

To address this issue,we propose a novel approach for

FD confidence measurement based on data semantics analysis.

It first uses conditional probabilities to measure reasonableness

of an attribute value,and then aggregate them for estimating

the confidence level of a given FD.

Our research group has been working on database

research for many years and has cooperation with a number of

prestigious universities such as Northeastern University and

East China Normal University.

This research was supported by the National Basic Research

Program(973Program)of China(No.2012CB316203),the

National Natural Science Foundation of China(Nos.61033007,

61332006,61472321),the Northwestern Polytechnical University

Foundation for Fundamental Research(Nos.3102014JSJ0013,

3102014JSJ0005).