(57)【特許請求の範囲】
【請求項１】
コンピュータに、
複数のカラムを含むレコードを記憶部から読み出し、
読み出したレコードのいずれかのカラムに格納されるデータの値に基づき特定される該データの属性が、該カラムに対応する属性を有さない場合に、前記データの属性が他のカラムに対応する属性を有するかの判定を行い、
前記判定の結果、該他のカラムに対応する属性を有すると判定した場合に、前記データを前記他のカラムに配置する、
処理を実行させることを特徴とするデータ配置変更プログラム。
【請求項２】
前記判定する処理は、前記属性と該属性を有する文字列を記憶する属性辞書を参照して、読み出したレコードの各カラムに格納される各データの属性を特定し、前記データの属性が他のカラムに対応する属性を有するかの判定を行う、
ことを特徴とする請求項１に記載のデータ配置変更プログラム。
【請求項３】
前記他のカラムは、該カラムと隣接するカラムである、
ことを特徴とする請求項１又は請求項２に記載のデータ配置変更プログラム。
【請求項４】
前記コンピュータに、
前記データの属性が他のカラムに対応する属性を有するかの判定を実行する前に、読み出したレコードの前記複数のカラムに記憶される各データについてデータクレンジングを実行する、
処理をさらに実行させることを特徴とする請求項１から３のいずれか一つに記載のデータ配置変更プログラム。
【請求項５】
コンピュータに、
複数のカラムを含むレコードを記憶部から読み出し、
読み出したレコードのいずれかのカラムに格納されるデータの値に基づき特定される該データの属性が、該カラムに対応する属性を有さない場合に、前記データの属性が他のカラムに対応する属性を有するかの判定を行い、
前記判定の結果、該他のカラムに対応する属性を有すると判定した場合に、前記データを前記他のカラムに配置する、
処理を実行させることを特徴とするデータ配置変更方法。
【請求項６】
複数のカラムを含むレコードを記憶する記憶部とネットワークを介して接続されるデータ配置変更装置であって、
前記レコードを前記記憶部から読み出す読出制御部と、
前記読出制御部によって読み出されたレコードのいずれかのカラムに格納されるデータの値に基づき特定される該データの属性が、該カラムに対応する属性を有さない場合に、前記データの属性が他のカラムに対応する属性を有するかの判定を判定部と、
前記判定部による判定の結果、該他のカラムに対応する属性を有すると判定した場合に、前記データを前記他のカラムに配置する配置制御部と
を有することを特徴とするデータ配置変更装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ配置変更プログラム、データ配置変更方法およびデータ配置変更装置に関する。
【背景技術】
【０００２】
従来、例えば名寄せなど、データベースに記憶されるデータを活用する前に、活用対象のデータの質を向上させる処理として、データクレンジングが利用される。データクレンジングは、使用できない文字化けしたデータの削除や同一カラム内のデータ表記の統一などを実行する。
【０００３】
例えば、データクレンジングでは、カラム「姓」にデータ「特許太郎」などの姓名のデータが格納されている場合には、このデータを削除する。また、データクレンジングでは、カラム「携帯電話番号」にデータ「090-xxx-xxxx」や「090yyyyyyy」などの表記が異なるデータが格納されている場合には、全データを「-」を除いた表記に統一することなどが行われる。
【０００４】
また、異なるシステム間でデータの受け渡しを実行する際に、データクレンジングとマッピングとを実行するデータ統合装置も知られている。このデータ統合装置は、データクレンジングとして、データ内の空白除去、データ内の改行コード除去、単位の変換、文字列の変換、年号表記の統一、有効桁数の統一などを実行する。また、データ統合装置は、マッピングとして、複写元のデータ構造と複写先のデータ構造とに基づいてマッピング定義を生成し、データクレンジング後の複写元のデータをマッピング定義に従って複写先に格納することを実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００７／０８３３７１号
【特許文献２】特開２００６−０３１６８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、データの質の向上度が低いという問題がある。
【０００７】
例えば、従来の技術は、カラム内のスキーマにしたがったデータが格納されていることを前提に、つまり、カラムには指定されたデータが記憶されていることを前提にデータクレンジングを実行する。したがって、従来の技術では、誤ったカラムに格納されたデータが他のカラムに格納されるべきデータであっても、ノイズデータとして削除されてしまう。
【０００８】
また、従来のマッピングは、複写元のスキーマと複写先のスキーマとに基づいてマッピング定義を生成するので、誤ったカラムに格納されたデータは誤ったまま複写先に格納されてしまう。
【０００９】
１つの側面においては、データクレンジングにおいて誤ったカラムに格納されたデータがノイズとなることを抑制することを目的とする。
【課題を解決するための手段】
【００１０】
第１の案では、コンピュータに、複数のカラムを含むレコードを記憶部から読み出し、読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行う処理を実行させる。また、コンピュータに、前記判定の結果、該他のカラムに対応する属性を有すると判定した場合に、前記データを前記他のカラムに配置する処理を実行させる。
【発明の効果】
【００１１】
一側面においては、データクレンジングにおいて誤ったカラムに格納されたデータがノイズとなることを抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係るシステムの全体構成例を示す図である。
【図２】図２は、データ配置変更例を示す図である。
【図３】図３は、実施例２に係るデータ配置変更装置の構成を示す機能ブロック図である。
【図４】図４は、クレンジング対象ＤＢに記憶される情報の例を示す図である。
【図５】図５は、属性判定順定義書ＤＢに記憶される情報の例を示す図である。
【図６】図６は、属性判定用辞書ＤＢに記憶される情報の例を示す図である。
【図７】図７は、クレンジング用辞書ＤＢに記憶される情報の例を示す図である。
【図８】図８は、クレンジング後ＤＢに記憶される情報の例を示す図である。
【図９】図９は、分解後のデータ例を示す図である。
【図１０】図１０は、属性判定後のデータ例を示す図である。
【図１１】図１１は、クレンジング後のデータ例を示す図である。
【図１２】図１２は、データ配置変更例を示す図である。
【図１３】図１３は、属性判定後にクレンジングを実行して配置変更するまでの処理例１を説明する図である。
【図１４】図１４は、属性判定後にクレンジングを実行して配置変更するまでの処理例２を説明する図である。
【図１５】図１５は、属性判定後にクレンジングを実行して配置変更するまでの処理例３を説明する図である。
【図１６】図１６は、データ配置変更装置が実行する処理の流れを示すフローチャートである。
【図１７】図１７は、クレンジング後に属性判定してデータ再配置を実行する処理例を説明する図である。
【図１８】図１８は、属性判定順序を動的に変更する処理例を説明する図である。
【図１９】図１９は、オンラインショッピングに適用した例を示す図である。
【図２０】図２０は、データ配置変更プログラムを実行するコンピュータのハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するデータ配置変更プログラム、データ配置変更方法およびデータ配置変更装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１４】
図１は、実施例１に係るシステムの全体構成例を示す図である。図１に示すように、このシステムは、ＤＢ（DataBase）１と、ＤＢ２と、データ配置変更装置１０とを有する。データ配置変更装置１０とＤＢ１とはネットワークを介して接続されており、同様に、データ配置変更装置１０とＤＢ２とはネットワークを介して接続される。なお、ここでは、データ配置変更装置１０と各ＤＢとはネットワークを介して接続される例で説明するが、これに限定されるものではなく、データ配置変更装置１０が各ＤＢを内部に有していてもよい。また、ここではデータクレンジング対象のＤＢとクレンジング後のＤＢとが別々である例で説明するが、これに限定されるものではなく、同じＤＢであってもよい。
【００１５】
ＤＢ１は、複数のカラムで形成されるレコードを有するデータベースであり、データ配置変更装置１０がデータ配置変更対象とするデータを記憶する。ＤＢ２は、ユーザ等によって指定されたデータスキーマを有するデータベースであり、データ配置変更装置１０によって配置変更された後のデータを記憶する。
【００１６】
データ配置変更装置１０は、読出制御部１０ａと判定部１０ｂと配置制御部１０ｃとを有し、ＤＢ１の各レコードについてデータの属性を判定し、ＤＢ１からＤＢ２にデータ配置変更を実行するサーバ装置である。
【００１７】
読出制御部１０ａは、複数のカラムを含むレコードをＤＢ１から読み出す。判定部１０ｂは、読出制御部１０ａが読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行う。配置制御部１０ｃは、判定の結果、該他のカラムに対応する属性を有すると判定した場合に、データを前記他のカラムに配置する。例えば、配置制御部１０ｃは、ＤＢ１から読み出したレコードの各カラムに格納されるデータ各々を、ＤＢ２における同一レコード内のいずれかのカラムに格納する。
【００１８】
ここで、図２を用いて、データ配置変更例を説明する。図２は、データ配置変更例を示す図である。図２に示すように、ＤＢ１は、データスキーマとして「姓、名、住所、自宅Tel、携帯Tel」から形成されるレコードを有する。また、ＤＢ２は、「姓、名、住所、自宅Tel、携帯Tel」から形成されるデータスキーマを有する。
【００１９】
このような状態において、読出制御部１０ａは、ＤＢ１からレコードとして「山田太郎、−、神奈川県・・・、080-1234-5678、−」を読み出す。続いて、特定部１０ｂは、各カラムごとに、データと属性情報とを比較して属性を特定する。ここでは、特定部１０ｂは、第１カラムの「山田太郎」を属性「姓名」と特定し、第３カラムの「神奈川県・・・」を属性「住所」と特定し、第４カラムの「080-1234-5678」を属性「携帯Tel」と特定する。
【００２０】
その後、生成部１０ｃは、特定したＤＢ１の各データを、ＤＢ２における該当スキーマの位置に格納してレコードを生成する。つまり、生成部１０ｃは、属性が「姓名」と特定された第１カラムの「山田太郎」については、ＤＢ２のスキーマ「姓」に「山田」を格納し、ＤＢ２のスキーマ「名」に「太郎」を格納する。同様に、生成部１０ｃは、属性が「住所」と特定された第３カラムの「神奈川県・・・」については、ＤＢ２のスキーマ「住所」に格納し、属性が「携帯Tel」特定された第４カラムの「080-1234-5678」については、ＤＢ２のスキーマ「携帯Tel」に格納する。このようにして、生成部１０ｃは、データの配置を変更したレコードを生成する。
【００２１】
このように、実施例１に係るデータ配置変更装置１０は、データスキーマとは異なるデータが格納されていた場合でも、当該データを破棄することなく、正常な格納位置に再配置することができる。この結果、データ配置変更装置１０は、データを無駄にすることなく、ユーザの意図を考慮してデータを再配置することができるので、データの質を向上させることができる。
【実施例２】
【００２２】
次に、実施例１で説明したデータ配置変更装置の具体的な構成例、処理の流れ等について説明する。ここでは、データ配置変更装置が配置変更対象のＤＢおよび配置変更先のＤＢを有している例で説明する。
【００２３】
［データ配置変更装置の構成］
図３は、実施例２に係るデータ配置変更装置の構成を示す機能ブロック図である。図３に示すように、データ配置変更装置２０は、通信制御Ｉ／Ｆ部２１と記憶部２２と制御部２５とを有する。なお、データ配置変更装置２０が有する処理は、図示したものに限られず、例えば、ディスプレイなどの表示部やマウスなどの入力部を有していてもよい。
【００２４】
また、記憶部２２は、例えば半導体メモリ素子やハードウェアなどの記憶装置である。制御部２５は、例えばＣＰＵ（Central  Processing  Unit）などの電子回路やＦＰＧＡ（Field-Programmable  Gate  Array）などの集積回路である。
【００２５】
通信制御Ｉ／Ｆ部２１は、例えばＮＩＣ（Network  Interface  Card）などのように、他の装置と通信を制御するインタフェースである。例えば、通信制御Ｉ／Ｆ部２１は、管理者などからデータクレンジング開始指示などを受信したり、管理者の端末にクレンジング結果などを送信したりする。
【００２６】
記憶部２２は、制御部２５の各処理部が処理を実行する際に使用する作業領域等を有するとともに、クレンジング対象ＤＢ２２ａと属性判定順定義書ＤＢ２２ｂと属性判定用辞書２２ｃとクレンジング用辞書ＤＢ２２ｄとクレンジング後ＤＢ２２ｅとを有する。
【００２７】
クレンジング対象ＤＢ２２ａは、クレンジング対象のデータを記憶するレコードであって、複数のカラムで形成されるレコードを記憶するデータベースである。図４は、クレンジング対象ＤＢに記憶される情報の例を示す図である。図４に示すように、クレンジング対象ＤＢ２２ａは、「姓、名、住所、自宅Tel、携帯Tel」として「特許、一郎、東京都・・・、044-1234…、-」、「鈴木、花子、静岡県・・・、-、090・・・」、「山田太郎、-、神奈川県・・・、080…、-」などを記憶する。
【００２８】
つまり、図４の例では、３番目のレコードの第１カラムである「姓」に、間違って、「山田太郎」が格納されている。また、３番目のレコードの第４カラムである「自宅Tel」に、間違って、「080・・・」が格納されている。なお、ここでは、「姓、名、住所、自宅Tel、携帯Tel」をデータスキーマと呼び、各カラムに記憶されるデータをクレンジング対象データと呼ぶ。
【００２９】
属性判定順定義書ＤＢ２２ｂは、クレンジング対象ＤＢ２２ａのデータスキーマの各カラムごとに、各カラムに記憶されるデータの属性を判定する際に参照する属性判定定義の参照順番を記憶するデータベースである。図５は、属性判定順定義書ＤＢに記憶される情報の例を示す図である。一例を挙げると、図５に示すように、属性判定順定義書ＤＢ２２ｂは、「第１カラム用」として「姓、名、姓名」を記憶する。つまり、クレンジング対象ＤＢ２２ａの第１カラムに記憶されるデータの属性を判定する場合には、「姓」の属性辞書、「名」の属性辞書、「姓名」の属性辞書の順に、属性辞書を参照することが定義されている。
【００３０】
また、図５に示すように、属性判定順定義書ＤＢ２２ｂは、「第４カラム用」として「［0-9］と‘-’、‘+’で構成されていること」、「自宅Tel（0［1-7］x［-］x［-］xxxx［-］xxxx）」、「国際Tel（+81x［-］x［-］xxxx［-］xxxx）」などを記憶する。つまり、クレンジング対象ＤＢ２２ａの第４カラムに記憶されるデータの属性を判定する場合には、まず、「［0-9］と‘-’、‘+’で構成されている」か否かが判定される。次に、「自宅Tel」、「国際Tel」、「090から始まる携帯Tel」、「080から始まる携帯Tel」、「PHSTel」の順番で、それぞれの定義と一致する文字列であるか否かが判定される。なお、図５に示した「x」は、0から9の数字である。
【００３１】
属性判定用辞書ＤＢ２２ｃは、属性と当該属性を特定する属性情報を対応付けて記憶するデータベースである。図６は、属性判定用辞書ＤＢに記憶される情報の例を示す図である。図６に示すように、属性判定用辞書ＤＢ２２ｃは、属性「姓」に対応付けて属性情報として「文字種、フォーマット、最大長、佐藤、特許、鈴木」などを記憶する。また、属性判定用辞書ＤＢ２２ｃは、属性「名」に対応付けて属性情報として「文字種、フォーマット、最大長、太郎、和雄、一郎」などを記憶する。属性判定用辞書ＤＢ２２ｃは、属性「住所」に対応付けて属性情報として「文字種、フォーマット、最大長、東京都千代田区、東京都足立区、大阪府大阪市」などを記憶する。
【００３２】
図６の場合、「姓」の属性辞書には、第１に「文字種が所定の文字種であるか」、第２に「フォーマットが所定のフォーマットであるか」、第３に「データの最大長が所定値以下であるか」を判定することが定義されている。続いて、「姓」の属性辞書には、「佐藤」、「特許」、「鈴木」などが定義されている。つまり、属性対象のデータが、最大長を超えない長さで所定の文字種で所定のフォーマットで格納されており、「佐藤」、「特許」、「鈴木」等に該当する場合には、当該データの属性は「姓」と判定される。
【００３３】
クレンジング用辞書ＤＢ２２ｄは、データをクレンジングする際に使用する辞書を記憶するデータベースである。図７は、クレンジング用辞書ＤＢに記憶される情報の例を示す図である。図７に示すように、クレンジング用辞書ＤＢ２２ｄは、属性「姓」に対応付けて「佐藤、特許、鈴木、山田、田中、近藤」などを記憶し、属性「名」に対応付けて「太郎、和雄、一郎、花子、次郎、三郎」などを記憶する。同様に、クレンジング用辞書ＤＢ２２ｄは、属性「姓名」に対応付けて「佐藤／太郎、佐藤／花子、佐藤／一郎、・・・、山田／太郎」などを記憶する。同様に、クレンジング用辞書ＤＢ２２ｄは、属性「住所」に対応付けて「北海道・・・、青森県・・・、秋田県・・・、・・・、東京都・・・、神奈川県・・・」などを記憶し、属性「携帯Tel」に対応付けて「080xxxxxxxx」などを記憶する。
【００３４】
クレンジング後ＤＢ２２ｅは、制御部２５等によってクレンジングされたデータの格納先となるデータベースである。図８は、クレンジング後ＤＢに記憶される情報の例を示す図である。図８に示すように、クレンジング後ＤＢ２２ｅは、データスキーマとして「姓、名、住所、自宅Tel、携帯Tel」を有する。つまり、クレンジング後ＤＢ２２ｅのレコードを形成する各カラムの属性が「姓、名、住所、自宅Tel、携帯Tel」である。また、このデータスキーマに格納されるデータをクレンジング後データと呼ぶ。なお、クレンジング後ＤＢ２２ｅは、クレンジングが終了してデータが格納されるまで空の状態であり、図８はデータが空の状態を図示している。
【００３５】
制御部２５は、内部メモリ等を有するとともに、クレンジングデータ分割部２６とレコード読出制御部２７と属性判定部２８とクレンジング実行部２９とデータ再配置部３０とを有し、これらによってデータクレンジングを実行する処理部である。
【００３６】
クレンジングデータ分割部２６は、通信制御Ｉ／Ｆ部２１等によってクレンジング開始指示が受信されると、クレンジング対象ＤＢ２２ａに記憶されるデータをクレンジング対象ごとに分割する。例えば、図４に示したデータを分割する例を説明する。図９は、分解後のデータ例を示す図である。クレンジングデータ分割部２６は、図４に示したデータベースのデータを各カラムごとに分割し、「カラムの属性」と「カラムに格納されるデータ」とを抽出して、記憶部２２の作業領域等に一時的に格納する。
【００３７】
例えば、図４の第３レコードを分割する例で説明する。クレンジングデータ分割部２６は、「姓、名、住所、自宅Tel、携帯Tel」に対応付けて記憶される「山田太郎、-、神奈川県・・・、080…、-」を、「山田太郎」、「-」、「神奈川県・・・」、「080…」、「-」に分割する。続いて、クレンジングデータ分割部２６は、「（姓）山田太郎」、「（名）-」、「（住所）神奈川県・・・」、「（自宅Tel）080…」、「（携帯Tel）-」などのように、分割したデータとカラムの属性とを対応付けて、記憶部２２の作業領域等に一時的に格納する。
【００３８】
レコード読出制御部２７は、クレンジングデータ分割部２６によって分割されたクレンジング対象データを１レコードずつ読み出す処理部である。図９に示した分解後のデータを例にして説明する。この場合、レコード読出制御部２７は、「（姓）山田太郎」、「（名）-」、「（住所）神奈川県・・・」、「（自宅Tel）080…」、「（携帯Tel）-」を１レコードとして読み出して、属性判定部２８に出力する。なお、レコード読出制御部２７が読み出す順番は、先頭のレコードから読み出してもよく、任意のレコードから読み出してもよい。
【００３９】
属性判定部２８は、レコード読出制御部２７が読み出したレコードの各カラムに格納されるデータ各々について属性を判定する処理部である。図９の場合、属性判定部２８は、「（姓）山田太郎」、「（名）-」、「（住所）神奈川県・・・」、「（自宅Tel）080…」、「（携帯Tel）-」の各々について属性を判定する。
【００４０】
具体的には、属性判定部２８は、レコードの第１カラムのデータに対しては、属性判定順定義書ＤＢ２２ｂの第１カラム用の定義書にしたがって、はじめに、属性判定用辞書ＤＢ２２ｃに記憶される属性「姓」の属性判定辞書を参照する。そして、属性判定部２８は、当該データの属性が特定できない場合には、第１カラム用の定義書にしたがって、次に、属性「名」の属性判定辞書を参照する。属性判定部２８は、ここでも、特定できない場合には次の属性辞書を参照して比較処理を実行するが、特定できた場合には特定結果をクレンジング実行部２９に通知したりする。
【００４１】
一例を挙げると、属性判定部２８は、第１レコードの第１カラムのデータ「特許」を作業領域等から読み出す。そして、属性判定部２８は、第１カラム用の定義書にしたがって、「姓」の属性辞書を属性判定用辞書ＤＢ２２ｃから読み出す。その後、属性判定部２８は、読み出した「姓」の属性辞書に対応付けられている「佐藤、特許、鈴木・・」と、読み出したデータ「特許」とを比較する。そして、属性判定部２８は、データ「特許」が「姓」の属性辞書に含まれているので、データ「特許」の属性を「姓」と判定する。
【００４２】
別例を挙げると、属性判定部２８は、第３レコードの第１カラムのデータ「山田太郎」を作業領域等から読み出す。そして、属性判定部２８は、第１カラム用の定義書にしたがって、「姓」の属性辞書を属性判定用辞書ＤＢ２２ｃから読み出す。その後、属性判定部２８は、読み出した「姓」の属性辞書に対応付けられている「佐藤、特許、鈴木・・」と、読み出したデータ「山田太郎」とを比較する。そして、属性判定部２８は、データ「山田太郎」が「姓」の属性辞書に含まれていないので、定義書に次に定義されている「名」の属性辞書を属性判定用辞書ＤＢ２２ｃから読み出す。その後、属性判定部２８は、読み出した「名」の属性辞書に対応付けられている「太郎、和雄、一郎・・」と、読み出したデータ「山田太郎」とを比較する。
【００４３】
そして、属性判定部２８は、データ「山田太郎」が「名」の属性辞書に含まれていないので、定義書に次に定義されている「姓名」の属性辞書として「姓」の属性辞書と「名」の属性辞書とを属性判定用辞書ＤＢ２２ｃから読み出す。その後、属性判定部２８は、読み出した「姓」の属性辞書に「山田」が記述され、かつ、「名」の属性辞書に「太郎」が記述されている場合、データ「山田太郎」の属性を「姓名」と判定する。
【００４４】
このように、属性判定部２８が図９に示した各データの属性を判定した結果を図１０に示す。図１０は、属性判定後のデータ例を示す図である。図１０に示すように、第３レコードの第１カラムのデータ「山田太郎」については、第１カラムの属性が「姓」であったが、データの属性は「姓名」と判定されている。同様に、第３レコードの第４カラムのデータ「080・・・」については、第４カラムの属性が「自宅Tel」であったが、データの属性は「携帯Tel」と判定されている。これら以外のデータについては、カラムの属性と同じ属性と判定されている。なお、属性判定部２８は、図１０に示した属性判定結果を記憶部２２の作業領域等に格納する。
【００４５】
図３に戻り、クレンジング実行部２９は、属性判定部２８が属性判定した各データに対してデータクレンジングを実行する処理部である。例えば、クレンジング実行部２９は、属性が「姓」と判定されたデータについては、「姓」に対応するクレンジング用辞書をクレンジング用辞書ＤＢ２２ｄから取得し、取得したクレンジング用辞書を用いてデータクレンジングを実行する。同様に、クレンジング実行部２９は、属性が「姓名」と判定されたデータについては、「姓名」に対応するクレンジング用辞書をクレンジング用辞書ＤＢ２２ｄから取得し、取得したクレンジング用辞書を用いてデータクレンジングを実行する。
【００４６】
一例を挙げると、クレンジング実行部２９は、属性が「姓名」と判定されたデータ「山田太郎」については、属性「姓名」に対応するクレンジング用辞書を参照して、データ「山田太郎」を「山田／太郎」に変換する。また、クレンジング実行部２９は、「山田」が属性「姓」のクレンジング辞書に登録されており、「太郎」が属性「名」のクレンジング辞書に登録されているので、「山田／太郎」における「山田」の属性を「姓」、「太郎」の属性を「名」と判定する。同様に、クレンジング実行部２９は、属性が「携帯Tel」と判定されたデータ「080-xxxx-xxxx」については、属性「携帯Tel」に対応するクレンジング用辞書を参照して、データ「080-xxxx-xxxx」を「080xxxxxxxx」に変換する。
【００４７】
このように、クレンジング実行部２９が図１０に示した各データをクレンジングした結果を図１１に示す。図１１は、クレンジング後のデータ例を示す図である。図１１に示すように、第３レコードの第１カラムのデータ「山田太郎」については、「山田／太郎」にクレンジングされている。同様に、第３レコードの第４カラムのデータ「080・・・」については、「080xxxxxxxx」にクレンジングされている。また、第３レコードの第２カラムのデータ「-」については、データが格納されていないため、「不明（NIL）」にクレンジングされている。なお、クレンジング実行部２９は、図１１に示したクレンジング結果を記憶部２２の作業領域等に格納する。
【００４８】
図３に戻り、データ再配置部３０は、クレンジング実行部２９によってクレンジングされたデータ各々について、属性判定部２８によって判定された属性とクレンジング後ＤＢ２２ｅのデータスキーマとに基づいて、データの再配置を実行する。
【００４９】
例えば、データ再配置部３０は、クレンジングされたデータについて、当該データの属性と一致するクレンジング後ＤＢ２２ｅのデータスキーマに、当該データを格納する。一例を挙げると、データ再配置部３０は、クレンジング対象ＤＢ２２ａの第１レコードにおいて属性が「姓」と判定されたデータを、クレンジング後ＤＢ２２ｅのカラムのうち「姓」が設定されるカラムに格納する。また、データ再配置部３０は、クレンジング対象ＤＢ２２ａの第１レコードにおいて属性が「自宅Tel」と判定されたデータを、クレンジング後ＤＢ２２ｅのカラムのうち「自宅Tel」が設定されるカラムに格納する。つまり、データ再配置部３０は、クレンジング対象ＤＢ２２ａにおける同一レコードに属するデータについては、クレンジング後ＤＢ２２ｅにおいても同一レコードに格納される。
【００５０】
このように、データ再配置部３０が図１１に示した各データの配置変更した例を図１２に示す。図１２は、データ配置変更例を示す図である。なお、図１２は、クレンジング後ＤＢ２２ｅに記憶される情報である。図１２と図１１とを比較すると、データ再配置部３０は、図１１の第３レコードにおいて属性「姓名」と判定されたデータ「山田／太郎」について、カラム「姓」に「山田」を格納し、カラム「名」に「太郎」を格納する。同様に、データ再配置部３０は、図１１の第３レコードにおいて属性「携帯Tel」と判定されたデータ「080・・・」について、カラム「自宅Tel」からカラム「携帯Tel」に格納先を変更する。
【００５１】
［具体例］
次に、図１３から図１５を用いて、データ配置変更の具体的な処理の例を説明する。ここでは、図１３を用いて処理例１を説明し、図１４を用いて処理例２を説明し、図１５を用いて処理例３を説明する。
【００５２】
（処理例１）
図１３は、属性判定後にクレンジングを実行して配置変更するまでの処理例１を説明する図である。図１３に示すように、データ配置変更装置２０のクレンジング対象ＤＢ２２ａは、「姓、名、住所、自宅Tel、携帯Tel」として「山田太郎、-、神奈川県・・・、080-1234-5678、-」を記憶する。なお、「-」は、データがないことを示す。
【００５３】
このような状態において、クレンジングデータ分割部２６は、「山田太郎、-、神奈川県・・・、080-1234-5678、-」を「山田太郎」、「-」、「神奈川県・・・」、「080-1234-5678」、「-」に分割する。続いて、レコード読出制御部２７は、このレコードをクレンジング対象ＤＢ２２ａから読み出す。
【００５４】
そして、属性判定部２８は、第１カラムの「山田太郎」について、第１カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「姓名」と特定する。同様に、属性判定部２８は、第３カラムの「神奈川県・・・」について、第３カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「住所」と特定する。同様に、属性判定部２８は、第４カラムの「080-1234-5678」について、第４カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「携帯Tel」と特定する。
【００５５】
続いて、クレンジング実行部２９は、属性が「姓名」と判定された「山田太郎」については、属性「姓名」用のクレンジング辞書を用いてデータクレンジングを実行し、「山田太郎」を「山田／太郎」に変換する。同様に、クレンジング実行部２９は、属性が「住所」と判定された「神奈川県・・・」については、属性「住所」用のクレンジング辞書を用いてデータクレンジングを実行する。同様に、クレンジング実行部２９は、属性が「携帯Tel」と判定された「080-1234-5678」については、属性「携帯Tel」用のクレンジング辞書を用いてデータクレンジングを実行し、「080-1234-5678」を「08012345678」に変換する。
【００５６】
その後、データ再配置部３０は、「山田／太郎」のうち「姓」とクレンジングされた「山田」については、クレンジング後のデータスキーマのうち「姓」が設定されているカラムに格納する。また、データ再配置部３０は、「山田／太郎」のうち「名」とクレンジングされた「太郎」については、クレンジング後のデータスキーマのうち「名」が設定されているカラムに格納する。同様に、データ再配置部３０は、「住所」とクレンジングされた「神奈川県・・・」については、クレンジング後のデータスキーマのうち「住所」が設定されているカラムに格納する。同様に、データ再配置部３０は、「携帯Tel」とクレンジングされた「08012345678」については、クレンジング後のデータスキーマのうち「携帯Tel」が設定されているカラムに格納する。
【００５７】
つまり、データ配置変更装置２０は、再配置処理の前は「姓」のカラムに格納されていた「山田太郎」を、再配置処理によって「山田」と「太郎」に分割して、「姓」のカラムの「山田」を格納し、「名」のカラムに「太郎」を格納することができる。同様に、データ配置変更装置２０は、再配置処理の前は「自宅Tel」のカラムに格納されていた「080-xxx-xxxx」については、再配置処理によって「携帯Tel」のカラムに格納することができる。
【００５８】
（処理例２）
図１４は、属性判定後にクレンジングを実行して配置変更するまでの処理例２を説明する図である。図１４に示した処理が図１３に示した処理と異なる点は、クレンジング後に「仮置き」という処理を実行する点である。図１４に示すように、データ配置変更装置２０のクレンジング対象ＤＢ２２ａは、「姓、名、住所、自宅Tel、携帯Tel」として「山田太郎、-、神奈川県・・・、080-1234-5678、abc」を記憶する。なお、「-」は、データがないことを示す。
【００５９】
このような状態において、クレンジングデータ分割部２６は、「山田太郎、-、神奈川県・・・、080-1234-5678、abc」を「山田太郎」、「-」、「神奈川県・・・」、「080-1234-5678」、「abc」に分割する。続いて、レコード読出制御部２７は、このレコードをクレンジング対象ＤＢ２２ａから読み出す。
【００６０】
そして、属性判定部２８は、第１カラムの「山田太郎」について、第１カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「姓名」と特定する。同様に、属性判定部２８は、第３カラムの「神奈川県・・・」について、第３カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「住所」と特定する。同様に、属性判定部２８は、第４カラムの「080-1234-5678」について、第４カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「携帯Tel」と特定する。同様に、属性判定部２８は、第５カラムの「abc」について、第５カラム用の属性判定定義書の参照順序にしたがって属性判定用辞書を順次参照し、属性を「不明」と特定する。つまり、第５カラムの「abc」は、いずれの属性辞書にも定義されていなかったとする。
【００６１】
続いて、クレンジング実行部２９は、属性が「姓名」と判定された「山田太郎」については、属性「姓名」用のクレンジング辞書を用いてデータクレンジングを実行し、「山田太郎」を「山田／太郎」に変換する。同様に、クレンジング実行部２９は、属性が「住所」と判定された「神奈川県・・・」については、属性「住所」用のクレンジング辞書を用いてデータクレンジングを実行する。同様に、クレンジング実行部２９は、属性が「携帯Tel」と判定された「080-1234-5678」については、属性「携帯Tel」用のクレンジング辞書を用いてデータクレンジングを実行し、「080-1234-5678」を「08012345678」に変換する。なお、第５カラムの「abc」については、属性不明のままである。
【００６２】
その後、データ再配置部３０は、クレンジング後のデータを仮置きする。具体的には、データ再配置部３０は、第１カラムに属性「姓／名」の「山田／太郎」を仮決定し、第２カラムに属性「不明」の「NIL」を仮決定し、第３カラムに属性「住所」の「神奈川県・・・」を仮決定する。また、データ再配置部３０は、第４カラムに属性「携帯Tel」の「08012345678」を仮決定し、第５カラムに属性「不明」の「abc」を仮決定する。
【００６３】
その後、データ再配置部３０は、仮決定された「山田／太郎」のうち属性が「姓」と判定された「山田」については、クレンジング後のデータスキーマのうち「姓」が設定されているカラムに格納する。また、データ再配置部３０は、仮決定された「山田／太郎」のうち属性「名」が判定された「太郎」については、格納先となるクレンジング後のデータスキーマの「名」に「NIL（属性不明）」が仮決定されていると判定する。ところが、データ再配置部３０は、「属性不明」のデータよりも属性が明確なデータを優先するので、クレンジング後のデータスキーマの「名」に「太郎」を格納する。
【００６４】
また、データ再配置部３０は、仮決定された「神奈川県・・・」については、「住所」と属性が判定されたので、クレンジング後のデータスキーマのうち「住所」が設定されているカラムに格納する。また、データ再配置部３０は、仮決定された「08012345678」については「携帯Tel」と属性が判定されているが、格納先となるクレンジング後のデータスキーマの「携帯Tel」に「abc（属性不明）」が仮決定されていると判定する。ところが、データ再配置部３０は、「属性不明」のデータよりも属性が明確なデータを優先するので、クレンジング後のデータスキーマの「携帯Tel」に「08012345678」を格納する。なお、データ再配置部３０は、「abc（属性不明）」については、属性が不明であり格納先を特定できないので破棄する。
【００６５】
このようにすることで、データ配置変更装置２０は、クレンジング対象データ各々の属性を判定し、判定した属性に対応する格納先に、各データを再配置することができる。
【００６６】
（処理例３）
図１５は、属性判定後にクレンジングを実行して配置変更するまでの処理例３を説明する図である。図１５に示した処理が図１３に示した処理と異なる点は、クレンジング対象のデータベースのスキーマと、クレンジングのデータベースのスキーマとが異なる点である。図１５に示すように、データ配置変更装置２０のクレンジング対象ＤＢ２２ａは、「姓、名、住所、自宅Tel、携帯Tel」として「山田太郎、-、神奈川県・・・、080-1234-5678、abc」を記憶する。なお、「-」は、データがないことを示す。
【００６７】
このような状態において、データ配置変更装置２０が実行する、クレンジングデータ分割処理、属性判定処理、クレンジング処理、仮置き処理については、図１４と同様なので省略する。
【００６８】
仮置き処理が完了した後、データ再配置部３０は、仮決定された「山田／太郎」のうち属性が「姓」と判定された「山田」については、クレンジング後のデータスキーマのうち「姓」が設定されているカラムに格納する。また、データ再配置部３０は、仮決定された「山田／太郎」のうち属性「名」が判定された「太郎」については、格納先となるクレンジング後のデータスキーマの「名」に「NIL（属性不明）」が仮決定されていると判定する。ところが、データ再配置部３０は、「属性不明」のデータよりも属性が明確なデータを優先するため、クレンジング後のデータスキーマの「名」に「太郎」を格納する。
【００６９】
また、データ再配置部３０は、仮決定された「神奈川県・・・」については、「住所」と属性が判定されたが、クレンジング後のデータスキーマに「住所」の属性が設定されたカラムがないと判定する。すると、データ再配置部３０は、「神奈川県・・・」がクレンジング対象データにおいてカラム「名」とカラム「自宅Tel」との間のカラムに格納されていることを特定する。そして、データ再配置部３０は、クレンジング後のデータスキーマにおいてカラム「名」とカラム「自宅Tel」との間に位置するカラム「その他」を、当該「神奈川県・・・」の格納先と特定して格納する。この場合、「神奈川県・・・」が格納されるカラムの属性は「その他」であり、「神奈川県・・・」の属性は「住所」となり、カラムの属性とデータの属性とが異なることとなる。
【００７０】
また、データ再配置部３０は、仮決定された「08012345678」については「携帯Tel」と属性が判定されているが、格納先となるクレンジング後のデータスキーマの「携帯Tel」に「abc（属性不明）」が仮決定されていると判定する。ところが、データ再配置部３０は、「属性不明」のデータよりも属性が明確なデータを優先するので、クレンジング後のデータスキーマの「携帯Tel」に「08012345678」を格納する。なお、データ再配置部３０は、「abc（属性不明）」については、属性が不明であり格納先を特定できないので破棄する。
【００７１】
このように、データ配置変更装置２０は、クレンジング対象のデータスキーマとクレンジング後のデータスキーマとが異なる場合であっても、スキーマ言い換えるとカラムの構成を考慮して、適切なカラムに適切なデータを格納することができる。
【００７２】
［処理の流れ］
次に、データ配置変更装置２０が実行する処理の流れを説明する。図１６は、データ配置変更装置が実行する処理の流れを説明するフローチャートである。
【００７３】
図１６に示すように、データ配置変更装置２０のクレンジングデータ分割部２６は、処理開始指示を受信すると（Ｓ１０１肯定）、クレンジング対象ＤＢ２２ａに記憶されるクレンジング対象データをカラム単位に分割する（Ｓ１０２）。
【００７４】
続いて、レコード読出制御部２７は、クレンジングデータ分割部２６によって分割されたデータから１レコード分を読出し（Ｓ１０３）、属性判定部２８は、読み出されたレコードから１カラム分のデータを抽出する（Ｓ１０４）。
【００７５】
そして、属性判定部２８は、属性判定順定義書２２ｂに記憶される属性判定順定義書のうち、抽出したデータが格納されていたカラムに対応する属性判定順定義書を参照して、属性判定用辞書ＤＢ２２ｃから該当する属性判定用辞書を特定する（Ｓ１０５）。続いて、属性判定部２８は、特定した属性判定用辞書を用いて、抽出したデータの属性を判定する（Ｓ１０６）。そして、属性が判定できなかった場合には（Ｓ１０６否定）、属性判定部２８は、属性判定順定義書に従って次の属性判定用辞書を特定して（Ｓ１０７）、Ｓ１０６以降の処理を繰り返す。
【００７６】
一方、属性が判定できた場合には（Ｓ１０６肯定）、属性判定部２８は、読み出されたレコードの全カラムのデータについて属性が判定されたか否かを判定する（Ｓ１０８）。そして、属性が未特定のデータが存在する場合（Ｓ１０８否定）、属性判定部２８は、Ｓ１０４に戻って以降の処理を繰り返す。
【００７７】
一方、クレンジング実行部２９は、読み出されたレコードの全カラムのデータについて属性が判定された場合（Ｓ１０８肯定）、各カラムごとに、特定された属性に対応するクレンジング用辞書を用いてデータクレンジングを実行する（Ｓ１０９）。その後、データ再配置部３０は、読み出されたレコードの各データについて、クレンジング後ＤＢ２２ｅのデータスキーマのうち、データの属性に対応するカラムに対応付けて格納する（Ｓ１１０）。
【００７８】
そして、データ配置変更装置２０は、クレンジング対象ＤＢ２２ａの全レコードについてＳ１０３以降の処理を実行し、データ再配置を完了した場合には（Ｓ１１１肯定）、処理を終了する。また、データ配置変更装置２０は、クレンジング対象ＤＢ２２ａのレコードのうち、データ再配置が未実行のレコードが存在する場合には（Ｓ１１１否定）、Ｓ１０３以降の処理を実行する。
【００７９】
このように、実施例１に係るデータ配置変更装置２０は、データをクレンジングする際に、クレンジング対象のデータが持っている属性を判定し、適用しようとしているクレンジング処理にふさわしいデータかどうかを判定する。そして、データ配置変更装置２０は、その判定結果に基づき適切なクレンジングを施すことができる。また、データ配置変更装置２０は、クレンジング結果に付される属性がデータ格納位置に適切かどうかを判定し、適切な位置に格納することができる。この結果、データベース等に格納されているデータを質の高いデータにすることができ、データ活用時の有効性が高まる。
【００８０】
例えば、クレンジング後のデータには、スキーマ定義と必ずしも一致しない本当のデータの属性が付与される。このことを利用して、データ配置変更装置２０は、誤ったカラムに「山田」や「山田太郎」と姓名が連続して入っているダーティなデータベースに対しても姓属性が「山田」のデータを検索する場合に、検索対象レコードに属性を付与した結果を検索する。こうすることで、データ配置変更装置２０は、姓カラムのデータ誤り時にも容易に質の高い検索を実現できる。
【００８１】
このことにより、付加されたデータ属性とスキーマ定義との関連を分析することで、誤ったカラムに紛れ込んでいるデータへのプロファイリング、例えば紛れ込み度や紛れ込み傾向などにも利用できる。また、データ配置変更装置２０の活用シーンは、必ずしもデータクレンジング分野のみではなく、実データの属性判定が行なえ、属性に従ったマッピングできればよいので、入力に自然文を含むようなクレンジングを伴わないデータ加工時に対しても有効である。
【実施例３】
【００８２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００８３】
（クレンジング順序）
実施例１では、データの属性判定後にデータクレンジングを実行する例について説明したが、これに限定されるものではなく、任意の順番で実行することができる。例えば、属性判定の結果に基づいてデータの再配置が完了した後にデータクレンジングを実行してもよく、属性判定前のデータに対してデータクレンジングを実行することもできる。ここでは、一例として、属性判定前のデータに対してデータクレンジングを実行する例について説明する。
【００８４】
図１７は、クレンジング後に属性判定してデータ再配置を実行する処理例を説明する図である。図１７に示すように、データ配置変更装置２０のクレンジング対象ＤＢ２２ａは、「姓、名、住所、自宅Tel、携帯Tel」として「山田太郎、-、神奈川県・・・、-、080-1234-5678」を記憶する。なお、「-」は、データがないことを示す。
【００８５】
このような状態において、クレンジングデータ分割部２６は、「山田太郎、-、神奈川県・・・、-、080-1234-5678」を「山田太郎」、「-」、「神奈川県・・・」、「-」、「080-1234-5678」に分割する。続いて、レコード読出制御部２７は、このレコードをクレンジング対象ＤＢ２２ａから読み出す。
【００８６】
続いて、クレンジング実行部２９は、上述した手法と同様に、各カラムの属性に対応したクレンジング用辞書を用いて、各カラムに記憶されるデータをクレンジングする。この結果、クレンジング実行部２９は、「山田太郎、-、神奈川県・・・、-、080-1234-5678」を「？？？、-、神奈川県・・・、-、08012345678」に変換する。つまり、クレンジング実行部２９は、第１カラムのデータは、第１カラムの属性である「姓」に対応したクレンジング辞書から特定できなかったので、データそのものを認識することができず、「？？？」を格納する。
【００８７】
その後、属性判定部２８は、上述した手法と同様の手法で、各カラムのデータについて属性を判定する。このとき、属性判定部２８は、第１カラムのクレンジング結果が「？？？」であるので、クレンジング前のデータである「山田太郎」をクレンジング対象ＤＢ２２ａから読み出してきて、当該データ「山田太郎」について属性判定を実行する。なお、その後のデータ再配置処理等については、実施例１と同様なので、説明を省略する。
【００８８】
このように、データ配置変更装置２０は、任意のタイミングでデータクレンジングを実行することができるので、格納や入力ミスが多いデータベースなどについては、先にデータクレンジングを実行することで、データ再配置処理の処理負荷を軽減できる。
【００８９】
（属性用辞書）
実施例１で説明した属性判定用辞書は、例えば、カラムの構成が「姓、名、住所」である場合には「姓」、「名」、「住所」、「姓名」、「姓住所」、「名住所」のように、各カラムの属性を組み合わせた属性用辞書を用いることもできる。また、実施例１では、属性用辞書とクレンジング用辞書とを別々の辞書として説明したが、これに限定されるものではなく、同じ辞書を用いることもできる。
【００９０】
（属性判定順定義書）
実施例１で説明した属性判定順定義書には、予め順番が定義されている例について説明したが、これに限定されるものではなく、カラムの構成等について動的に変更することもできる。図１８は、属性判定順序を動的に変更する処理例を説明する図である。図１８に示すように、データ配置変更装置２０のクレンジング対象ＤＢ２２ａは、「法人種別、法人名、電話番号」として「-、年寄株、044・・・」を記憶する。なお、「-」は、データがないことを示す。
【００９１】
このような状態において属性判定を実行する場合、属性判定部２８は、まず、第１カラムのデータを読み出すが、データが格納されていないので、「属性不明」と判定する。次に、属性判定部２８は、第２カラムのデータである「年寄株」を読出し、第２カラム対応する属性判定順定義書を参照する。
【００９２】
このとき、参照した属性判定順定義書は、「順番１、法人種別」、「順番２、法人名」、「順番３、法人種別＋法人名」となっている。ところが、属性判定部２８は、第２カラムと隣接する第１カラムにデータが格納されていないので、第１カラムの属性と第２カラムの属性とを組み合わせた「法人種別＋法人名」の属性辞書をはじめに参照すると決定する。つまり、属性判定部２８は、属性判定順定義書の定義内容を、「順番２、法人種別」、「順番３、法人名」、「順番１、法人種別＋法人名」に変更して、変更した順番で属性判定用辞書を用いる。
【００９３】
そして、属性判定部２８は、第２カラムの「年寄株」を、属性が「法人名」のデータ「年寄」と属性が「法人種別」のデータ「株」とに分割する。その後に、クレンジング実行部２９は、データ「株」を「株式会社」に変更する。そして、データ再配置部３０は、第２カラムの属性が「法人種別」のデータ「株式会社」をクレンジング後のカラム「法人種別」に格納する。同様に、データ再配置部３０は、第２カラムの属性が「年寄」のデータ「法人」をクレンジング後のカラム「法人種別」に格納し、データ「電話番号」も該当するカラムに格納する。
【００９４】
このように、属性判定部２８は、隣接するカラムにデータが格納されていない場合など、間違って格納された可能性が高い場合には、属性判定順定義書に定義される順番を動的に変更する。したがって、属性判定部２８は、間違って格納された可能性の高いデータの属性を素早く特定することができる。また、ここでは、前のカラムにデータが格納されていない例で説明したが、後ろのカラムにデータが格納されていない場合にも、同様に処理することができる。
【００９５】
（クレンジング対象）
実施例１では、データベースに格納されるデータを再配置およびクレンジング対象とする例について説明したが、これに限定されるものではなく、他の記憶装置に記憶されるデータやクライアントから入力されたデータなど様々なデータを対象とすることができる。
【００９６】
図１９は、オンラインショッピングに適用した例を示す図である。図１９に示すように、データ配置変更装置２０は、「姓、名、email、自宅Tel、携帯Tel」の入力画面をクライアント装置に表示し、「山田太郎、−、abc@foo.com、090-1234-5678、−」の入力を受け付けたとする。そして、データ配置変更装置２０は、「姓、名、email、自宅Tel、携帯Tel」をカラム、「山田太郎、−、abc@foo.com、090-1234-5678、−」をクレンジング対象として、上述した属性判定を実行する。
【００９７】
この結果、データ配置変更装置２０は、「山田太郎、−、abc@foo.com、090-1234-5678、−」を「山田、太郎、abc@foo.com、−、090-1234-5678」に再配置することができる。このように、データ配置変更装置２０は、オンラインショッピングなどのデータであっても、リアルタイムに処理することができる。
【００９８】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００９９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１００】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【０１０１】
図２０は、データ配置変更プログラムを実行するコンピュータのハードウェア構成の例を示す図である。図２０に示すように、コンピュータ１００は、ＣＰＵ１０２、入力装置１０３、出力装置１０４、通信インタフェース１０５、媒体読取装置１０６、ＨＤＤ（Hard  Disk  Drive）１０７、ＲＡＭ（Random  Access  Memory）１０８、記憶装置１１０を有する。また、図２０に示した各部は、バス１０１で相互に接続される。
【０１０２】
入力装置１０３は、マウスやキーボードであり、出力装置１０４は、ディスプレイなどであり、通信インタフェース１０５は、ＮＩＣ（Network  Interface  Card）などのインタフェースである。ＨＤＤ１０７は、データ配置変更プログラム１０７ａとともに、図３に示した記憶部に記憶される各情報を記憶する。記録媒体の例としてＨＤＤ１０７を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。記憶装置１１０は、図３に示したクレンジング対象ＤＢ２２ａと同様の情報を記憶するクレンジング対象ＤＢ１１０ａと、クレンジング後ＤＢ２２ｅと同様の情報を記憶するクレンジングＤＢ１００ｂとを有する。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【０１０３】
ＣＰＵ１０２は、データ配置変更プログラム１０７ａを読み出してＲＡＭ１０８に展開することで、図３等で説明した各機能を実行するデータ配置変更プロセス１０８ａを動作させる。すなわち、データ配置変更プロセス１０８ａは、図３に記載したクレンジングデータ分割部２６、レコード読出制御部２７、属性判定部２８、クレンジング実行部２９、データ再配置部３０と同様の機能を実行する。このようにコンピュータ１００は、プログラムを読み出して実行することでデータ配置変更方法を実行する情報処理装置として動作する。
【０１０４】
例えば、ＣＰＵ１０２が動作させるデータ配置変更プロセス１０８ａは、ＨＤＤ１０７から複数のカラムを含むレコードを読み出す。そして、データ配置変更プロセス１０８ａは、読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行う。判定の結果、データ配置変更プロセス１０８ａは、該他のカラムに対応する属性を有すると判定した場合に、データを他のカラムに配置する。
【０１０５】
別の例としては、ＣＰＵ１０２が動作させるデータ配置変更プロセス１０８ａは、記憶装置１１０のクレンジング対象ＤＢ１１０ａから複数のカラムを含むレコードを読み出す。そして、データ配置変更プロセス１０８ａは、読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行う。判定の結果、データ配置変更プロセス１０８ａは、該他のカラムに対応する属性を有すると判定した場合に、データを他のカラムに配置させたクレンジング対象ＤＢ１１０ｂを生成する。
【０１０６】
また、データ配置変更プロセス１０８ａは、通信インタフェース１０５を介して外部の記憶装置２００のデータをクレンジングすることができる。記憶装置２００は、図３に示したクレンジング対象ＤＢ２２ａと同様の情報を記憶するクレンジング対象ＤＢ２００ａと、クレンジング後ＤＢ２２ｅと同様の情報を記憶するクレンジングＤＢ２００ｂとを有する。このような状態において、データ配置変更プロセス１０８ａは、記憶装置２００のクレンジング対象ＤＢ２００ａから複数のカラムを含むレコードを読み出す。そして、データ配置変更プロセス１０８ａは、読み出したレコードのいずれかのカラムに格納されるデータが、該カラムに対応する属性を有さない場合に、他のカラムに対応する属性を有するかの判定を行う。判定の結果、データ配置変更プロセス１０８ａは、該他のカラムに対応する属性を有すると判定した場合に、データを他のカラムに配置させたクレンジング対象ＤＢ２００ｂを生成する。
【０１０７】
また、コンピュータ１００は、媒体読取装置１０６によって記録媒体からデータ配置変更プログラム１０７ａを読み出し、読み出されたデータ配置変更プログラム１０７ａを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０１０８】
１、２  ＤＢ
１０  データ配置変更装置
１０ａ  読出制御部
１０ｂ  判定部
１０ｃ  配置制御部
２０  データ配置変更装置
２１  通信制御Ｉ／Ｆ部
２２  記憶部
２２ａ  クレンジング対象ＤＢ
２２ｂ  属性判定順定義書ＤＢ
２２ｃ  属性判定用辞書ＤＢ
２２ｄ  クレンジング用辞書ＤＢ
２２ｅ  クレンジング後ＤＢ
２５  制御部
２６  クレンジングデータ分割部
２７  レコード読出制御部
２８  属性判定部
２９  クレンジング実行部
３０  データ再配置部
【図１】
0005810719.tif 000002
【図２】
0005810719.tif 000003
【図３】
0005810719.tif 000004
【図４】
0005810719.tif 000005
【図５】
0005810719.tif 000006
【図６】
0005810719.tif 000007
【図７】
0005810719.tif 000008
【図８】
0005810719.tif 000009
【図９】
0005810719.tif 000010
【図１０】
0005810719.tif 000011
【図１１】
0005810719.tif 000012
【図１２】
0005810719.tif 000013
【図１３】
0005810719.tif 000014
【図１４】
0005810719.tif 000015
【図１５】
0005810719.tif 000016
【図１６】
0005810719.tif 000017
【図１７】
0005810719.tif 000018
【図１８】
0005810719.tif 000019
【図１９】
0005810719.tif 000020
【図２０】
0005810719.tif 000021