(57)【特許請求の範囲】
【請求項１】
関係データベースから移行する分散キーバリューストアの作成を支援するデータベース移行支援装置であって、
メモリとプロセッサとを有し、
前記メモリは、前記関係データベースに設定されている少なくとも１つの列に基づき前記分散キーバリューストアに用いるキーの候補となるキー候補を少なくとも１つ生成し、前記キー候補を、前記関係データベースのデータおよび利用ログに基づいて、評価するキー評価プログラムと、前記キー候補の評価結果を提示するキー評価提示プログラムとを有し、
前記プロセッサは、前記キー評価プログラムおよび前記キー評価提示プログラムを実行して、前記キー候補の評価結果を提示する、
データベース移行支援装置において、
前記キー評価プログラムは、前記関係データベースに設定されている少なくとも１つの列に基づき前記分散キーバリューストアに用いるキーの候補となるキー候補を少なくとも１つ生成し、前記キー候補のそれぞれについて、前記関係データベースの利用ログにおける該キー候補の基になった列の出現の度合いを示す適合度と、前記分散キーバリューストアの複数のノードに分散されたデータのアクセス性能とを算出し、前記適合度と前記アクセス性能とに基づいて前記キー候補のそれぞれを評価し、
前記アクセス性能は、前記利用ログに基づくシミュレーションの移行後のデータベースへのアクセスにおいて、前記ノードに対するスキャンの回数が少ないほど高い値を示すシーケンシャル度を含む、
データベース移行支援装置。
【請求項２】
前記キー評価プログラムは、前記キー候補のそれぞれについて前記適合度と前記アクセス性能の積を含むスコアを算出し、
前記キー評価提示プログラムは、前記キー候補のそれぞれのスコアを提示する、
請求項１に記載のデータベース移行支援装置。
【請求項３】
前記アクセス性能は、更に、前記利用ログに基づくシミュレーションの移行後のデータベースへのアクセスにおいて、前記スキャンが前記ノードに均等に分散されているほど高い値を示す分散度を含む、請求項１に記載のデータベース移行支援装置。
【請求項４】
前記キー評価プログラムは、前記キー候補のそれぞれについて前記適合度と前記アクセス性能の積を含むスコアを算出し、前記スコアにおける前記シーケンシャル度と前記分散度の重みをユーザの操作により変更可能である、
請求項３に記載のデータベース移行支援装置。
【請求項５】
前記キー評価プログラムは、前記関係データベースに設定されている列のうち、利用ログから抽出されたクエリによる出現回数が高い方から所定個を選択し、選択した前記列または該列の組み合わせのうち、データをユニークに識別するものをキー候補として抽出し、更に主キーをキー候補とする、請求項１に記載のデータベース移行支援装置。
【請求項６】
前記キー評価プログラムは、前記適合度に基づいて前記キー候補を絞り込み、絞り込んだ前記キー候補に対してシミュレーションを行い、前記アクセス性能を算出する、請求項５に記載のデータベース移行支援装置。
【請求項７】
前記キー評価プログラムは、前記関係データベースから前記分散キーバリューストアに移行するクライアントをユーザに選択させ、選択された前記クライアントの利用ログを前記キー候補の評価に用いる、請求項１に記載のデータベース移行支援装置。
【請求項８】
前記メモリはデータ移行プログラムを更に有し、
前記キー評価提示プログラムは、いずれか１つのキー候補の評価結果と、該キー候補を移行用キーとして決定するためのボタンを画面表示し、
前記データ移行プログラムは、前記ボタンが操作されると、前記キー候補を移行用キーとして、前記分散キーバリューストアを作成する、
請求項１に記載のデータベース移行支援装置。
【請求項９】
関係データベースから移行する分散キーバリューストアの作成を支援するためのデータベース移行支援方法であって、
キー評価手段が、前記関係データベースに設定されている少なくとも１つの列に基づき前記分散キーバリューストアに用いるキーの候補となるキー候補を少なくとも１つ生成し、
前記キー評価手段が、前記キー候補のそれぞれについて、前記関係データベースのデータおよび利用ログに基づいて、評価し、
キー評価提示手段が、前記キー候補の評価結果を提示する、
データベース移行支援方法において、
前記キー評価手段は、前記関係データベースに設定されている少なくとも１つの列に基づき前記分散キーバリューストアに用いるキーの候補となるキー候補を少なくとも１つ生成し、前記キー候補のそれぞれについて、前記関係データベースの利用ログにおける該キー候補の基になった列の出現の度合いを示す適合度と、前記分散キーバリューストアの複数のノードに分散されたデータのアクセス性能とを算出し、前記適合度と前記アクセス性能とに基づいて前記キー候補のそれぞれを評価し、
前記アクセス性能は、前記利用ログに基づくシミュレーションの移行後のデータベースへのアクセスにおいて、前記ノードに対するスキャンの回数が少ないほど高い値を示すシーケンシャル度を含む、
データベース移行支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関係データベースからキーバリューストアへのデータベースの移行を支援する技術に関する。
【背景技術】
【０００２】
ＩｏＴ市場の急成長などを背景として、データ容量および処理性能を向上させるために、データベースを関係データベース（ＲＤＢ）からキーバリューストア（ＫＶＳ）へ移行させる動きがある。データベースの移行においては、移行後にも移行前に動作していたアプリケーションが同じように動作することが求められる。しかし、移行前のＲＤＢから取得できていたデータと同じデータを取得できるＫＶＳを実現するには、多大な工数をかけて人手によりキー設計をする必要があった。それに対して、特許文献１には、ＲＤＢからＫＶＳへの移行を容易にするために移行設計を支援する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２１１７９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術は、ＲＤＢからＫＶＳへの移行を支援する際、ＲＤＢのスキーマ定義とＲＤＢの利用ログを用いてデータ項目を評価するだけなので、移行後のＫＶＳを実際のデータに適用した場合に必ずしも移行前のＲＤＢと同様のデータを取得できるとは限らない。【０００５】
本発明の目的は、移行前のＲＤＢの実際のデータを適用したときにＲＤＢと同様のデータが取得できるようなＫＶＳのキー設計を支援することが可能な技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明の一つの実施態様に従うデータベース移行支援装置は、関係データベースから移行する分散キーバリューストアの作成を支援する装置であり、メモリとプロセッサとを有している。メモリは、キー評価プログラムと、キー評価提示プログラムとを有している。キー評価プログラムは、関係データベースに設定されている少なくとも１つの列に基づき分散キーバリューストアに用いるキーの候補となるキー候補を少なくとも１つ生成し、キー候補を、関係データベースのデータおよび利用ログに基づいて、評価する。キー評価提示プログラムは、キー候補の評価結果を提示する。プロセッサは、キー評価プログラムおよびキー評価提示プログラムを実行して、キー候補の評価結果を提示する。
【発明の効果】
【０００７】
本発明によれば、移行前のデータおよび利用ログを用いて各キー候補を評価した結果が提示されるので、実際のデータを用いて移行による影響を評価し、適切な分散キーバリューストアのキーを作成することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態によるデータベース移行システムのブロック図である。
【図２】キー設計支援装置１００のプログラムが参照あるいは入出力する情報を示す図である。
【図３】本実施形態によるデータベース移行システムにおけるデータベース移行の全体動作を示すシーケンス図である。
【図４Ａ】車両情報テーブルスキーマ定義２０４の一例を示す図である。
【図４Ｂ】車両情報テーブル２０３の一例を示す図である。
【図４Ｃ】利用ログ２０２の一例を示す図である。
【図５】ＫＶＳ情報３０２の一例を示す図である。
【図６】移行クライアント決定処理Ｓ１０３のフローチャートである。
【図７】キー評価処理Ｓ１０７のフローチャートである。
【図８】キー候補集合作成処理のフローチャートである。
【図９Ａ】シミュレーションテーブル作成処理のフローチャートである。
【図９Ｂ】シミュレーションテーブル作成処理の説明に用いるキー候補の例を示す表である。
【図９Ｃ】シミュレーションテーブル作成処理の説明に用いるＲＤＢテーブルの例を示す表である。
【図１０】クエリシミュレーション処理のフローチャートである。
【図１１】スコア算出処理のフローチャートである。
【図１２Ａ】キー評価提示処理のフローチャートである。
【図１２Ｂ】キー評価提示処理による画面表示の例を示す図である。
【図１２Ｃ】キー評価提示処理による画面表示の例を示す図である。
【図１２Ｄ】キー評価提示処理による画面表示の例を示す図である。
【図１２Ｅ】キー評価提示処理による画面表示の例を示す図である。
【図１３Ａ】データ移行処理のシーケンス図である。
【図１３Ｂ】データ移行処理による画面表示の例を示す図である。
【図１３Ｃ】データ移行処理による画面表示の例を示す図である。
【図１４】シーケンシャル度および分散度の計算例を示す表である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照して説明する。
【００１０】
図１は、本実施形態によるデータベース移行システムのブロック図である。図１には主にハードウェア構成が示されている。図２は、キー設計支援装置１００のプログラムが参照あるいは入出力する情報を示す図である。
【００１１】
図１を参照すると、データベース移行システムは、キー設計支援装置１００、関係データベース（ＲＤＢ）２００、分散キーバリューストア（ＫＶＳ）３００、およびクライアント４０１、４０２、４０３、４０４を有している。
【００１２】
キー設計支援装置１００はＲＤＢ２００から分散ＫＶＳ３００への移行におけるキー設計を支援する装置である。キー設計支援装置１００は出力装置１１０、演算装置１２０、入力装置１３０、通信装置１４０、および記憶部１５０を有している。
【００１３】
記憶部１５０にはプログラム（ＰＧ）領域１５１とデータ領域１５２がある。ＰＧ領域１５１には、移行クライアント決定ＰＧ  １５１１、キー評価ＰＧ  １５１２、キー評価提示ＰＧ  １５１３、データ移行ＰＧ  １５１４、キー候補集合作成モジュール１５１５、ＫＶＳテーブル作成モジュール１５１６、クエリシミュレーションモジュール１５１７、およびスコア算出モジュール１５１８が格納されている。
【００１４】
データ領域１５２には、ＲＤＢ接続情報１５２１、移行対策クライアント情報１５２２、ＲＤＢ利用ログ１５２３、キー候補集合１５２４、クエリ集合１５２５、ＲＤＢテーブル１５２６、シミュレーションテーブル１５２７、キー評価結果１５２８、および移行用キー情報１５２９が格納されている。
【００１５】
移行クライアント決定ＰＧ  １５１１は、データベースをＲＤＢから分散ＫＶＳへ移行するクライアントを決定する。図２に示すように、移行クライアント決定ＰＧ  １５１１は、ＲＤＢ  ２００の利用ログ２０２を参照することができる。例えば、移行クライアント決定ＰＧ  １５１１は、利用ログ２０２からＲＤＢ  ２００を利用するクライアントを抽出し、クライアント一覧を出力装置１１０により設計者に提示する。移行クライアント決定ＰＧ  １５１１は、クライアント一覧を見た設計者が入力装置１３０から入力した情報に基づいて、データベースをＲＤＢから分散ＫＶＳへ移行するクライアントを決定すればよい。
【００１６】
キー評価ＰＧ  １５１２は、キー候補集合１５２４に含まれるキー候補のそれぞれについて評価を行い、スコアを付与する。スコアの算出にはスコア算出モジュール１５１８が利用される。評価方法については後述する。図２に示すように、キー評価ＰＧ  １５１２は、ＲＤＢ  ２００の利用ログ２０２、車両情報テーブル２０３、車両情報テーブルスキーマ定義２０４、および分散ＫＶＳ  ３００のＫＶＳ情報３０２を参照することができる。キー評価ＰＧ  １５１２は、参照した情報を利用して各キー候補のスコアを算出する。キー評価結果はキー評価結果１５２８に蓄積される。また、図２に示すように、キー評価の結果はキー評価提示ＰＧ  １５１６を介し、出力装置１１０から設計者に提示される。
【００１７】
キー評価提示ＰＧ  １５１３は、キー評価ＰＧ  １５１２が評価した結果を、例えば出力装置１１０を介して設計者に提示する。設計者はキー評価結果を見て、移行後の分散ＫＶＳに用いる移行用キーを決定し、移行用キー情報１５２９に記録する。図２に示すように、キー評価提示ＰＧ  １５１６は、設計者が入力装置１３０から入力したキー選択の情報を取得し、データ移行ＰＧ  １５１４に通知することができる。
【００１８】
また、キー評価ＰＧ  １５１２は、評価の過程で各キー候補のシミュレーションテーブルを作成しているので、移行用キーが決まると移行用キーのシミュレーションテーブルをデータ移行ＰＧ  １５１４に通知する。
【００１９】
データ移行ＰＧ  １５１４は、ＲＤＢから分散ＫＶＳへのデータの移行を実行する。データの移行は、具体的には、ＲＤＢテーブル１５２６に格納されているＲＤＢのデータの所定の列の情報に基づいたキーと、データの値とを対応づけてＫＶＳテーブル（不図示）に記録し、移行データを生成する。その際、データのキー（Ｋｅｙ）とデータの値（Ｖａｌｕｅ）は、移行用キーのシミュレーションテーブルから取得することができる。データ移行ＰＧ  １５１４は生成した移行データを分散ＫＶＳ  ３００に通知する。
【００２０】
キー候補集合作成モジュール１５１５は、移行前のＲＤＢ  ２００の列の情報を基に、移行後の分散ＫＶＳ  ３００のキーとなる候補を複数生成し、キー候補集合１５２４に格納する。
【００２１】
ＫＶＳテーブル作成モジュール１５１６は、移行後の分散ＫＶＳ  ３００においてデータおよびキーを格納するＫＶＳテーブルを作成する。
【００２２】
クエリシミュレーションモジュール１５１７は、ＲＤＢ  ２００の利用ログから得られるクエリを用いて、各キー候補を用いた分散ＫＶＳ  ３００のシミュレーションを実行する。
【００２３】
スコア算出モジュール１５１８は、各キー候補のスコアを算出する。スコアの算出方法は後述する。
【００２４】
ＲＤＢ接続情報１５２１は、クライアントがＲＤＢに接続するための情報である。例えばＲＤＢに接続するためのＵＲＬである。
【００２５】
移行対象クライアント情報１５２２は、データベースをＲＤＢ  ２００から分散ＫＶＳ  ３００に移行するクライアントを示す情報である。
【００２６】
ＲＤＢ利用ログ１５２３は、移行前のＲＤＢ  ２００の利用の履歴を蓄積した情報である。ＲＤＢ利用ログ１５２３には、ＲＤＢ  ２００にアクセスするクエリと、ＲＤＢ  ２００の検索結果とが含まれる。
【００２７】
キー候補集合１５２４は、キー候補集合作成モジュール１５１５が作成した複数のキー候補を含む情報である。
【００２８】
クエリ集合１５２５は、クライアントがＲＤＢを利用したときのクエリを蓄積した情報である。クエリがＲＤＢ利用ログ１５２３から抽出され、クエリ集合１５２５に格納される。
【００２９】
シミュレーションテーブル１５２７は、クエリ集合１５２５に含まれるクエリに基づいて、キー候補による分散ＫＶＳあるいは移行用キーによる分散ＫＶＳをシミュレートするためのシミュレーションテーブルである。
【００３０】
キー評価結果１５２８は、キー評価ＰＧ  １５１２がキー候補を評価した結果の情報である。
【００３１】
移行用キー情報１５２９は、ＲＤＢ  ２００から分散ＫＶＳ  ３００へ移行する際に利用するキーの情報である。例えば、設計者がキー候補の評価結果に基づいて移行用キーを選択する。選択された移行用キーの情報が移行用キー情報１５１２に格納される。
【００３２】
ＲＤＢ  ２００は、通信装置２０１、利用ログ２０２、車両情報テーブル２０３、車両情報テーブルスキーマ定義２０４、テーブル２  ２０５、およびスキーマ定義２  ２０６を有している。
【００３３】
通信装置２０１は、ＲＤＢ  ２００が通信ネットワーク経由でキー設計支援装置１００およびクライアント４０１、４０２と通信を行うための通信装置である。
【００３４】
利用ログ２０２は、クライアント４０１、４０２によるＲＤＢ  ２００の利用で蓄積される履歴情報である。利用ログ２０２は、ＲＤＢ  ２００で取得され、キー設計支援装置１００に通知される。キー設計支援装置１００では、ＲＤＢ利用ログ１５２３としてデータ領域１５２に格納される。
【００３５】
ＲＤＢ  ２００には、車両の現在位置および走行速度の情報をリアルタイムで管理する関係データベースが備えられている。車両情報テーブル２０３は、車両の情報を蓄積したデータベースのテーブルである。
【００３６】
車両情報テーブルスキーマ定義２０４は、車両情報テーブル２０３の構造を定義する情報である。
【００３７】
テーブル２  ２０５は、他のデータベースのテーブルであり、スキーマ定義２  ２０６は、他のデータベースの構造を定義する情報である。
【００３８】
分散ＫＶＳ  ３００は、通信装置３０１を有し、ＫＶＳ情報３０２を格納している。データ移行ＰＧ  １５１４から通知された移行データは複数のノード３０３、３０４、３０５に分散配置される。ＫＶＳ情報３０２は、分散ＫＶＳ  ３００の構成および動作に関する設定情報である。ここでは一例として図１に示したように分散ＫＶＳ  ３００のデータベースは３つのノード３０３、３０４、３０５に分散配置される。
【００３９】
通信装置３０１は、分散ＫＶＳ３００が通信ネットワーク経由でキー設計支援装置１００、ＲＤＢ  ２００、およびクライアント４０３、４０４と通信するための通信装置である。
【００４０】
ＫＶＳ情報３０２は、分散ＫＶＳに関する設定情報である。設定情報には、ノード数、Ｒｅｇｉｏｎサイズ、自動シャーディングの有無などの情報が含まれている。
【００４１】
クライアント４０１、４０２はＲＤＢ  ２００のデータベースを利用するクライアントである。クライアント４０１ではアプリケーション１が動作しており、クライアント４０２ではアプリケーション２ａ、２ｂが動作している。
【００４２】
クライアント４０３、４０４は分散ＫＶＳ  ３００のデータベースを利用するクライアントである。
【００４３】
本実施形態によるキー設計支援装置１００の構成および動作の概略について説明する。
【００４４】
キー設計支援装置１００は、関係データベース（ＲＤＢ  ２００）から移行する分散キーバリューストア（分散ＫＶＳ  ３００）の作成を支援するデータベース移行支援装置であり、メモリ（記憶部１５０）とプロセッサ（演算装置１２０）とを有している。メモリは、キー評価プログラム（キー評価ＰＧ  １５１２）と、キー評価提示プログラム（キー評価提示ＰＧ  １５１３）とを有している。
【００４５】
キー評価プログラムは、関係データベースに設定されている少なくとも１つの列に基づき分散キーバリューストアに用いるキーの候補となるキー候補を少なくとも１つ生成し、キー候補のそれぞれについて、関係データベースのデータおよび利用ログに基づいてキー候補のそれぞれを評価する。キー評価提示プログラムは、キー候補の評価結果を、画面表示などにより設計者に提示する。
【００４６】
これによれば、移行前のデータおよび利用ログを用いて各キー候補を評価した結果が提示されるので、実際のデータを用いて移行による影響を評価するので、適切なキーバリューストアのキーを容易に作成することが可能となる。
【００４７】
また、キー評価プログラムは、関係データベースに設定されている少なくとも１つの列に基づき分散キーバリューストアに用いるキーの候補となるキー候補を少なくとも１つ生成し、キー候補のそれぞれについて、関係データベースの利用ログにおけるそのキー候補の基になった列の出現の度合いを示す適合度と、分散キーバリューストアの複数のノードに分散されたデータのアクセス性能とを算出し、適合度とアクセス性能とに基づいてキー候補のそれぞれを評価する。
【００４８】
これによれば、移行後に移行前と同様のデータを取得できる度合いである適合度と、移行後のデータへのアクセス性能とに基づくスコアが提示されるので、移行前と後の適合度とデータへのアクセス性能とを考慮した評価に基づいて適切なキーバリューストアを容易に作成することが可能となる。
【００４９】
また、キー評価プログラムは、キー候補のそれぞれについて適合度とアクセス性能の積を含むスコアを算出し、キー評価提示プログラムは、キー候補のそれぞれのスコアを設計者に提示する。これによれば、１つのスコアにより適合度とアクセス性能を考慮した評価が可能なので、複数のキー候補を容易に比較することができる。
【００５０】
また、上記アクセス性能は、利用ログに基づくシミュレーションの移行後のデータベースへのアクセスにおいて、ノードに対するスキャンの回数が少ないほど高い値を示すシーケンシャル度を含む。スキャン回数が少ないキー候補に高い評価がつくので、効率の良いアクセスが行われる可能性の高いキー候補の選択を支援することができる。
【００５１】
また、アクセス性能は、更に、利用ログに基づくシミュレーションの移行後のデータベースへのアクセスにおいて、スキャンがノードに均等に分散されているほど高い値を示す分散度を含む。スキャンが複数のノードに均等に分散されるキー候補に高いスコアがつくので、分散ＫＶＳへの効率の良いアクセスが行われる可能性が高いキー候補の選択を支援することができる。
【００５２】
また、キー評価プログラムは、スコアにおけるシーケンシャル度と分散度の重みをユーザ（設計者）の操作により変更可能である。これによれば、ユーザが適合度とアクセス性能の重みを変更できるので、どちらを重視してキー設計を行うかを適宜選択することができる。
【００５３】
また、キー評価プログラムは、関係データベースに設定されている列のうち、利用ログから抽出されたクエリによる出現回数が高い方から所定個を選択し、それらの列またはそれらの列の組み合わせのうち、データをユニークに識別するものと主キーとを抽出し、キー候補とする。利用ログでの出現回数の多い列またはその組み合わせからユニークなキー候補を作成するので、移行前と同様にデータが取得できる可能性の高いキー候補を作成することができる。
【００５４】
また、キー評価プログラムは、適合度に基づいてキー候補を絞り込み、絞り込んだキー候補に対してシミュレーションを行い、アクセス性能を算出する。キー候補を絞り込んでからシミュレーションを行うので、シミュレーションの処理量を低減することができる。
【００５５】
また、キー評価プログラムは、関連データベースから分散キーバリューストアに移行するクライアントをユーザに選択させ、選択されたクライアントの利用ログをキー候補の評価に用いる。クライアントを選択するユーザインタフェースにより、所望のクライアントを選択して関連データベースから分散キーバリューストアに移行させることができる。
【００５６】
また、キー評価提示プログラムは、いずれか１つのキー候補の評価結果と、そのキー候補を移行用キーとして決定するためのボタンを画面表示する。データ移行プログラムは、ボタンが操作されると、キー候補を移行用キーとして、分散キーバリューストアを作成する。キー候補および評価結果を提示してユーザに移行用キーを決定させるので、所望の性能を得られるキー候補と移行用キーに決定するのを支援することができる。
【００５７】
以下、より詳細に説明する。
【００５８】
図３は、本実施形態によるデータベース移行システムにおけるデータベース移行の全体動作を示すシーケンス図である。
【００５９】
図３を参照し、まず、設計者がＲＤＢ接続情報を入力する（ステップＳ１０１）。続いて、移行クライアント決定ＰＧ  １５１１がＲＤＢ  ２００から利用ログのクライアント情報を取得する（ステップＳ１０２）。続いて、移行クライアント決定ＰＧ  １５１１が移行クライアント決定処理（ステップＳ１０３）を実行する。移行クライアント決定処理の詳細は後述する。
【００６０】
移行クライアント決定処理において、移行クライアント決定ＰＧ  １５１１は、クライアント一覧を設計者に提示する（ステップＳ１０４）。設計者が移行クライアントの情報を入力すると（ステップＳ１０５）、移行クライアント決定ＰＧ  １５１１は、移行クライアントを決定し、移行クライアント情報をキー評価ＰＧ  １５１２に通知する（ステップＳ１０６）。
【００６１】
移行クライアント情報を受信したキー評価ＰＧ  １５１２は、キー評価処理（ステップＳ１０７）を実行する。キー評価処理の詳細は後述する。キー評価処理において、キー評価ＰＧ  １５１２は、ＲＤＢ  ２００から利用ログ、スキーマ定義テーブルを取得し（ステップＳ１０８）、取得した情報を基にキー候補を生成し、それぞれのキー候補を評価し、評価結果をキー評価提示ＰＧ  １５１３に通知する（ステップＳ１０９）。
【００６２】
キー評価結果を受信したキー評価提示ＰＧ  １５１３は、キー評価提示処理（ステップＳ１１０）を実行する。キー評価提示処理の詳細は後述する。キー評価提示処理において、キー評価提示ＰＧ  １５１３は、キー評価結果を設計者に提示する（ステップＳ１１１）。評価結果を見た設計者が移行用キーを決定すると（ステップＳ１１２）、キー評価ＰＧ  １５１２は、移行キーを示すキー情報をデータ移行ＰＧ  １５１４に通知する（ステップＳ１１３）。
【００６３】
キー情報を受信したデータ移行ＰＧ  １５１４は、データ移行処理（ステップＳ１１４）を実行する。データ移行処理の詳細は後述する。データ移行処理において、データ移行ＰＧ  １５１４は、設計者から設定情報を取得し（ステップＳ１１５）、移行キーと設定情報を利用して分散ＫＶＳ３００にＫＶＳテーブルを作成させ（ステップＳ１１５）、キー評価ＰＧ  １５１２から移行キーのシミュレーションテーブルを取得し（ステップＳ１１６）、分散ＫＶＳ  ３００にデータ移行を実行させ（ステップＳ１１７）、データ移行が完了すると、設計者にデータ移行の完了を提示する（ステップＳ１１８）。
【００６４】
以下、移行クライアント決定処理Ｓ１０３、キー評価処理Ｓ１０７、キー評価提示処理Ｓ１１０、およびデータ移行処理Ｓ１１４について詳細に説明する。
【００６５】
図４Ａは車両情報テーブルスキーマ定義２０４の一例を示す図である。図４Ｂは車両情報テーブル２０３の一例を示す図である。図４Ｃは利用ログ２０２の一例を示す図である。一例として、ＲＤＢ  ２００には、図４Ａに示す車両情報テーブルスキーマ定義２０４と、図４Ｂに示す車両情報テーブル２０３と、図４Ｃに示す利用ログ２０２が記憶されているものとする。
【００６６】
図５はＫＶＳ情報３０２の一例を示す図である。分散ＫＶＳ  ３００には図５に示するＫＶＳ情報３０２が設定されているものとする。
【００６７】
図６は、移行クライアント決定処理Ｓ１０３のフローチャートである。
【００６８】
移行クライアント決定処理Ｓ１０３において、移行クライアント決定ＰＧ  １５１１は、まず、設計者からのＲＤＢ接続情報を入力し、記憶部１５０に格納する（ステップＳ２０１）。
【００６９】
続いて、移行クライアント決定ＰＧ  １５１１は、ＲＤＢ  ２００の利用ログ２０２からクライアント情報を取得する（ステップＳ２０２）。利用ログ２０２には、図４Ｃに例示するように、クライアントがＲＤＢ  ２００を利用したクエリの履歴が蓄積されている。クエリ毎に、クエリを要求したクライアント２０２１、クエリＩＤ  ２０２２、クエリ２０２３、ＲＤＢ  ２００の検索の結果２０２４、検索の結果としてＲＤＢ  ２００から抽出されたデータの個数（結果数）２０２５が対応づけて蓄積されている。移行クライアント決定ＰＧ  １５１１は、利用ログ２０２からクライアント２０２１に登場するクライアントの情報を取得し、クライアント情報の一覧を作成する（ステップＳ２０２）。次に、移行クライアント決定ＰＧ  １５１１は、クライアント情報の一覧を出力装置１１０の画面に表示する（ステップＳ２０３）。
【００７０】
図６には、クライアント情報の画面表示Ｄ２０３が示されている。画面表示Ｄ２０３を参照すると、クライアント名に対応づけて移行対象とするか否かを設定するためのチェックボックスが表示されている。
【００７１】
次に、設計者がクリック操作を行うと、移行クライアント決定ＰＧ  １５１１は、クリック操作が行われたチェックボックスにチェックを表示する（ステップＳ２０４）。設計者がチェックボックスにチェックを入れたクライアントが移行対象となる。図６の例では、クライアント１とクライアント２が移行対象となる。
【００７２】
続いて、移行クライアント決定ＰＧ  １５１１は、画面表示Ｄ２０３の実行ボタンがクリックされたことを検知すると（ステップＳ２０５）、クライアント情報の画面表示Ｄ２０３を出力装置１１０の画面から削除し（ステップＳ２０６）、移行対象のクライアント（移行クライアント）の情報を記憶部１５０に格納する（ステップＳ２０７）。
【００７３】
図７は、キー評価処理Ｓ１０７のフローチャートである。
【００７４】
まず、キー評価ＰＧ  １５１２は、キー候補集合作成処理（ステップＳ３０１）を実行して複数のキー候補を生成する。キー候補集合作成処理Ｓ３０１の詳細は後述する。ステップＳ３０１の処理が終了すると、図７に示したデータ領域１５２には、利用ログ、ＲＤＢクエリ集合、キー候補集合が格納された状態となる。
【００７５】
次に、キー評価ＰＧ  １５１２はステップＳ３０２〜ステップＳ３０４の処理を全てのキー候補について繰り返す。まず、キー評価ＰＧ  １５１２は、シミュレーションテーブル作成処理（ステップＳ３０２）を実行してシミュレーションテーブル１５２７を作成する。シミュレーションテーブル作成処理の詳細は後述する。ステップＳ３０２の処理が終了すると、図７に示したデータ領域１５２には、ＲＤＢテーブル、シミュレーションテーブル、およびＫＶＳ情報が格納された状態となる。
【００７６】
次に、キー評価ＰＧ  １５１２は、クエリシミュレーション実施処理（ステップＳ３０３）を実行し、クエリシミュレーション結果を算出する。クエリシミュレーション結果はキー候補の評価に利用される。クエリシミュレーション実施処理の詳細は後述する。ステップＳ３０３の処理が終了すると、図７に示したデータ領域１５２には、シミュレーション結果が格納された状態となる。シミュレーション結果には、取得レコード数およびスキャン回数が含まれている。
【００７７】
次に、キー評価ＰＧ  １５１２は、スコア算出処理（ステップＳ３０４）を実行して各キー候補のスコアを算出する。スコア算出処理により各キー候補の評価結果であるスコアが得られる。各キー候補のスコアは移行後の分散ＫＶＳに用いるキーを決定するのに利用される。スコア算出処理の詳細は後述する。ステップＳ３０４の処理が終了すると、図７に示したデータ領域１５２には、キー評価結果が格納された状態となる。
【００７８】
最後に、キー評価ＰＧ  １５１２は、キー評価結果を出力する（ステップＳ３０５）。図７には、キー評価結果の一例Ｄ３０５が示されている。キー評価結果には、ＫｅｙＡとＫｅｙＢの評価結果が含まれている。例えば、ＫｅｙＡは平均シーケンシャル度が１．５であり、平均分散度が３８である。
【００７９】
図８は、キー候補集合作成処理のフローチャートである。
【００８０】
まず、キー評価ＰＧ  １５１２は、移行の対象とされたクライアントである移行クライアントの情報を取得する（ステップＳ４０１）。次に、キー評価ＰＧ  １５１２は、ＲＤＢ  ２００の移行クライアントによる利用についての利用ログ２０２の入力を受け、記憶部１５０に格納する（ステップＳ４０２）。次に、キー評価ＰＧ  １５１２は、記憶部１５０の利用ログ２０２からクエリを取得し、クエリ集合を作成し、記憶部１５０に格納する（ステップＳ４０３）。
【００８１】
次に、キー評価ＰＧ  １５１２は、クエリ集合のクエリにおけるＷＨＥＲＥ句に出現する、ＲＤＢ  ２００の列（ＲＤＢ列）それぞれの出現回数をカウントする（ステップＳ４０４）。図８には、各ＲＤＢ列の出現回数を示す表Ｄ４０４が示されている。表Ｄ４０４には、ＲＤＢ列のそれぞれについて、出現回数と、そのＲＤＢ列が主キーであるか否かを示すフラグとが記載されている。例えば、ＲＤＢ列「Ｔｉｍｅ」の出現回数が最も多く２０回である。
【００８２】
次に、キー評価ＰＧ  １５１２は、ＲＤＢ列を出現回数の多い順に所定個選択する（ステップＳ４０５）。ここではＲＤＢ列を３個選択することにするが、３個という数に限定されることは無い。図８には、出願回数が多い３つのＲＤＢ列を示す表Ｄ４０５が示されている。表Ｄ４０５には、ＲＤＢ列「Ｔｉｍｅ」、ＲＤＢ列「ＣａｒＩＤ」、ＲＤＢ列「Ｓｐｅｅｄ」が示されている。
【００８３】
次に、キー評価ＰＧ  １５１２は、クエリのＦＲＯＭ句に出現するテーブルに関連するスキーマ定義をＲＤＢ  ２００から抽出し、ステップＳ４０５で作成した表Ｄ４０５に、スキーマ定義の主キーをＲＤＢ列として追加する（ステップＳ４０６）。また、このとき、主キーにはＷＨＥＲＥ句に出願していないことが考えられるが、ここでは便宜的に、主キーのＷＨＥＲＥ句における出願回数として他のＲＤＢ列（上位３つのＲＤＢ列）の出願回数の平均値を設定することにする。ここで表Ｄ４０６が作成される。図８の例では、Ｔｉｍｅの出願回数が２０であり、ＣａｒＩＤの出願回数が１０であり、Ｓｐｅｅｄの出願回数が５であるため、（２０＋１０＋５）／３≒１２が設定されている。ただし、他のＲＤＢ列の出現回数の平均値を採用するのは一例であり、これに限定されることはない。
【００８４】
次に、キー評価ＰＧ  １５１２は、データをユニークに特定する、ＲＤＢ列またはＲＤＢ列の組み合わせを登録するユニークＲＤＢ列リストと、データをユニークに特定しない、ＲＤＢ列またはＲＤＢ列の組み合わせを登録する非ユニークＲＤＢ列リストとを作成し、表Ｄ４０６の中の主キーをユニークＲＤＢ列リストに追加する（ステップＳ４０７、ステップＳ４１５）。
【００８５】
更に、キー評価ＰＧ  １５１２は、ＲＤＢ列からデータをユニークに特定するＲＤＢ列の組み合わせを抽出する一連の処理（ステップＳ４０８〜Ｓ４１５）を行う。
【００８６】
まず、キー評価ＰＧ  １５１２は、表Ｄ４０６の主キー以外のＲＤＢ列を非ユニークＲＤＢ列リストに追加する（ステップＳ４０８）。続いて、キー評価ＰＧ  １５１２は、非ユニークＲＤＢ列リスト内のＲＤＢ列を対象として以下の処理（ステップＳ４１０〜Ｓ４１２）を繰り返す。
【００８７】
まず、キー評価ＰＧ  １５１２は、非ユニークＲＤＢ列リストから対象となっているＲＤＢ列を削除する（ステップＳ４１０）。次に、キー評価ＰＧ  １５１２は、ＷＨＥＲＥ句でＲＤＢ列を一意に指定したときに取得されるレコードの個数が１であるか否か判定する（ステップＳ４１１）。取得できるレコードの個数が１であれば、キー評価ＰＧ  １５１２は、対象となっているＲＤＢ列をユニークＲＤＢ列リストに追加する（ステップＳ４１５）。取得できるレコードの個数が１でなければ、キー評価ＰＧ  １５１２は、次に、非ユニークＲＤＢ列リストに対象となっているＲＤＢ列を追加する（ステップＳ４１２）。
【００８８】
ステップＳ４１０〜Ｓ４１２の処理が非ユニークＲＤＢ列リスト内のＲＤＢ列について完了すると、キー評価ＰＧ  １５１２は、非ユニークＲＤＢ列のＲＤＢ列を変数Ｃ個分組み合わせて、非ユニークＲＤＢ列リストとし（ステップＳ４１４）、ステップＳ４０９に戻る。ステップＳ４０９で変数Ｃ＝Ｃ＋１の演算を行なってから、ステップＳ４１０〜Ｓ４１３の処理を繰り返す。
【００８９】
ステップＳ４０９〜Ｓ４１４までの処理をＣの最大値まで実行したら、キー評価ＰＧ  １５１２は、次に、ユニークＲＤＢ列リストのＲＤＢ列を組み合わせてＫＶＳのキー候補を作成する（ステップＳ４１６）。図８には、キー候補Ｄ４１６として、ＫｅｙＡ、Ｂ、Ｃ、Ｄ・・Ｇという７つのキー候補が作成された例が示されている。例えば、ＫｅｙＡは、ＲＤＢ列「ＣａｒＩＤ」とＲＤＢ列「Ｔｉｍｅ」を組み合わせたキー候補である。
【００９０】
次に、キー評価ＰＧ  １５１２は、作成した各キー候補について、そのキー候補に含まれているＲＤＢ列の出現回数の平均値を算出し、その値を当該キー候補の適合度として保持する（ステップＳ４１７）。図８には、適合度算出結果Ｄ４１７が示されている。例えば、ＫｅｙＡおよびＫｅｙＢの適合度は１０と２０の平均値をとって１５である。なお、ここでは、ＲＤＢ列の出現回数の平均値をキー候補の適合度としたが、これに限定されることは無い。他の例として、出現回数の平均値の代わりに出現回数の合計値を用いてもよい。
【００９１】
次に、キー評価ＰＧ  １５１２は、キー候補を適合度が高い順に並べて先頭の所定個（ここでは一例として２個）を取り出し、それらのキー候補をキー候補集合１５２４として記憶部１５０に格納する（ステップＳ４１８）。図８には、キー候補集合１５２４の例が示されている。図８の例では、キー候補集合１５２４には、ＫｅｙＡとＫｅｙＢという２つのキー候補が含まれている。
【００９２】
図９Ａは、シミュレーションテーブル作成処理のフローチャートである。図９Ｂは、シミュレーションテーブル作成処理の説明に用いるキー候補の例を示す表である。図９Ｃは、シミュレーションテーブル作成処理の説明に用いるＲＤＢテーブルの例を示す表である。
【００９３】
図９Ａを参照すると、まず、キー評価ＰＧ  １５１２は、ＲＤＢテーブルを入力し、記憶部１５０に格納する（ステップＳ５０１）。続いて、キー評価ＰＧ  １５１２は、記憶部１５０から、シミュレーションの対象となるキー候補を取得する（ステップＳ５０２）。ここでは一例として図９Ｂに示したＫｅｙＡの情報がキー候補Ｄ５０２として取得される。
【００９４】
次に、キー評価ＰＧ  １５１２は、ＫＶＳキーを示すＫｅｙ、ＫＶＳの値を示すＶａｌｕｅ、データが格納される分割された領域を示すＲｅｇｉｏｎ、およびデータが格納されるノードを示すＮｏｄｅを含む分割前シミュレーションテーブルＤ５０６を作成し、分割前シミュレーションテーブルＤ５０６に、キー候補に含まれているＲＤＢ列をＫＶＳのＫｅｙとし、他のＲＤＢ列の列名および値をＶａｌｕｅとして、登録する（ステップＳ５０３）。図９Ｃに示したＲＤＢテーブルの上段の行には、ＰＫが１であり、ＣａｒＩＤが１であり、それ以外に、Ｔｉｍｅ列、Ｌａｔｉｔｕｄｅ列、Ｌｏｎｇｉｔｕｄｅ列、Ｓｐｅｅｄ列があるデータが登録されている。そのデータから、Ｌａｔｉｔｕｄｅ列、Ｌｏｎｇｉｔｕｄｅ列、Ｓｐｅｅｄ列をそれぞれＶａｌｕｅとする３つのデータが作成され、分割前シミュレーションテーブルＤ５０６に登録される。
【００９５】
次に、キー評価ＰＧ  １５１２は、分散ＫＶＳ  ３００に用いるＫＶＳ情報３０２を入力し、記憶部１５０に格納する（ステップＳ５０４）。ＫＶＳ情報３０２には、図５に示したように、分散ＫＶＳ  ３００のノード数やＲｅｇｉｏｎサイズなどが含まれている。
【００９６】
次に、キー評価ＰＧ  １５１２は、ＫＶＳ情報３０２に含まれているＲｅｇｉｏｎサイズに基づいて、各データが格納される領域を示すＲｅｇｉｏｎ番号を決定し、分割前シミュレーションテーブルＤ５０６に追加登録する（ステップＳ５０５）。例えば、各データをシーケンシャルに領域に割り当て、その領域のＲｅｇｉｏｎ番号を登録すればよい。なお、ここでは各データにシーケンシャルにＲｅｇｉｏｎ番号を付与する例を示したが、これに限定されることは無い。他の例として、各データにランダムにＲｅｇｉｏｎ番号を付与することにしても良い。
【００９７】
次に、キー評価ＰＧ  １５１２は、分散ＫＶＳ  ３００における各領域を格納するノードを決定し、分割前シミュレーションテーブルＤ５０６におけるＮｏｄｅ列にＮｏｄｅ番号を追加登録する（ステップＳ５０６）。ここでは一例として各領域を各ノードにシーケンシャルに割り当てる。
【００９８】
次に、キー評価ＰＧ  １５１２は、分割前シミュレーションテーブルＤ５０６をＲｅｇｉｏｎ番号ごとに分割し、シミュレーションテーブルＤ５０８を作成する（ステップＳ５０７）。続いて、キー評価ＰＧ  １５１２は、作成したシミュレーションテーブルＤ５０８を記憶部１５０に格納する（ステップＳ５０８）。
【００９９】
図１０は、クエリシミュレーション処理のフローチャートである。
【０１００】
まず、キー評価ＰＧ  １５１２は、記憶部１５０からシミュレーションに利用するシミュレーションテーブルを取得する（ステップＳ６０１）。続いて、キー評価ＰＧ  １５１２は、ステップＳ６０２〜Ｓ６０５の処理を、利用ログにある全てのクエリについて繰り返し実行する。
【０１０１】
まず、キー評価ＰＧ  １５１２は、記憶部１５０のＲＤＢ利用ログ１５２３におけるクエリ実行の結果から、クエリによって取得されるデータを特定し、シミュレーションテーブル１５２７に、データがクエリによって取得されるか否かの情報を登録する（ステップＳ６０３）。図１０には、シミュレーションテーブル１５２７の一例が示されている。図１０に示されたシミュレーションテーブルＤ６０３における、「クエリによって取得されるか」という列に、取得される場合にはＹ（Ｙｅｓ）、取得されない場合にはＮ（Ｎｏ）が登録される。
【０１０２】
次に、キー評価ＰＧ  １５１２は、領域毎のシミュレーションテーブル別に「クエリによって取得されるか」の列の末尾にＮを付加したものについて、先頭から順番に見ていき、登録されている情報がＹからＮに変わった回数をカウントし、その回数をスキャン回数とする（ステップＳ６０４）。図１０には、領域毎のスキャン回数を示す表Ｄ６０４が示されている。例えば、Ｎｏｄｅ１に格納されたＲｅｇｉｏｎ１という領域は、取得レコード数が２であり、スキャン回数が１である。そして、キー評価ＰＧ  １５１２は、スキャン回数をノード毎に合計する（ステップＳ６０５）。
【０１０３】
全てのクエリについてステップＳ６０２〜Ｓ６０６の一連の処理が完了すると、次に、キー評価ＰＧ  １５１２は、シミュレーション結果Ｄ６０５の表に、クエリ番号、レコード数、およびスキャン回数の情報を登録する（ステップＳ６０７）図１０には、クエリシミュレーション結果を示す表Ｄ６０５が示されている。例えば、クエリＱ１．１においては、取得レコード数が４つであり、スキャン回数が合計で３である。
【０１０４】
図１１は、スコア算出処理のフローチャートである。
【０１０５】
まず、キー評価ＰＧ  １５１２は、記憶部１５０から、クエリシミュレーション結果を取得する（ステップＳ７０１）。
【０１０６】
次に、キー評価ＰＧ  １５１２は、クエリシミュレーション結果にあるクエリ毎にシーケンシャル度を算出する（ステップＳ７０２）。シーケンシャル度は次の式により計算することができる
【０１０７】
【数１】
0006695985.tif 000002
各領域のスキャン回数をｒｎとする。スキャン回数が０の場合には除外される。理論的最初スキャン数をＳとする。Ｓは次の式により算出することができる
【０１０８】
【数２】
0006695985.tif 000003
続いて、キー評価ＰＧ  １５１２は、クエリ毎に分散度を算出する（ステップＳ７０３）。分散度は次の式により算出することができる
【０１０９】
【数３】
0006695985.tif 000004
σは標準偏差を表わす。ノード数をＮとし、各ノードのスキャン回数をＳｎとし、Ｓｎの平均値をμとしたとき、次の式が成り立つ
【０１１０】
【数４】
0006695985.tif 000005
図１１には、シーケンシャル度および分散度の情報が付加されたクエリシミュレーション結果Ｄ７０３が示されている。
【０１１１】
更に、キー評価ＰＧ  １５１２は、クエリ毎のシーケンシャル度の平均値を平均シーケンシャル度とし、クエリ毎の分散度の平均値を平均分散度とし、それらをキー評価結果１５２８として記憶部１５０に格納する（ステップＳ７０４）。図１１には、一例としてのキー評価結果Ｄ７０４が示されている。図１１の例では、キー候補ＫｅｙＡは、適合度が１５であり、平均シーケンシャル度が３０であり、平均分散度が３８である。
【０１１２】
図１２Ａは、キー評価提示処理のフローチャートである。図１２Ｂ、図１２Ｃ、図１２Ｄ、図１２Ｅは、キー評価提示処理による画面表示の例を示す図である。
【０１１３】
まず、キー評価提示ＰＧ  １５１３は、キー評価結果１５２８を記憶部１５０から取得する（ステップＳ８０１）。次に、キー評価提示ＰＧ  １５１３は、各キー候補について、キー評価結果１５２８に含まれる適合度、平均シーケンシャル度、および平均分散度の積を算出する（ステップＳ８０２）。続いて、キー評価提示ＰＧ  １５１３は、各キー候補について、キー評価結果、適合度、平均シーケンシャル度、平均分散度、スコア、および分散度重み入力部を、画面１として出力装置１１０に画面表示する（ステップＳ８０３）。図１２Ｂには画面１が示されている。分散度重み入力部のスライドバーを移動させることにより、スコア算出におけるシーケンシャル度と分散度の重み付けの比率を変更することができる。
【０１１４】
次に、キー評価提示ＰＧ  １５１３は、ユーザ（設計者）による画面へのクリックを検出すると（ステップＳ８０４）、そのユーザクリックが重み入力に関するものであれば、変更された重みでスコアを再計算する（ステップＳ８０５）。一方、ユーザクリックがキー候補の選択に関するものであれば、キー評価提示ＰＧ  １５１３は、まず、キー評価結果を示す画面１の表示を終了し（ステップＳ８０６）、選択されたキーに関するキー設計詳細画面（画面２）を表示する（ステップＳ８０７）。
【０１１５】
図１２Ｃには画面２が示されている。図１２Ｃの画面２の例では、ＫｅｙＡに含まれているＲＤＢ列がＣａｒＩＤとＴｉｍｅである。スコアが１７１００である。適合度が１５である。平均シーケンシャル度が３０である。平均分散度が３８である。更に、選択されているキーを移行用として確定させる決定ボタンと、前の画面に戻るための戻るボタンが表示されている。
【０１１６】
次に、キー評価提示ＰＧ  １５１３は、ユーザクリックを検出すると（ステップＳ８０８）、そのユーザクリックが戻るボタンへのクリックであれば、キー設計詳細画面（画面２）の表示を終了し（ステップＳ８０９）、ステップＳ８０３に戻る。
【０１１７】
また、ステップＳ８０８で検出したユーザクリックが平均シーケンシャル度に関するものであれば、キー評価提示ＰＧ  １５１３は、シーケンシャル度詳細画面（画面３）を表示する（ステップＳ８１０）。図１２Ｄには画面３が示されている。図１２Ｄに示した画面３の例では、ＫｅｙＡのクエリ毎のシーケンシャル度がグラフで表示され、更に戻るボタンが表示されている。キー評価提示ＰＧ  １５１３は、ここでユーザクリックを検出すると（ステップＳ８１１）、シーケンシャル度詳細画面（画面３）の表示を終了し（ステップＳ８１２）、ステップＳ８０７に戻る。
【０１１８】
また、ステップＳ８０８において検出したユーザクリックが平均分散度を選択するクリックであれば、キー評価提示ＰＧ  １５１３は、分散度詳細画面（画面４）を表示する（ステップＳ８１３）。図１２Ｅには画面４が示されている。図１２Ｅに示した画面４の例では、ＫｅｙＡのクエリ毎の分散度がグラフで表示され、更に戻るボタンが表示されている。キー評価提示ＰＧ  １５１３は、ここでユーザクリックを検出すると（ステップＳ８１４）、分散度詳細画面（画面４）の表示を終了し（ステップＳ８１５）、ステップＳ８０７に戻る。
【０１１９】
また、ステップＳ８０８において検出したユーザクリックが決定ボタンに対するものであれば、キー評価提示ＰＧ  １５１３は、キー設計詳細画面（画面２）の表示を終了し（ステップＳ８１６）、選択され、キー設計詳細画面に表示されていたキー（ここではＫｅｙＡ）を移行用キーとし、移行用キー情報を記憶部１５０に格納し（ステップＳ８１７）、処理を終了する。
【０１２０】
図１３Ａは、データ移行処理のシーケンス図である。図１３Ｂ、図１３Ｃは、データ移行処理による画面表示の例を示す図である。
【０１２１】
データ移行ＰＧ  １５１４は、まず、記憶部１５０から、ＲＤＢ  ２００から得た車両情報テーブルスキーマ定義２０４、分散ＫＶＳ  ３００から得たＫＶＳ情報３０２、移行用キー情報１５２９、移行用キーのシミュレーションテーブル１５２７を取得する（ステップＳ９０１）。データ移行ＰＧ  １５１４は、ＫＶＳにおける列ファミリ（Ｃｏｌｕｍｎ  Ｆａｍｉｌｙ）の名称である列ファミリ名を設定するためにデータ移行設定画面を表示する（ステップＳ９０２）。図１３Ｂには、データ移行設定画面（画面５ａ）が示されている。画面５には、ＲＤＢの列名とＫＶＳの列ファミリ名とが対応表に示されており、更に、メッセージ表示部と実行ボタンが示されている。次に、データ移行ＰＧ  １５１４は、ユーザ操作により列ファミリ名を入力する（ステップＳ９０３）。そして、実行ボタンへのユーザクリックを検出すると、データ移行ＰＧ  １５１４は、メッセージ表示部にメッセージを表示していればその表示を削除する（ステップＳ９０５）。
【０１２２】
次に、データ移行ＰＧ  １５１４は、すべての列ファミリ名が入力されているか否か判定する（ステップＳ９０６）。すべての列ファミリ名が入力されていなければ、データ移行ＰＧ  １５１４は、メッセージ表示部に「列ファミリを入力してください」というメッセージを表示し（ステップＳ９０７）、ステップＳ９０３に戻る。図１３Ｃには、メッセージが表示されたデータ移行設定画面（画面５ｂ）が示されている。画面５ｂには、ＲＤＢ列「Ｌｏｎｇｉｔｕｄｅ」に対応する列ファミリ名が設定されておらず、「列ファミリを入力してください」というメッセージが表示されている。
【０１２３】
ステップＳ９０６においてすべての列ファミリ名が入力されていれば、データ移行ＰＧ  １５１４は、移行先の分散ＫＶＳ  ３００にＫＶＳテーブルのテーブル定義（中身が空の状態のテーブル）を作成する（ステップＳ９０８）。ＫＶＳテーブルには、ＫｅｙとＶａｌｕｅとを対応づけて列ファミリに対して格納可能である。
【０１２４】
次に、データ移行ＰＧ  １５１４は、移行キーのシミュレーションテーブル１５２７のＫｅｙとＶａｌｕｅとを、ＫＶＳテーブルに登録していくことにより分散ＫＶＳ  ３００に移行する（ステップＳ９０９）。このとき、図９Ａに例示した分割後のシミュレーションテーブルが移行先の分散ＫＶＳ  ３００の各ノード３０３、３０４、３０５のＫＶＳテーブルに格納される。
【０１２５】
図１４は、シーケンシャル度および分散度の計算例を示す表である。ここではノード数が４個であり、各ノードにそれぞれＲｅｇｉｏｎが２個ずつ格納される。Ｎｏｄｅ１にはＲｅｇｉｏｎ  Ｒ１、Ｒ５が格納される。Ｎｏｄｅ２にはＲｅｇｉｏｎ  Ｒ２、Ｒ６が格納される。Ｎｏｄｅ３にはＲｅｇｉｏｎ  Ｒ３、Ｒ７が格納される。Ｎｏｄｅ４にはＲｅｇｉｏｎ  Ｒ４、Ｒ８が格納される。論理的最小スキャン数Ｓは３である。
【０１２６】
例１はシーケンシャル度が１００であり、分散度が０．８３である。例２はシーケンシャル度が５０であり、分散度が１．３０である。例３はシーケンシャル度が３７．５であり、分散度が１００である。例４はシーケンシャル度が２．３であり、分散度が３３．３である。
【０１２７】
シーケンシャル度は例１が最大である。例１ではスキャン回数が論理的最小スキャ数と一致している。分散度は例３が最大である。例３ではスキャンが全てのノードにわたり同じ回数（２回）ずつ発生している。
【０１２８】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【符号の説明】
【０１２９】
１００…キー設計支援装置、１１０…出力装置、１２０…演算装置、１３０…入力装置、１４０…通信装置、１５０…記憶部、１５１…ＰＧ領域、１５１２…移行用キー情報、１５１３…キー評価提示ＰＧ、１５１４…データ移行ＰＧ、１５１５…キー候補集合作成モジュール、１５１６…ＫＶＳテーブル作成モジュール、１５１７…クエリシミュレーションモジュール、１５１８…スコア算出モジュール、１５２…データ領域、１５２１…ＲＤＢ接続情報、１５２２…移行対策クライアント情報、１５２２…移行対象クライアント情報、１５２３…ＲＤＢ利用ログ、１５２４…キー候補集合、１５２５…クエリ集合、１５２６…ＲＤＢテーブル、１５２７…シミュレーションテーブル、１５２８…キー評価結果、１５２９…移行用キー情報、２００…ＲＤＢ、２０１…通信装置、２０２…利用ログ、２０２１…クライアント、２０２３…クエリ、２０２４…結果、２０３…車両情報テーブル、２０４…車両情報テーブルスキーマ定義、３００…分散ＫＶＳ、３０１…通信装置、３０２…ＫＶＳ情報、３０３…ノード、３０４…ノード、３０５…ノード、４０１…クライアント、４０２…クライアント、４０３…クライアント
【図１】
0006695985.tif 000006
【図２】
0006695985.tif 000007
【図３】
0006695985.tif 000008
【図４Ａ】
0006695985.tif 000009
【図４Ｂ】
0006695985.tif 000010
【図４Ｃ】
0006695985.tif 000011
【図５】
0006695985.tif 000012
【図６】
0006695985.tif 000013
【図７】
0006695985.tif 000014
【図８】
0006695985.tif 000015
【図９Ａ】
0006695985.tif 000016
【図９Ｂ】
0006695985.tif 000017
【図９Ｃ】
0006695985.tif 000018
【図１０】
0006695985.tif 000019
【図１１】
0006695985.tif 000020
【図１２Ａ】
0006695985.tif 000021
【図１２Ｂ】
0006695985.tif 000022
【図１２Ｃ】
0006695985.tif 000023
【図１２Ｄ】
0006695985.tif 000024
【図１２Ｅ】
0006695985.tif 000025
【図１３Ａ】
0006695985.tif 000026
【図１３Ｂ】
0006695985.tif 000027
【図１３Ｃ】
0006695985.tif 000028
【図１４】
0006695985.tif 000029