(57)【要約】【課題】テーブル間の類似性に基づいて、ユーザに分かりやすい形でテーブルを分類するテーブル分類装置を提供する【解決手段】データベース分類装置３０は、属性セット情報と分類階層情報とを設定する設定部と、複数のテーブルを格納するデータベース２０からテーブルごとに属性セット情報の示すテーブル属性を取得する属性取得部と、分類階層情報の示す階層ナンバーに対応する属性セットナンバーから定まるテーブル属性を属性取得部が取得したテーブル属性の中から取り込み、取り込んだテーブル属性に基づいて、分類階層情報の階層ナンバーごとにデータベース２０に格納されたそれぞれのテーブル間の類似度を示す階層別テーブル間類似度を生成する階層別テーブル間類似度生成部と、階層別テーブル間類似度生成部が階層ナンバーごとに生成した階層別テーブル間類似度を用いて、データベース２０が格納する複数のテーブルを分類する分類部とを備えた。【選択図】図４
2008181459.tif 000002
【特許請求の範囲】
【請求項１】
所定の入力を受け付け、受け付けた入力に基づいて、１〜Ｎ（Ｎは２以上の整数）の属性セットナンバーごとの所定のテーブル属性からなる属性セット情報と、テーブルを分類する場合の分類の優先順位を示す１〜Ｍ（Ｍは２以上、かつ、Ｎ以下の整数）の階層ナンバーのそれぞれについて前記属性セットナンバーのうち重複しない何れかが対応付けられた分類階層情報とを設定する設定部と、
複数のテーブルを格納するデータベースからテーブルごとに前記属性セット情報の示す前記テーブル属性を取得する属性取得部と、
前記分類階層情報の前記階層ナンバーに対応する前記属性セットナンバーから定まるテーブル属性を前記属性取得部が取得した前記テーブル属性の中から取り込み、取り込んだテーブル属性に基づいて、前記分類階層情報の前記階層ナンバーごとに前記データベースに格納されたそれぞれのテーブル間の類似度を示す階層別テーブル間類似度を生成する階層別テーブル間類似度生成部と、
前記階層別テーブル間類似度生成部が前記階層ナンバーごとに生成した階層別テーブル間類似度を用いて、前記データベースが格納する複数のテーブルを分類する分類部と
を備えたことを特徴とするテーブル分類装置。
【請求項２】
前記設定部が設定する前記属性セット情報は、
前記属性セットナンバーごとの所定のテーブル属性のうちの少なくともいずれかが、テーブルの構成要素であるカラムの属性を示すカラム属性を含み、
前記属性取得部は、
複数のテーブルを格納するデータベースからテーブルごとに前記属性セット情報の示す前記カラム属性を取得し、
階層別テーブル間類似度生成部は、
前記分類階層情報の前記階層ナンバーに対応する前記属性セットナンバーから定まるテーブル属性が前記カラム属性を含む場合には、そのカラム属性を前記属性取得部が取得した前記カラム属性の中から取り込み、取り込んだカラム属性をさらに加えて、前記階層ナンバーの前記階層別テーブル間類似度を生成することを特徴とする請求項１記載のテーブル分類装置。
【請求項３】
前記階層別テーブル間類似度生成部は、
前記分類階層情報の前記階層ナンバーごとに前記階層別テーブル間類似度を生成する場合に所定の基準にしたがって２つのテーブル間におけるカラム対を生成し、生成した前記カラム対に基づいて前記階層別テーブル間類似度を生成することを特徴とする請求項２記載のテーブル分類装置。
【請求項４】
前記階層別テーブル間類似度生成部は、
前記カラム対として、互いに一致するとみなされる一致カラム対と、
互いに類似するとみなされる類似カラム対と、
互いに一致も類似もしないとみなされる不一致カラム対とを生成することを特徴とする請求項３記載のテーブル分類装置。
【請求項５】
前記設定部が設定する前記属性セット情報は、
前記属性セットナンバーごとの所定のテーブル属性のうちの少なくともいずれかが統計情報であることを特徴とする請求項１記載のテーブル分類装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のテーブルを分類するテーブル分類装置に関する。
【背景技術】
【０００２】
企業の合併、支店の統廃合、全社規模での業務分析などで、複数のシステムを統合するニーズが増えている。また、システムを追加する際に既存のデータベースやデータウェアハウスを複製して新たなシステムをつくることが多い。これら、統合や追加に伴い、冗長で不必要なデータや処理が増え、メンテナンス効率の劣化、業務処理非効率化、不整合による品質の劣化、過剰な設備投資、等々問題が発生している。さらに、システムの複雑化、ブラックボックス化のため、人手による統合（分析／設計）作業が非常に困難となっている。しかしながら、データの必要／不要の区別は、データの内容以外にも、技術的、人的、費用的、政治的な様々な要因により決められるため、如何に人の作業／判断を支援できるかが重要となる。
【０００３】
従来は、データ統合を行うために、データ型の一致やデータの一致度によって、同一のカラムを見つけていた（例えば、特許文献１）。
【０００４】
また、カラムの属性を複数使用して類似を判定する場合は、特開２００５−６３３３２号公報（特許文献２）の図５に示すように、それぞれのカラム（または、フィールド、カテゴリ、ドキュメント、情報要素）で共通する属性についてのみを軸とする多次元空間の距離を用いて、対応するカラムの対を求めるのみであった（例えば、特許文献２）。
【０００５】
従来技術の多くは、テーブルのジョインやデータの同期を目的にしているため、データの内容を比較して、ほぼ同じカラムを求めていた。そのため、一致判定用にカラムの属性は、主に型情報のみを利用しており、その他ではカラム名称を利用していた。
【特許文献１】特開２００４−８６７８２号公報、異種データベース統合支援装置
【特許文献２】特開２００５−６３３３２号公報、情報体系対応付け装置および対応付け方法
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の統合支援のための一致性判定法は、複数の評価基準を持つ多次元空間における距離により判定していたため、同じ評価軸同士の比較が隠れてしまい、得られる結果の要因が分かり難くいと言う問題があった。さらに、評価基準を変える為にそれぞれの軸の重み付けを調整する際に、結果を予測して重み付けを行うことが難しいという問題点があった。
【０００７】
また、従来の類似性算出法では、類似性のあるカラムの集合である、テーブル間の類似性を求めることができないと言う問題があった。カラムの属性とテーブルの属性のような、構造のレベルが異なる属性同士を同時に比較することができなかった。
【０００８】
また、従来は完全に一致するカラムを求めることを目的とした手法であるため、データや属性が大きく異なる場合の比較が難しいと言う問題があった。さらに、具体的に利用する属性限られていた。
【０００９】
また、従来の階層的な分類では、分類の構造に依存していることが多く、階層を入れ替えた分類ができないか、もしくはすべての計算を再計算する必要があるため、インタラクティブな操作に適さないと言う問題があった。
【００１０】
本発明は、データ統合における統合支援として、データベースやデータウェアハウスのデータについて、要／不要を判断するために、テーブル間の類似性に基づいて、ユーザに分かりやすい形でテーブルを分類することを目的としている。
【課題を解決するための手段】
【００１１】
この発明のテーブル分類装置は、
所定の入力を受け付け、受け付けた入力に基づいて、１〜Ｎ（Ｎは２以上の整数）の属性セットナンバーごとの所定のテーブル属性からなる属性セット情報と、テーブルを分類する場合の分類の優先順位を示す１〜Ｍ（Ｍは２以上、かつ、Ｎ以下の整数）の階層ナンバーのそれぞれについて前記属性セットナンバーのうち重複しない何れかが対応付けられた分類階層情報とを設定する設定部と、
複数のテーブルを格納するデータベースからテーブルごとに前記属性セット情報の示す前記テーブル属性を取得する属性取得部と、
前記分類階層情報の前記階層ナンバーに対応する前記属性セットナンバーから定まるテーブル属性を前記属性取得部が取得した前記テーブル属性の中から取り込み、取り込んだテーブル属性に基づいて、前記分類階層情報の前記階層ナンバーごとに前記データベースに格納されたそれぞれのテーブル間の類似度を示す階層別テーブル間類似度を生成する階層別テーブル間類似度生成部と、
前記階層別テーブル間類似度生成部が前記階層ナンバーごとに生成した階層別テーブル間類似度を用いて、前記データベースが格納する複数のテーブルを分類する分類部と
を備えたことを特徴とする。
【発明の効果】
【００１２】
この発明により、テーブル間の類似性に基づいて、ユーザに分かりやすい形でテーブルを分類することが可能となる。
【発明を実施するための最良の形態】
【００１３】
実施の形態１．
図１は、コンピュータであるデータベース分類装置３０（テーブル分類装置）の外観の一例を示す図である。図１において、データベース分類装置３０は、システムユニット８３０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置８１３、キーボード８１４（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス８１５、ＦＤＤ８１７（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・  Ｄｒｉｖｅ）、コンパクトディスク装置８１８（ＣＤＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｒｉｖｅ）、プリンタ装置８１９などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
【００１４】
システムユニット８３０は、コンピュータであり、また、ネットワークに接続されている。ネットワークには、データベース２０が接続されたデータベース管理装置１０と、可視化装置４０とが接続されている。データベース分類装置３０は、ネットワークを介してデータベース管理装置１０、可視化装置４０と通信可能である。データベース２０は複数のテーブルを格納している。データベース分類装置３０は、データベース２０からテーブルに関するデータを取得することが可能である。
【００１５】
図２は、実施の形態１におけるデータベース分類装置３０のハードウェア資源の一例を示す図である。図２において、データベース分類装置３０は、プログラムを実行するＣＰＵ８１０（中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、表示装置８１３、キーボード８１４、マウス８１５、通信ボード８１６、ＦＤＤ８１７、ＣＤＤ８１８、プリンタ装置８１９、磁気ディスク装置８２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置８２０の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【００１６】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１、ＦＤＤ８１７、ＣＤＤ８１８、磁気ディスク装置８２０等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部の一例である。通信ボード８１６、キーボード８１４、ＦＤＤ８１７などは、入力部、入力装置の一例である。また、通信ボード８１６、表示装置８１３、プリンタ装置８１９などは、出力部、出力装置の一例である。
【００１７】
通信ボード８１６は、ネットワーク（ＬＡＮ等）に接続されている。通信ボード８１６は、ＬＡＮに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００１８】
磁気ディスク装置８２０には、オペレーティングシステム８２１（ＯＳ）、ウィンドウシステム８２２、プログラム群８２３、ファイル群８２４が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０、オペレーティングシステム８２１、ウィンドウシステム８２２により実行される。
【００１９】
上記プログラム群８２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ８１０により読み出され実行される。
【００２０】
ファイル群８２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ８１０によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００２１】
また、以下に述べる実施の形態の説明においては、データや信号値は、ＲＡＭ８１２のメモリ、ＦＤＤ８１７のフレキシブルディスク、ＣＤＤ８１８のコンパクトディスク、磁気ディスク装置８２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス８２５や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００２２】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ８１１に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ８１０により読み出され、ＣＰＵ８１０により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００２３】
図３は、実施の形態１におけるデータ統合支援システムの全体構成図である。データ統合支援システムは、データベース管理装置１０と、データベース管理装置１０が管理するデータベース２０と、データベース分類装置３０と、可視化装置４０からなり、最終的にユーザ５０が、データ統合を目的にテーブルの類似性を識別可能とする支援を行うものである。データベース２０は、複数のテーブルを格納している。
【００２４】
本実施の形態１の特徴は、データ統合支援システムにおける、データベース分類装置３０にある。図４は、データベース分類装置３０の構成図である。データベース分類装置３０は、メタデータ抽出部３１と、データ分析部３２と、分類構造入力部３３と、分類構造管理部３４と、カラム類似度算出部３５と、テーブル類似度算出部３６と、分類判定部３７とを備える。メタデータ抽出部３１とデータ分析部３２とは、属性取得部を構成する。分類構造入力部３３と分類構造管理部３４とは、設定部を構成する。カラム類似度算出部３５とテーブル類似度算出部３６とは、階層別テーブル間類似度生成部を構成する。
【００２５】
（１）メタデータ抽出部３１は、データベース管理装置１０からテーブルの属性やカラムの属性を取得する。
（２）データ分析部３２は、データベース管理装置１０からデータを取得し統計情報を生成する。
（３）分類構造入力部３３は、ユーザ５０から、分類の基準となる属性の組（属性セット情報７０の設定のための情報）や分類の順番（分類階層情報８０の設定のための情報）の入力を受け付け、属性セット情報７０（後述する図１１）及び分類階層情報８０（後述する図１２）を設定する。
（４）分類構造管理部３４は、分類構造入力部３３が設定した属性セット情報７０及び分類階層情報８０を格納し、必要に応じて出力する。
（５）カラム類似度算出部３５は、メタデータ抽出部３１からカラムの属性を取得し、データ分析部３２からデータの統計情報を取得し、分類構造管理部３４から、属性セット情報７０を取得し、カラム間の類似度を計算する。
（６）テーブル類似度算出部３６は、メタデータ抽出部３１からテーブルの属性を取得し、カラム類似度算出部からカラムの類似度を取得し、カラム類似度から一致カラム対を算出し、テーブル属性と一致カラム対から、分類構造管理部から属性セット情報７０を取得し、テーブル類似度を算出する。
（７）分類判定部３７は、テーブル類似度算出部３６からテーブル間の類似度を取得し、分類構造管理部３４から分類の階層構造を取得し、テーブルの分類階層構造を算出（生成）する。
【００２６】
次に、図５を用いて、データベース分類装置３０により得られる、テーブルの分類結果を説明する。図５は、データベース分類装置３０により得られる結果のイメージ図である。Ｔ１〜Ｔ１７が、分類の対象となる全テーブルである。
この例では、
（１）Ｃ１、Ｃ２、Ｃ３は、まず初めにデータベース分類装置３０がテーブル名称による分類を行い、類似性の高いテーブル同士をグループ分けした結果である。
（２）Ｃ１１、Ｃ１２、Ｃ１３は、Ｃ１に分類されたテーブルについて、さらにデータの内容が近いテーブル同士をグループ分けをした結果である。
（３）Ｃ２１、Ｃ２２は、Ｃ２に分類されたテーブルについて、さらにデータの内容が近いテーブル同士をグループ分けをした結果である。
（４）Ｃ３１、Ｃ３３は、Ｃ３に分類されたテーブルについて、さらにデータの内容が近いテーブル同士をグループ分けをした結果である。
【００２７】
また、通常のツリー構造の分類に比べて、テーブル間およびグループ間の類似度に応じた距離（配置）で表示できるよう、類似度情報を含めたグループの階層構造を分類階層構造と呼ぶ。ただし、表示法、表示形式は、本発明に含まれない。
【００２８】
次に、図６を用いてデータベース分類装置３０の動作の概要を説明する。図６は、データベース分類装置３０により実現されるデータベース分類方式の全体の流れを示した図である。データベース分類方式は、分類構造入力処理Ｓ１、属性取得処理Ｓ２、類似度計算処理Ｓ３、分類階層算出処理Ｓ４の順で処理を行う。
（１）分類構造入力処理Ｓ１は、ユーザから「属性セット情報７０」、「分類階層情報８０」の設定のための情報の入力を受け付け、「属性セット情報７０」、「分類階層情報８０」を設定する処理である。
（２）属性取得処理Ｓ２は、属性セット情報７０に従って、必要な属性をメタデータ抽出部３１やデータ分析部３２から取得する処理である。
（３）類似度計算処理Ｓ３は、属性セット情報７０についてカラムの類似度およびテーブルの類似度を計算する処理である。
（４）分類階層算出処理Ｓ４は、分類の優先順（分類階層情報８０）に従って、階層的に、テーブル類似度からテーブルのグループを計算する処理である。
【００２９】
以下に、各処理の詳細について説明する。図７は、図６における分類構造入力処理Ｓ１の手順を示した図である。分類構造入力処理Ｓ１は、属性セット選択Ｓ１１、分類階層設定Ｓ１２、分類階層蓄積Ｓ１３の順に処理される。
（１）属性セット選択Ｓ１１は、データベース分類装置３０における分類構造入力部３３で実行される。属性セット選択Ｓ１１では、ユーザの指定により、分類の単位となる属性の集合（属性セット情報７０）を設定する処理である。
（２）分類階層設定Ｓ１２は、データベース分類装置３０における分類構造入力部３３で実行される。分類階層設定Ｓ１２は、ユーザの指定により、分類の優先順となる「分類階層情報８０」を設定する処理である。
（３）分類階層蓄積Ｓ１３は、データベース分類装置３０における分類構造管理部３４で実行される。分類階層蓄積Ｓ１３は、「属性セット情報７０」および「分類階層情報８０」を蓄積し、他の処理の要求に応じてこれら情報を提示する。
【００３０】
図８は、属性の集合の要素となるカラム属性６１である。カラム名Ａ１、型Ａ２、精度Ａ３、サイズＡ４、ＮＵＬＬ可フラグＡ５は、メタデータ抽出部３１がデータベース２０から取得する、カラムのメタデータである。ユニーク率Ａ６、ＮＵＬＬ率Ａ７、最大値／最大日付／最大文字数Ａ８、最小値／最小日付／最小文字数Ａ９、平均値／中間日付／平均文字数Ａ１０は、データ分析部３２がデータベース２０から取得する、１つのカラムのデータの統計情報である。Ａ８〜Ａ１０については、型の種類によって値の種類も異なる。
【００３１】
メタデータ抽出部３１は、分類構造入力処理が実行される前にデータベース管理装置（１０）がカラムのメタデータを抽出しておいても良いし、分類構造入力処理の要求に応じてデータベース管理装置１０からメタデータを抽出しても良い。データ分析部３２は、分類構造入力処理が実行される前にデータベース管理装置１０からカラムのデータを抽出し統計情報を算出しておいても良いし、分類構造入力処理の要求に応じてデータベース管理装置１０からデータを抽出して統計情報を算出しても良い。また、Ａ１からＡ１０以外の属性や統計情報を利用しても構わない。
【００３２】
図９は、属性の集合の要素となるテーブル属性６２である。テーブル名Ａ１１、カラム数Ａ１２、ＶＡＲＣＨＡＲ型カラム数Ａ１３、数値型カラム数Ａ１４、日付型カラム数Ａ１５、レコード長Ａ１６は、メタデータ抽出部３１がデータベース２０から取得する、テーブルのメタデータである。レコード数Ａ１７は、データ分析部３２がデータベース２０から取得する、１つのテーブルのデータの統計情報である。
【００３３】
図１０は、属性を用いた類似度を算出するための正規化に利用するテーブルの属性である。最大カラム数Ａ１８、最大レコード長Ａ１９、最大レコード数Ａ２０は、データ分析部３２がデータベース２０から取得する、全テーブルのデータの統計情報である。メタデータ抽出部３１は、分類構造入力処理が実行される前にデータベース管理装置１０からテーブルのメタデータを抽出しておいても良いし、分類構造入力処理の要求に応じてデータベース管理装置１０からメタデータを抽出しても良い。データ分析部３２は、分類構造入力処理が実行される前にデータベース管理装置１０からテーブルのデータを抽出し統計情報を算出しておいても良いし、分類構造入力処理の要求に応じてデータベース管理装置１０からデータを抽出して統計情報を算出しても良い。また、Ａ１１からＡ２０以外の属性や統計情報を利用しても構わない。
【００３４】
図１１は、図６の分類構造入力処理Ｓ１における、属性セット選択Ｓ１１でユーザが設定する分類の単位となる「属性セット情報７０」の例である。
この例では、
セット１は、テーブル名Ａ１１、カラム名Ａ１からなる。
セット２は、カラム数Ａ１２、レコード長Ａ１６、サイズＡ４、精度Ａ３、ＮＵＬＬ可フラグＡ５からなる。
セット３は、レコード数Ａ１７からなる。
セット４は、ユニーク率Ａ６、ＮＵＬＬ率Ａ７からなる。
セット５は、最大値／最大日付／最大文字数Ａ８、最小値／最小日付／最小文字数Ａ９、平均値、中間日付／平均文字数Ａ１０からなる。
セットに含まれる属性および統計情報は、単一でも良いし、複数でも良い。また、テーブルの属性や統計情報とカラムの属性や統計情報を混在しても良い。
【００３５】
図１２は、図６の分類構造入力処理Ｓ１における、分類階層設定Ｓ１２でユーザが設定する、分類優先順となる分類階層情報８０の例である。
この例では、
階層１はセット１、
階層２はセット２、
階層３はセット３、
階層４はセット４、
階層５はセット５
を指定している。
もちろん、分類の評価順は任意に指定して良い。
分類構造入力処理Ｓ１における、分類階層蓄積Ｓ１３では、属性セット選択Ｓ１１および分類階層設定Ｓ１２により指定された、属性セット情報７０と分類階層情報８０を出力し蓄積する処理である。
【００３６】
図１３は、図６における属性取得処理Ｓ２および類似度計算処理Ｓ３の手順を示した図である。属性取得処理Ｓ２は、初期化処理Ｓ２１、分類階層情報取得Ｓ２２、対象テーブル選択Ｓ２３、テーブル属性取得Ｓ２４、カラム属性取得Ｓ２５、データ統計情報取得Ｓ２６からなる。Ｓ２１、Ｓ２２、Ｓ２３、Ｓ２４、Ｓ２６、Ｓ３２、Ｓ３３、Ｓ３４は、データベース分類装置３０における、テーブル類似度算出部３６により実行される。Ｓ２５、Ｓ３１は、データベース分類装置３０における、カラム類似度算出部３５により実行される。類似度計算処理Ｓ３は、カラム類似度計算Ｓ３１、カラム対算出Ｓ３２、テーブル類似度計算Ｓ３３、テーブル組みループ判定Ｓ３４、分類階層ループ判定Ｓ３５、階層別類似度情報出力Ｓ３６からなる。Ｓ３５、Ｓ３６は、データベース分類装置３０における、分類判定部３７により実行される。
【００３７】
以下に図１３を用いて、図６における属性取得処理Ｓ２および類似度計算処理Ｓ３の各処理の詳細を説明する。
【００３８】
（１）初期化処理Ｓ２１では、テーブル類似度算出部３６が、対象とする全テーブルの指定を行うなどの初期化を実行する。
（２）分類階層情報取得Ｓ２２では、テーブル類似度算出部３６が、分類構造管理部３４により蓄積された分類階層情報８０と属性セット情報７０とを分類構造管理部３４から取得する。
（３）対象テーブル選択Ｓ２３では、テーブル類似度算出部３６が、まず初めの分類階層ループとして、分類階層情報８０の階層Ｎｏ１のセットＮｏに対応する属性セット情報７０と、初期化処理Ｓ２１で指定された全テーブルの中から類似度を算出すべきテーブルの組を１つ取り出す。
（４）テーブル属性取得Ｓ２４では、テーブル類似度算出部３６が、階層Ｎｏ１の属性セット情報７０に含まれる種別がテーブルの属性について、対象テーブル選択Ｓ２３において選択された２つのテーブルの属性情報（メタデータ）を、メタデータ抽出部３１より取得する。
（５）カラム属性取得Ｓ２５では、カラム類似度算出部３５が、階層Ｎｏ１の属性セット情報７０に含まれる種別がカラムの属性について、対象テーブル選択Ｓ２３において選択された２つのテーブルに含まれるカラムの属性情報（メタデータ）を、メタデータ抽出部３１より取得する。
（６）データ統計情報取得Ｓ２６では、テーブル類似度算出部３６が、階層Ｎｏ１の属性セット情報７０に含まれる種別がテーブルの属性の統計情報について、対象テーブル選択Ｓ２３において選択された２つのテーブルの属性情報（統計情報）を、データ分析部３２より取得する。また、階層Ｎｏ１の属性セット情報７０に含まれる種別がカラムの属性の統計情報について、対象テーブル選択Ｓ２３において選択された２つのテーブルに含まれるカラムの属性情報（統計情報）を、データ分析部３２より取得する。
【００３９】
以上の、Ｓ２４、Ｓ２５、Ｓ２６により、Ｓ２３で選択された対象のテーブルについて、類似度の計算を行うための必要な情報が準備される。
【００４０】
（１）カラム類似度計算Ｓ３１では、カラム類似度算出部３５が、カラム属性取得Ｓ２５において取得したカラムのメタデータと、データ統計情報取得Ｓ２６において取得したカラムの統計情報それぞれを用いて、カラム間の類似度を求める。複数の属性を合わせて同時に類似度を求める手法は、多次元空間の距離算出などの公知技術により実現可能である。例えば、内積、コサイン尺度、ユークリッド距離、ハミング距離、等々の手法を用いる。
【００４１】
以下に、ユークリッド距離を用いて、カラム１とカラム２間のｎ次元空間における類似度算出の例を示す。以下の例では、カラム属性取得Ｓ２５において取得したカラムのメタデータと、データ統計情報取得Ｓ２６において取得したカラムの統計情報が、図６に示すＡ１〜Ａ１０全て揃っている場合を示す。
【００４２】
カラムの型が一致しない場合は、カラムの類似度ｅは、例えば以下の式により求めることができる。ｈ１は、チューニング用の重み付けである。
ｅ２＝ｈ１÷（カラム１のカラム名文字数＋カラム２のカラム名文字数）
×（カラム１のカラム名文字数＋カラム２のカラム名文字数
−カラム１のカラム名とカラム２のカラム名の最大連続一致文字数×２）
カラムの型が共に数値型の場合は、カラムの類似度ｅは、例えば以下の式により求めることができる。ｈ１からｈ９は、チューニング用の重み付けである。
ｅ２＝ｈ１÷（カラム１のカラム名文字数＋カラム２のカラム名文字数）
×（カラム１のカラム名文字数＋カラム２のカラム名文字数
−カラム１のカラム名とカラム２のカラム名の最大連続一致文字数×２）
＋ｈ２×（精度が一致する場合０、一致しない場合１）
＋ｈ３×（カラム１のサイズ−カラム２のサイズ）２
＋ｈ４×（ＮＵＬＬ可／不可が一致する場合０、一致しない場合１）
＋ｈ５×（カラム１のユニーク率−カラム２のユニーク率）２
＋ｈ６×（カラム１のＮＵＬＬ率−カラム２のＮＵＬＬ率）２
＋ｈ７×（カラム１の最大値−カラム２の最大値）２
＋ｈ８×（カラム１の最小値−カラム２の最小値）２
＋ｈ９×（カラム１の平均値−カラム２の平均値）２
【００４３】
カラムの型が共に日付型の場合は、カラムの類似度ｅは、例えば以下の式により求めることができる。ｈ１からｈ９は、チューニング用の重み付けである。
【００４４】
ｅ２＝ｈ１÷（カラム１のカラム名文字数＋カラム２のカラム名文字数）
×（カラム１のカラム名文字数＋カラム２のカラム名文字数
−カラム１のカラム名とカラム２のカラム名の最大連続一致文字数×２）
＋ｈ３×（カラム１のサイズ−カラム２のサイズ）２
＋ｈ４×（ＮＵＬＬ可／不可が一致する場合０、一致しない場合１）
＋ｈ５×（カラム１のユニーク率−カラム２のユニーク率）２
＋ｈ６×（カラム１のＮＵＬＬ率−カラム２のＮＵＬＬ率）２
＋ｈ７×（カラム１の最大日付−カラム２の最大日付の日数）２
＋ｈ８×（カラム１の最小日付−カラム２の最小日付の日数）２
＋ｈ９×（カラム１の中間日付−カラム２の中間日付の日数）２
【００４５】
カラムの型が共にＶＡＲＣＨＡＲ型の場合は、カラムの類似度ｅは、例えば以下の式により求めることができる。ｈ１からｈ９は、チューニング用の重み付けである。
【００４６】
ｅ２＝ｈ１÷（カラム１のカラム名文字数＋カラム２のカラム名文字数）
×（カラム１のカラム名文字数＋カラム２のカラム名文字数
−カラム１のカラム名とカラム２のカラム名の最大連続一致文字数×２）
＋ｈ３×（カラム１のサイズ−カラム２のサイズ）２
＋ｈ４×（ＮＵＬＬ可／不可が一致する場合０、一致しない場合１）
＋ｈ５×（カラム１のユニーク率−カラム２のユニーク率）２
＋ｈ６×（カラム１のＮＵＬＬ率−カラム２のＮＵＬＬ率）２
＋ｈ７×（カラム１の最大文字数−カラム２の最大文字数）２
＋ｈ８×（カラム１の最小文字数−カラム２の最小文字数）２
＋ｈ９×（カラム１の平均文字数−カラム２の平均文字数）２
【００４７】
以上により、型の一致に応じて、様々なカラムの属性を使ってカラム間の距離（類似度）を求めることができる。上記例では、全てのカラムの属性を評価した類似度の計算を示したが、属性セットごとに上記属性の部分集合を対象にして、距離（類似度）の計算を行っても良い。
【００４８】
（２）続いて、カラム対算出Ｓ３２では、テーブル類似度算出部３６が、Ｓ３１で求めたカラム間の類似度を利用して、テーブル間のカラム対を求める。図１４は、ｎ次元空間の距離からカラム対を求める概念図である。黒い丸があるテーブルのカラムであり、白い丸が別のあるテーブルのカラムである。ｎ次元空間上で、距離が最も近く、かつ一定の閾値以下のカラム同士を、一致するカラムと見なして対とする方法である。この手法については、公知の技術（例えば、特開２００６−６３３３２号公報）で実現可能である。
【００４９】
さらにＳ３２では、一致するカラム同士以外のカラムについても類似度の計算を行う。図１５は、一致するカラム対とそれ以外のカラム全てを対象として、テーブル間の類似度計算する方法の例を示している。
（一致カラム対）
先の一致するカラム対のことを「一致カラム対」と呼ぶ。図１５中の実線で結ばれるカラム同士である。図１５の例では、カラムＵ１１とカラムＵ２３、カラムＵ１２とカラムＵ２１、カラムＵ１４とカラムＵ２２が一致カラム対である。
（類似カラム対）
次に、一致とは見なされないが類似しているカラム同士のことを、「類似カラム対」と呼ぶ。図１５中の点線で結ばれるカラム同士である。図１５の例では、カラムＵ１３とカラムＵ２４が、類似カラム対である。類似カラム対の条件は、一致カラム対以外で、かつ、カラム間の距離の合計が最も近い組である。即ち、類似カラム対は、閾値以上の距離のあるカラム対となる。
（不一致カラム対）
最後に、テーブル間のカラム数の差によって、対にならないカラムが残る場合がある。このカラムについては、対応するカラムを仮に想定して対とする。この仮のカラムを「ＮＵＬＬカラム」と呼び、ＮＵＬＬカラムと対となるカラム同士を「不一致カラム対」と呼ぶ。図１５の一点差線で結ばれたカラム同士が、不一致カラム対である。図１５の例では、カラムＵ１５とカラムＵ２５が不一致カラム対である。ＮＵＬＬカラムは、対となるカラムと同じ型で、データが０件の仮想的なカラムである。
【００５０】
（３）テーブル類似度計算Ｓ３３では、テーブル類似度算出部３６が、テーブル属性取得Ｓ２４で取得したテーブルのメタデータおよびデータ統計情報取得Ｓ２６で取得したテーブルの統計情報と、Ｓ３１で求めたカラム類似度と、Ｓ３２で求めたカラム対を用いて、Ｓ２３で選択したテーブル間の類似度の計算を行う。
【００５１】
まず、テーブル属性取得Ｓ２４で取得したテーブルのメタデータおよびデータ統計情報取得Ｓ２６で取得したテーブルの統計情報を用いた類似度の算出法を示す。カラム間の類似度算出と同様に、複数の属性を合わせて同時に類似度を求める手法は、多次元空間の距離算出などの公知技術により実現可能である。例えば、内積、コサイン尺度、ユークリッド距離、ハミング距離、等々の手法を用いる。以下に、ユークリッド距離を用いて、テーブル１とテーブル２間のｎ次元空間における類似度算出の例を示す。以下の例では、テーブル属性取得Ｓ２４において取得したメタデータと、データ統計情報取得Ｓ２６において取得した統計情報が、図９に示すＡ１１〜Ａ２０全て揃っている場合を示す。
【００５２】
テーブルの類似度ｒは、例えば以下の式により求めることができる。ｋ１〜ｋ７は、チューニング用の重み付けである。
【００５３】
ｒ２＝ｋ１÷（テーブル１のテーブル名文字数＋テーブル２のテーブル名文字数）
×（テーブル１のテーブル名文字数＋テーブル２のテーブル名文字数
−テーブル１のテーブル名とテーブル２のテーブル名の最大連続一致文字数×２）
＋ｋ２÷最大カラム数２×（テーブル１のカラム数−テーブル２のカラム数）２
＋ｋ３÷最大カラム数２×（テーブル１のＶＡＲＣＨＡＲ型カラム数−テーブル２のＶＡＲＣＨＡＲ型カラム数）２
＋ｋ４÷最大カラム数２×（テーブル１の数値型カラム数−テーブル２の数値カラム数）２
＋ｋ５÷最大カラム数２×（テーブル１の日付型カラム数−テーブル２の日付カラム数）２
＋ｋ６÷最大レコード数２×（テーブル１のレコード数−テーブル２のレコード数）２
＋ｋ７÷最大レコード長２×（テーブル１のレコード長−テーブル２のレコード長）２
【００５４】
続いて、上記類似度ｒと、Ｓ３１で求めたカラム類似度と、Ｓ３２で求めたカラム対を用いて、Ｓ２３で選択したテーブル間の類似度の計算法を示す。
【００５５】
テーブルの類似度Ｒは、例えば以下の式により求めることができる。Ｋ１〜Ｋ４は、チューニング用の重み付けである。
【００５６】
Ｒ２＝Ｋ１×ｒ２
＋（Ｋ２×（（カラムＵ１１とカラムＵ２３間の距離）２＋（カラムＵ１２とカラムＵ２１間の距離）２＋（カラムＵ１４とカラムＵ２２間の距離）２）
＋Ｋ３×（カラムＵ１３とカラムＵ２４間の距離）２
＋Ｋ４×（カラムＵ１５とカラムＵ２５間の距離）２）÷全カラム対の数
【００５７】
また、一致するカラム対のみ評価する場合（対にならないカラムを無視する場合）は、
Ｋ３＝Ｋ４＝０
として、該当の距離算出を行わなくても良い。
【００５８】
（４）テーブル組みループＳ３４は、テーブル類似度算出部３６が、類似度計算が行われていないテーブルの組が残っているかを判断し、残っている場合はＳ２３に戻って、新たなテーブルの組を対象とするループである。
【００５９】
（５）分類階層ループＳ３５において、分類判定部３７が、類似度計算が行われていない階層が残っているかを判断し、残っている場合は次の階層の分類階層情報８０を取得するためＳ２１、Ｓ２２に戻るためのループである。
【００６０】
（テーブル間類似度の出力）
以上、図１３に示したＳ２１〜Ｓ３５により、全ての分類階層（図１２の階層Ｎｏ１〜Ｎｏ５）に対して、全てのテーブルの組について計算した類似度を、階層別類似度情報出力Ｓ３６において、分類判定部３７が、出力する。図１６は、Ｓ３６において出力される階層別テーブル間類似度９０（分類階層別テーブル間類似度と言う場合がある）の例を示す。それぞれの階層ごとに、テーブルの総数Ｎの２次元配列として、次の式に示すテーブル間類似度を保持する。
テーブル間類似度＝Ｒｉ［Ｎ］［Ｎ］、
ｉ：分類階層情報８０における階層Ｎｏを示す。
Ｎ：テーブル番号を示す。
【００６１】
図１７は、図６における分類階層算出処理Ｓ４の詳細な手順を記した図である。分類階層算出Ｓ４では、分類判定部３７は、類似度計算Ｓ３で求めたテーブル間類似度Ｒｉ［Ｎ］［Ｎ］を元に、テーブルを階層構造に分類する。分類階層算出処理Ｓ４では、分類判定部３７が、初期化処理を行うＳ４１、分類階層テーブルセット取得Ｓ４２、分類階層別テーブル間類似度取得Ｓ４３、現グループ内テーブル分類Ｓ４４、子グループ出力Ｓ４５、同階層ループＳ４６、下位階層ループＳ４７、分類階層構造結果出力Ｓ４８の順に処理する。
【００６２】
初期化処理Ｓ４１では、分類判定部３７は、階層構造のルートを指定するなどのループに必要な初期化処理を行う。例えば図５の例では、初期状態値において、名前類似を最初（第１階層）に行なう。
【００６３】
分類階層テーブルセット取得Ｓ４２では、分類判定部３７は、分類の対象となる階層におけるグループに含まれるテーブル群を取得する。最初のループでは、全てのテーブルが対象となる。２回目以降のループでは、前回ループで生成された子グループを母集団とする。例えば図５の例では、最初のループではＴ１〜Ｔ１７を親グループ（現グループ）とする。
【００６４】
テーブル間類似度取得Ｓ４３では、図６における類似度計算処理Ｓ３の結果として出力された、図１６の例に示す分類階層別テーブル間類似度９０を取得する。この場合、Ｒ１を取得する。
【００６５】
現グループ内テーブル分類Ｓ４４では、分類階層テーブルセット取得Ｓ４２で取得したテーブルの集合について、テーブル間類似度取得Ｓ４３で取得した分類階層別テーブル間類似度９０を元に、テーブルのクラスタリングを行う。クラスタリングの手法は、公知の技術により実現する。例えば図５の例では、Ｔ１〜Ｔ１７を分類する。
【００６６】
子グループ出力Ｓ４５では、現グループ内テーブル分類Ｓ４４で分類された結果を出力する。例えば図５の例では、Ｃ１〜Ｃ３を分類する。
【００６７】
同階層ループＳ４６は、同じ分類階層における別のグループが残っているか判定し、残っている場合は、次のグループを分類の対象とするために、分類階層テーブルセット取得Ｓ４２へ戻るループである。Ｓ４６最初のループでは、親グループの兄弟（同階層）が存在しないため、Ｓ４７へ進む。
【００６８】
下位階層ループＳ４７は、現階層の全てのグループについての分類が終了後に、分類階層情報８０の下位の階層が残っているかを判定し、残っている場合は、下位の階層の分類を行うために、分類階層テーブルセット取得Ｓ４２へ戻るループである。第２下位層の処理を行うため、Ｓ４２へ戻る。
【００６９】
図１７の処理を図５と対比して説明すれば次の様である。図１７は分類判定部３７による動作である。
（１）Ｓ４１において、図５では、初期状態値でな名前類似を最初（第１階層）に行う。
（２）Ｓ４２において、図５では、最初のループでは、Ｔ１〜Ｔ１７を親グループ（現グループ）とする。
（３）Ｓ４３において、図１６の階層別テーブル間類似度Ｒ１を取得する
（４）Ｓ４４において、図５では、Ｔ１〜Ｔ１７を分類する。
（５）Ｓ４５において、図５では、子グループＣ１〜Ｃ３を出力する。
（６）Ｓ４６において、最初のループでは、親グループの兄弟（同階層）が存在しないため、Ｓ４７へ進む。
（７）Ｓ４７において、第２階層の処理を行うためＳ４２へ戻る。
（８）Ｓ４２において、図５では、Ｃ１のテーブルＴ１〜Ｔ６を親グループ（現グループ）とする。
（９）Ｓ４３において、図１６の階層別テーブル間類似度Ｒ２を取得する。
（１０）Ｓ４４において、図５では、テーブルＴ１〜Ｔ６を分類する。
（１１）Ｓ４５において、図５では、子グループＣ１１〜Ｃ１３を出力する。
（１２）Ｓ４６において、親グループの兄弟（同階層）であるＣ２の処理を行うため、Ｓ４２に進む。
（１３）Ｓ４２〜Ｓ４５において、同様にＣ２を処理する。
（１４）親グループの兄弟（同階層）であるＣ３の処理を行うため、Ｓ４２に進む。
（１５）Ｓ４２〜Ｓ４５において、同様にＣ３を処理する。
（１６）Ｓ４６において、親グループの兄弟（同階層）がないので、Ｓ４７に進む。
（１７）Ｓ４７において、第３階層の処理を行うためＳ４２へ戻る。
（１８）Ｓ４２において、図５では、Ｃ１１のテーブルＴ１〜Ｔ３を親グループ（現グループ）とする。
（１９）Ｓ４３において、図１６の階層別テーブル間類似度Ｒ３を取得する。
（２０）Ｓ４４において、図５では、テーブルＴ１〜Ｔ３を分類する。
（２１）Ｓ４５において、図５では、上記と同様に子グループＣ１１〜Ｃ１３を出力する。
（２２）Ｓ４６において、親グループの兄弟（同階層）であるＣ１２の処理を行うため、Ｓ４２に進む。
（２３）Ｓ４２〜Ｓ４５において、同様にＣ１２〜Ｃ３３を処理する。
（２４）Ｓ４６において、親グループの兄弟（同階層）がないので、Ｓ４７に進む。
（２５）Ｓ４７において、第４階層の処理を行うためＳ４２へ戻る。同様の処理を繰り返し、最下の階層となればループを終了する。
（２６）Ｓ４８において、図５に示す、階層的に分類された結果を得る。
【００７０】
以上、Ｓ４１〜Ｓ４７により、全ての分類階層において分類された結果を、分類階層構造結果出力Ｓ４８において出力する。分類階層構造結果は、階層的にクラスタリングされ、さらに類似度を付加したグラフ構造となり、図３のデータ統合支援システムにおける、可視化装置４０により可視化される。
【００７１】
以上のように、データベース分類装置３０は、類似性判定の基準となる属性の優先順位を指定するようにしているので、ユーザが優先する重要な比較から順に類似性を確認できるため、類似の要因が明確となる。
【００７２】
さらに、類似性判定の基準となる属性は、複数をセットに指定することを可能としているので、ユーザの意図に応じて分類の精度を向上することができる。
【００７３】
また、テーブルと言うある意味のもの元にまとめられたカラムの集合の類似度を使いテーブルを分類しているので、平坦にカラム間の類似性を求めるよりも、意味的に近いテーブルの類似性を識別できるようになる。
【００７４】
また、テーブルの属性とカラムの属性を混在して分類の基準に指定するようにしているので、ユーザは自在に優先順位を指定して、分類の精度向上や作業の効率化を調整することができる。
【００７５】
さらに、一致と見なすカラムの対以外の、類似のカラムや、不一致のカラムについても類似性の評価の対象に含めるため、テーブルの類似性の判定精度を向上することができる。
【００７６】
また、テーブルやカラムの統計情報を、類似性を判定する属性の一部に利用しているので、レコード数が異なるテーブルや、属性値の一致が少ないカラムの比較ができる。
【００７７】
また、データベース固有の属性情報を多数利用しているので、取得できる情報が不完全な場合にも、テーブルの分類が可能である。
【００７８】
実施の形態２．
以上の実施の形態１では、どちらかと言うと固定的な階層構造の分類を行うものであるが、ユーザは分類結果から類似の要因を把握するために、インタラクティブに分類の優先順位を変更することが有効となりえる。もちろん、実施の形態１であっても全ての処理を１からやり直せば、優先順位を変更した分類を行うことは可能であるが、類似度計算やクラスタリングは計算量の多い処理であり、かつ対象となるテーブルやカラムの数が膨大となると再計算の時間が問題となることがある。
【００７９】
本実施の形態２では、そのような場合に計算量を削減する実施の形態を示す。図１８は、図５の分類結果から、分類の優先順位を変えて、階層の順番入れ替えた分類結果のイメージの例である。図５の例では、初めに名称の類似性で分類を行い、次にデータの類似性による分類を行っていた。図１８の例では、類似性の優先順位を変えて、初めにデータの類似性による分類を行い、次に名称の類似性による分類を行っている。
【００８０】
図１８において、Ｔ１〜Ｔ１７が、分類の対象となる全テーブルである。この例では、Ｄ１、Ｄ２、Ｄ３は、まず初めにデータの内容が近いもの同士でグループ分けを行い、類似性の高いもの同士をグループ分けした結果である。Ｄ１１、Ｄ１２、Ｄ１３は、Ｄ１に分類されたテーブルについてさらに名称により分類した結果である。Ｄ２１、Ｄ２２は、Ｄ２に分類されたテーブルについてさらに名称により分類した結果である。Ｄ３１、Ｄ３３は、Ｄ３に分類されたテーブルについてさらに名称により分類した結果である。ただし、表示法、表示形式は、本発明に含まれない。
【００８１】
実施の形態２においても、データベース統合システムの全体構成図は、図３と同様である。また、実施の形態２においても、データベース分類装置３０の構成図は、図４と同様である。
【００８２】
次に動作について説明する。実施の形態２は、実施の形態１に対して分類判定部３７の処理動作が異なる。その他は実施の形態１と同様である。
【００８３】
実施の形態２において、データベース分類方式の全体の流れは図６とほぼ同等であるが、分類階層算出Ｓ４の処理内容が異なり、図１８に示す分類階層算出Ｓ５となる。
（１）実施の形態２においても、分類構造入力処理の手順は、図７と同様である。
（２）また、実施の形態２においても、属性の集合の要素となるカラムの属性は、図８と同様のものを利用する。
（３）また、実施の形態２においても、属性の集合の要素となるテーブルの属性は、図９と同様のものを利用する。
（４）また、実施の形態２においても、属性を用いた類似度を算出するための正規化に利用するテーブルの属性は、図１０と同様のものを利用する。
（５）また、実施の形態２においても、分類単位となる属性セット情報７０の例は、図１１と同様とする。
（６）また、実施の形態２においても、分類の優先順となる分類階層情報８０の例は、図１２と同様とする。
（７）また、実施の形態に２においても、属性取得処理および類似度計算処理の手順は、図１３と同様である。
（８）また、実施の形態２においても、類似度計算Ｓ３により得られる、分類階層別テーブル間類似度９０は、図１６と同様とする。
【００８４】
図２０は、図１９における分類階層算出処理Ｓ５の詳細な手順を記した図である。実施の形態１では、分類階層情報８０に従って、上位の階層から順番にクラスタリングを行い、最終的な分類階層構造結果を出力していた。実施の形態２では、分類階層情報８０に従った階層的な分類と、属性セット情報７０に従ったテーブル群のクラスタリング処理を分離することにより、分類の優先順である階層を入れ替えた場合に、クラスタリング処理を再計算すること無しに、最終的な分類階層構造結果を得ることができる。
【００８５】
実施の形態２における分類判定部３７による分類階層算出処理Ｓ５では、類似度計算Ｓ３で求めたテーブル間類似度を元に、前半部分では、属性セットごとのテーブルの分類を行う。分類階層算出処理Ｓ５は、まず分類初期化処理Ｓ５１、全テーブルセット取得Ｓ５２、テーブル間類似度取得Ｓ５３、テーブル分類Ｓ５４、属性セットループＳ５５、属性セット別分類情報出力Ｓ５６、テーブル別属性セット変換Ｓ５７の順に処理する。後半部分では、分類階層順多重ソートＳ６１、分類間類似度計算Ｓ６２、分類階層構造結果出力Ｓ６３の順に処理する。
【００８６】
（１）分類初期化処理Ｓ５１では、属性セットを順番に調べるために必要な初期化処理を行う。
（２）全テーブルセット取得Ｓ５２では、分類の対象となる全てのテーブルを取得する。２回目以降のループでも、全てのテーブルが対象となる。
（３）テーブル間類似度取得Ｓ５３では、図１９における類似度計算処理Ｓ３の結果として出力された、図１６の例に示す分類階層別テーブル間類似度９０を取得する。
（４）テーブル分類Ｓ５４では、全テーブルセット取得Ｓ５２で取得したテーブルの集合について、テーブル間類似度取得Ｓ５３で取得した分類階層別テーブル間類似度９０を元に、テーブルのクラスタリング処理を行う。クラスタリングの手法は、公知の技術により実現する。
【００８７】
実施の形態２では、クラスタリングを階層的に進めるのではなく、予め属性セットごとにクラスタリング結果を全て取得する。
【００８８】
（５）属性セットループＳ５５で、分類が終わっていない残りの属性セットがあるかを判定し、残りの属性セットがある場合は、次の属性セットについて分類を行うために、Ｓ５２へ戻る。
（６）全ての属性セットに関して、テーブルの分類が終了した時点で、属性セット別分類情報出力Ｓ５６で、属性セット別分類情報２０１を出力する。
図２１は、属性セット別分類情報２０１の例である。属性セットごとに、クラスタリングにより分類された数だけ、テーブルの部分集合が求められる。この時点では、分類間の類似度（距離）については、計算しない。
（７）テーブル別属性セット変換Ｓ５７では、属性セット別分類情報出力Ｓ５６で得られた、属性セット別分類情報２０１を、テーブル別属性セット情報２０２に変換する。図２２は、図２１の属性セット別分類情報２０１を、テーブル別属性セット情報２０２に変換した例である。属性セットごとのテーブルの集合が、各テーブルについて、各属性セットにおける分類番号を並べる表形式に変換する。
【００８９】
（８）分類階層順多重ソートＳ６１は、テーブル別属性セット変換Ｓ５７の出力結果である属性セット別分類情報２０１について、図７の分類階層蓄積Ｓ１３で保存されている分類蓄積情報の階層Ｎｏ順にセットＮｏでソートする処理を行う。図２３は、図１２の例に示した分類階層情報８０に従い、セットＮｏ１、２、３、４、５の順にテーブル別セット情報をソートした結果２０３である。この例では、セットＮｏの順番と分類階層の順番が同一であるが、もちろんユーザの指定に従い任意の順番でソートすることは容易である。ソートの方式は公知の技術により実現可能である。
【００９０】
図２４は、図２３の分類階層順多重ソート結果を、木構造２０４で表現した図である。Ｓ６１の時点で、分類間の類似度（距離）を除いた、分類階層構造が生成される。
【００９１】
（９）分類間類似度計算Ｓ６２は、分類階層順多重ソートＳ６１の出力を元に、各階層のグループ間の類似度を求める処理である。類似度を求めるグループは、親のグループが同じグループ間でのみ計算する。図２４の例では、階層Ｎｏ１（セット＃１）の階層では、分類Ｎｏ１、２、３、４それぞれの間の、合計６通りの類似度を計算する。階層Ｎｏ２（セット＃２）の階層では、上位階層が同じ分類同士で、分類Ｎｏ１と２の組の合計４通り類似度を計算する。分類間の類似度の計算方式は、公知の技術を利用する。例えば、単一リンク法の一番近いデータ対の距離でも良いし、完全リンク法の一番遠いデータ対の距離でも良いし、群平均法の全データ対の距離平均でも良いし、ＷＡＲＤ法の平均ベクトル（セントロイド）との誤差平方和でも良い。分類間の類似度計算に必要なテーブル間の類似度は、図１３の階層別類似度情報出力Ｓ３６の結果である、図１６に示す分類階層別テーブル間類似度９０を使用する。
【００９２】
（１０）以上、Ｓ５１〜Ｓ６２により、全ての分類階層において分類された結果を、分類階層構造結果出力Ｓ６３において出力する。分類仮想構造結果は、階層的にクラスタリングされ、さらに類似度を付加したグラフ構造となり、図３のデータ統合支援システムにおける、可視化装置（４）により可視化される。
【００９３】
そして、ユーザの操作により、インタラクティブに分類の優先順位を変更して、再度分類を得る場合は、図１９の属性取得Ｓ２および類似度計算Ｓ３は実行する必要が無く、分類階層算出Ｓ５については、図２０のＳ５１〜Ｓ５７までは、前回実行時の結果を再利用して、Ｓ６１〜Ｓ６３のみ実行すればよい。
【００９４】
以上のように、実施の形態２では、クラスタリングを階層的に進めるのではなく、クラスタリングと階層構造の生成を分離して実行するようにしているので、２度目以降は分類の優先順位を自在に変更して再分類を行う際に、クラスタリングの結果を再利用して計算時間を削減することができ、ユーザが自由に優先順位を変化させた比較検討を容易に行うことが可能となる。
【図面の簡単な説明】
【００９５】
【図１】実施の形態１におけるデータベース分類装置３０の外観を示す図。
【図２】実施の形態１におけるデータベース分類装置３０のハードウェア構成図。
【図３】実施の形態１におけるデータ統合支援システムの構成図。
【図４】実施の形態１におけるデータベース分類装置３０のブロック図。
【図５】実施の形態１におけるデータベース分類装置３０により得られる結果のイメージを示す図。
【図６】実施の形態１におけるデータベース分類装置３０の動作の概要を示すフローチャート。
【図７】実施の形態１におけるデータベース分類装置３０の分類構造入力処理を示すフローチャート。
【図８】実施の形態１におけるカラム属性６１の一例を示す図。
【図９】実施の形態１におけるテーブル属性６２の一例を示す図。
【図１０】実施の形態１における正規化用テーブルデータ統計情報を示す図。
【図１１】実施の形態１における属性セット情報を示す図。
【図１２】実施の形態１における分類階層情報を示す図。
【図１３】実施の形態１におけるデータベース分類装置３０の属性取得処理及び類似度計算処理を示すフローチャート。
【図１４】実施の形態１におけるｎ次元空間の距離からカラム対を求める概念図。
【図１５】実施の形態１におけるカラム対からテーブル間の類似度を算出する方法を説明する図。
【図１６】実施の形態１における分類階層別テーブル間類似度を示す図。
【図１７】実施の形態１におけるデータベース分類装置３０による分類階層算出処理を示すフローチャート。
【図１８】実施の形態２におけるデータベース分類装置３０により得られる結果のイメージを示す図。
【図１９】実施の形態２におけるデータベース分類装置３０の動作の概要を示すフローチャート。
【図２０】実施の形態２におけるデータベース分類装置３０の分類階層算出処理の詳細を示すフローチャート。
【図２１】実施の形態２における属性セット別分類情報２０１を示す図。
【図２２】実施の形態２におけるテーブル別属性セット情報２０２を示す図。
【図２３】実施の形態２における分類階層順多重ソート結果２０３を示す図。
【図２４】実施の形態２における分類階層順多重ソート結果の木構造を示す図。
【符号の説明】
【００９６】
１０  データベース管理装置、２０  データベース、３０  データベース分類装置、４０  可視化装置、５０  ユーザ、３１  メタデータ抽出部、３２  データ分析部、３３  分類構造入力部、３４  分類構造管理部、３５  カラム類似度算出部、３６  テーブル類似度算出部、３７  分類判定部、６１  カラム属性、６２  テーブル属性、６３  正規化用テーブルデータ統計情報、７０  属性セット情報、８０  分類階層情報、９０  階層別テーブル間類似度、２０１  属性セット別分類情報、２０２  テーブル別属性セット情報、２０３  分類階層順多重ソート結果、２０４  木構造、８００  コンピュータシステム、８１０  ＣＰＵ、８１１  ＲＯＭ、８１２  ＲＡＭ、８１３  表示装置、８１４  Ｋ／Ｂ、８１５  マウス、８１６  通信ボード、８１７  ＦＤＤ、８１８  ＣＤＤ、８１９  プリンタ装置、８２０  磁気ディスク装置、８２１  ＯＳ、８２２  ウィンドウシステム、８２３  プログラム群、８２４  ファイル群、８２５  バス、８３０  システムユニット。
【図１】
2008181459.tif 000003
【図２】
2008181459.tif 000004
【図３】
2008181459.tif 000005
【図４】
2008181459.tif 000006
【図５】
2008181459.tif 000007
【図６】
2008181459.tif 000008
【図７】
2008181459.tif 000009
【図８】
2008181459.tif 000010
【図９】
2008181459.tif 000011
【図１０】
2008181459.tif 000012
【図１１】
2008181459.tif 000013
【図１２】
2008181459.tif 000014
【図１３】
2008181459.tif 000015
【図１４】
2008181459.tif 000016
【図１５】
2008181459.tif 000017
【図１６】
2008181459.tif 000018
【図１７】
2008181459.tif 000019
【図１８】
2008181459.tif 000020
【図１９】
2008181459.tif 000021
【図２０】
2008181459.tif 000022
【図２１】
2008181459.tif 000023
【図２２】
2008181459.tif 000024
【図２３】
2008181459.tif 000025
【図２４】
2008181459.tif 000026