WO2013147172A1 - Cfd更新装置と方法及びデータクレンジング装置と方法並びにプログラム - Google Patents

Cfd更新装置と方法及びデータクレンジング装置と方法並びにプログラム Download PDF

Info

Publication number
WO2013147172A1
WO2013147172A1 PCT/JP2013/059563 JP2013059563W WO2013147172A1 WO 2013147172 A1 WO2013147172 A1 WO 2013147172A1 JP 2013059563 W JP2013059563 W JP 2013059563W WO 2013147172 A1 WO2013147172 A1 WO 2013147172A1
Authority
WO
WIPO (PCT)
Prior art keywords
cfd
data
change
update
storage unit
Prior art date
Application number
PCT/JP2013/059563
Other languages
English (en)
French (fr)
Inventor
亨太 菅野
Original Assignee
日本電気株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2013147172A1 publication Critical patent/WO2013147172A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification

Definitions

  • the present invention relates to a CFD updating apparatus and method, a data cleansing apparatus and method, and a program.
  • Functional dependency is a constraint in which one value set determines the other value set among multiple attributes.
  • [zip code]-> [address] If the zip code is determined, the address is determined.
  • Conditional Function Dependency refers to a constraint in which the other value set is determined only when one value set satisfies a specific condition.
  • CFD ⁇ defined on the relation R is expressed as (X-> Y, tp).
  • X is referred to as LHS ( ⁇ ) (Left Hand Side: premise part), and Y is referred to as RHS ( ⁇ ) (Right Hand Side: consequent part).
  • X and Y are attribute sets, X-> Y is FD on R, tp is a pattern tuple with X and Y attributes It is. tp is a constant or an unnamed variable '_' (matches any value).
  • the X attribute set and Y attribute set in the pattern tp are separated by the symbol
  • FIG. In 1 (Table 1), customers are identified by phone number (country code: CC, area code: AC, phone number PN), name (NM), and address (street STR, city CT, ZIP code ZIP). .
  • CFDs found in the data set in Table 1 are as follows. ⁇ 0: ([CC, ZIP]-> STR, (44, '_'
  • ⁇ 0 ([CC, ZIP]-> STR, (44, '_'
  • '_') is an attribute (CC, ZIP, STR) It is a pattern tuple that combines the constants involved. This is, FD: [CC, ZIP]-> STR States that the ZIP code uniquely determines the street STR for CC 44 customers. ⁇ 1: ([CC, AC]-> CT, (01, 908
  • MH)) Guarantees that for any customer in the US (CC 01) area code (AC) 908, the customer's city (CT) is from the pattern tuple (01,908
  • ID is a tuple ID
  • A, B, and C are attributes.
  • CFD ⁇ 1 ([A, B]-> [C], (1, '_'
  • CFD ⁇ 1 LHS ( ⁇ 1) matches because there are 6 out of 10 cases.
  • CFD ⁇ 1 is found from the data set.
  • the Support value and Confidence value may be compared with arbitrary threshold values. Further, the above-described example of CFD discovery is merely a reference example and is not intended to limit the present invention.
  • Patent Document 1 discloses a method for improving the identification of CFD.
  • the present invention has been made in view of the above problems, and its object is to provide a method, an apparatus, a data cleansing apparatus, and a method that can efficiently update CFD for data editing. It is in.
  • a data update unit that acquires difference information between data before change and data after change, and the difference information is input from the data update unit.
  • the CFD set obtained before the change is input from the CFD storage unit, the CFD is updated based on the difference information of the data, and the CFD corresponding to the data after the change is obtained.
  • a CFD update device including a CFD update unit that obtains a set and stores the set in the CFD storage unit.
  • the difference information between the data before the change and the data after the change is acquired, Input the difference information and the CFD set before change corresponding to the data before change read from the CFD storage unit, and update the CFD difference based on the difference information of the data,
  • a CFD update method for obtaining a CFD set for data and storing it in a CFD storage unit is provided.
  • a data change process for obtaining difference information between data before change and data after change;
  • the CFD set before change obtained for the data before change is input from the CFD storage unit, the CFD set is updated based on the difference information of the data, and the CFD set corresponding to the data after change is obtained.
  • a program for causing a computer to execute CFD update processing to be obtained and stored in the CFD storage unit is provided.
  • a computer-readable recording medium (a non-transitory machine readable medium) on which the program is recorded is provided.
  • a data cleansing apparatus including a presentation unit that notifies a user when a data correction instruction violates CFD.
  • the CFD can be updated efficiently in response to data changes.
  • the present invention also contributes to the practical use of data cleansing using CFD.
  • Embodiment 1 of this invention It is a flowchart which shows the process sequence of Embodiment 1 of this invention. It is explanatory drawing which illustrates Embodiment 1 of this invention typically. It is a figure which shows the structure of Embodiment 2 of this invention. It is a figure which shows the structure of Embodiment 3 of this invention.
  • a data update unit (corresponding to 101 in FIG. 3) that obtains difference information between the data before update and the data after update, and the data update unit Input the difference information, input the pre-update conditional function dependency (CFD) corresponding to the data before update from the CFD storage unit, update the CFD based on the difference information, and store it in the CFD storage unit And a CFD update unit (corresponding to the CFD difference update unit 103 in FIG. 3).
  • CFD conditional function dependency
  • the CFD update unit (corresponding to the CFD difference update unit 103) relates to the data before the change as a CFD set affected by the change based on the difference information. Find CFDs that are not established due to the change among the established CFD sets, delete these from the established CFD set, further obtain CFDs that are newly established by the change, and are affected by the change The CFD set is merged with the CFD set not affected by the change to obtain a CFD set for the changed data.
  • CFD differential update the CFD is updated based on the difference information before and after the data change and the CFD set before the update.
  • the premise and embodiment of the CFD differential update will be described sequentially.
  • Each CFD belonging to the CFD set for the data set D is independent or non-independent with respect to an area related to data editing (change) (for example, a range of rows and columns to be changed in the table). It is classified as either.
  • Non-independent CFD may or may not hold for the changed data.
  • Table 3 showing the relationship between the attributes W, X, Y, and Z, specific description will be given specifically for independent CFD and non-independent CFD with respect to the change of the attribute value. It should be noted that Table 3 is prepared for convenience in order to facilitate understanding, and the following table should of course not be construed as limiting the present invention.
  • FIG. 1 is a flowchart illustrating the CFD difference update process according to the first embodiment.
  • the processing in FIG. 1 is executed by a data processing device (CPU, processor) including a storage device and an input / output device.
  • a data processing device CPU, processor
  • D′ tp be a subset of the changed data set D ′ according to tp in the above equation (12).
  • ⁇ ind is a CFD set independent of tp (the area of tp in the above equation (12) does not overlap)
  • ⁇ dep_lhs is a CFD set in which the tuple pattern tp in the above equation (12) overlaps with LHS
  • ⁇ dep_rhs is a CFD set in which the tuple pattern tp in the above equation (12) overlaps with RHS, It is.
  • mmerge is a merge function (minimal merge) that merges the following three arguments.
  • the first argument ⁇ ind is an independent CFD set for tp in the above equation (12)
  • the second argument findL ( ⁇ dep_lhs, D ', tp) is a function for finding a new CFD set (also referred to as “new_lhs”) with LHS overlapping tp.
  • the third argument findR (D ', tp) is a function that calculates a new CFD set (also called "new_rhs") where RHS overlaps with tp. It is.
  • the functions findL and findR will be described later.
  • step S2 includes sub-steps S21, S22, and S23.
  • ⁇ Sub-step S21> From the changed data set D ′, a new CFD set (referred to as “new_lhs”) in which LHS overlaps the tuple pattern tp is obtained by the function findL.
  • new_lhs a new CFD set in which LHS overlaps the tuple pattern tp is obtained by the function findL.
  • the function findL performs processing for the LHS to find a CFD that overlaps the tuple pattern tp with respect to the subset D′ tp.
  • the tuple pattern tp is added as a constraint to the obtained CFD LHS, and the obtained LHS is used as the return value of the function findL.
  • the first to third arguments of the function findL may be given the address pointer and data length (byte length) of the storage area storing each argument.
  • the function findL will be described with reference to Table 3.
  • the function findL is a CFD of the set ⁇ dep_lhs, for example (W-> Y, ('_'
  • As a CFD that does not hold for the subset D′ tp of the changed data set D ′ for example, (W-> X, ('b'
  • the function findL finds a CFD set (new_lhs) in which the LHS overlaps the tuple pattern tp with respect to the subset D′ tp of the changed data set D ′.
  • a new CFD set (referred to as “new_rhs”) in which RHS overlaps with the tuple pattern tp is obtained from the changed data set D ′.
  • the changed data set D ′ which is the first argument of findR, may be given an address pointer and a data length (byte length) of a storage area (storage) that stores the changed data set D ′.
  • Table 3 from the changed data set D ′, for example, CFD (Z-> W, ('p'
  • a known arbitrary method is used as the calculation method for merging CFD sets.
  • a transition rule (a relation R between a and b with respect to a binary relation R, and a relation between a and c when a relation R between b and c holds) R may be merged so as to be minimal by applying an axiom such as R holds.
  • CFD for the relationship R related to attributes A, B, C, etc.
  • A-> B, B-> C If is established, follow the transition rule, for example, A-> C Is derived. Or A-> B, A-> C, When C, B-> D is obtained, C, B-> D Replace with A-> D. Or (A-> B, ('x'
  • combinations of the above processes are performed.
  • the conversion is automatically performed by an expression conversion tool that performs rule-based pattern matching.
  • minimal CFD means non-redundant CFD (not including redundant CFD) (refer to Patent Document 1 for details of minimal CFD).
  • FIG. 2A schematically shows a state in which the CFD set ⁇ old for the data set D before change is decomposed according to the above equation (10).
  • dep-lhs is a CFD set ⁇ dep_lhs where LHS overlaps tp (see equation (13) above)
  • dep-rhs is a CFD set ⁇ dep_rhs (see the above equation (13)) in which RHS overlaps with tp.
  • FIG. 2B schematically shows the configuration of the CFD set ⁇ new for the changed data set D ′.
  • “Merged” represents a set of CFDs that are combined with other CFDs by applying transition rules.
  • Each CFD set above “merged” represents a CFD set that cannot be combined with other CFDs.
  • “Subset of ind” is a subset of ind (see the above formula (13)) in FIG.
  • “Subset_dep_lhs” is a CFD set obtained by deleting a CFD that does not hold for the subset D′ tp of the post-change data set D ′ from the CFD set of ⁇ dep_lhs in the above equation (13).
  • New_lhs and “new_rhs” are CFD sets obtained in the sub-steps S21 and S22.
  • new_lhs findL ( ⁇ dep_lhs, D ', tp) ... (26)
  • new_rhs findR (D ', tp) ... (27)
  • the CFD merged with other CFDs is classified as “merged”.
  • each CFD of ⁇ dep_lhs is established with respect to the subset D′ tp of the changed data set D ′. If it does not hold, delete from the ⁇ dep_lhs, and perform processing for finding a CFD whose LHS overlaps tp for the subset D'tp.
  • the search range for this CFD discovery is The amount of computation required for CFD discovery processing can be reduced particularly by focusing on D'tp.
  • FIG. 3 is a diagram illustrating the configuration of the data processing apparatus according to the second embodiment.
  • the data processing apparatus 100 functions as a CFD update apparatus, and includes a data update unit 101, a data storage unit 102, a CFD difference update unit 103, and a CFD storage unit 104.
  • the data storage unit 102 includes, for example, a storage device that stores a database or the like (a storage device that stores files instead of the database). Further, the data storage unit 102 may be configured to be provided outside the data processing apparatus 100 such as a database server connected via a network.
  • the data update unit 101 performs data update (105), such as changing the attribute value of data in the data storage unit 102, and acquires difference information 107 between the data before update and the data after update.
  • data update such as changing the attribute value of data in the data storage unit 102
  • the CFD difference update unit 103 finds the difference information 107 output from the data update unit 101, the updated data set 106 read from the data storage unit 102, and the pre-update data read from the CFD storage unit 104.
  • the CFD set 108 pre-update CFD set: ⁇ old of the above formula (13)
  • the CFD is updated based on the difference information 107
  • a new CFD set 109 updated CFD set: the above formula ( 19) is obtained and stored in the CFD storage unit 104.
  • the CFD difference update unit 103 sets the pre-update CFD set 108 according to the above equation (13), ⁇ ind, ⁇ dep_lhs, ⁇ dep_rhs And is stored in a memory (not shown) (RAM: random access memory) or the like in the data processing apparatus 100. Then, findL ( ⁇ dep_lhs, D ′, tp) and findR (D ′, tp) of the above equation (19) are executed, and the execution result is stored in a memory (RAM) (not shown) in the data processing apparatus 100, By executing the function mmerge, a new CFD set ⁇ new is acquired and stored in the CFD storage unit 104.
  • RAM random access memory
  • the processing of the data update unit 101 and the CFD difference update unit 103 may be realized by a program executed on the data processing apparatus 100.
  • a recording medium (a medium such as a semiconductor memory or a magnetic / optical disk) on which the program is recorded is provided.
  • the CFD update unit 103 performs CFD difference update according to the processing procedure shown in FIG.
  • FIG. 4 is a diagram illustrating a configuration of the data cleansing system according to the third embodiment.
  • the data updating unit 201 updates data editing and the like by an input running operation or the like of a user (worker) 213.
  • the user 213 may make corrections based on a data correction proposal (instruction) presented by the correction auxiliary information presentation unit 210.
  • the correction auxiliary information presentation unit 210 presents data mismatch (error), correction instructions, etc. to the user 213 using CFD.
  • the user 213 may reject the rule proposed by the correction auxiliary information presenting unit 210 (support for data correction and the like, and does not impose an obligation to adopt).
  • the correction auxiliary information presentation unit 210 together with the CFD extraction unit 203 and the CFD storage unit 204, functions as profiling means 212 that eliminates illegal data and improves data quality, and automatically proposes a data correction plan to the user 213.
  • the data updated by the data update unit 201 is defined as cleansing target data 202.
  • the cleansing target data 202 may be stored in a work database (work DB) or the like.
  • the CFD extraction unit 203 includes, for example, the CFD difference update unit 103 described with reference to FIG. 3, and includes the CFD 208 obtained for the data before the data correction, the difference information 207 between the data before and after the change, and the after the change.
  • the CFD set 209 for the changed data (cleansing target data) 202 is extracted from the data (cleansing target data) 202 by the CFD difference update described above, and written into the CFD storage unit 204.
  • the correction auxiliary information presentation unit 210 inputs the CFD set 211 corresponding to the changed data read from the CFD storage unit 204, and performs data error estimation and correction support based on the CFD set. If the data correction instruction violates the CFD, the user 213 is notified of this. At that time, it may be shown implicitly that the possibility that the correction is wrong is relatively high.
  • the user corrects the data even in a state of violating CFD (for example, the corrected data is not returned before correction), or correction Cancel (restore the corrected data).
  • CFDs found for the dataset in Table 1 above, ⁇ 1: ([CC, AC]-> CT, (01, 908
  • the correction value (CC, AC, CT) is corrected to (01, 908, NYC), etc.
  • the user returns “NYC” of the modification (01, 908, NYC) to the original “MH”.
  • the data profiling unit 212 repeatedly performs the data profiling and the data correction based on the presentation of the data correction plan by the profiling unit 212, thereby confirming the data little by little (incremental).
  • Data cleansing is performed by modifying it to a new one.
  • the data that has been subjected to data cleansing may be transferred from a work database that stores cleansing target data 202 to a storage database (not shown).
  • the CFD differential update of the first embodiment as the CFD update process, it is possible to shorten the time of CFD update with respect to data correction, and to detect data violation against CFD, suggest data correction, etc.
  • the data cleansing performed can be put into practical use.
  • Data processing device (CFD update device) 101 Data Update Unit 102 Data Storage Unit 103 CFD Difference Update Unit 104 CFD Storage Unit 105 Data Update 106 Updated Data Set 107 Difference Information 108 Pre-Update CFD 109 CFD after update 200 Data Cleansing Device 201 Data Update Unit 202 Cleansing Target Data 203 CFD Extraction Unit 204 CFD Storage Unit 205 Data Update 206 Updated Data 207 Difference Information 208 Pre-Update CFD 209 Update CFD 210 Correction auxiliary information presentation unit 211 CFD set 212 Profiling means 213 User (worker)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 本発明は、データの変更に対して効率的にCFDを更新可能とする装置、方法を提供する。更新データに関して、更新前と更新後のデータの差分情報(107)を取得するデータ更新部(101)と、前記データ更新部(101)からの差分情報(107)と、更新前に対応する旧CFD(108)とを入力し、前記差分情報に基づきCFDを差分更新するCFD更新部(103)を備える。

Description

CFD更新装置と方法及びデータクレンジング装置と方法並びにプログラム
(関連出願についての記載)
 本発明は、日本国特許出願:特願2012-082115号(2012年3月30日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、CFD更新装置と方法及びデータクレンジング装置と方法並びにプログラムに関する。
 関数従属性(Functional Dependency: FD)は、複数の属性間において、一方の値集合によって他方の値集合が決定される制約をいう。例えば[郵便番号] --> [住所]:郵便番号が決まれば住所が決まる。これに対して、条件付関数従属性(Conditional Functional Dependency: CFD)は、一方の値集合が特定の条件を満たすときに限り、他方の値集合が決定される制約をいう。例えば、[商品種別、国=日本] --> [税率]:商品種別によって税率が決まる(ただし、国が日本の場合のみ、国が日本:Condition、商品種別 --> 税率:Functional Dependency)。
 はじめにCFDの表記について非特許文献1等に基づき概説しておく。関係R上で定義されるCFD ψを(X --> Y, tp)と表記する。ここで、XをLHS(ψ)(Left Hand Side:前提部)、YをRHS(ψ)(Right Hand Side:帰結部)という。
X、Yは属性集合、
X --> YはR上のFD、
tpは、XとYの属性を有するパタンタプル(pattern tuple)
である。tpは、定数、又は名前なし変数‘_’(任意の値にマッチする)である。パタンタプルtp内のX属性集合とY属性集合を記号||で分離する。
 例えば特許文献1のFig.1(表1)においては、顧客を電話番号(国コード:CC、エリアコード:AC、電話番号PN)、名前(NM)、番地(ストリートSTR、都市CT、ZIPコードZIP)で顧客を特定する。
Figure JPOXMLDOC01-appb-T000001
 上記表1のデータセットで発見されるCFDとして例えば以下のようなものがある。
φ0:([CC, ZIP] --> STR,(44, ‘_’ || ‘_’))
φ1:([CC, AC] --> CT,(01, 908 || MH))
φ2:([CC, AC] --> CT,(44, 131|| EDI))
φ3:([CC, AC] --> CT,(01, 212|| NYC))
 φ0:([CC,ZIP] --> STR,(44,‘_’||‘_’))において、(44,‘_’||‘_’)は属性(CC、 ZIP、 STR)に対して関与している定数を結合するパタンタプルである。これは、
FD:[CC, ZIP] --> STR
において、CC=44の顧客に関してZIPコードが一義的にストリートSTRを決定することを述べている。
φ1:([CC, AC] --> CT, (01, 908 || MH))
は、米国(CC=01)のエリアコード(AC)908の任意の顧客に関して顧客の都市(CT)は、パタンタプル(01,908||MH)から、MH(Murray-Hill)であることを保証している(特許文献1参照)。なお、タプルは関係表の属性を列とした場合の行に対応する。
 CFDの発見処理(抽出処理)の一例を以下の表2を例に説明する。IDはタプルID、A、B、Cは属性である。
Figure JPOXMLDOC01-appb-T000002
 上記表2の関係のデータセットにおいて、例えばCFD
φ1:([A, B] -->  [C], (1, ‘_’||‘_’))   ...(1)
 (Aの値が1の場合、BによってCが決定される)
が抽出される。表2において、ID=1、2、3と、ID=8、9、10がこのルールに一致する。
 CFD φ1のLHS(φ1)が一致するのは、10件中6件存在するので、
Support値=LHS一致数/全数=6/10=0.6  ...(2)
となる。このCFD φ1のLHSが一致する6件のうち6件のRHSの値が一致しているので、
Confidence値=ルール一致数/LHS一致数=6/6=1.0  ...(3)
となる。この場合、上記データセットからCFD φ1が発見される。なお、CFDの発見において、Support値、Confidence値をそれぞれ任意の閾値と比較するようにしてもよい。また、上記したCFD発見の例はあくまで参考例であり、本発明を制限するためのものでないことは勿論である。
 上記したCFDは、データクレンジングにおいて、例えばデータの不整合の検出や修復を行う場合のルールとして用いられる(特許文献1、非特許文献2参照)。なお、CFDの発見は、指数関数的な計算複雑度を伴うことが知られており、特許文献1には、CFDの同定の向上を図る方法が開示されている。
米国特許出願公開第2010/0250596号明細書
WENFEI FAN et al., "Conditional Functional Dependencies for Capturing Data Inconsistencies", Journal ACM Transactions on Database Systems (TODS) Volume 33 Issue 2, June 2008 Article No. 6, [平成23年10月1日検索]、インターネット(URL:http://homepages.inf.ed.ac.uk/fgeerts/pdf/tods-cfd.pdf) Wenfei Fan et al., "Interaction between Record Matching and Data Repairing", Proceedings of the 2011 ACM SIGMOD International Conference on Management of data, Pages 469-480 [平成23年10月1日検索]、インターネット(URL:http://homepages.inf.ed.ac.uk/sma1/pubs/sigmod2011.pdf)
 以下に関連技術の分析を与える。
 所与のデータセット(データ集合)に対して、既にCFD集合が発見されている状況下で、当該データセットの一部が編集等で更新された場合(例えば、ある属性の値が変更された場合)、変更後のデータセットに対して、再度、CFDを発見することになる。変更後のデータセット(全データ)に対して、再度CFDを発見することは、編集目前の当該データセットに対してCFDを発見するのに要した演算量(CFD抽出処理)と同様に、多大の演算量を要する。このため、更新等が行われるデータセットに対してCFDを用いたデータクレンジングの実用化を困難なものとしている。
 そこで、本発明は、上記課題に鑑みて創案されたものであって、その目的はデータ編集に対して効率的にCFDを更新可能とする方法と、装置並びにデータクレンジング装置、方法を提供することにある。
 本発明のいくつかの側面の1つによれば、データの更新にあたり、変更前のデータと変更後のデータの差分情報を取得するデータ更新部と、前記データ更新部から前記差分情報を入力し、前記変更前のデータに対して求められた、変更前のCFD集合をCFD記憶部から入力し、前記データの差分情報に基づき、CFDを差分更新して、前記変更後のデータに対応するCFD集合を求め前記CFD記憶部に格納するCFD更新部と、を備えたCFD更新装置が提供される。
 本発明の別の側面によれば、データ処理装置によりデータ記憶部のデータを更新するにあたり、変更前のデータと変更後のデータの差分情報を取得し、
 前記差分情報と、CFD記憶部から読み出された、変更前のデータに対応する変更前のCFD集合とを入力し、前記データの差分情報に基づき、CFDを差分更新して、前記変更後のデータに対するCFD集合を求めCFD記憶部に記憶するCFD更新方法が提供される。
 本発明の別の側面によれば、データ記憶部のデータの更新にあたり、変更前のデータと変更後のデータの差分情報を取得するデータ変更処理と、
 前記変更前のデータに対して求められた変更前のCFD集合をCFD記憶部から入力し、前記データの差分情報に基づき、CFDを差分更新して、前記変更後のデータに対応するCFD集合を求め前記CFD記憶部に格納するCFD更新処理と、をコンピュータに実行させるプログラムが提供される。本発明によれば、該プログラムを記録したコンピュータ読み出し可能な記録媒体(a non-transitory machine readable medium)が提供される。
 本発明の別の側面によれば、データ修正指示がCFDに違反する場合、その旨をユーザに通知する提示部を備えたデータクレンジング装置(方法)が提供される。
 本発明によれば、データの変更に対して効率的にCFDを更新可能とする。また本発明によれば、CFDを用いたデータクレンジングの実用化に貢献する。
本発明の実施形態1の処理手順を示す流れ図である。 本発明の実施形態1を模式的に説明する説明図である。 本発明の実施形態2の構成を示す図である。 本発明の実施形態3の構成を示す図である。
 本発明の好ましい形態の1つによれば、データの更新にあたり、更新前のデータと更新後のデータの差分情報を取得するデータ更新部(図3の101に対応)と、前記データ更新部から差分情報を入力し、更新前のデータに対応する更新前の条件付関数従属性(CFD)をCFD記憶部から入力し、前記差分情報に基づき、CFDを差分更新し前記CFD記憶部に格納するCFD更新部(図3のCFD差分更新部103に対応)とを備える。
 本発明の好ましい形態の1つによれば、前記CFD更新部(CFD差分更新部103に対応する)は、前記差分情報に基づき、前記変更によって影響を受けるCFD集合として、前記変更前のデータに関して成立していたCFD集合のうち前記変更により成立しなくなるCFDを求め、これらを前記成立していたCFD集合から削除し、さらに、前記変更により新たに成立するCFDを求め、前記変更によって影響を受けるCFD集合と、前記変更によって影響を受けないCFD集合と併合して、変更後のデータに対するCFD集合を得る。
<CFDの差分更新>
 CFDの差分更新は、データの変更前と後の差分情報と、更新前のCFD集合に基づき、CFDを更新する。以下、CFDの差分更新についてその前提、実施形態を順次説明する。
 データ集合Dに対するCFD集合に属する各CFDは、データ編集(変更)に関係する領域(例えば表の変更対象の行、列の範囲)に対して、独立である、あるいは、非独立である、のいずれかに分類される。
・独立なCFDは、変更後のデータに対して必ず成立する。
・非独立なCFDは、変更後のデータに対して成立する場合と成立しない場合がある。
 属性の値の変更に対して、独立なCFD、非独立なCFDについて、属性W、X、Y、Zの関係を示した表3を参照して具体的に説明する。なお、表3は、あくまで理解を容易とするために便宜的に作成したものであり、以下の表は、本発明を制限するものとして解釈すべきでないことは勿論である。
Figure JPOXMLDOC01-appb-T000003
 表3のID=3において、属性Wの値を、‘a’から‘b’に編集(変更)し、変更(編集)後データ集合D’を得る(変更後の値として、表3の属性WのID=3の「 --> b」参照)。
 変更前データ集合Dにおいて、属性W=‘a’の領域は、表3の1行目から3行目(ID=1、2、3)、
 変更前データ集合Dにおいて、属性W=‘b’の領域は、表3の4行目から6行目(ID=4、5、6)、
 変更後のデータ集合D’において属性W=‘a’の領域は、表3の1行目から2行目(ID=1、2)、
 変更後のデータ集合D’において属性W=‘b’の領域は、表3の3行目から6行目(ID=3、4、5、6)
である。
<独立なCFD>
 領域W=‘a’又は‘b’に対して、独立なCFDとして例えば以下のものがある。
(X --> Y, (‘_’||‘_’))   ...(4) 
(W --> Y, (‘c’||‘q’))   ...(5)
 上式(4)、(5)の各CFDは、上記変更に影響を受けずに成立する。すなわち、上式(4)のCFDにおいて、属性Xの値とYの値の関係は、変更(属性Wの値を‘a’から‘b’に変更)に影響されずに、成立する。
 また、上式(5)のCFDにおいて、W=‘c’、Y=‘q’は、表1のID=7~9のとおり、変更(属性Wの値をaからbに変更)に影響されず成立する。
<非独立なCFDへの影響>
 表3のデータ集合において、1行目から6行目の領域(W=‘a’or‘b’)に対して、非独立なCFDへの影響は、例えば以下のように、
・変更後においても成立する、
・変更後においては部分的に成立する、
・変更後に全く成立しなくなる、
等がある。
(W --> Y, (‘_’||‘_’))   ...(6)
 上式(6)は、ID=3の属性Wにおいて属性値を‘a’から‘b’に変更後においても成立する。
(W --> X, (‘_’||‘_’))    ...(7)
 変更前に得られる上式(7)は、変更後においては部分的に成立する。
 例えば、
(W --> X, (‘a’||‘p’))   ...(8)
(W --> X, (‘c’||‘r’))   ...(9)
は、変更後においても全て成立する。
 しかしながら、 
(W --> X, (‘b’||‘q’))     ...(10)
は変更後に成立しなくなる。すなわち、上式(10)は、変更前にID=4、5、6に対して成立していたが、
Wの属性値を‘b’に変更したID=3に関して、
W=‘b’ --> X=‘p’
となり、
CFD:(W --> X, (‘b’||‘q’))
は成り立たなくなる。
 また表3において、変更後に全く成立しなくなる例として例えば式(11)がある。
(W --> Z, (‘a’||‘q’))    ...(11)
 変更前のデータ集合に対する属性値の変更による影響として、
(A)前記変更前のデータ集合に対して成立していたが、前記変更後のデータ集合に対して成立しなくなるCFDの発生(これらのCFDは前記変更前のデータ集合に対して成立していたCFD集合から削除される)、
(B)変更により、新たに成立するCFDの発生、
を求め、これらを、変更によって影響を受けないCFDと併合(マージ)して、変更後データ集合に対するCFD集合を得る。
<CFD差分更新の処理手順:実施形態1>
 図1は、実施形態1のCFD差分更新処理を説明する流れ図である。図1の処理は、記憶装置、入出力装置を備えたデータ処理装置(CPU、プロセッサ)で実行させる。以下では、説明の簡単のため、表3のデータ集合において、属性WのID=3の値‘a’を値‘b’に編集(変更)し、変更後データ集合D’を得るものとする。この場合、変更前と変更後のデータの差分情報は、「属性WのID=3の値‘a’を‘b’とする。」である。
 ここで、新たに、
 タプルパタンtp:(W = ‘a’ or ‘b’)   ... (12)
を定義し、当該タプルパタンtpに従うデータ集合Dの部分集合(サブセット)をDtpとする。
 表3の場合、上式(12)のtpに従うデータ集合Dの部分集合Dtpは、属性WのID=1からID=6の領域に対応する。
 また、上式(12)のtpに従う変更後のデータ集合D’の部分集合をD’tpとする。
 表3の場合、tp:(W = ‘a’ or ‘b’)に対応する部分集合D’tpは、属性WのID=1からID=6である。
<ステップS1>
 更新前のデータ集合Dに対するCFD集合(「Σold」と表記する)を次式(13)のように分解する。
Σold =Σind +Σdep_lhs + Σdep_rhs   ...(13)
 上式(13)において、
Σindは、tpに対して独立なCFD集合(上式(12)のtpと領域が重なっていない)、
Σdep_lhsは、上式(12)のタプルパタンtpがLHSと重なるCFD集合、
Σdep_rhsは、上式(12)のタプルパタンtpがRHSと重なるCFD集合、
である。
<Σindについて>
 表3において、例えばCFD
 (Y --> Z(‘_’||‘_’))      ...(14)
である。すなわち表3の更新前データ集合において、属性YとZの値の関係は、3行目の属性Wの値‘a’を値‘b’に変更後も、影響を受けない(タプルパタンtpに対して独立なCFD集合)。
<Σdep_lhsについて>
 表3において、LHS(前提部)がタプルパタンtp(W=‘a’or‘b’)と重なるCFD集合Σdep_lhsとして、例えば、
(W --> Y, (‘_’||‘_’))      ...(15)
(W --> X, (‘_’||‘_’))      ...(16)
等がある。
<Σdep_rhsについて>
 RHS(帰結部)がタプルパタンtp:(W=‘a’or‘b’)と重なるCFD集合Σdep_rhsとして、例えば、
(X --> W, (‘p’||‘a’))   ...(17)
(Y --> W, (‘_’||‘_’))   ...(18)
等がある。
<ステップS2>
 更新後データD’に対する新しいCFD集合Σnewを以下の式(19)にしたがって導出する。
Σnew = mmerge(Σind, findL(Σdep_lhs, D’, tp), findR(D’, tp))  ...(19)
 式(19)において、
mmergeは、以下の3つの引数をマージするマージ関数(minimal merge)である。
第1引数のΣindは、上式(12)のtpに対して独立なCFD集合、
第2引数のfindL(Σdep_lhs, D', tp)は、LHSがtpと重なる新たなCFD集合(「new_lhs」ともいう)を求める関数、
第3引数のfindR(D’, tp)は、RHSがtpと重なる新たなCFD集合(「new_rhs」ともいう)を求める関数、
である。なお、関数findL、findRについては後述する。
 図1に示すように、ステップS2は、サブステップS21、S22、S23からなる。
<サブステップS21>
 変更後データ集合D’から、関数findLにより、LHSがタプルパタンtpと重なる新しいCFD集合(「new_lhs」という)を求める。
<findL>
 上式(17)の関数findL(Σdep_lhs, D', tp)は、第1の引数に設定したCFD集合Σdep_lhsの各CFDについて、変更後データ集合D’の部分集合D’tpに対して成立しているか否かを評価し、成立しない場合、当該CFD集合Σdep_lhsから削除する。
 そして、関数findLは、部分集合D’tpに対して、LHSが、上記タプルパタンtpと重なるCFDを発見する処理を行う。その際、得られたCFDのLHSに、上記タプルパタンtpを制約として追加し、得られたLHSを、関数findLの戻り値とする。なお、関数findLの第1乃至第3の引数は、各引数を格納する記憶領域のアドレスポインタとデータ長(バイト長)等を与えるようにしてもよい。
 表3に即して、関数findLを説明する。関数findLは、集合Σdep_lhsのCFD、例えば、
(W --> Y, (‘_’||‘_’))  ...(20)
(W --> X, (‘_’||‘_’))  ...(21)
のうち変更後データ集合D’の部分集合D’tpに対して成立しなくなるCFDとして、例えば、
(W --> X, (‘b’||‘q’))    ...(22)
をΣdep_lhsから削除する。
 次に、関数findLは、変更後データ集合D’の部分集合D’tpに対して、LHSがタプルパタンtpと重なるCFD集合(new_lhs)を発見する。
 表3の場合、変更後データ集合D’の部分集合D’tp(属性WのID=3の値=‘b’)に、LHSが重なるCFDとして、例えばCFD
(W --> Z, ( ‘b’||‘q’))   ...(23)
がある。
 すなわち、変更前のデータ集合D(その部分集合Dtp)において、
ID=3では、W=a、Z=q、
ID=4~6では、W=b、Z=q
であったが、変更後のデータ集合D’の部分集合D’tpでは、
ID=3~6について、
(W --> Z, (‘b’||‘q’))
が成り立つ。この場合、
W --> Zにおいて、パタンタプル(‘b’||‘q’)の‘b’がLHSの制約として追加されている。
<サブステップS22>
 次に、変更後データ集合D’から、RHSがタプルパタンtpと重なる新しいCFD集合(「new_rhs」という)を求める。
<findR>
 上式(17)のfindR(D’, tp)は、RHSがtpと重なる新しい集合を求める。findRの第1引数である変更後データ集合D’は、変更後データ集合D’を格納する記憶領域(ストレージ)のアドレスポインタとデータ長(バイト長)等を与えるようにしてもよい。
 表3の場合、findRは、RHSが、W=‘_’,W=‘a’,W=‘b’となるそれぞれの場合について、変更後データ集合D’から新たなCFD集合を求める。RHSを決定するのに最適なLHSの条件は、部分集合D’tp(例えば表3の場合ID=3のW)の外の領域を見ないと決定することができない。このため、基本的に、全データ(変更後のデータ集合D’全体)の走査が必要となる。表3において、変更後データ集合D’から、例えばCFD
(Z --> W, (‘p’||‘a’))  ...(24)
(Z --> W, (‘q’||‘b’))  ...(25)
が求まる。
<サブステップS23>
 次に、上式(15)のマージ関数mmergeを用いて、引数である3つのCFD集合
Σind、
findL(Σdep_lhs, D’, tp)、
findR(D’, tp)
をマージする(ステップS23)。
 関数mmergeにおいて、CFD集合の併合の算法自体は、公知の任意のものが利用される。例えば、関数mmergeにおいて、CFD集合のマージの際に、推移律(2項関係Rに関してaとbの間に関係R、bとcの間に関係Rが成り立つとき、aとcの間に関係Rが成り立つ)等の公理を適用して、ミニマル(minimal)となるようにマージするようにしてもよい。
 例えば属性A、B、C等に関する関係Rに関してCFD
A --> B、
B --> C、
が成立している場合、推移律にしたがい、例えば、
A --> C
が導出される。あるいは、
A --> B、
A --> C、
C, B --> Dが得られているとき、
C, B --> Dを
A --> Dに置き換える。あるいは、
(A --> B, (‘x’ || ‘1’))、
(A --> B, (‘y’ || ‘2’))
に対して、属性Aのとり得る値の範囲=[x,y]を併合して、
(A --> B, (‘_’ || ‘_’))
を得る。あるいは、上記各処理の組み合わせ等が行われる。上記変換は、ルールベースのパタン照合を行う式変換ツール等で自動で行われる。なお、minimal CFDとは、非冗長なCFD(冗長なCFDを含まない)をいう(minimal CFDの詳細は特許文献1等が参照される)。
 図1において、サブステップS21、S22の実行順は、S23の前であれば、どちらが先であってもよい。
<旧CFD集合の分解の例>
 図2(A)は、変更前データ集合Dに対するCFD集合Σoldを、上式(10)に従って分解した状態を模式的に示している。
indは、上式(12)で定義されたタプルパタンtp:(W = ‘a’ or ‘b’)に対して独立なΣind(上式(13)参照)、
dep-lhsは、LHSがtpと重なるCFD集合Σdep_lhs(上式(13)参照)、
dep-rhsは、RHSがtpと重なるCFD集合Σdep_rhs(上式(13)参照)である。
<新CFD集合の構成例>
 図2(B)は、変更後データ集合D’に対するCFD集合Σnewの構成を模式的に示している。図2(B)において、
「merged」は、推移律等の適用により他のCFDと1つにまとめられたCFDの集合を現している。
「merged」の上の各CFD集合は、他のCFDと1つにまとめられないCFD集合を現している。「subset of ind」は、図2(A)のind(上式(13)参照)の部分集合(subset)である。「subset_dep_lhs」は、上式(13)のΣdep_lhsのCFD集合から、変更後データ集合D’の部分集合D’tpに対して成立しないCFDを削除したCFD集合である。
「new_lhs」、「new_rhs」は、上記サブステップS21、S22で求めたCFD集合である。
new_lhs = findL(Σdep_lhs, D’, tp)      ...(26)
new_rhs = findR( D’, tp)           ...(27)
 ただし、他のCFDと1つにマージされたCFDは「merged」に区分される。
 本実施形態によれば、変更後データ集合D’からLHSがtpと重なる新しいCFD集合new_lhsを求めるにあたり、Σdep_lhsの各CFDについて、変更後データ集合D’の部分集合D’tpに対して成立しているか否かを評価し、成立しない場合、当該Σdep_lhsから削除し、部分集合D’tpに対してLHSがtpと重なるCFDを発見する処理を行うが、このCFD発見の探索範囲は、部分集合D’tpに絞られ、CFD発見処理に要する演算量を特段に削減することができる。
<実施形態2>
 実施形態2では、上記実施形態1で開示したCFD差分更新処理の実現に好適なデータ処理装置の構成の一例を説明する。図3は、実施形態2のデータ処理装置の構成を示す図である。このデータ処理装置100は、CFD更新装置として機能し、データ更新部101、データ記憶部102、CFD差分更新部103、CFD記憶部104を備えている。
 データ記憶部102は、例えばデータベース等を格納するストレージ装置等からなる(なお、データベースの代わりにファイルを記憶するストレージ装置であってもよい)。また、データ記憶部102は、例えばネットワークを介して接続するデータベースサーバ等、データ処理装置100の外部に備えた構成としてもよい。
 データ更新部101は、データ記憶部102内のデータの属性値の変更等、データの更新(105)を行い、更新前のデータと更新後のデータの差分情報107を取得する。
 CFD差分更新部103は、データ更新部101から出力された差分情報107と、データ記憶部102から読み出した更新後のデータセット106と、CFD記憶部104から読み出した更新前のデータに対して発見されたCFD集合108(更新前CFD集合:上式(13)のΣold)を入力し、差分情報107に基づき、CFDを差分更新して、新たなCFD集合109(更新後CFD集合:上式(19)のΣnew)を求め、CFD記憶部104に格納する。すなわち、CFD差分更新部103は、更新前CFD集合108を上式(13)に従い、
Σind、
Σdep_lhs、
Σdep_rhs
に分割し、データ処理装置100内の不図示のメモリ(RAM:ランダムアクセスメモリ)等に記憶する。そして、上式(19)のfindL(Σdep_lhs, D’, tp)、findR( D’, tp)を実行し、実行結果をデータ処理装置100内の不図示のメモリ(RAM)等に記憶し、関数mmergeを実行することで、新たなCFD集合Σnewを取得し、CFD記憶部104に格納する。
 実施形態2によれば、データ更新部101、CFD差分更新部103の処理は、データ処理装置100上で実行されるプログラムで実現してもよいことは勿論である。また該プログラムを記録した記録媒体(半導体メモリ、磁気/光ディスク等の媒体)が提供される。CFD更新部103は、図1に示した処理手順にしたがって、CFDの差分更新を行う。
<実施形態3>
 実施形態3として、データクレンジングシステム(装置)を説明する。図4は、実施形態3のデータクレンジングシステムの構成を示す図である。図4を参照すると、データ更新部201において、ユーザ(作業者)213の入力走操作等により、データの編集等の更新を行う。データの編集等にあたり、ユーザ213は、修正補助情報提示部210によって提示されるデータ修正提案(指示)等に基づき、修正するようにしてもよい。修正補助情報提示部210では、CFDを用いてデータの不整合(誤り)、修正指示等をユーザ213に提示する。なお、ユーザ213は、修正補助情報提示部210によって提案されたルールを棄却してもよい(あくまでデータ修正等の支援であり、採用する義務を課するものではない)。
 修正補助情報提示部210は、CFD抽出部203、CFD記憶部204とともに、不正データを排除しデータ品質を向上させるプロファイリング手段212として機能し、ユーザ213にデータ修正案の提案を自動で行う。
 データ更新部201で更新されたデータを、クレンジング対象データ202とする。なお、特に制限されないが、クレンジング対象データ202を、作業用データベース(ワークDB)等に格納する構成としてもよい。
 CFD抽出部203は、例えば図3を参照して説明したCFD差分更新部103からなり、データ修正前のデータに対して求めたCFD208と、変更前と変更後のデータの差分情報207、変更後データ(クレンジング対象データ)202から、前述したCFD差分更新により、変更後データ(クレンジング対象データ)202に対するCFD集合209を抽出し、CFD記憶部204に書き込む。修正補助情報提示部210は、CFD記憶部204から読み出された変更後データに対応するCFD集合211を入力し、該CFD集合に基き、データの誤り推定、修正支援を行う。データ修正指示がCFDに違反する場合、その旨をユーザ213に通知する。その際、当該修正が間違っている可能性が相対的に高いことを暗喩的(implicit)に示すようにしてもよい。
 修正補助情報提示部210によって提示されるデータ修正提案に対して、ユーザは、CFDに違反した状態でもデータの修正を行う(例えば修正したデータを修正前に戻すことはしない)か、あるいは、修正をとりやめる(修正したデータを元に戻す)。例えば上記表1のデータセットに対して発見されたCFD、
φ1:([CC, AC] --> CT,(01, 908 || MH))
から、属性値(CC, AC, CT)の修正(01, 908, NYC)等に対して、当該修正は、(01, 908, MH)ではないかと、修正補助情報提示部210から不図示の表示画面等に提示される。この場合、ユーザは例えば該修正(01, 908, NYC)の「NYC」を元の「MH」に戻す。
 このように、実施形態3によれば、プロファイリング手段212によるデータプロファイリングの実行と、プロファイリング手段212によるデータ修正案の提示に基づくデータの修正を繰り返すことにより、データを少しずつ(incremental)に、確からしいものに修正していくことで、データクレンジングを行う。特に制限されないが、データクレンジングが終了したデータを、クレンジング対象データ202を格納する作業用データベースから、図示されない保管用のデータベースに移し替える構成としてもよい。
 実施形態3によれば、CFD更新処理として実施形態1のCFD差分更新を用いることで、データ修正に対するCFD更新の時間の短縮を図ることができ、CFDに対するデータ違反検出、データ修正の提案等を行うデータクレンジングの実用化可能としている。
 なお、上記特許文献及び非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
100 データ処理装置(CFD更新装置)
101 データ更新部
102 データ記憶部
103 CFD差分更新部
104 CFD記憶部
105 データ更新
106 更新後のデータセット
107 差分情報
108 更新前CFD
109 更新後CFD
200 データクレンジング装置
201 データ更新部
202 クレンジング対象データ
203 CFD抽出部
204 CFD記憶部
205 データ更新
206 更新後のデータ
207 差分情報
208 更新前CFD
209 更新後CFD
210 修正補助情報提示部
211 CFD集合
212 プロファイリング手段
213 ユーザ(作業者)

Claims (13)

  1.  データの更新にあたり、変更前のデータと変更後のデータの差分情報を取得するデータ更新部と、
     前記データ更新部から前記差分情報を入力し、前記変更前のデータに対して求められた変更前のCFD(Conditional Functional Dependency)集合をCFD記憶部から入力し、前記差分情報に基づき、CFDを差分更新して、前記変更後のデータに対応するCFD集合を求め前記CFD記憶部に格納するCFD更新部と、
     を備えたことを特徴とするCFD更新装置。
  2.  前記CFD更新部は、前記差分情報に基づき、データの属性値の変更による影響を受けるCFD集合として、
     前記変更前のデータに関して成立していたCFD集合のうち前記変更により成立しなくなるCFDを求め、これらを前記CFD集合から削除し、さらに、前記変更により新たに成立するCFDを求め、
     前記変更によって影響を受けるCFD集合と、前記変更によって影響を受けないCFD集合と、を併合して、前記変更後のデータに対するCFD集合を得る、ことを特徴とする請求項1記載のCFD更新装置。
  3.  前記CFD更新部は、前記CFD記憶部に記憶されている前記変更前のデータに対するCFD集合を読み出し、
     前記変更に対して独立な第1のCFD集合と、
     前記変更前後の属性値のパタン(tp)にLHS(Left Hand Side)が重なる第2のCFD集合と、
     前記変更前後の属性値パタンにRHS(Right Hand Side)が重なる第3のCFD集合と、に分解し、
     前記第2のCFD集合の各CFDが前記変更により成立するか否かを評価し、成立しないCFDを前記第2のCFD集合から削除し、さらに、前記変更によりLHSが前記変更後の属性値のパタン(tp)に重なるCFDを新たに抽出し、前記新たなCFDと、前記成立しないCFDを削除した第2のCFD集合を含めて第4のCFD集合とし、
     前記変更前又は前記変更後の属性値のパタン(tp)にRHSが重なる第5のCFD集合を求め、
     前記第1のCFD集合、前記第4のCFD集合、前記第5のCFD集合を併合する、ことを特徴とする請求項1記載のCFD更新装置。
  4.  データ処理装置によりデータ記憶部のデータを更新するにあたり、
     変更前のデータと変更後のデータの差分情報を取得し、
     前記差分情報と、CFD記憶部から読み出された、変更前のデータに対応する変更前のCFD(Conditional Functional Dependency)集合とを入力し、前記差分情報に基づき、CFDを差分更新して、前記変更後のデータに対するCFD集合を求めCFD記憶部に記憶する、
     ことを特徴とするCFD更新方法。
  5.  前記CFDの更新にあたり、
     前記差分情報に基づき、前記変更によって影響を受けるCFD集合として、
     前記変更前のデータに関して成立していたCFD集合のうち前記変更により成立しなくなるCFDを求め、これらを前記CFD集合から削除し、さらに、前記変更により新たに成立するCFDを求め、
     前記変更によって影響を受けるCFD集合と、
     前記変更によって影響を受けないCFD集合と併合して、変更後のデータに対するCFD集合を得る、ことを特徴とする請求項4記載のCFD更新方法。
  6.  前記CFDの変更にあたり、前記CFD記憶部に記憶されている前記変更前のデータに対するCFD集合を読み出し、
     前記変更に対して独立な第1のCFD集合と、
     前記変更前後の属性値のパタン(tp)にLHS(Left Hand Side)が重なる第2のCFD集合と、
     前記変更前後の属性値パタンにRHS(Right Hand Side)が重なる第3のCFD集合と、に分解し、
     前記第2のCFD集合の各CFDが前記変更により成立するか否かを評価し、成立しないCFDを前記第2のCFD集合から削除し、さらに、前記変更によりLHSが前記変更後の属性値のパタン(tp)に重なるCFDを新たに抽出し、前記新たなCFDと、前記成立しないCFDを削除した第2のCFD集合を含めて第4のCFD集合とし、
     前記変更前又は前記変更後の属性値のパタン(tp)にRHSが重なる第5のCFD集合を求め、
     前記第1のCFD集合、前記第4のCFD集合、前記第5のCFD集合を併合する、ことを特徴とする請求項4記載のCFD更新方法。
  7.  データ処理装置に、
     データ記憶部のデータの更新にあたり、変更前のデータと変更後のデータの差分情報を取得するデータ変更処理と、
     前記変更前のデータに対して求められた変更前のCFD(Conditional Functional Dependency)集合をCFD記憶部から入力し、前記差分情報に基づき、CFDを差分更新して、前記変更後のデータに対応するCFD集合を求め前記CFD記憶部に格納するCFD更新処理と、
     を実行させるプログラム。
  8.  前記CFD更新処理において、前記差分情報に基づき、前記変更によって影響を受けるCFD集合として、
     前記変更前のデータに関して成立していたCFD集合のうち前記変更により成立しなくなるCFDを求め、これらを前記CFD集合から削除し、さらに、前記変更により新たに成立するCFDを求め、
     前記変更によって影響を受けるCFD集合と、
     前記変更によって影響を受けないCFD集合と併合して、変更後のデータに対するCFD集合を得る、ことを特徴とする請求項7記載のプログラム。
  9.  前記CFD更新処理において、前記CFD記憶部に記憶されている前記変更前のデータに対するCFD集合を読み出し、
     前記変更に対して独立な第1のCFD集合と、
     前記変更前後の属性値のパタン(tp)にLHS(Left Hand Side)が重なる第2のCFD集合と、
     前記変更前後の属性値パタンにRHS(Right Hand Side)が重なる第3のCFD集合と、に分解し、
     前記第2のCFD集合の各CFDが前記変更により成立するか否かを評価し、成立しないCFDを前記第2のCFD集合から削除し、さらに、前記変更によりLHSが前記変更後の属性値のパタン(tp)に重なるCFDを新たに抽出し、前記新たなCFDと、前記成立しないCFDを削除した第2のCFD集合を含めて第4のCFD集合とし、
     前記変更前又は前記変更後の属性値のパタン(tp)にRHSが重なる第5のCFD集合を求め、
     前記第1のCFD集合、前記第4のCFD集合、前記第5のCFD集合を併合する、ことを特徴とする請求項7記載のプログラム。
  10.  データプロファイリングにより、CFDを用いたデータの誤り推定とデータ修正指示をユーザに提示するプロファイリング手段を備え、
     前記プロファイリング手段によって提示された修正に応じて、データ記憶部のデータが修正され、
     前記修正されたデータに対して、前記プロファイリング手段が、データプロファイリングを行い、データプロファイリングと、前記データ記憶部のデータの修正を繰り返すことでデータのクレンジングを行う、ことを特徴とするデータクレンジング装置。
  11.  請求項1乃至3のいずれか1項に記載のCFD更新装置を備え、
     前記CFD更新装置の前記データ更新部はクレンジング対象のデータを変更し、
     変更されたクレンジング対象のデータに対して、前記CFD更新装置の前記CFD更新装置からのCFDに基き、データ修正内容がCFDに違反する場合、その旨をユーザに通知する修正補助情報提示部を備えたデータクレンジング装置。
  12.  請求項4乃至6のいずれか1項に記載のCFD更新方法により導出されたCFDに基き、データ修正内容がCFDに違反する場合、その旨をユーザに通知することを特徴とするデータクレンジング方法。
  13.  請求項7乃至9のいずれか1項に記載のプログラムを実行するコンピュータに、
     前記データ変更処理は、クレンジング対象のデータを変更し、
     変更されたクレンジング対象のデータに対して前記CFD更新処理からのCFDに基き、データ修正内容がCFDに違反する場合、その旨をユーザに通知する修正補助情報提示処理を実行させるプログラム。
PCT/JP2013/059563 2012-03-30 2013-03-29 Cfd更新装置と方法及びデータクレンジング装置と方法並びにプログラム WO2013147172A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-082115 2012-03-30
JP2012082115 2012-03-30

Publications (1)

Publication Number Publication Date
WO2013147172A1 true WO2013147172A1 (ja) 2013-10-03

Family

ID=49260413

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/059563 WO2013147172A1 (ja) 2012-03-30 2013-03-29 Cfd更新装置と方法及びデータクレンジング装置と方法並びにプログラム

Country Status (1)

Country Link
WO (1) WO2013147172A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016125277A1 (ja) * 2015-02-05 2016-08-11 株式会社日立製作所 データベース分析装置およびデータベース分析方法
CN111352928A (zh) * 2020-02-27 2020-06-30 哈尔滨工业大学 使用CFDs的数据清洗方法、计算机设备和可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02109149A (ja) * 1988-10-19 1990-04-20 Hitachi Ltd 知識自動抽出型データベース管理システム
JP2008152507A (ja) * 2006-12-18 2008-07-03 Fuji Xerox Co Ltd 実行手順管理装置および実行手順管理プログラム
US20090287721A1 (en) * 2008-03-03 2009-11-19 Lukasz Golab Generating conditional functional dependencies

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02109149A (ja) * 1988-10-19 1990-04-20 Hitachi Ltd 知識自動抽出型データベース管理システム
JP2008152507A (ja) * 2006-12-18 2008-07-03 Fuji Xerox Co Ltd 実行手順管理装置および実行手順管理プログラム
US20090287721A1 (en) * 2008-03-03 2009-11-19 Lukasz Golab Generating conditional functional dependencies

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WENFEI FAN ET AL.: "Semandaq: A Data Quality System Based on Conditional Functional Dependencies", PROCEEDINGS OF THE VLDB ENDOWMENT, vol. 1, no. ISSUE, August 2008 (2008-08-01), pages 1460 - 1463 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016125277A1 (ja) * 2015-02-05 2016-08-11 株式会社日立製作所 データベース分析装置およびデータベース分析方法
CN111352928A (zh) * 2020-02-27 2020-06-30 哈尔滨工业大学 使用CFDs的数据清洗方法、计算机设备和可读存储介质

Similar Documents

Publication Publication Date Title
US8122008B2 (en) Joining tables in multiple heterogeneous distributed databases
US8645332B1 (en) Systems and methods for capturing data refinement actions based on visualized search of information
US8732127B1 (en) Method and system for managing versioned structured documents in a database
JP5756386B2 (ja) 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム
CN105144080B (zh) 用于元数据管理的系统
JP6070936B2 (ja) 情報処理装置、情報処理方法及びプログラム
US8527480B1 (en) Method and system for managing versioned structured documents in a database
US8805777B2 (en) Data record collapse and split functionality
US8607197B2 (en) Displaying HTTP session entry and exit points
US20150277966A1 (en) Transaction system
JP6982049B2 (ja) インデックスを管理するための方法、装置、設備及び記憶媒体
US11593376B2 (en) Method, apparatus, and computer-readable medium to extract a referentially intact subset from a database
WO2013147172A1 (ja) Cfd更新装置と方法及びデータクレンジング装置と方法並びにプログラム
US20090049060A1 (en) Method and Apparatus for Managing Database Records Rejected Due to Referential Constraints
US10223086B2 (en) Systems and methods for code parsing and lineage detection
US11080282B2 (en) Complex filter query of multiple data sets
US9002810B1 (en) Method and system for managing versioned structured documents in a database
US8898122B1 (en) Method and system for managing versioned structured documents in a database
JP5984629B2 (ja) マスタファイル差分自動出力装置
JP2018028776A (ja) ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム
JP5808264B2 (ja) コード生成装置及びコード生成方法及びプログラム
JP2009053767A (ja) プログラム解析装置、および、プログラム解析方法
JP2008269020A (ja) コピー履歴管理型プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援プログラム
US11809862B2 (en) Related change analysis of multiple version control systems
RU2751580C1 (ru) Программа специфицирования, устройство обработки информации и способ специфицирования

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13769501

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13769501

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP