(57)【特許請求の範囲】
【請求項１】
第１のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第１カラム群とし、第２のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第２カラム群とし、前記第１カラム群と前記第２カラム群との各々から、前記第１カラム群と前記第２カラム群との間で共通するデータを格納するカラム同士を同義カラムとして検出する同義カラム検出装置であって、
前記第１カラム群に含まれる各カラムの属性を示す第１属性情報と前記第２カラム群に含まれる各カラムの属性を示す第２属性情報とを入力装置により入力する属性情報入力部と、
前記第１のデータベースに対するクエリの発行履歴を示す第１履歴情報と前記第２のデータベースに対するクエリの発行履歴を示す第２履歴情報とを入力装置により入力する履歴情報入力部と、
前記属性情報入力部により入力された第１属性情報と第２属性情報とを比較して、比較結果に基づき、前記第１カラム群と前記第２カラム群との各々から、前記同義カラムの候補を抽出し、前記第１カラム群から抽出した同義カラムの候補である第１候補と前記第２カラム群から抽出した同義カラムの候補である第２候補とがそれぞれ２つ以上ある場合、前記履歴情報入力部により入力された第１履歴情報で示されたクエリの発行履歴に、前記第１候補に含まれる各カラムが出現する時系列順序のパターンのうち、最も多いパターンと、前記履歴情報入力部により入力された第２履歴情報で示されたクエリの発行履歴に、前記第２候補に含まれる各カラムが出現する時系列順序のパターンのうち、最も多いパターンとの間で、出現する順位が共通するカラム同士を前記同義カラムとして判定する同義カラム判定部とを備えることを特徴とする同義カラム検出装置。
【請求項２】
前記同義カラム判定部は、前記第１カラム群に含まれるカラムと前記第２カラム群に含まれるカラムとの組み合わせごとに、前記属性情報入力部により入力された第１属性情報で示された属性と前記属性情報入力部により入力された第２属性情報で示された属性との類似度を算出し、算出した類似度が所定の閾値以上となる組み合わせの各カラムを前記同義カラムの候補とすることを特徴とする請求項１に記載の同義カラム検出装置。
【請求項３】
第１のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第１カラム群とし、第２のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第２カラム群とし、前記第１カラム群と前記第２カラム群との各々から、前記第１カラム群と前記第２カラム群との間で共通するデータを格納するカラム同士を同義カラムとして検出する同義カラム検出装置であって、
前記第１カラム群に含まれる各カラムに格納された第１データ群と前記第２カラム群に含まれる各カラムに格納された第２データ群とを入力装置により入力するデータ入力部と、
前記第１のデータベースに対するクエリの発行履歴を示す第１履歴情報と前記第２のデータベースに対するクエリの発行履歴を示す第２履歴情報とを入力装置により入力する履歴情報入力部と、
前記データ入力部により入力された第１データ群と第２データ群とを比較して、比較結果に基づき、前記第１カラム群と前記第２カラム群との各々から、前記同義カラムの候補を抽出し、前記第１カラム群から抽出した同義カラムの候補である第１候補と前記第２カラム群から抽出した同義カラムの候補である第２候補とがそれぞれ２つ以上ある場合、前記履歴情報入力部により入力された第１履歴情報で示されたクエリの発行履歴に、前記第１候補に含まれる各カラムが出現する時系列順序のパターンのうち、最も多いパターンと、前記履歴情報入力部により入力された第２履歴情報で示されたクエリの発行履歴に、前記第２候補に含まれる各カラムが出現する時系列順序のパターンのうち、最も多いパターンとの間で、出現する順位が共通するカラム同士を前記同義カラムとして判定する同義カラム判定部とを備えることを特徴とする同義カラム検出装置。
【請求項４】
前記同義カラム判定部は、前記第１カラム群に含まれるカラムと前記第２カラム群に含まれるカラムとの組み合わせごとに、前記データ入力部により入力された第１データ群と第２データ群との類似度を算出し、算出した類似度が所定の閾値以上となる組み合わせの各カラムを前記同義カラムの候補とすることを特徴とする請求項３に記載の同義カラム検出装置。
【請求項５】
前記同義カラム判定部は、さらに、前記履歴情報入力部により入力された第１履歴情報と第２履歴情報とを比較し、比較結果に基づき、前記第１カラム群と前記第２カラム群との各々から、前記同義カラムの候補を抽出することを特徴とする請求項１から４までのいずれかに記載の同義カラム検出装置。
【請求項６】
第１のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第１カラム群とし、第２のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第２カラム群とし、前記第１カラム群と前記第２カラム群との各々から、前記第１カラム群と前記第２カラム群との間で共通するデータ同士を格納するカラムを同義カラムとして検出する同義カラム検出方法であって、
入力装置が、前記第１カラム群に含まれる各カラムの属性を示す第１属性情報と前記第２カラム群に含まれる各カラムの属性を示す第２属性情報とを入力し、
入力装置が、前記第１のデータベースに対するクエリの発行履歴を示す第１履歴情報と前記第２のデータベースに対するクエリの発行履歴を示す第２履歴情報とを入力し、
処理装置が、前記第１属性情報と前記第２属性情報とを比較して、比較結果に基づき、前記第１カラム群と前記第２カラム群との各々から、前記同義カラムの候補を少なくとも１つずつ抽出し、
処理装置が、前記第１カラム群から抽出した同義カラムの候補である第１候補と前記第２カラム群から抽出した同義カラムの候補である第２候補とがそれぞれ２つ以上ある場合、前記第１履歴情報で示されたクエリの発行履歴に、前記第１候補に含まれる各カラムが出現する時系列順序のパターンのうち、最も多いパターンと、前記第２履歴情報で示されたクエリの発行履歴に、前記第２候補に含まれる各カラムが出現する時系列順序のパターンのうち、最も多いパターンとの間で、出現する順位が共通するカラム同士を前記同義カラムとして判定することを特徴とする同義カラム検出方法。
【請求項７】
第１のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第１カラム群とし、第２のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第２カラム群とし、前記第１カラム群と前記第２カラム群との各々から、前記第１カラム群と前記第２カラム群との間で共通するデータ同士を格納するカラムを同義カラムとして検出する同義カラム検出方法であって、
入力装置が、前記第１カラム群に含まれる各カラムに格納された第１データ群と前記第２カラム群に含まれる各カラムに格納された第２データ群とを入力し、
入力装置が、前記第１のデータベースに対するクエリの発行履歴を示す第１履歴情報と前記第２のデータベースに対するクエリの発行履歴を示す第２履歴情報とを入力し、
処理装置が、前記第１データ群と前記第２データ群とを比較して、比較結果に基づき、前記第１カラム群と前記第２カラム群との各々から、前記同義カラムの候補を少なくとも１つずつ抽出し、
処理装置が、前記第１カラム群から抽出した同義カラムの候補である第１候補と前記第２カラム群から抽出した同義カラムの候補である第２候補とがそれぞれ２つ以上ある場合、前記第１履歴情報で示されたクエリの発行履歴に、前記第１候補に含まれる各カラムが出現する時系列順序のパターンのうち、最も多いパターンと、前記第２履歴情報で示されたクエリの発行履歴に、前記第２候補に含まれる各カラムが出現する時系列順序のパターンのうち、最も多いパターンとの間で、出現する順位が共通するカラム同士を前記同義カラムとして判定することを特徴とする同義カラム検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同義カラム検出装置及び同義カラム検出方法に関するものである。
【背景技術】
【０００２】
複数情報システムを統合する場合、システム内で管理対象を識別する用語や管理コードの体系が異なる、あるいは、システム設計者の思想が異なることにより、データモデル設計時にシステム統合の本質でない同義カラムの探索負荷が発生する場合がある。つまり、同じ管理対象（例えば、備品点検の担当者）の同じ情報（例えば、氏名）を格納するカラム（即ち、同義カラム）であっても、複数のデータベースのテーブル間でカラム名等が統一されていないことがあり、このようなデータベースを統合する際には、同義カラムの探索が必要となる。
【０００３】
具体的には、ある管理対象Ｅ：とシステム連携におけるデータ関係の場合である。論理設計時には、管理対象Ｅ：の情報を管理するテーブルは１つであり、唯一のテーブルあるいはカラムがＥ：の情報を管理し、他のテーブルあるいはカラムはＥ：を管理する上記テーブル及びカラムを参照するよう定義することが望ましい。しかし、外部参照等の機能によりデータ連携を実装した場合、更新順序等、処理が複雑になることから、連携アプリケーションによりデータをコピーする等の手段が適用され、実装時には管理対象Ｅ：の情報を管理するテーブルあるいはカラムが並列関係で複数存在するようなテーブル関係によってシステムが構築される場合がある。
【０００４】
これにより、複数テーブルにおいて同義のカラムが独立して存在することになり、システム改修時等に同義カラムを探索する必要が発生する。また、既に複数のサブシステムが連携している状態で新たなシステムを追加する場合においても、同様にシステム間の同義カラム探索の負荷が発生する。
【０００５】
従来、カラム名による類似度の検出を行う方法がある（例えば、特許文献１参照）。また、カラムの文字列長や可変文字列の最大文字列長、最小文字列長、型、インスタンスの最大値やプレフィックス等の部分一致、シノニム等、スキーマ情報を用いた同義カラム検出処理を行うことにより複数のデータベース間でカラム名が異なる同義カラムを検出する方法がある（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−２４９３３８号公報
【特許文献２】特開２００６−９９２３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来のカラム名による類似度の検出を行う方法では、カラム名の意味が異なっている場合には適用できないという課題があった。例えば、「氏名」や「Ｎａｍｅ」といったカラム名に対し、「ｃｗ１」のようにデータベースで管理するカラム名の意味が異なる場合、カラム名だけを比較しても同義カラムであると判断することは不可能である。このようにカラム名が統一されていない場合、カラムの型やカラムの値（インスタンス）を比較する等、複数の検出手法を組み合わせることにより、異なるデータベース間、あるいは、テーブル間の同義カラムを検出する方法が必要となる。
【０００８】
しかし、従来の同義カラムを検出する方法では、テーブル定義や格納されたデータ等の情報だけでは検出できない同義カラムがあるという課題があった。例えば、備品点検のワークフローシステムのように「点検開始」、「点検終了」といった時間的な意味の異なるカラムをもつ、２つのシステムのデータベース内の同義カラムを探索する場合、カラム名称による特徴を検出できない場合には、２つの日付カラムの意味を計算機が判別することはできない。そのため、テーブル定義や格納されたデータだけでは異なるシステム間で同じ事象を管理するカラムを検出できないことがある。
【０００９】
本発明は、例えば、同じような属性をもつ、あるいは、同じようなデータを格納する複数のカラムの各々について、同義カラムであるか否かを判定することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一の態様に係る同義カラム検出装置は、
第１のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第１カラム群とし、第２のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第２カラム群とし、前記第１カラム群と前記第２カラム群との各々から、前記第１カラム群と前記第２カラム群との間で共通するデータを格納するカラムを同義カラムとして検出する同義カラム検出装置であって、
前記第１カラム群に含まれる各カラムの属性を示す第１属性情報と前記第２カラム群に含まれる各カラムの属性を示す第２属性情報とを入力装置により入力する属性情報入力部と、
前記第１のデータベースに対するクエリの発行履歴を示す第１履歴情報と前記第２のデータベースに対するクエリの発行履歴を示す第２履歴情報とを入力装置により入力する履歴情報入力部と、
前記属性情報入力部により入力された第１属性情報と第２属性情報とを処理装置により比較して、比較結果に基づき、前記第１カラム群と前記第２カラム群との各々から、前記同義カラムの候補を抽出し、前記第１カラム群から抽出した同義カラムの候補である第１候補と前記第２カラム群から抽出した同義カラムの候補である第２候補とがそれぞれ２つ以上ある場合、前記履歴情報入力部により入力された第１履歴情報と第２履歴情報とを処理装置により分析して、分析結果に基づき、前記第１候補と前記第２候補との各々から、前記同義カラムに該当するカラムを判定する同義カラム判定部とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明の一の態様では、同義カラム検出装置が、第１のデータベースの各カラムの属性と第２のデータベースの各カラムの属性とを比較して、第１のデータベースのカラム群と第２のデータベースのカラム群との各々から同義カラムの候補をそれぞれ第１候補と第２候補として抽出する。そして、同義カラム検出装置が、第１のデータベースに対するクエリの発行履歴と第２のデータベースに対するクエリの発行履歴とを分析して、前記第１候補と前記第２候補との各々から同義カラムに該当するカラムを判定する。これにより、同じような属性をもつ複数のカラムの各々について、同義カラムであるか否かを判定することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係る同義カラム検出装置の構成例を示すブロック図である。
【図２】実施の形態１に係る同義カラム検出装置及び１つ以上のシステムの接続例を示すブロック図である。
【図３】実施の形態１に係る属性特徴一覧表の一例を示す図である。
【図４】実施の形態１に係る同義カラム検出装置のハードウェア構成の一例を示す図である。
【図５】実施の形態１に係る同義カラム検出装置の動作を示すフローチャートである。
【図６】実施の形態１に係る接続情報管理部の表の一例を示す図である。
【図７】実施の形態１に係る属性情報の一例を示す図である。
【図８】実施の形態１に係る同義カラム検出装置の動作を示すフローチャートである。
【図９】実施の形態１に係る同義カラム検出装置の詳細な動作を示すフローチャートである。
【図１０】実施の形態１に係る同義カラム検出装置の詳細な動作を示すフローチャートである。
【図１１】実施の形態１に係る類似度表の一例を示す図である。
【図１２】実施の形態１に係る類似度評価表の一例を示す図である。
【図１３】実施の形態１に係る同義カラム検出装置の詳細な動作を示すフローチャートである。
【図１４】実施の形態２に係る同義カラム検出装置の構成例を示すブロック図である。
【図１５】実施の形態２に係るＧＵＩの構成例を示す図である。
【図１６】実施の形態３に係る同義カラム検出装置の構成例を示すブロック図である。
【図１７】実施の形態３に係る同義カラム検出装置の詳細な動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、図を用いて説明する。
【００１４】
実施の形態１．
図１は、本実施の形態に係る同義カラム検出装置１００の構成例を示すブロック図である。
【００１５】
第１のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第１カラム群とし、第２のデータベースを構成するテーブルにてそれぞれデータを格納する複数のカラムを第２カラム群としたとき、同義カラム検出装置１００は、第１カラム群と第２カラム群との各々から、第１カラム群と第２カラム群との間で共通するデータを格納するカラムを同義カラムとして検出する。なお、第１カラム群と第２カラム群との間で共通するデータとは、第１カラム群と第２カラム群との両方において同じ管理対象（例えば、備品点検の担当者）の同じ情報（例えば、氏名）を表すデータのことをいい、値（例えば、山田太郎）まで同じであることは要しないものとする。
【００１６】
図１において、同義カラム検出装置１００は、同義カラム判定部１９９を備える。同義カラム判定部１９９は、属性特徴抽出部１０１０、評価対象選定部１０２０、同義カラム類似評価部１０３０、データベース操作履歴評価部１０４０、同義判定部１０５０を有する。
【００１７】
同義カラム検出装置１００は、さらに、同義情報閲覧部１０６０、データベース接続情報登録部１１２０、データベース定義取得部１１２１、データ取得部１１３０、データベース操作履歴取得部１１４０、記憶領域１１５０、同義情報格納部１２００を備える。なお、データベース定義取得部１１２１は、属性情報入力部の一例である。データ取得部１１３０は、データ入力部の一例である。データベース操作履歴取得部１１４０は、履歴情報入力部の一例である。
【００１８】
図示していないが、同義カラム検出装置１００は、さらに、処理装置、記憶装置、入力装置、出力装置等のハードウェアを備える。ハードウェアは同義カラム検出装置１００の各部によって利用される。処理装置は、例えば同義カラム検出装置１００が稼動するコンピュータ（計算機）のＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）であり、同義カラム検出装置１００の各部でデータや情報の演算、加工、読み取り、書き込み等を行うために利用される。記憶装置は、例えばメモリあるいはＨＤＤ（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）であり、上記のデータや情報を記憶するために利用される。記憶領域１１５０、同義情報格納部１２００は、記憶装置に実装される。入力装置は、例えばキーボードやマウス、あるいは、通信モジュールであり、上記のデータや情報を入力あるいは受信するために利用される。出力装置は、例えば通信モジュール、あるいは、表示装置であり、上記のデータや情報を出力あるいは送信するために利用される。
【００１９】
同義カラム検出装置１００は、さらに、図２に示すような１つ以上のシステム３００に備えられたデータベース３０１（ＤＢ）（例えば、リレーショナルデータベース）とネットワーク４００を介して接続するデータベース接続部１１２２を備える。データベース接続情報登録部１１２０、データベース定義取得部１１２１、データ取得部１１３０、データベース操作履歴取得部１１４０は、データベース接続部１１２２を介して、１つ以上の異なるシステム３００が備えるデータベース３０１内のカラム、テーブル、及び、スキーマに関する情報を取得する。同義カラム検出装置１００は、この情報を利用して、同じ事象を管理するために必要な特定情報を格納する複数のカラム間の関係を検出する。つまり、１つ以上のシステム３００に備えられたデータベース３０１のうち、任意の１つ以上のデータベースの組、２組を前述した第１のデータベース及び第２のデータベースとしたとき、同義カラム検出装置１００は、第１のデータベースの第１カラム群と第２のデータベースの第２カラム群との各々から同義カラムを検出する。なお、図２に示すシステム３００は、一部又は全部が単一のシステム３００で複数のデータベース３０１を備えるように構成されていてもよい。
【００２０】
データベース接続情報登録部１１２０は、同義カラム検出装置１００が検出対象とするデータベース３０１への接続情報の入力を入力装置によりユーザから受け付け、記憶領域１１５０内の接続情報管理部１１５３に格納する。なお、記憶領域１１５０は、前述したように、記憶装置により実現されるデータ格納領域である。
【００２１】
データベース定義取得部１１２１は、前述した第１カラム群に含まれる各カラムの属性を示す第１属性情報と、前述した第２カラム群に含まれる各カラムの属性を示す第２属性情報とを入力装置により入力する。そして、データベース定義取得部１１２１は、第１属性情報と第２属性情報とを属性情報１１６０として記憶装置に記憶する。
【００２２】
具体的には、データベース定義取得部１１２１は、図２に示すようにデータベース３０１を備えた１つ以上のシステム３００から当該データベース３０１の構成を定義するデータベース定義情報１１９０を入力装置により取得する。そして、データベース定義取得部１１２１は、取得したデータベース定義情報１１９０を記憶領域１１５０に格納する。そして、データベース定義取得部１１２１は、記憶領域１１５０に格納したデータベース定義情報１０９０に含まれる、各カラムの型やサイズといった属性を示す情報を属性情報１１６０として記憶領域１１５０に格納する。なお、同義カラム検出装置１００が、システム３００とネットワーク４００を介して接続していない等の場合は、ＤＤＬ（Ｄａｔａ・Ｄｅｆｉｎｉｔｉｏｎ・Ｌａｎｇｕａｇｅ）等、データベース定義を記述したファイル及びその他記憶媒体を通して、データベース定義取得部１１２１がデータベース定義情報１０９０を取得するようにしてもよい。
【００２３】
データ取得部１１３０は、前述した第１カラム群に含まれる各カラムに格納された第１データ群と前述した第２カラム群に含まれる各カラムに格納された第２データ群とを入力装置により入力する。そして、データ取得部１１３０は、第１データ群と第２データ群とを評価用インスタンスデータ１１７０として記憶装置に記憶する。
【００２４】
具体的には、データ取得部１１３０は、図２に示すデータベース接続部１１２２を介してネットワーク４００に接続されたシステム３００が備えるデータベース３０１に格納されたインスタンスデータ１１００を入力装置により取得し、記憶領域１１５０内に評価用インスタンスデータ１１７０として格納する。ここで、インスタンスデータ１１００は、データベース定義情報１０９０にて定義されたデータベース３０１のテーブルに格納されるレコードを意味する。なお、システム３００とデータベース接続部１１２２がネットワーク４００を介して接続していない等の場合は、データ取得部１１３０が、インスタンスデータ１１００をファイルやその他媒体を介して取得することがあってもよい。
【００２５】
データベース操作履歴取得部１１４０は、第１のデータベースに対するクエリの発行履歴を示す第１履歴情報と第２のデータベースに対するクエリの発行履歴を示す第２履歴情報とを入力装置により入力する。そして、データベース操作履歴取得部１１４０は、第１履歴情報と第２履歴情報とをデータベース操作履歴１１８０として記憶装置に記憶する。
【００２６】
具体的には、データベース操作履歴取得部１１４０は、システム３００が備えるデータベース３０１に対する操作の履歴を記録したデータベース操作履歴１１１０を入力装置により取得し、記憶領域１１５０内にデータベース操作履歴１１８０として格納する。ここで、データベース操作履歴１１１０は、データベース３０１に対するクエリの発行履歴として、例えばＳＱＬ文法により記述された、少なくともＩｎｓｅｒｔ文、Ｕｐｄａｔｅ文により表記された操作履歴を含む。また、データベース操作履歴１１１０は、システム３００が出力する情報、あるいは、システム３００が備えるデータベース３０１が出力する情報、システム３００が他システム３００とネットワーク４００を介して連携する際に利用するＯＤＢＣ（Ｏｐｅｎ・ＤａｔａＢａｓｅ・Ｃｏｎｎｅｃｔｉｖｉｔｙ）ドライバやＪＤＢＣ（登録商標）（Ｊａｖａ（登録商標）・ＤａｔａＢａｓｅ・Ｃｏｎｎｅｃｔｉｖｉｔｙ）ドライバ等のインタフェースが出力する情報等を含んでもよい。
【００２７】
同義カラム判定部１９９は、データベース定義取得部１１２１により入力された第１属性情報と第２属性情報とを処理装置により比較する。具体的には、同義カラム判定部１９９は、第１カラム群に含まれるカラムと第２カラム群に含まれるカラムとの組み合わせごとに、第１属性情報で示された属性と第２属性情報で示された属性との類似度を処理装置により算出する。また、同義カラム判定部１９９は、データ取得部１１３０により入力された第１データ群と第２データ群とを処理装置により比較する。具体的には、同義カラム判定部１９９は、第１カラム群に含まれるカラムと第２カラム群に含まれるカラムとの組み合わせごとに、第１データ群と第２データ群との類似度を処理装置により算出する。そして、同義カラム判定部１９９は、算出した類似度が所定の閾値以上となる組み合わせの各カラムを同義カラムの候補とする。このとき、第１属性情報で示された属性と第２属性情報で示された属性との類似度と、第１データ群と第２データ群との類似度との両方を利用することが望ましいが、いずれか一方の類似度のみを利用してもよい。即ち、同義カラム判定部１９９は、第１属性情報と第２属性情報との比較結果と、第１データ群と第２データ群との比較結果との少なくともいずれかに基づき、第１カラム群と第２カラム群との各々から、同義カラムの候補を抽出する。
【００２８】
第１カラム群から抽出した同義カラムの候補である第１候補と第２カラム群から抽出した同義カラムの候補である第２候補とが１つずつである場合、同義カラム判定部１９９は、第１候補と第２候補との各々が同義カラムに該当するカラムであると判定する。即ち、この場合、同義カラム判定部１９９は、第１候補と第２候補との組み合わせを同義カラムの組み合わせであると判定する。一方、第１候補と第２候補とがそれぞれ２つ以上ある場合、同義カラム判定部１９９は、データベース操作履歴取得部１１４０により入力された第１履歴情報と第２履歴情報とを処理装置により分析して、分析結果に基づき、第１候補と第２候補との各々から、同義カラムに該当するカラムを判定する。即ち、この場合、同義カラム判定部１９９は、第１候補と第２候補とのうち、どのカラムとどのカラムとの組み合わせが同義カラムの組み合わせであるかを判定する。上記分析結果は、具体的には、第１履歴情報で示されたクエリの発行履歴に、第１候補に含まれる各カラムが出現する順序のパターンと、第２履歴情報で示されたクエリの発行履歴に、第２候補に含まれる各カラムが出現する順序のパターンとを同義カラム判定部１９９が分析した結果である。
【００２９】
上記のような同義カラム判定部１９９において、属性特徴抽出部１０１０は、データベース定義取得部１１２１がシステム３００のデータベース定義情報１０９０を取得して属性情報１１６０を記憶領域１１５０に格納した際、属性情報１１６０に含まれる、各カラムの型やサイズといった属性を抽出する処理を処理装置により行う。また、属性特徴抽出部１０１０は、データ取得部１１３０がインスタンスデータ１１００を取得して評価用インスタンスデータ１１７０を記憶領域１１５０に格納した際、評価用インスタンスデータ１１７０から各カラムに格納されたデータの特徴を抽出する処理を処理装置により行う。属性特徴抽出部１０１０は、これらの処理をデータベース定義取得部１１２１及びデータ取得部１１３０が記憶領域１１５０に格納した全ての属性情報１１６０、評価用インスタンスデータ１１７０に対して実施し、抽出した属性及び特徴をまとめて図３に示すような属性特徴一覧表１１５１を処理装置により作成する。属性特徴抽出部１０１０は、作成した属性特徴一覧表１１５１を記憶領域１１５０に格納する。
【００３０】
図３に示す属性特徴一覧表１１５１において、複数のシステム３００がそれぞれ備えるデータベース３０１のテーブルのカラムごとに、カラムの属性及び当該カラムに格納されるデータの特徴を示す情報が格納される。「カラムＩＤ（識別子）」には、各カラムを一意に識別するＩＤが格納される。「カラム名」には、対象カラム（「カラムＩＤ」に対応するカラム）の名称が格納される。「データソースＩＤ」には、対象カラムを含むデータベース３０１にアクセスするためにデータベース接続部１１２２により提供されるインタフェース、即ち、データソースを一意に識別するＩＤが格納される。「型」、「文字列長」には、対象カラムに格納されるデータの型、長さが格納される。「主キー」、「外部キー」には、対象カラムが主キーであるか否か、外部キーであるか否かが格納される。「制約」、「Ｐａｔｈ」には、対象カラムの制約、パスが格納される。「最大値」、「最小値」、「平均値」、「分散」には、対象カラムに格納されているデータの最大値、最小値、平均値、分散が格納される。「最小刻み」には、対象カラムに格納されているデータ間の差の最小値が格納される。「値種類数」、「最頻値割合」、「最頻値代表」には、対象カラムに格納されているデータの値の種類数、最頻値の割合、最頻値の代表が格納される。「ドメインナレッジ」には、ユーザから任意に入力されて記憶領域１１５０内のドメインナレッジ管理部１１５４に格納される、特定カラムに対する固有情報が格納される。具体的には、特定カラムを更新する場合に、必ず同時に更新される他カラムの情報等が格納される。
【００３１】
なお、属性特徴抽出部１０１０は、上記のように、データベース定義取得部１１２１、データ取得部１１３０により属性情報１１６０、評価用インスタンスデータ１１７０が記憶領域１１５０に格納される度に、属性特徴一覧表１１５１の情報を更新するのではなく、別のタイミングで属性特徴一覧表１１５１を更新してもよい。また、属性特徴抽出部１０１０は、処理装置を利用する他の処理と並列に属性特徴一覧表１１５１を更新する処理（属性特徴抽出処理）を実行するものであってもよい。例えば、記憶領域１１５０に属性特徴一覧表１１５１への処理が終了していないデータが特定数溜まった場合に属性特徴抽出部１０１０を起動するようにしてもよい。あるいは、特定時間間隔で属性特徴抽出部１０１０が未処理の属性情報１１６０あるいは評価用インスタンスデータ１１７０に対する属性特徴抽出処理を実施するようにしてもよい。
【００３２】
評価対象選定部１０２０は、同義カラム類似評価部１０３０、データベース操作履歴評価部１０４０が処理対象とするデータベース３０１のスキーマ、テーブル、カラムを選定する。このとき、評価対象選定部１０２０は、ユーザが明示的に判定対象とする１つ以上のカラム、あるいは、当該カラムが含まれた１つ以上のテーブル、あるいは、当該カラムが含まれた１つ以上のスキーマの指定入力を入力装置により受け付ける。
【００３３】
同義カラム類似評価部１０３０は、評価対象選定部１０２０によって指定されたカラムにおいて、１つ以上の他のカラムの中で同じ情報を格納するカラムであると特定するため、当該カラムの類似度を処理装置により算出する。そして、同義カラム類似評価部１０３０は、算出した類似度を記憶領域１１５０内の類似評価値管理部１１５２に格納する。
【００３４】
データベース操作履歴評価部１０４０は、データベース操作履歴取得部１１４０によって記憶領域１１５０に格納されたデータベース操作履歴１１８０を対象にカラムが更新された時間的順序関係を用いて複数カラム間の類似度を処理装置により算出する。そして、データベース操作履歴評価部１０４０は、算出した類似度を記憶領域１１５０内の類似評価値管理部１１５２に格納する。
【００３５】
同義判定部１０５０は、同義カラム類似評価部１０３０及びデータベース操作履歴評価部１０４０が算出した類似度を基に同義カラムを処理装置により判定する。同義判定部１０５０は、判定結果を同義情報１２１０として同義情報格納部１２００に格納する。
【００３６】
同義情報閲覧部１０６０は、同義情報格納部１２００に格納された同義情報１２１０を出力装置によりユーザに提示する。
【００３７】
図４は、同義カラム検出装置１００のハードウェア構成の一例を示す図である。
【００３８】
図４において、同義カラム検出装置１００は、コンピュータであり、ＬＣＤ９０１（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（Ｃｏｍｐａｃｔ・Ｄｉｓｃ・Ｄｒｉｖｅ）、プリンタ９０６といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。ＬＣＤ９０１の代わりに、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）、あるいは、その他の表示装置が用いられてもよい。マウス９０３の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
【００３９】
同義カラム検出装置１００は、プログラムを実行するＣＰＵ９１１を備えている。ＣＰＵ９１１は、処理装置の一例である。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ９１４（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、通信ボード９１５、ＬＣＤ９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ９０６、ＨＤＤ９２０と接続され、これらのハードウェアデバイスを制御する。ＨＤＤ９２０の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ又はその他の記憶媒体が用いられてもよい。
【００４０】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、ＨＤＤ９２０は、不揮発性メモリの一例である。これらは、記憶装置の一例である。通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５は、入力装置の一例である。また、通信ボード９１５、ＬＣＤ９０１、プリンタ９０６は、出力装置の一例である。
【００４１】
通信ボード９１５は、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）等に接続されている。通信ボード９１５は、ＬＡＮに限らず、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークといったＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）、あるいは、インターネットに接続されていても構わない。ＬＡＮ、ＷＡＮ、インターネットは、ネットワーク４００の一例である。
【００４２】
ＨＤＤ９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。プログラム群９２３には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、ＣＰＵ９１１により読み出され実行される。ファイル群９２４には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（識別子）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ＲＡＭ９１４やＨＤＤ９２０等の記憶媒体に記憶される。ＲＡＭ９１４やＨＤＤ９２０等の記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理（動作）に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００４３】
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、ＲＡＭ９１４等のメモリ、ＦＤＤ９０４のフレキシブルディスク（ＦＤ）、ＣＤＤ９０５のコンパクトディスク（ＣＤ）、ＨＤＤ９２０の磁気ディスク、光ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）、あるいは、その他の記録媒体に記録される。また、データや信号は、バス９１２、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
【００４４】
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００４５】
次に、同義カラム検出装置１００の動作（本実施の形態に係る同義カラム検出方法、本実施の形態に係る同義カラム検出プログラムの処理手順）について説明する。
【００４６】
図５は、同義カラム検出装置１００において、同義カラム検出対象のシステム３００をユーザが登録する際の処理フローを示すフローチャートである。
【００４７】
図５において、まず、データベース接続情報登録部１１２０は、ユーザから、同義カラム検出装置１００の処理対象となるデータベース３０１への接続情報（即ち、データベース接続情報）の登録を入力装置により受け付ける（Ｓ００１）。データベース３０１への接続情報は、データベースサーバのＩＰ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ）アドレスあるいはホスト名等、ネットワーク４００上でデータベースサーバを特定する情報、データベース３０１への検索及びシステム情報取得権限を有したデータベースユーザ名、接続に必要なパスワード、接続するスキーマ名、接続識別子等、ＤＢＭＳ（ＤａｔａＢａｓｅ・Ｍａｎａｇｅｍｅｎｔ・Ｓｙｓｔｅｍ）固有の情報を含む。データベース接続情報の登録において、データベース接続情報登録部１１２０は、図６に示すような接続情報管理部１１５３の表に取得したデータベース接続情報を格納する。
【００４８】
図６に示す接続情報管理部１１５３の表において、前述したデータソースごとに、データベース３０１への接続情報が格納される。「データソースＩＤ」には、データソースを一意に識別するＩＤが格納される。「ＩＰアドレス」、「ホスト名」には、前述したデータベースサーバのＩＰアドレス、ホスト名が格納される。「ユーザ名」、「パスワード」、「スキーマ名」、「接続識別子」には、前述したデータベースユーザ名、パスワード、スキーマ名、接続識別子が格納される。「テクノロジ」には、ＤＢＭＳの名称が格納される。
【００４９】
データベース定義取得部１１２１は、接続情報管理部１１５３に格納されたデータベース接続情報を基に、例えばＯＤＢＣやＪＤＢＣのようにデータベース３０１に接続するためのインタフェースを介してオンラインでデータベース定義情報１０９０を入力装置により取得し、記憶領域１１５０に属性情報１１６０として格納する（Ｓ００２）。このとき、データベース定義取得部１１２１は、取得した各カラムに対して同義カラム検出装置１００内でユニークにカラムを特定するＩＤを各カラムに設定する。同義カラム検出装置１００において、カラムに対する操作及びカラムに関する情報を取得する場合には、ここで設定したＩＤを利用する。
【００５０】
データベース定義取得部１１２１は、属性情報１１６０を、例えば図７に示すようなＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ・Ｍａｒｋｕｐ・Ｌａｎｇｕａｇｅ）で表記するツリー構造で管理する。属性特徴抽出部１０１０は、Ｓ００２でデータベース定義取得部１１２１が取得した型や文字列長、キーの値、Ｐａｔｈを属性特徴一覧表１１５１に格納する。このとき、属性特徴抽出部１０１０は、属性情報１１６０に対するポインタを属性特徴一覧表１１５１に格納してもよい。
【００５１】
データ取得部１１３０は、接続情報管理部１１５３に格納されたデータベース接続情報を用いて、インスタンスデータ１１００を入力装置により取得し、記憶領域１１５０に評価用インスタンスデータ１１７０として格納する（Ｓ００３）。このとき、データ取得部１１３０は、データベース３０１に対するインスタンスデータ１１００を取得するためのＳＱＬ文を属性情報１１６０から処理装置により生成し、データベース３０１から必要なインスタンスデータ１１００を検索取得し、評価用インスタンスデータ１１７０として格納する。データベース３０１に多量のインスタンスデータ１１００が格納されている場合には、データ取得部１１３０は、データベース３０１に対するＳＱＬ文の実行結果に対するフェッチ処理を乱数値に基づき実施する等、一定数のインスタンスデータ１１００のみを取得する。
【００５２】
属性特徴抽出部１０１０は、評価用インスタンスデータ１１７０に対して、属性特徴一覧表１１５１にて管理する情報を算出する。このとき、属性特徴抽出部１０１０は、最大値や最小値等を、既知の算出方式により取得する（Ｓ００４）。
【００５３】
属性特徴抽出部１０１０は、登録されたデータベース３０１に定義された全てのカラムに対する、属性特徴一覧表１１５１にて管理する情報を算出、取得するまでＳ００４の処理を繰り返す（Ｓ００５）。
【００５４】
図８は、同義カラム検出装置１００における評価対象選定部１０２０、同義カラム類似評価部１０３０、データベース操作履歴評価部１０４０、同義判定部１０５０の処理フローを示すフローチャートである。
【００５５】
図８において、評価対象選定部１０２０は、同義カラム検出装置１００の属性情報１１６０に登録されたデータベース３０１より同義カラムの評価対象を選択する操作をユーザから入力装置により受け付ける（Ｓ１０１）。この操作において、ユーザは同義カラム検出の対象とする検出元と検出先のそれぞれについて、１つ以上のカラム、１つ以上のテーブル、あるいは、１つ以上のスキーマを選択する。即ち、ユーザは前述した第１カラム群と第２カラム群とを選択する。
【００５６】
ここでは、検出元と検出先にテーブルが指定された場合について、記述する。つまり、以下では、第１のデータベースを構成するテーブルのうち、検出元として選択されたテーブルにてそれぞれデータを格納する複数のカラムを第１カラム群とする。第２のデータベースを構成するテーブルのうち、検出先として選択されたテーブルにてそれぞれデータを格納する複数のカラムを第２カラム群とする。そして、このときに、同義カラム検出装置１００が、第１カラム群と第２カラム群との各々から同義カラムを検出する例について説明する。
【００５７】
同義カラム類似評価部１０３０は、Ｓ１０１にて選択された検出元カラムと検出先カラムの属性情報１１６０及び評価用インスタンスデータ１１７０を基に類似度を処理装置により算出する（Ｓ１０２）。
【００５８】
図９にＳ１０２の処理フローを示す。
【００５９】
図９において、同義カラム類似評価部１０３０は、図７に示す属性情報１１６０又は図３に示す属性特徴一覧表１１５１より検出元テーブルにおいて類似度を算出する対象となる検出元カラムのＩＤを取得する（Ｓ２０１）。
【００６０】
同義カラム類似評価部１０３０は、図７に示す属性情報１１６０又は図３に示す属性特徴一覧表１１５１より検出先テーブルにおいて類似度を算出する対象となる検出先カラムのＩＤを取得する（Ｓ２０２）。
【００６１】
同義カラム類似評価部１０３０は、Ｓ２０１，Ｓ２０２で取得した各カラムのＩＤと図３の属性特徴一覧表１１５１を用いて属性情報判定を処理装置により行う（Ｓ２０３）。このときＳ２０３の処理は、Ｓ２０２にて取得したカラムＩＤごとに並列処理にて実施してもよい。
【００６２】
図１０にＳ２０３の処理フローを示す。
【００６３】
図１０において、同義カラム類似評価部１０３０は、Ｓ２０３では、検出元カラムと検出先カラムの属性情報を基にした類似判定処理を行う。ここでは、類似判定処理の例としてカラム名判定（Ｓ２０３１）、データ型判定（Ｓ２０３２）、パス判定（Ｓ２０３３）、制約判定（Ｓ２０３４）、サイズ判定（Ｓ２０３５）について記述するが、同義カラム類似評価部１０３０は、属性特徴一覧表１１５１に格納されている他の情報を用いた類似判定処理を実施してもよい。また、カラム名判定（Ｓ２０３１）、データ型判定（Ｓ２０３２）、パス判定（Ｓ２０３３）、制約判定（Ｓ２０３４）、サイズ判定（Ｓ２０３５）はそれぞれ並列処理にて実施してもよい。
【００６４】
カラム名判定処理として、同義カラム類似評価部１０３０は、検出元カラムと検出先カラムのカラムＩＤを基に属性特徴一覧表１１５１より各カラム名を取得し、２つのカラム間のカラム名を基に類似度を処理装置により算出する（Ｓ２０３１）。このとき、同義カラム類似評価部１０３０は、カラム名における類義語変換等を、予め記憶領域１１５０等に記憶された類語辞書を用いて行う。
【００６５】
同義カラム類似評価部１０３０は、カラム名の類似度を、完全一致、部分一致、レーベンシュタイン距離等の指標を基に算出する。また、プレフィックスやサフィックス等の指定がドメインナレッジに含まれる場合には、同義カラム類似評価部１０３０は、プレフィックスやサフィックスを除外したカラム名を基に検出元カラムと検出先カラムのカラム名に対する文字列比較を行い、一致する文字数に応じて、類似度を０〜１００の範囲で数値化し、判定結果として出力する。
【００６６】
データ型判定処理として、同義カラム類似評価部１０３０は、データベース３０１に定義されたカラムの型が一致しているか否かを処理装置により判定する（Ｓ２０３２）。
【００６７】
ベンダーごとにデータベース３０１の型名は異なる場合がある。このときは、同義カラム類似評価部１０３０は、同義カラム検出装置１００上での共通型にそれぞれを変換する等の処理を行い、類似度比較を行う。データ型の比較は、型の一致、不一致のみの比較であり、類似度は１００又は０が返却される。
【００６８】
パス判定処理として、同義カラム類似評価部１０３０は、カラム名に加えてテーブル名、スキーマ名を含めた類似度判定を処理装置により行う。例えば、同義カラム類似評価部１０３０は、［スキーマ名］＋［．（ドット）］＋［テーブル名］＋［．（ドット）］＋［カラム名］等でパスを表記し、カラム名判定処理と同様に文字列比較を行う（Ｓ２０３３）。
【００６９】
制約判定処理として、同義カラム類似評価部１０３０は、各カラムに定義されたデータベース３０１における主キーや外部キー等のキー制約、ＮＯＴ・ＮＵＬＬやＵＮＩＱＵＥ等の入力制約が検出元カラムと検出先カラムで一致しているか否かを処理装置により判定する。判定結果は、制約の一致数と各制約に対する重み付け関数の積により０〜１００の範囲で算出することとするが、その他集計手法によって各制約の一致不一致を集約してもよい（Ｓ２０３４）。
【００７０】
サイズ判定処理として、同義カラム類似評価部１０３０は、各カラムに定義された文字列長（バイト数）の差分を処理装置により比較する。同義カラム類似評価部１０３０は、判定結果を、バイト数の差分値を基に０〜１００の範囲で算出する（Ｓ２０３５）。
【００７１】
同義カラム類似評価部１０３０は、図１１に示すような類似度表を検出元カラムごとに処理装置により作成し、カラム名判定処理、データ型判定処理、パス判定処理、制約判定処理、サイズ判定処理にて算出した類似度を、検出先カラムＩＤの各列に類似度判定結果として格納する（Ｓ２０３６）。ここでは、類似度が０に近いほど、類似していないことを示し、類似度が１００に近いほど、類似していることを示すものとするが、逆でもよい。また、下限値は０以外の値でもよいし、上限値は１００以外の値でもよい。
【００７２】
図９において、同義カラム類似評価部１０３０は、インスタンス情報判定として、属性特徴一覧表１１５１に格納される検出元カラムと検出先カラムの最大値や最小値、平均値、分散等の値のそれぞれに対する距離を処理装置により算出する。同義カラム類似評価部１０３０は、距離と閾値とを比較し、比較結果を類似度として図１１に示す表に格納する（Ｓ２０４）。
【００７３】
同義カラム類似評価部１０３０は、例えば、以下のような算出式を用いて類似度を算出するものとするが、他の算出式を用いてもよい。
【００７４】
【数１】
0005506527.tif 000002
【００７５】
上式において、ａは検出元カラムの値、ｂは検出先カラムの値である。同義カラム類似評価部１０３０は、最大値に対するｄｉｓｔ（ａ，ｂ）、平均値に対するｄｉｓｔ（ａ，ｂ）のようにインスタンス情報（属性特徴一覧表１１５１にて示される評価用インスタンスデータ１１７０の特徴）のそれぞれについて距離を算出する。
【００７６】
同義カラム類似評価部１０３０は、全ての検出元カラムと検出先カラムの組に対する、図１１に示す表を作成した（Ｓ２０５，Ｓ２０６）後、類似度の集約を処理装置により行う（Ｓ２０７）。類似度集約として、同義カラム類似評価部１０３０は、図１１に示す類似度表の各値を集計し、集約類似度として判定する。同義カラム類似評価部１０３０は、例えば、集約類似度＝Σｗｉｓｉといった集計式を用いて集約類似度を算出するものとするが、他の集計式を用いてもよい。なお、上式において、ｗｉは、ｉ番目の項目についての類似度に対する重みを表し、ｓｉは図１１に示すｉ番目の項目についての類似度算出時の指標（即ち、それぞれの特徴について算出された類似度）を表す。集計方法としては、このほかに全てのアルゴリズムの類似度から最大となる類似度をカラム間の類似度として判定する最大値集計や、全てのアルゴリズムの類似度から類似度の平均を求める平均値集約等がある。同義カラム類似評価部１０３０は、集約した類似度を図１２に示すような類似度評価表に格納する。
【００７７】
図８において、同義カラム類似評価部１０３０は、類似度集計値（集約類似度）を基に、同義カラムとしてユーザに提示する検出元カラムと検出先カラムのペアを処理装置により選定する（Ｓ１０４）。このとき、同義カラム類似評価部１０３０は、記憶領域１１５０等に予め記憶された任意の閾値より集約類似度が高いカラムの組を同義カラムの組として検出する。閾値より集約類似度が高いカラムの組がなければ（Ｓ１０３）、Ｓ１０１に戻る。なお、同義カラム類似評価部１０３０は、集約類似度の最も大きいカラムの組を検出元カラムに対する同義カラムの組として検出してもよい。この場合、集約類似度が同じカラムの組があれば、同義カラム類似評価部１０３０は、複数の同義カラムの組を検出することになる。
【００７８】
同義カラム類似評価部１０３０は、検出した同義カラムのペアを、記憶領域１１５０等に格納される正解リストに追加する（Ｓ１０５）。このとき、正解リストに追加されたカラムの属性特徴一覧表１１５１のドメインナレッジに同時に更新される他カラムが登録されている場合には、同義カラム類似評価部１０３０は、当該カラム間の類似度を評価する。そして、同義カラム類似評価部１０３０は、データベース操作履歴１１８０から、当該カラムが更新された際に指定された値を取得して比較し、同一値に更新されている場合には、当該カラムも正解リストに追加する。
【００７９】
Ｓ１０４において、ある検出元カラムにおいて複数の同義カラムの組が検出された場合、データベース操作履歴評価部１０４０は、データベース操作履歴１１８０を基に同義カラム判定を処理装置により行う（Ｓ１０６）。このとき、データベース操作履歴評価部１０４０は、例えば、検出元カラム１，２（前述した第１候補に相当）と検出先カラムａ，ｂ（前述した第２候補に相当）とによってできるカラムの組み合わせ（１とａ、１とｂ、２とａ、２とｂの４通り）についての集約類似度の値（計４つ）が全て同じ値、あるいは、同じ範囲内に収まった値であるといった場合に、それらの検出元カラム及び検出先カラムをＳ１０６の実施対象とする。即ち、検出元テーブル内の２つのカラムと検出先テーブル内の２つのカラムが相互に同義であるとの判定結果が検出された場合に、データベース操作履歴評価部１０４０が動作する。この場合、通常のデータベース設計において、全く同じ事象を管理するカラムを同一テーブル内に２つ以上定義しないため、検出元と検出先それぞれ１つずつを含むカラムの組を同義カラムの組（２組）として検出する必要がある。
【００８０】
図１３にＳ１０６の処理フローを示す。
【００８１】
データベース操作履歴評価部１０４０は、データベース操作履歴１１８０に格納された対象システム３００のデータベース３０１の操作履歴から、Ｓ１０４にて同義カラム候補として検出されたカラムが含まれる操作履歴を読み込む（Ｓ１０６１）。このとき、データベース操作履歴評価部１０４０は、同義カラム候補が含まれる操作履歴を、データベース操作履歴１１８０に格納される履歴ファイルに対する検出元及び検出先スキーマ名、テーブル名、カラム名による全文検索処理等の既出の方式を用いて指定する。
【００８２】
データベース操作履歴評価部１０４０は、検出元カラム１を含む更新処理（Ｉｎｓｅｒｔ文やＵｐｄａｔｅ文）と検出元カラム２を含む更新処理の組が時系列順に出現する頻度を（検出元カラム１→検出元カラム２）、（検出元カラム２→検出元カラム１）のそれぞれの順序対について検出元テーブルの操作履歴にて処理装置により探索する（Ｓ１０６２）。このとき、Ｓ１０６２が対象とするデータベース操作履歴１１８０は、各システム３００の業務単位で整理されているものとする。データベース操作履歴１１８０を業務単位で整理する方法としては、業務システムの伝票番号等、業務フローを特定するためのキー値を利用する等の既出の方法を用いる。
【００８３】
Ｓ１０６２にて、データベース操作履歴評価部１０４０は、検出元カラム１を含む更新処理（Ｉｎｓｅｒｔ文、Ｕｐｄａｔｅ文）と検出元カラム２を含む更新処理において、更新処理のＳｅｔ句に該当するカラムが出現したときの値格納部の情報（Ｓｅｔ句で設定される当該カラムの更新値）を保持しておくものとする。
【００８４】
データベース操作履歴評価部１０４０は、検出先カラムａ，ｂを含むデータベース操作履歴１１８０においても同様の処理を行う（Ｓ１０６４）。
【００８５】
全てのデータベース操作履歴に対する処理が終了した（Ｓ１０６３，Ｓ１０６４）後、同義判定部１０５０は、検出元カラムと検出先カラムの順序対の発生頻度を基に同義カラム判定を処理装置により行う（Ｓ１０６６）。具体的には、同義判定部１０５０は、検出元カラムが含まれるデータベース操作履歴１１８０における順序対の出現頻度と検出先カラムが含まれるデータベース操作履歴１１８０における順序対の出現頻度を比較し、出現頻度の高い順序対における前順序カラム同士、後順序カラム同士を同義カラムとして検出する。例えば、（検出元カラム１→検出元カラム２）の順序対の出現頻度が（検出元カラム２→検出元カラム１）の順序対の出現頻度より多く、（検出先カラムｂ→検出先カラムａ）の順序対の出現頻度が（検出先カラムａ→検出先カラムｂ）の順序対の出現頻度より多かったとする。この場合、同義判定部１０５０は、検出元カラム１と検出先カラムｂとが同義カラムであり、また、検出元カラム２と検出先カラムａとが同義カラムであると判定する。
【００８６】
本実施の形態では、第１候補と第２候補とが２つずつある場合、データベース操作履歴取得部１１４０により入力された第１履歴情報で示されたクエリの発行履歴に、第１候補の一方のカラムが先に他方のカラムが後に出現するパターン（例えば、検出元カラム１→検出元カラム２）と一方のカラムが後に他方のカラムが先に出現するパターン（例えば、検出元カラム２→検出元カラム１）とのうち、より多いパターンを第１パターンとする。また、データベース操作履歴取得部１１４０により入力された第２履歴情報で示されたクエリの発行履歴に、第２候補の一方のカラムが先に他方のカラムが後に出現するパターン（例えば、検出先カラムａ→検出先カラムｂ）と一方のカラムが後に他方のカラムが先に出現するパターン（例えば、検出先カラムｂ→検出先カラムａ）とのうち、より多いパターンを第２パターンとする。このとき、同義判定部１０５０は、上記のように、第１パターンで先に出現するカラムと第２パターンで先に出現するカラムとが同義カラムであると判定する。また、同義判定部１０５０は、第１パターンで後に出現するカラムと第２パターンで後に出現するカラムとが同義カラムであると判定する。なお、ここでは、第１候補と第２候補とが２つずつある場合について説明したが、第１候補と第２候補とが３つずつあるいはそれ以上ある場合であっても、同様の処理が可能である。例えば、第１候補と第２候補とが３つずつあるとき、第１パターン（この場合は出現頻度が最も高いパターン）で１番目、２番目、３番目に出現するカラムと、第２パターン（この場合は出現頻度が最も高いパターン）で１番目、２番目、３番目に出現するカラムとを、順番に対応付けて同義カラムであると判定することができる（同義カラムの組が３つできることになる）。
【００８７】
なお、異なる判定方式として、同義判定部１０５０は、Ｓ１０６２，Ｓ１０６４実施時に保持した更新処理の値格納部の値が一致するカラムの組を同義カラムとして検出してもよい。
【００８８】
Ｓ１０６６にて、同義判定部１０５０は、さらに、検出元カラムと検出先カラムの順序対の出現パターンの相関値を時系列相関値として処理装置により計算する。
【００８９】
図８において、同義判定部１０５０は、計算した時系列相関値が予め定められた閾値以上であれば（Ｓ１０７）、検出した同義カラムの組を正解リストに追加する（Ｓ１０５）。なお、同義判定部１０５０は、時系列相関値に関わらず（あるいは時系列相関値の計算を省略して）、検出した同義カラムの組を正解リストに追加してもよい。
【００９０】
全ての検出元カラムに対する同義カラム判定が終了した（Ｓ１０８）後、同義判定部１０５０は、正解リストを同義情報１２１０として同義情報格納部１２００に格納する。なお、正解リストは、検出元カラムを特定するカラム名、テーブル名、スキーマ名等の情報と検出先カラムを特定するカラム名、テーブル名、スキーマ名等の情報で構成されており、例えば格納形式は各々をコンマで区切った形式（ＣＳＶ）である。
【００９１】
同義情報閲覧部１０６０は、同義情報格納部１２００に格納された同義情報１２１０をユーザに対し出力装置により出力する（Ｓ１０９）。これにより、ユーザは、正解リストの内容を確認して同義カラムを特定することができるため、システム３００の統合等のデータモデル設計作業等を効率よく行える。なお、同義情報閲覧部１０６０は、ユーザから正解リストの修正等の入力を入力装置により受け付け、入力された情報に基づき、同義情報格納部１２００に格納された同義情報１２１０を更新してもよい。
【００９２】
上述したように、本実施の形態では、データベースの属性情報やインスタンスデータではカラムの類似度を特定することができない場合であっても、カラム間の時系列関連情報を含むデータベース操作履歴に対する更新順序関係を評価することで同義カラムの検出精度を向上させることができる。つまり、本実施の形態によれば、カラムの属性情報やデータベースに格納されたインスタンスデータの内容が全く同じ傾向を示す異義カラムであっても、カラムの更新順序を評価することで従来手法では誤検出していた事象を正しく判定することが可能となる。
【００９３】
以上説明したように、本実施の形態に係る同義カラム検出装置（方式）は、データベース定義情報を取得するデータベース定義取得部と、データベースの格納データを取得するデータ取得部と、データベースを操作した履歴を取得するデータベース操作履歴取得部を備える。また、同義カラム検出装置は、取得したデータベース定義情報から各カラムの属性特徴を抽出する属性特徴抽出部と、複数カラムの属性特徴あるいは格納データを比較する同義カラム類似評価部と、取得したデータベース操作履歴から異なるテーブルを構成するカラム間のデータベース操作履歴を比較するデータベース操作履歴評価部と、同義カラム評価結果を閲覧するための同義情報閲覧部を備える。さらに、同義カラム検出装置は、カラム属性と格納データとデータベース操作履歴に対する対象カラムの順序対出現の割合を評価することにより同義カラムであるか否かを判定する同義判定部を具備する。
【００９４】
さらに、同義カラム検出装置は、検出元データベースのカラム及び検出先データベースのカラムの全ての組に対するカラムの各属性情報及び格納データに対する判定結果を一時格納する類似評価値管理部を備える。同義カラム類似評価部は、検出先カラムごとに検出元カラムに対する類似度評価値を比較し、予め定義した比較幅以内の類似度評価値を検出する。データベース操作履歴評価部は、比較幅以内の類似度評価値を示す検出元カラムが検出された場合に当該カラムのデータ操作履歴に対して当該カラムの順序付き出現割合を算出する。
【００９５】
データベース操作履歴評価部は、さらに各データベースの操作履歴に対して、更新処理の実行順序対を検出する際に、カラム名に加えて、更新時に指定される値が一致する組を検出してもよい。
【００９６】
さらに、同義カラム検出装置は、２つ以上のカラムの組を最小単位として管理するドメインナレッジ管理部を備える。データベース操作履歴評価部は、２つ以上のカラム組を最小単位として順序対を検出する。同義カラム類似評価部は、カラムの組に含まれるいずれかのカラムが同義であると判定された場合に、他方のカラムの類似度を加算してもよい。
【００９７】
さらに、同義カラム検出装置は、同義カラムの判定対象をユーザが選定する評価対象選定部を備える。
【００９８】
さらに、同義カラム検出装置は、複数システムにおける表記のゆれを記載した類語辞書を備える。同義カラム類似評価部は、カラム名等文字列一致を評価する際に当該類義辞書を利用してもよい。
【００９９】
同義情報閲覧部は、同義カラムの検出結果に対して、ユーザによる変更を受け付け、同義判定結果をユーザが修正可能としてもよい。
【０１００】
実施の形態２．
本実施の形態について、主に実施の形態１との差異を説明する。
【０１０１】
実施の形態１では、同義カラム検出結果をユーザに閲覧させ、必要に応じて編集可能とした。これに加えて本実施の形態では、同義カラム検出装置１００が、ユーザ管理を行うとともに、ユーザによる同義カラム検出対象の選定及び同義カラム検出結果に対する閲覧、編集の機能を提供するＧＵＩ（Ｇｒａｐｈｉｃａｌ・Ｕｓｅｒ・Ｉｎｔｅｒｆａｃｅ）を備える。
【０１０２】
図１４は、本実施の形態に係る同義カラム検出装置１００の構成例を示すブロック図である。
【０１０３】
図１４において、同義カラム検出装置１００は、実施の形態１と同様の構成要素に加えて、同義情報管理部１０７０、同義情報設定部１０８０を備える。
【０１０４】
同義情報管理部１０７０は、同義カラム検出装置１００を利用するユーザに対するアクセス管理を処理装置により行う。同義情報管理部１０７０は、ユーザ情報１２２０として同義情報格納部１２００にユーザ名、パスワードを登録し、属性情報１１６０や評価用インスタンスデータ１１７０等、記憶領域１１５０に格納する情報への参照権限、変更権限を管理する。そのほか、同義情報管理部１０７０は、同義情報格納部１２００の同義カラム検出結果が格納された同義情報１２１０に対する参照権限、変更権限を管理する。
【０１０５】
同義情報設定部１０８０は、同義判定部１０５０が出力した同義情報１２１０に対して、ユーザによる編集の操作を入力装置により受け付ける。より具体的には、同義情報設定部１０８０は、同義情報１２１０に格納された検出元カラムと検出先カラムの組を削除する、あるいは、新たな検出元カラムと検出先カラムの情報を追加するといった操作を、出力装置により出力した画面上でＧＵＩを介して受け付ける。
【０１０６】
図１５にＧＵＩの構成例を示す。
【０１０７】
属性情報表示部２０１は、属性情報１１６０に格納される、同義カラム検出装置１００に登録されたデータベース３０１の定義構造をツリー形式でユーザに提示する機能を備える。
【０１０８】
検出元カラム表示部２０２は、ユーザが属性情報表示部２０１に表示されたスキーマ名やテーブル名、カラム名の表記をドラッグアンドドロップする等の方法により、検出元カラムについて、対象カラム選定（図８のＳ１０１）の処理を実施する機能を備える。
【０１０９】
検出先カラム表示部２０３は、検出元カラム表示部２０２と同様に検出先カラムの指定処理を実施する機能を備える。
【０１１０】
同義カラム関連表示部２０４は、同義判定部１０５０が検出した検出元カラムと検出先カラムの関連をテーブル単位やスキーマ単位で一括して表示する機能を備える。
【０１１１】
同義定義表示部２０５は、同義カラム類似評価部１０３０が同義カラム間での大文字小文字変換やコードと数値の変換等の処理を行う際、ユーザが変換内容を編集する機能を備える。
【０１１２】
本実施の形態によれば、同義カラム検出装置が多数のシステムに接続されている場合に、１つのシステムが備えるデータベースの情報が、権限のない他システムのユーザからアクセスされることを回避できる。また、同義カラム検出装置に格納された属性情報の一覧表示や同義カラムの判定結果の一括表示等ができるため、同義カラム検出装置に登録されたデータベースを一元管理することが可能となる。
【０１１３】
以上説明したように、本実施の形態に係る同義カラム検出装置（方式）は、同義カラムの検出結果を閲覧あるいは編集可能なユーザを特定する同義情報設定部と、閲覧あるいは編集可能なユーザを管理する同義情報管理部を備える。同義情報設定部は、特定のユーザにのみ同義カラムの検出結果を公開する。
【０１１４】
実施の形態３．
本実施の形態について、主に実施の形態１との差異を説明する。
【０１１５】
実施の形態１では、データベース操作履歴１１８０を同義カラム類似評価部１０３０でのみ利用したが、本実施の形態では、アプリケーションによってデータが同期されていたシステム３００間での同義カラムを検出するといった用途に対しても、データベース操作履歴１１８０を活用する。
【０１１６】
図１６は、本実施の形態に係る同義カラム検出装置１００の構成例を示すブロック図である。
【０１１７】
図１６において、同義カラム検出装置１００は、実施の形態１と同様の構成要素のうち、評価対象選定部１０２０に代えて、検出候補選定部１２９０を備える。
【０１１８】
検出候補選定部１２９０は、データベース操作履歴１１８０として記憶領域１１５０に格納されている、データベース操作履歴取得部１１４０により入力された第１履歴情報と第２履歴情報とを処理装置により比較し、比較結果に基づき、前述した第１カラム群と前述した第２カラム群との各々から、同義カラムの候補を抽出する。
【０１１９】
実施の形態１では、同義カラムの検出元と検出先の双方をユーザが指定する。本実施の形態では、前述したように、異なるシステム３００間でのデータの同期がアプリケーションによって実現されている場合に、同期設計を変更する場合等において、検出候補選定部１２９０が、データベース操作履歴１１８０から自動的に同義カラム検出の対象を選定する。より具体的には、度重なる改修やシステム拡張を繰り返し構築されてきたシステム３００において、システム３００間のデータ連携を洗い出すといった場合への適用を想定する。
【０１２０】
検出候補選定部１２９０の処理フローを図１７に示す。
【０１２１】
図１７において、検出候補選定部１２９０は、データベース操作履歴取得部１１４０により記憶領域１１５０に格納されたデータベース操作履歴１１８０に出現するスキーマ名、テーブル名、カラム名を取得する（Ｓ１０７１）。
【０１２２】
検出候補選定部１２９０は、取得したスキーマ名、テーブル名、カラム名を基に属性情報１１６０を処理装置により探索し、スキーマ名、テーブル名、カラム名が一致するカラムのＩＤを取得する（Ｓ１０７２）。
【０１２３】
検出候補選定部１２９０は、Ｓ１０７１，Ｓ１０７２を検出元システムが出力したデータベース操作履歴１１８０（前述した第１履歴情報に相当）と検出先システムが出力したデータベース操作履歴１１８０（前述した第２履歴情報に相当）に対して実施した後、同義カラム類似評価部１０３０へ取得したカラムＩＤを入力する（Ｓ１０７３）。同義カラム類似評価部１０３０は、検出候補選定部１２９０から入力されたカラムＩＤに対応するカラムのみを処理対象として、前述した図８のＳ１０２の処理を実行する。
【０１２４】
本実施の形態によれば、実施の形態１と同様の効果に加えて、同義カラム検出の対象となるカラムをユーザが指定することが困難な場合であってもデータベース操作履歴より同義カラムを格納するカラムの候補集合を属性情報に登録された全カラムから絞り込み、誤った同義カラムの検出を抑制するとともに、判定対象となる候補カラムを削減することから処理時間を短縮できるという効果が得られる。
【０１２５】
以上説明したように、本実施の形態に係る同義カラム検出装置（方式）は、データベース操作履歴に出現するスキーマ、テーブル、あるいは、カラム以外を評価対象から除外する検出候補選定部を備える。
【０１２６】
以上、本発明の実施の形態について説明したが、これらのうち、２つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、１つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、２つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
【符号の説明】
【０１２７】
１００  同義カラム検出装置、１９９  同義カラム判定部、２０１  属性情報表示部、２０２  検出元カラム表示部、２０３  検出先カラム表示部、２０４  同義カラム関連表示部、２０５  同義定義表示部、３００  システム、３０１  データベース、４００  ネットワーク、１０１０  属性特徴抽出部、１０２０  評価対象選定部、１０３０  同義カラム類似評価部、１０４０  データベース操作履歴評価部、１０５０  同義判定部、１０６０  同義情報閲覧部、１０７０  同義情報管理部、１０８０  同義情報設定部、１０９０  データベース定義情報、１１００  インスタンスデータ、１１１０  データベース操作履歴、１１２０  データベース接続情報登録部、１１２１  データベース定義取得部、１１２２  データベース接続部、１１３０  データ取得部、１１４０  データベース操作履歴取得部、１１５０  記憶領域、１１５１  属性特徴一覧表、１１５２  類似評価値管理部、１１５３  接続情報管理部、１１５４  ドメインナレッジ管理部、１１６０  属性情報、１１７０  評価用インスタンスデータ、１１８０  データベース操作履歴、１１９０  データベース定義情報、１２００  同義情報格納部、１２１０  同義情報、１２２０  ユーザ情報、１２９０  検出候補選定部、９０１  ＬＣＤ、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  ＨＤＤ、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
0005506527.tif 000003
【図２】
0005506527.tif 000004
【図３】
0005506527.tif 000005
【図４】
0005506527.tif 000006
【図５】
0005506527.tif 000007
【図６】
0005506527.tif 000008
【図７】
0005506527.tif 000009
【図８】
0005506527.tif 000010
【図９】
0005506527.tif 000011
【図１０】
0005506527.tif 000012
【図１１】
0005506527.tif 000013
【図１２】
0005506527.tif 000014
【図１３】
0005506527.tif 000015
【図１４】
0005506527.tif 000016
【図１５】
0005506527.tif 000017
【図１６】
0005506527.tif 000018
【図１７】
0005506527.tif 000019