(57)【要約】【課題】データベース間のデータ移行は、煩雑な処理を必要とし、さらに、移行先のＤＢ上で、新たにテーブル構造等を別途、定義する必要があった。かかる作業は、大変手間のかかるものであった。【解決手段】データベース移行装置１００は、第一データベース管理システム１０２により定義された１以上のデータベースのデータベース構造に関する情報である第一データベース構造情報を取得する第一データベース構造情報取得部１０３と、１以上のデータベースのレコードを構成するデータ群を取得するデータ群取得部１０４と、第二データベース管理システム１０７において、第一データベース構造情報に基づいて１以上のデータベース構造を定義するデータベース構造定義部１０５と、データ群取得部が取得したデータ群を、データベース構造定義部が定義したデータベース構造に挿入するデータ挿入部１０６を具備する。【選択図】図１
2005141280.tif 000002
【特許請求の範囲】
【請求項１】
第一データベース管理システムにより定義された１以上のデータベースのデータベース構造に関する情報である第一データベース構造情報を取得する第一データベース構造情報取得部と、
前記１以上のデータベースのレコードを構成するデータ群を取得するデータ群取得部と、
第二データベース管理システムにおいて、前記第一データベース構造情報に基づいて、１以上のデータベース構造を定義するデータベース構造定義部と、
前記データ群取得部が取得したデータ群を、前記データベース構造定義部が定義したデータベース構造に挿入するデータ挿入部を具備するデータベース移行装置。
【請求項２】
前記第一データベース構造情報は、前記１以上のデータベースのインデックスに関する情報であるインデックス情報を有し、
前記１以上のデータベースのインデックス情報を取得するインデックス情報取得部と、
前記インデックス情報取得部が取得したインデックス情報に基づいて、前記データ挿入部が挿入したデータ群の全部または一部に対するインデックスを構築するインデックス構築部をさらに具備する請求項１記載のデータベース移行装置。
【請求項３】
前記インデックス情報が示すインデックスの構造と、前記インデックス構築部が構築するインデックスの構造が異なる請求項２記載のデータベース移行装置。
【請求項４】
前記第一データベース管理システムの第一データベース構造情報を取得する命令を示す情報である第一データベース構造取得命令情報と、前記データ群を取得する命令を示す情報であるデータ群取得命令情報と、第二データベース管理システムにおいてデータベース構造を定義する命令を示す情報である第二データベース構造定義命令情報と、前記データベース構造定義部が定義したデータベース構造に前記データ群を挿入する命令を示す情報であるデータ群挿入命令情報を保持しているデータベース操作情報保持部をさらに具備し、
前記第一データベース構造情報取得部は、
前記第一データベース構造取得命令情報に基づいて、第一データベース構造情報を取得し、
前記データ群取得部は、
前記データ群取得命令情報に基づいて、前記１以上のデータベースのレコードを構成するデータ群を取得し、
前記データベース構造定義部は、
前記第二データベース構造定義命令情報と前記第一データベース構造情報に基づいて１以上のデータベース構造を定義し、
前記データ挿入部は、
前記データ群挿入命令情報に基づいて、前記データ群取得部が取得したデータ群を、前記データベース構造定義部が定義したデータベース構造に挿入する請求項１記載のデータベース移行装置。
【請求項５】
前記第一データベース管理システムの第一データベース構造情報を取得する命令を示す情報である第一データベース構造取得命令情報と、前記データ群を取得する命令を示す情報であるデータ群取得命令情報と、第二データベース管理システムにおいてデータベース構造を定義する命令を示す情報である第二データベース構造定義命令情報と、前記データベース構造定義部が定義したデータベース構造に前記データ群を挿入する命令を示す情報であるデータ群挿入命令情報と、前記１以上のデータベースのインデックス情報を取得する命令を示す情報であるインデックス情報取得命令情報と、前記データ挿入部が挿入したデータ群の全部または一部に対するインデックスを構築する命令を示す情報であるインデックス構築命令情報を保持しているデータベース操作情報保持部をさらに具備し、
前記第一データベース構造情報取得部は、
前記第一データベース構造取得命令情報に基づいて、第一データベース構造情報を取得し、
前記データ群取得部は、
前記データ群取得命令情報に基づいて、前記１以上のデータベースのレコードを構成するデータ群を取得し、
前記データベース構造定義部は、
前記第二データベース構造定義命令情報と前記第一データベース構造情報に基づいて１以上のデータベース構造を定義し、
前記データ挿入部は、
前記データ群挿入命令情報に基づいて、前記データ群取得部が取得したデータ群を、前記データベース構造定義部が定義したデータベース構造に挿入し、
前記インデックス情報取得部は、
前記インデックス情報取得命令情報に基づいて、前記１以上のデータベースのインデックス情報を取得し、
前記インデックス構築部は、
前記インデックス構築命令情報と前記インデックス情報に基づいて、前記データ挿入部が挿入したデータ群の全部または一部に対するインデックスを構築する
請求項２または請求項３いずれか記載のデータベース移行装置。
【請求項６】
コンピュータに、
第一データベース管理システムにより定義された１以上のデータベースのデータベース構造に関する情報である第一データベース構造情報を取得する第一データベース構造情報取得ステップと、
前記１以上のデータベースのレコードを構成するデータ群を取得するデータ群取得ステップと、
前記第一データベース構造情報に基づいて１以上のデータベース構造を定義するデータベース構造定義ステップと、
前記データ群取得ステップで取得したデータ群を、前記データベース構造定義ステップで定義したデータベース構造に挿入するデータ挿入ステップとを実行させるためのプログラム。
【請求項７】
コンピュータに、
前記１以上のデータベースのインデックスに関する情報であるインデックス情報を取得するインデックス情報取得ステップと、
前記インデックス情報取得ステップで取得したインデックス情報に基づいて、前記データ挿入ステップで挿入したデータ群の全部または一部に対するインデックスを構築するインデックス構築ステップをさらに実行させるための請求項６記載のプログラム。
【請求項８】
コンピュータに、
第一データベース管理システムの第一データベース構造情報を取得する命令を示す情報である第一データベース構造取得命令情報に基づいて、第一データベース構造情報を取得する第一データベース構造情報取得ステップと、
データ群を取得する命令を示す情報であるデータ群取得命令情報に基づいて、１以上のデータベースのレコードを構成するデータ群を取得するデータ群取得ステップと、
第二データベース管理システムにおいてデータベース構造を定義する命令を示す情報である第二データベース構造定義命令情報に基づいて、１以上のデータベース構造を定義するデータベース構造定義ステップと、
前記データベース構造定義ステップで定義したデータベース構造に前記データ群を挿入する命令を示す情報であるデータ群挿入命令情報に基づいて、前記データ群取得ステップで取得したデータ群を、前記データベース構造定義ステップで定義したデータベース構造に挿入するデータ挿入ステップとを実行させるためのプログラム。
【請求項９】
コンピュータに、
第一データベース管理システムの第一データベース構造情報を取得する命令を示す情報である第一データベース構造取得命令情報に基づいて、第一データベース構造情報を取得する第一データベース構造情報取得ステップと、
データ群を取得する命令を示す情報であるデータ群取得命令情報に基づいて、前記１以上のデータベースのレコードを構成するデータ群を取得するデータ群取得ステップと、
第二データベース管理システムにおいてデータベース構造を定義する命令を示す情報である第二データベース構造定義命令情報と前記第一データベース構造情報に基づいて１以上のデータベース構造を定義するデータベース構造定義ステップと、
前記データベース構造定義ステップで定義したデータベース構造に前記データ群を挿入する命令を示す情報であるデータ群挿入命令情報に基づいて、前記データ群取得ステップで取得したデータ群を、前記データベース構造定義ステップで定義したデータベース構造に挿入するデータ挿入ステップと、
１以上のデータベースのインデックス情報を取得する命令を示す情報であるインデックス情報取得命令情報に基づいて、前記１以上のデータベースのインデックス情報を取得するインデックス情報取得ステップと、
前記データ挿入ステップで挿入したデータ群の全部または一部に対するインデックスを構築する命令を示す情報であるインデックス構築命令情報と前記インデックス情報に基づいて、前記データ挿入ステップで挿入したデータ群の全部または一部に対するインデックスを構築するインデックス構築ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、異なるデータベース管理システム間におけるデータベースの移行を行うデータベース移行装置等に関する。
【背景技術】
【０００２】
従来、異なるデータベース管理システム間におけるデータベースの移行は、以下の処理を行っていた。最初に、移行元のデータベース（以下、「ＤＢ」とする。）に格納されている１以上のデータを、カンマで区切り、ファイルにそのデータを記録する。例えば、１レコード内のデータをカンマで区切って１行に並べてファイルに記録する、いわゆるＣＳＶフォーマットがある。次に、移行先のＤＢに、当該ＣＳＶフォーマットで記録されたデータを格納する。ここで、移行元のＤＢから移行先のＤＢへ移行されるデータは、テーブル構造を定義するテーブル定義情報のデータを含まないものであった。ここで「テーブル定義情報」とは、例えば、ＲＤＢの場合、フィールドを構成するデータの属性値、データ型、バイト長等を示す情報である。なお、「テーブル定義情報」とは、スキーマ情報とも言う。次に、ユーザは、移行先のＤＢ上で、新たに、データベースのテーブル構造を手入力で定義していた（非特許文献１参照）。
【非特許文献１】株式会社ソフトウエア・パートナー［平成１５年９月２２日検索］インターネット<ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｓｐ−ｉｎｃ．ｃｏ．ｊｐ／ｐｒｏｄｕｃｔ．ｈｔｍ？ｐａｒａ＝ＤＣ>
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のデータベース管理システム（ＤＢＭＳ）間のデータベース移行は、上記のような煩雑な処理を必要とし、さらに、移行先のＤＢＭＳ上で、新たにテーブル構造を定義することは、大変手間のかかるものであった。本発明のデータベース移行装置等は、かかる問題を解決するためになされたものであり、ＤＢＭＳ間のデータベース移行で、煩雑な処理をなくし、移行するデータベースを指定する等の簡単な処理でデータベース移行を行えるようにし、さらに、移行先のＤＢＭＳ上で、テーブル構造を手入力で定義しなくても良いようにすることを目的としている。
【課題を解決するための手段】
【０００４】
本発明のデータベース移行装置は、第一データベース管理システムにより定義された１以上のデータベースのデータベース構造に関する情報である第一データベース構造情報を取得する第一データベース構造情報取得部と、１以上のデータベースのレコードを構成するデータ群を取得するデータ群取得部と、第二データベース管理システムにおいて、第一データベース構造情報に基づいて１以上のデータベース構造を定義するデータベース構造定義部と、データ群取得部が取得したデータ群を、データベース構造定義部が定義したデータベース構造に挿入するデータ挿入部を具備することを特徴としている。
【０００５】
この構成により、データベースの移行処理を簡単に行え、さらに、移行先のＤＢＭＳ上で、手入力で、テーブル構造を定義しなくても良い。かかるテーブル構造を定義するための手入力する手間をなくし、また、データベースを移行する処理の作業時間は短縮される。よって、ＤＢ管理者の作業を軽減できる等の効果がある。
【０００６】
他の本発明のデータベース移行装置は、第一データベース構造情報が、１以上のデータベースのインデックスに関する情報であるインデックス情報を有し、１以上のデータベースのインデックス情報を取得するインデックス情報取得部と、インデックス情報取得部が取得したインデックス情報に基づいて、データ挿入部が挿入したデータ群の全部または一部に対するインデックスを構築するインデックス構築部を、さらに具備することを特徴としている。
【０００７】
この構成により、移行元のＤＢＭＳで構築されていたインデックス情報を、移行先のＤＢＭＳにも移行できる。よって、移行先のＤＢＭＳ上で、手入力で、インデックス情報を構築しなくても良い。かかる構築するための手入力する手間をなくすことができ、よって、ＤＢ管理者の作業を軽減できる等の効果がある。
【０００８】
他の本発明のデータベース移行装置は、インデックス情報が示すインデックスの構造と、インデックス構築部が構築するインデックスの構造が異なることを特徴としている。
【０００９】
この構成により、移行元のＤＢＭＳと移行先のＤＢＭＳのインデックスの構造が異なっていても、移行元のインデックス情報に基づいて、移行先のＤＢＭＳのインデックスの構造仕様に適合して、インデックスを構築できる。例えば、移行元のインデックスがハッシュ構造のインデックス、また移行先のインデックスがＢｔｒｅｅ構造のインデックスである場合に、移行先のハッシュ構造のインデックからインデックス情報を取得し、当該取得したインデックス情報に基づいて、Ｂｔｒｅｅ構造のインデックスを構築できる。つまり、移行先のＤＢＭＳの仕様に適合したＤＢが構築できる。また、移行元のＤＢＭＳ上では構築されていないインデックス情報を、移行先のＤＢＭＳ上に構築できる。よって、移行先のＤＢＭＳ上で、移行元のＤＢＭＳ上で構築されているインデックス情報とは、別の構造を有するインデックス情報を、手入力で構築しなくてもよくなる。かかる構築するために要する手間はなくなり、ＤＢＭＳ管理者の作業を軽減できる等の効果がある。
【００１０】
他の本発明のデータベース移行装置は、第一データベース管理システムの第一データベース構造情報を取得する命令を示す情報である第一データベース構造取得命令情報と、データ群を取得する命令を示す情報であるデータ群取得命令情報と、第二データベース管理システムにおいてデータベース構造を定義する命令を示す情報である第二データベース構造定義命令情報と、データベース構造定義部が定義したデータベース構造にデータ群を挿入する命令を示す情報であるデータ群挿入命令情報を保持しているデータベース操作情報保持部をさらに具備し、第一データベース構造情報取得部は、第一データベース構造取得命令情報に基づいて、第一データベース構造情報を取得し、データ群取得部は、データ群取得命令情報に基づいて、１以上のデータベースのレコードを構成するデータ群を取得し、データベース構造定義部は、第二データベース構造定義命令情報と第一データベース構造情報に基づいて１以上のデータベース構造を定義し、データ挿入部は、データ群挿入命令情報に基づいて、データ群取得部が取得したデータ群を、データベース構造定義部が定義したデータベース構造に挿入することを特徴としている。
【００１１】
この構成により、種々のＤＢＭＳ間で、ＤＢの移行ができる。よって、各々のＤＢＭＳ管理システムが採用しているデータ構造、データベース言語等を気にすることなく、ＤＢＭＳ間でＤＢの移行を行うことができる。
【００１２】
他の本発明のデータベース移行装置は、第一データベース管理システムの第一データベース構造情報を取得する命令を示す情報である第一データベース構造取得命令情報と、データ群を取得する命令を示す情報であるデータ群取得命令情報と、第二データベース管理システムにおいてデータベース構造を定義する命令を示す情報である第二データベース構造定義命令情報と、データベース構造定義部が定義したデータベース構造にデータ群を挿入する命令を示す情報であるデータ群挿入命令情報と、１以上のデータベースのインデックス情報を取得する命令を示す情報であるインデックス情報取得命令情報と、データ挿入部が挿入したデータ群の全部または一部に対するインデックスを構築する命令を示す情報であるインデックス構築命令情報を保持しているデータベース操作情報保持部をさらに具備し、第一データベース構造情報取得部は、第一データベース構造取得命令情報に基づいて、第一データベース構造情報を取得し、データ群取得部は、データ群取得命令情報に基づいて、１以上のデータベースのレコードを構成するデータ群を取得し、データベース構造定義部は、第二データベース構造定義命令情報と第一データベース構造情報に基づいて１以上のデータベース構造を定義し、データ挿入部は、データ群挿入命令情報に基づいて、データ群取得部が取得したデータ群を、データベース構造定義部が定義したデータベース構造に挿入し、インデックス情報取得部は、インデックス情報取得命令情報に基づいて、１以上のデータベースのインデックス情報を取得し、インデックス構築部は、インデックス構築命令情報とインデックス情報に基づいて、データ挿入部が挿入したデータ群の全部または一部に対するインデックスを構築することを特徴としている。
この構成により、種々のＤＢＭＳ間で、ＤＢの移行ができる。また、種々のＤＢＭＳ間で、インデックスを構築できる。
【発明の効果】
【００１３】
本発明によるデータベース移行装置等によれば、異なるＤＢＭＳ間で自動的にデータベースの移行ができる。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明の実施の形態について、図面を用いて詳細に説明する。なお、本実施の形態において、同一の符号を用いた構成要素やフローチャートのステップなどは、同じ機能を果たすので、一度説明したものについて説明を省略する場合がある。
【００１５】
（実施の形態１）
本実施の形態において、データベース移行装置が、異なるＤＢＭＳ間で、データベースの移行を自動的にすることについて、以下に説明する。
図１は、本実施の形態におけるデータベース移行装置１００の構成を示すブロック図である。データベース移行装置１００は、入力受付部１０１、第一データベース管理システム１０２、第一データベース構造情報取得部１０３、データ群取得部１０４、データベース構造定義部１０５、データ挿入部１０６、第二データベース管理システム１０７を有する。第一データベース管理システム１０２は、第一データベース格納部１０２１を有する。第二データベース管理システム１０７は、命令実行部１０７１、第二データベース格納部１０７２を有する。
【００１６】
なお、データベース移行装置１００は、通常の電子計算機が有するＣＰＵ、メインメモリ、記録媒体（例えば、ＲＯＭ、ＥＰＲＯＭ等）等のハードウエア資源、および周辺装置（例えば、キーボード、マウス等の入力デバイス、ディスプレイ等の出力デバイス等）を具備する（図示しない）。以下、他の実施の形態においても同様である。
【００１７】
入力受付部１０１は、アプリケーションの起動の指示の入力を受け付ける。また、入力受付部１０１は、データベースを移行する指示の入力を受け付ける。「データベースを移行する指示」とは、例えば、移行元のＤＢＭＳと移行先のＤＢＭＳを指定する指示である。入力受付部１０１は、テンキーやキーボード等の入力手段のデバイスドライバーや、アプリケーションの表示画面の制御ソフトウェア等で実現され得る。なお、入力手段は、テンキーやキーボードやマウスやアプリケーションの表示画面によるもの等、何でも良い。
【００１８】
第一データベース管理システム１０２は、データベースを格納している記録媒体と、そのデータベースを処理するソフトウェア等を有して実現されうる。「データベース」とは、データを大量に蓄積し整理して、コンピュータが処理しやすい形にしたファイル、または、その集合をいう。データベースには、例えば、網型データベース、階層型データベース、ＲＤＢ、オブジェクト指向型データベース等がある。
【００１９】
第一データベース格納部１０２１は、データベースを格納している。第一データベース格納部１０２１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも良い。
【００２０】
第一データベース構造情報取得部１０３は、第一データベース管理システム１０２により定義された１以上のデータベースのデータベース構造に関する情報である第一データベース構造情報を取得する。なお、第一データベース構造情報取得部１０３は、移行することを指示されたデータベースの第一データベース構造情報を取得する。「第一データベース構造情報」とは、例えば、テーブル定義情報等の情報である。「テーブル定義情報」とは、例えば、ＲＤＢの場合、テーブル名、テーブルのフィールドのフィールド名、データ型、バイト長等の情報である。なお、フィールドは複数であっても良い。第一データベース構造情報取得部１０３は、通常、ＭＰＵやメモリ等から実現され得る。「取得する」ための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２１】
データ群取得部１０４は、１以上のデータベースのすべてのレコードを構成するデータ（データ群）を取得する。なお、データ群取得部１０４は、移行することを指示されたデータベースのデータ群を取得する。データ群取得部１０４は、データ群を取得する場合に、データをカンマで区切るＣＳＶフォーマットで取得してもよく、その他の形式（例えば、ＤＩＦフォーマット、ＳＹＬＫフォーマット等）で取得しても良い。データ群取得部１０４は、通常、ＭＰＵやメモリ等から実現され得る。「取得する」ための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２２】
データベース構造定義部１０５は、第二データベース管理システム１０７において、第一データベース構造情報に基づいて、１以上のデータベース構造を定義する。「第一データベース構造情報に基づいて、１以上のデータベース構造を定義する」とは、データベース構造（スキーマ）を定義する命令を構成することである。かかる処理の詳細は、後述する。データベース構造定義部１０５は、通常、ＭＰＵやメモリ等から実現され得る。「定義する」ための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２３】
データ挿入部１０６は、データ群取得部１０４が取得したデータ群を、データベース構造定義部１０５が定義したデータベース構造に挿入する内容の命令を構成する。かかる処理の具体的方法は、後述する。データ挿入部１０６は、通常、ＭＰＵやメモリ等から実現され得る。「挿入する」ための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
第二データベース管理システム１０７は、データベースを格納している記録媒体と、そのデータベースを処理するソフトウェア等を有して実現されうる。
【００２４】
命令実行部１０７１は、データベース構造定義部１０５が構成したデータベース構造を定義する命令を実行する。当該実行により、１以上のデータベース構造が構成される。また、命令実行部１０７１は、データ挿入部１０６が構成したデータを挿入する命令を実行する。当該実行により、データ群取得部１０４が取得したデータ群は、当該構成されたデータベース構造に挿入される。
【００２５】
第二データベース格納部１０７２は、命令実行部１０７１が命令を実行した結果得られたデータベースを格納している。「蓄積する」とは、一時蓄積を含む概念である。第二データベース格納部１０７２は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも良い。
以下、本実施の形態におけるデータベース移行装置１００の動作について図２のフローチャートを用いて説明する。
【００２６】
（ステップＳ２０１）入力受付部１０１は、入力を受け付けたか否かを判断する。入力受付部１０１は、当該入力を受けた場合、ステップＳ２０２に行き、そうでない場合、ステップＳ２０１に戻る。
【００２７】
（ステップＳ２０２）入力受付部１０１は、アプリケーションを起動する指示の入力を受け付けたか否かを判断する。入力受付部１０１は、当該入力を受けた場合、ステップＳ２０３に行き、そうでない場合、ステップＳ２０４に行く。「アプリケーションを起動する指示の入力」とは、例えば、アプリケーションのアイコンをクリックすること等である。
【００２８】
（ステップＳ２０３）データベース移行装置１００は、アプリケーションを起動する。画面構成表示手段（図示せず）は、初期画面を構成し、ディスプレイに、当該構成された初期画面を表示する。ステップＳ２０１に戻る。
【００２９】
（ステップＳ２０４）入力受付部１０４は、ステップＳ２０１で受け付けられた指示の入力が、データベースを移行する指示の入力か否かを判断する。入力受付部１０４は、データベースを移行する指示の入力を受け付けた場合、ステップＳ２０５に行き、そうでない場合、ステップＳ２１１に行く。「データベースを移行する指示」は、例えば、移行元のＤＢＭＳと移行先のＤＢＭＳを指示することである。
【００３０】
（ステップＳ２０５）第一データベース構造情報取得部１０３は、ステップＳ２０４で指示された、移行元の第一データベース格納部１０２１から、データベース構造情報を取得する。ここで、指示されたデータベースが１である場合は、第一データベース構造情報取得部１０３は、指示されたデータベースのデータベース構造情報を取得する。また、指示されたデータベースが複数である場合は、第一データベース構造情報取得部１０３は、指示された複数のデータベースのデータベース構造情報を取得する。
（ステップＳ２０６）データ群取得部１０４は、ステップＳ２０４で指示された、移行元の第一データベース格納部１０２１から、データ群を取得する。
【００３１】
（ステップＳ２０７）データベース構造定義部１０５は、ステップＳ２０５で取得したデータベース構造情報に基づいて、データベース構造を定義する命令を構成する。
【００３２】
（ステップＳ２０８）命令実行部１０７１は、ステップＳ２０７で構成されたデータベース構造定義の命令を実行する。実行の結果、データベース構造が構成される。構成されたデータベース構造は、第二データベース格納部１０７２に格納される。
【００３３】
（ステップＳ２０９）データ挿入部１０６は、ステップＳ２０６で取得したデータ群を、ステップＳ２０８で構成したデータベース構造に、挿入する命令を構成する。
【００３４】
（ステップＳ２１０）命令実行部１０７１は、ステップＳ２０９で構成された「挿入する命令」を実行する。ステップＳ２０８で構成したデータベース構造にデータ群が挿入され、データベースが構成される。構成されたデータベースは、第二データベース格納部１０７２に格納される。なお、ＤＢの表が複数の表を含むＤＢＭＳの場合、複数の表を取得し、当該複数の表に基づいて、１つのＤＢを構成してもよく、複数の表毎にＤＢを構成してもよい。
【００３５】
（ステップＳ２１１）入力受付部１０１は、動作を終了する指示の入力を受け付けたか否かを判断する。当該入力を受け付けた場合、終了し、そうでない場合、ステップＳ２０１に戻る。「動作を終了する指示」とは、例えば、データベース移行装置１００が有する終了ボタン等の押下による指示等である。
【００３６】
以下、本実施の形態におけるデータベース移行装置の具体的な動作について説明する。
以下に、データベースを移行する指示の入力に関する処理について説明する。図３は、データベース移行装置１００のディスプレイの表示例を示す図である。図３において、アプリケーション「ＡＢＣプログラム」の初期画面が表示されている。なお、「ＡＢＣプログラム」とは、データベース移行装置１００の動作を制御するアプリケーションソフトである。メニューボタン「ＤＢＭＳ」が押下されると、データベース管理システムを示すマークが、図３に示すようにウインドウに表示される。次に、移行元ＤＢＭＳのウインドウ内から、移行元ＤＢＭＳとして「ＤＢＭＳ０１」を指定する。また、移行先のウインドウ内から、移行先ＤＢＭＳとして「ＤＢＭＳ１１」を指定する。「指定」とは、例えば、「ＤＢＭＳ０１」または「ＤＢＭＳ１１」の部分をマウスで左クリックし、図３に示すように、網掛け表示等の強調表示にして指定する等である。なお、指定方法は、上記に限定されず、その他の指定方法で指定しても良い。
【００３７】
次に、指定された「ＤＢＭＳ０１」または「ＤＢＭＳ１１」は、図４に示すウインドウに表示される。図４において、移行元ＤＢＭＳ０１のウインドウ内には、「ＤＢＭＳ０１」を構成する１以上のデータベースが表示される。また、移行先ＤＢＭＳ１１のウインドウ内には、「ＤＢＭＳ１１」を構成する１以上のデータベースが表示される。次に、「ＤＢＭＳ０１」のファイルから、移行するデータベースを選択する。今、「人事管理ＤＢ」が選択された場合、移行先ＤＢＭＳ１１のウインドウ内に、新規データベースが作成される（図４において、長方形の枠内に斜線を引いて示されている）。データベースを作成する命令は、ＳＱＬで記述すると、例えば、「ＣＲＥＡＴＥ  ＤＡＴＡＢＡＳＥ  人事管理；」等である。
【００３８】
「選択する方法」は、例えば、「人事管理ＤＢ」の部分をマウスで左クリックし、図４に示すように、網掛け表示して強調し、「選択ボタン」をクリックする等である。なお、「選択する方法」は、上記に限定されず、その他の方法で選択しても良い。ファイル名称は、別途の処理で入力してもよく、「ＤＢＭＳ０１」と同じ名称の「人事管理ＤＢ」を自動的に指定するものでも良い。
【００３９】
なお、本実施の形態において、ＤＢＭＳ「ＤＢＭＳ０１」のデータベースから「人事管理ＤＢ」を選択して、ＤＢＭＳ「ＤＢＭＳ１１」に移行するものだったが、ＤＢＭＳ「ＤＢＭＳ０１」の全データベースを、ＤＢＭＳ「ＤＢＭＳ１１」に移行しても良く、１以上のデータベースを選択して、ＤＢＭＳ「ＤＢＭＳ１１」に移行しても良い。
【００４０】
次に、指定されたデータベースを移行する処理について説明する。「実行」ボタンをクリックすると、指定されたデータベースの移行を開始する。図５は、「実行」ボタンがクリックされ、データベース「人事管理ＤＢ」が移行中であることを示す図である。図６は、データベース「人事管理ＤＢ」のデータ例を示す図である。図６において、データベース「人事管理ＤＢ」のデータは、ＲＤＢで構成されている。フィールドは、「社員番号」、「氏名」、「住所」等を有する。「ＩＤ」は、ＤＢＭＳが表管理のために設ける、システム用のフィールドである。図７は、データベース「人事管理ＤＢ」のデータベース構造情報の例を示す図である。図７において、データベース構造情報は、属性名、データ型、バイト長を有している。第一データベース構造情報取得部１０３は、図７に示す「人事管理ＤＢ」のデータのデータベース構造情報を取得する。次に、データ群取得部１０４は、レコード単位でデータをカンマで区切るＣＳＶフォーマットで、「人事管理ＤＢ」のデータ群を取得する。図８は、データ群の情報の例を示す図である。次に、データベース構造定義部１０５は、第一データベース構造情報取得部１０３が取得したデータベース構造情報（図７参照）に基づいて、ＳＱＬでデータベース構造を定義する命令を構成する（図示せず）。かかる命令は、ＳＱＬで記述すると、例えば、「ＣＲＥＡＴＥ  ＴＡＢＬＥ  人事管理テーブル  （社員番号  ＩＮＴ，氏名  ＣＨＡＲ（１８），住所  ＣＨＡＲ（５０））；」等である。当該ＳＱＬ文によって、３つのフィールド（社員番号、氏名、住所）を持った表が作成される。なお、ＳＱＬで定義することに限定せず、ＳＱＬ以外で定義してもよいことはいうまでもない。次に、命令実行部１０７１は、当該構成されたデータベース構造を定義する命令を実行する。実行結果、構成されたデータベース構造の例を図９に示す。次に、データ群挿入部１０６は、取得されたデータ群（図８参照）を、構成されたデータベース構造（図９参照）に挿入する命令を構成する。当該命令は、ＳＱＬで記述すると、例えば、「ＩＮＳＥＲＴ  ＩＮＴＯ  人事管理テーブル  ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  人事管理ＤＢ」等である。当該ＳＱＬ文によって、人事管理テーブルに、人事管理ＤＢのデータの全てが挿入される。命令実行部１０７１は、当該命令を実行する。図１０は、命令実行の結果、構成されたデータベースの例を示す図である。当該構成されたデータベースは、第二データベース格納部１０７２に格納される。図１１は、表示画面の表示例を示す図である。図１１において、「完了」とは、データベースの移行が完了したことを意味する。
【００４１】
なお、本実施の形態において、データベース移行装置１００は、第一データベース管理システム１０１と第二データベース管理システム１０７を有する構成であったが、データベース移行装置１００は、第一データベース管理システム１０１または／および第二データベース管理システム１０７を有しない構成でも良い。かかる場合、データベース移行装置４００は、送受信部４０１を、さらに具備する。送受信部４０１は、第一データベース構造情報取得部１０３が構成したデータベース構造情報を取得する命令を送信し、当該命令に基づいて、第一データベース格納部１０２１からデータベース構造情報を受信する。また、送受信部４０１は、データ群取得部１０４が構成したデータ群を取得する命令を送信し、当該命令に基づいて、第一データベース格納部１０２１からデータ群を受信する。また、送受信部４０１は、データベース構造定義部１０５が定義したデータベース構造定義の情報を送信する。また、送受信部４０１は、データ挿入部１０６が構成したデータ群をデータベース構造に挿入する命令を送信する。当該命令には、データ群が含まれる。また、第一データベース管理システム５００は、第一送受信部５０１をさらに具備する。第一送受信部５０１は、データベース構造情報を取得する命令を受信し、当該命令に基づいて、第一データベース格納部１０２１からデータベース構造情報を取得し、送信する。また、第一送受信部５０１は、データ群を取得する命令を受信し、当該命令に基づいて、第一データベース格納部１０２１からデータ群を取得し、送信する。また、第二データベース管理システム６００は、第二受信部６０１をさらに具備する。第二受信部６０１は、データベース構造定義部１０５が定義したデータベース構造定義の情報を受信する。また、第二受信部６０１は、データ挿入部１０６が構成したデータ群をデータベース構造に挿入する命令を受信する。図１２は、データベース移行装置４００、第一データベース管理システム５００および第二データベース管理システム５００の構成の例を示すブロック図である。データベース移行装置４００、第一データベース管理システム５００および第二データベース管理システム６００は、各々、ネットワークを介して接続されている。なお、第一データベース管理システム５００および第二データベース管理システム６００は、通常の電子計算機が有するＣＰＵ、メインメモリ、記録媒体（例えば、ＲＯＭ、ＥＰＲＯＭ等）等のハードウエア資源、および周辺装置（例えば、キーボード、マウス等の入力デバイス、ディスプレイ等の出力デバイス等）を具備する（図示しない）。図１３は、データベース移行装置４００、第一データベース管理システム５００および第二データベース管理システム６００の外観の例を示す図である。
【００４２】
以上、本実施の形態によれば、データベースの移行処理を簡単に行え、さらに、移行先のＤＢＭＳ上で、手入力で、テーブル構造を定義しなくても良い。かかるテーブル構造を定義するための手入力する時間は必要なくなり、ＤＢ管理者のＤＢメンテナンス時間等を短縮できる。
【００４３】
さらに、本実施の形態において説明したデータベース移行装置１００の動作について、ソフトウェアで実現し、当該ソフトウェアを例えば、サーバ上に置いて、ソフトウェアダウンロードにより当該ソフトウェアを配布しても良い。さらにソフトウェアをＣＤ−ＲＯＭ等の記録媒体に記録して流布しても良い。このことは、すべての他の実施の形態においても同様である。なお、本実施の形態における動作をソフトウェアで実現した場合のプログラムは、以下のようになる。コンピュータに、第一データベース管理システムにより定義された１以上のデータベースのデータベース構造に関する情報である第一データベース構造情報を取得する第一データベース構造情報取得ステップと、１以上のデータベースのレコードを構成するデータ群を取得するデータ群取得ステップと、第二データベース管理システムにおいて、第一データベース構造情報に基づいて１以上のデータベース構造を定義するデータベース構造定義ステップと、データ群取得ステップで取得したデータ群を、データベース構造定義ステップで定義したデータベース構造に挿入するデータ挿入ステップとを実行させるためのプログラムである。
【００４４】
（実施の形態２）
本実施の形態において、データベース移行装置が、異なるＤＢＭＳ間で、インデックスに関する情報を移行することについて、以下に説明する。
図１４は、本実施の形態におけるデータベース移行装置２００の構成を示すブロック図である。データベース移行装置２００は、入力受付部１０１、第一データベース管理システム１０２、第一データベース構造情報取得部１０３、データ群取得部１０４、データベース構造定義部１０５、データ挿入部１０６、第二データベース管理システム１０７、インデックス情報取得部２０１、インデックス構築部２０２を有する。第一データベース管理システム１０２は、第一データベース格納部１０２１を有する。第二データベース管理システム１０７は、命令実行部１０７１、第二データベース格納部１０７２を有する。
【００４５】
インデックス情報取得部２０１は、データベース構造情報から、１以上のデータベースのインデックス情報を取得する。データベース構造情報は、１以上のデータベースのインデックスに関する情報であるインデックス情報を有している。「インデックス情報」とは、データベースのインデックスに関する情報であり、例えば、インデックスに用いられる属性（通常、検索キーとなる属性）に立てられたフラグ、インデックス対象の属性の名称等の情報である。「インデックス」とは、レコードやデータの格納されている番地を、キーをもとに探すための表をいい、例えば、ハッシュ法に基づいたハッシュテーブル、ソートされたデータ群、Ｂｔｒｅｅ構造のデータ群等がある。インデックス情報取得部２０１は、通常、ＭＰＵやメモリ等から実現され得る。「取得する」ための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４６】
インデックス構築部２０１は、インデックス情報取得部１０８が取得したインデックス情報に基づいて、データ挿入部１０６が挿入したデータ群の全部または一部に対するインデックスを構築する。また、インデックス構築部２０１は、インデックス情報が示すインデックスの構造とは異なるインデックスを構築しても良い。インデックス構築部２０１は、通常、ＭＰＵやメモリ等から実現され得る。「構築する」ための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４７】
以下、本実施の形態におけるデータベース移行装置２００の動作について図１５のフローチャートを用いて説明する。なお、同じステップ番号は、図２と同様であるから説明を省略する。
【００４８】
（ステップＳ１５０１）インデックス情報取得部２０１は、ステップＳ２０５で取得したデータベース構造情報から、データベースのインデックス情報を取得する。取得されるインデックス情報は、２以上のインデックス情報であっても良い。
【００４９】
（ステップＳ１５０２）インデックス構築部２０１は、ステップＳ１５０１で取得したインデックス情報に基づいて、データ挿入部１０６が挿入したデータ群の全部または一部に対するインデックスを構築する命令を構成する。なお、インデックス情報が示すインデックスの構造と異なるインデックスを構築する命令を構成しても良い。
【００５０】
（ステップＳ１５０３）命令実行部１０７１は、ステップＳ１５０２で構成した「インデックスを構築する命令」を実行する。実行された結果、インデックスが構築される。構築されるインデックスは、移行元である第一データベース管理システム１０２が有していたインデックスであってもよく、移行元の第一データベース管理システム１０２が有していないインデックスであってもよい。ステップＳ２０１に戻る。
【００５１】
以下、本実施の形態におけるデータベース移行装置２００の具体的な動作について説明する。データベース構造情報は、インデックス情報を有している。図１６は、インデックス情報を有するデータベース構造情報のデータ例を示す図である。図１６において、「ＩＮＤＥＸ」のフラグ「１」は、「社員番号」がインデックスされた属性（検索キーの属性）であることを意味している。図１７、図１８は、インデックスの表構造の例を示す図である。図１７において、インデックスの表構造は、１列にソートされた社員番号のデータで構成されている。属性値でソートされ、データは「属性値」と「レコードＩＤ」の組である。なお、「社員番号のデータ」とは、例えば、図６で示す「人事管理ＤＢ」の社員番号のデータである。また、図１８において、インデックスの表は、ハッシュテーブルで構成されている。ハッシュテーブルの各バケツにあるデータは、「属性値」と「レコードＩＤ」の組である。
【００５２】
以下に、インデックスを構築する処理について説明する。なお、データベースを移行する指示の入力に関する処理、指定されたデータベースを移行する処理は、実施の形態１と同様であるため説明は省略する。
【００５３】
インデックス情報取得部２０１は、第一データベース構造情報取得部１０３が取得したデータベース構造情報から、インデックス情報を取得する。次に、インデックス構築部２０２は、当該取得されたインデックス情報に基づいて、インデックスを構築する命令を構成する。当該構成されたインデックスを構築する命令は、例えば、ＳＱＬの場合、「ＣＲＥＡＴＥ  ＩＮＤＥＸ  ｉｄｘ１  ＯＮ  人事管理テーブル（社員番号）」等である。当該ＳＱＬ文の意味は、「人事管理テーブル」表の「社員番号」列のインデックスを「ｉｄｘ１」という名前で構築することを意味している。「インデックス情報に基づいてインデックスを構築する」とは、取得されたインデックス情報が示すインデックスと同一のインデックスを構築すること、または／および、取得されたインデックス情報が示すインデックスと異なるインデックスを構築することである。インデックス構築部２０２は、インデックスを構築する命令を、例えば、ＳＱＬで記述して構成しても良く、他のデータベース言語等で構成しても良い（図示しない）。次に、命令実行部１０７１は、当該インデックスを構築する命令を実行する。実行した結果、インデックスが構築される（図１７、図１８参照）。当該構築されたインデックスは、第二データベース格納部１０７２に格納される。当該構築されたインデックスは、移行元のＤＢＭＳが有していたインデックスと同じ構造である。インデックス構築部２０２は、取得されたインデックス情報が示すインデックスと異なる構造のインデックスを構築できる。例えば、図１９に示すインデックスを構築する。図１９において、インデックスは、Ｂｔｒｅｅ構造のインデックスであることを示す。なお、インデックス構築部２０２は、Ｂｔｒｅｅ構造のインデックスを構築するものに限らず、他の構造のインデックスを構築するものでも良いことは言うまでもない。
【００５４】
以上、本実施の形態によれば、移行元のＤＢＭＳで構築されていたインデックス情報を、移行先のＤＢＭＳにも移行できる。さらに、移行元のＤＢＭＳと移行先のＤＢＭＳで、インデックスの構造が異なる場合であっても、移行元のＤＢＭＳのインデックス情報に基づいて、移行先のインデックスの構造に適合して、インデックスを構築できる。例えば、移行元のＤＢには、ハッシュ構造のインデックスしかなく、移行先のＤＢには、Ｂｔｒｅｅ構造のインデックスしかない場合において、ハッシュ構造のインデックスの情報から、Ｂｔｒｅｅ構造のインデックスを構築できる。
【００５５】
さらに、本実施の形態における動作をソフトウェアで実現した場合のプログラムは、以下のようになる。コンピュータに、第一データベース管理システムにより定義された１以上のデータベースのデータベース構造に関する情報である第一データベース構造情報を取得する第一データベース構造情報取得ステップと、１以上のデータベースのレコードを構成するデータ群を取得するデータ群取得ステップと、第二データベース管理システムにおいて、第一データベース構造情報に基づいて１以上のデータベース構造を定義するデータベース構造定義ステップと、データ群取得ステップで取得したデータ群を、データベース構造定義ステップで定義したデータベース構造に挿入するデータ挿入ステップと１以上のデータベースのインデックスに関する情報であるインデックス情報を取得するインデックス情報取得ステップと、インデックス情報取得ステップで取得したインデックス情報に基づいて、データ挿入ステップで挿入したデータ群の全部または一部に対するインデックスを構築するインデックス構築ステップを実行させるためのプログラムである。
【００５６】
また、コンピュータに、第一データベース管理システムにより定義された１以上のデータベースのインデックスに関する情報であるインデックス情報を取得するインデックス情報取得ステップと、第二データベース管理システムにおいて、インデックス情報取得ステップで取得したインデックス情報に基づいて、データ挿入ステップで挿入したデータ群の全部または一部に対するインデックスを構築するインデックス構築ステップを実行させるためのプログラムである。
【００５７】
なお、本実施の形態において、データベース移行装置２００は、第一データベース管理システム１０１と第二データベース管理システム１０７を有する構成であったが、データベース移行装置２００は、第一データベース管理システム１０１または／および第二データベース管理システム１０７を有しない構成でも良い（図１２参照）。かかる場合、実施の形態１と同様に、データベース移行装置１００は、送受信部を具備する。送受信部は、実施の形態１で説明した処理以外に、送受信部は、インデックス構築部２０２が構成したインデックスを構築する命令を送信する。当該命令には、インデックス情報が含まれていても良い。また、第二データベース管理システムは、受信部をさらに具備する。受信部は、インデックス構築部２０２が構成したインデックスを構築する命令を受信する。
【００５８】
（実施の形態３）
本実施の形態において、データベース移行装置が、データベース操作情報保持部３０１が保持している情報に基づいて、異なるＤＢＭＳ間でデータベースの移行をする、また、異なるＤＢＭＳ間で、インデックスに関する情報を移行することについて、以下に説明する。
【００５９】
図２０は、本実施の形態におけるデータベース移行装置３００の構成を示すブロック図である。データベース移行装置３００は、入力受付部１０１、第一データベース管理システム１０２、第一データベース構造情報取得部１０３、データ群取得部１０４、データベース構造定義部１０５、データ挿入部１０６、第二データベース管理システム１０７、インデックス情報取得部２０１、インデックス構築部２０２、データベース操作情報保持部３０１を有する。第一データベース管理システム１０２は、第一データベース格納部１０２１を有する。第二データベース管理システム１０７は、命令実行部１０７１、第二データベース格納部１０７２を有する。
【００６０】
データベース操作情報保持部３０１は、第一データベース管理システムの第一データベース構造情報を取得する命令を示す情報である第一データベース構造取得命令情報と、データ群を取得する命令を示す情報であるデータ群取得命令情報と、第二データベース管理システムにおいてデータベース構造を定義する命令を示す情報である第二データベース構造定義命令情報と、データベース構造定義部が定義したデータベース構造にデータ群を挿入する命令を示す情報であるデータ群挿入命令情報と、１以上のデータベースのインデックス情報を取得する命令を示す情報であるインデックス情報取得命令情報と、データ挿入部が挿入したデータ群の全部または一部に対するインデックスを構築する命令を示す情報であるインデックス構築命令情報を保持している。データベース操作情報保持部３０１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも良い。
以下、本実施の形態におけるデータベース移行装置３００の動作について図２１のフローチャートを用いて説明する。
【００６１】
（ステップＳ２１０１）第一データベース構造情報取得部１０３は、データベース操作情報保持部３０１から、第一データベース構造取得命令情報を取得する。「第一データベース構造取得命令情報を取得する」とは、移行元である第一データベース管理システムが採用しているインターフェイスであって、第一データベース構造情報を取得するインターフェースを取り出すことを意味している。  （ステップＳ２１０２）第一データベース構造情報取得部１０３は、ステップＳ２１０２で取得した第一データベース構造取得命令情報に基づいて、指示された、移行元の第一データベース格納部１０２１から、データベース構造情報を取得する。「第一データベース構造取得命令情報に基づいて取得する」とは、第一データベース構造取得命令を実行し、その命令実行の結果である、第一データベース構造情報を取得することを意味している。
【００６２】
（ステップＳ２１０３）データ群取得部１０４は、データベース操作情報保持部３０１から、データ群取得命令情報を取得する。「データ群取得命令情報を取得する」とは、移行元であるデータベース管理システムが採用しているインターフェイスであって、データ群取得命令情報を取得するインターフェイスを取り出すことを意味している。
【００６３】
（ステップＳ２１０４）データ群取得部１０４は、ステップＳ２１０３で取得した、データ群取得命令情報に基づいて、移行元の第一データベース格納部１０２１から、データ群を取得する。「データ群取得命令情報に基づいて取得する」とは、データ群取得命令を実行し、その命令実行の結果である、データ群を取得することを意味している。
【００６４】
（ステップＳ２１０５）データベース構造定義部１０５は、データベース操作情報保持部３０１から、第二データベース構造定義命令情報を取得する。「第二データベース構造定義命令情報を取得する」とは、移行先である第二データベース管理システムが採用しているインターフェイスであって、第二データベース構造定義命令を取得するインターフェイスを取り出すことを意味している。
【００６５】
（ステップＳ２１０６）データベース構造定義部１０５は、ステップＳ２１０６で取得した第二データベース構造定義命令情報に基づいて、データベース構造を定義する。「第二データベース構造定義命令情報に基づいて、データベース構造を定義する」とは、第二データベース構造定義命令を実行することを、命令実行部１０７２に指示することである。
【００６６】
（ステップＳ２１０７）命令実行部１０７１は、ステップＳ１９０６で指示した第二データベース構造定義命令を実行する。その命令実行の結果、データベース構造が構成される。
【００６７】
（ステップＳ２１０８）データ挿入部１０６は、データベース操作情報保持部３０１から、データ挿入命令情報を取得する。「データ挿入命令情報を取得する」とは、移行先であるデータベース管理システムが採用しているインターフェイスであって、データ挿入命令を取得するインターフェイスを取り出すことを意味している。
【００６８】
（ステップＳ２１０９）データ挿入部１０６は、ステップＳ２１０８で取得したデータ挿入命令情報に基づいて、データ群を、ステップＳ２１０７で構成したデータベース構造に、挿入する。「データ挿入命令情報に基づいて、データベース構造に挿入する」とは、データ挿入命令を実行することを、命令実行部１０７２に指示することである。
【００６９】
（ステップＳ２１１０）命令実行部１０７１は、ステップＳ２１０９で指示したデータ挿入命令を実行する。その命令実行の結果、データベース構造にデータ群が挿入され、データベースが構成される。
【００７０】
（ステップＳ２１１１）インデックス情報取得部２０１は、データベース操作情報保持部３０１から、インデックス情報取得命令情報を取得する。「インデックス情報取得命令情報を取得する」とは、移行元であるデータベース管理システムが採用しているインターフェイスであって、インデックス情報取得命令情報を取得するインターフェイスを取り出すことを意味している。
【００７１】
（ステップＳ２１１２）インデックス情報取得部２０１は、ステップＳ２１１１で取得したインデックス情報取得命令情報に基づいて、データベース構造情報から、インデックス情報を取得する。「インデックス情報取得命令情報に基づいて取得する」とは、インデックス情報取得命令を実行し、その命令実行の結果である、インデックス情報を取得することを意味している。なお、取得されるインデックス情報は、１以上のインデックス情報であっても良い。
【００７２】
（ステップＳ２１１３）インデックス構築部２０１は、データベース操作情報保持部３０１から、インデックス構築命令情報を取得する。「インデックス構築命令情報を取得する」とは、移行先であるデータベース管理システムが採用しているインターフェイスであって、インデックス構築命令情報を取得するインターフェイスを取り出すことを意味している。
【００７３】
（ステップＳ２１１４）インデックス構築部２０１は、ステップＳ２１１３で取得したインデックス構築命令情報に基づいて、データ挿入部１０６が挿入したデータ群の全部または一部に対するインデックスを構築する。なお、インデックス情報が示すインデックスの構造と異なるインデックスを構築しても良い。「インデックス構築命令情報に基づいて、データ挿入部１０６が挿入したデータ群の全部または一部に対するインデックスを構築する」とは、インデックス構築命令を実行することを、命令実行部１０７２に指示することである。
【００７４】
（ステップＳ２１１５）命令実行部１０７１は、ステップＳ２１１４で指示した「インデックス構築命令」を実行する。実行された結果、インデックスが構築される。ステップＳ２０１に戻る。
【００７５】
以下、本実施の形態におけるデータベース移行装置３００の具体的な動作について説明する。図２２は、データベース操作情報保持部３０１が有する情報の例を示す図である。図２２において、「ＤＢＭＳ」とは、データベース管理システムを意味し、「ＤＢＭＳ１」、「ＤＢＭＳ２」、「ＤＢＭＳ３」は、各々異なるデータベース管理システムである。また、「ＤＢＭＳ１」、「ＤＢＭＳ２」、「ＤＢＭＳ３」は、各々異なるデータベース言語を用いている。
【００７６】
以下に、データベース構造情報を取得する処理について説明する。なお、データベースを移行する指示の入力に関する処理は、実施の形態１と同様であるため説明は省略する。まず、第一データベース構造情報取得部１０３は、第一データベース構造取得命令情報を、データベース操作情報保持部３０１から取得する。かかる「取得する」場合、指定された移行元のＤＢＭＳを記述するデータベース言語を判定して、該当する第一データベース構造取得命令情報を取得してもよく、指定されたデータベースの保存形式（例えば、データベースを格納しているファイルの拡張子等）からデータベース言語を判定して、該当する第一データベース構造取得命令情報を取得してもよい。図２２において、第一データベース構造取得命令情報は、例えば、「ＤＢＭＳ１」の場合、「ｔａｂｌｅｎａｍｅ［］＝ｇｅｔ  ｔａｂｅｌｅ（）；ａｔｔｒｉｂｕｔｅ［］＝ｇｅｔ  ｓｃｈｅｍａ（ｔａｂｌｅｎａｍｅ）；」である。移行元である第一データベース管理システム１０２のデータベース言語が、例えば、「ＤＢＭＳ１」のデータベース言語と同じであれば、第一データベース構造情報取得部１０３は、「ｔａｂｌｅｎａｍｅ［］＝ｇｅｔ  ｔａｂｅｌｅ（）；ａｔｔｒｉｂｕｔｅ［］＝ｇｅｔ  ｓｃｈｅｍａ（ｔａｂｌｅｎａｍｅ）；」を取得する。移行元である第一データベース管理システム１０２のデータベース言語が、例えば、「ＤＢＭＳ１」のデータベース言語と異なり、「ＤＢＭＳ２」または「ＤＢＭＳ３」と同じであれば、第一データベース構造情報取得部１０３は、「ＤＢＭＳ２」または「ＤＢＭＳ３」のいずれかのデータベース言語で記述された命令を取得する。次に、第一データベース構造情報取得部１０３は、例えば、取得された「ｔａｂｌｅｎａｍｅ［］＝ｇｅｔ  ｔａｂｅｌｅ（）；ａｔｔｒｉｂｕｔｅ［］＝ｇｅｔ  ｓｃｈｅｍａ（ｔａｂｌｅｎａｍｅ）；」を実行する。当該命令の意味は、以下である。「ｔａｂｅｌｅ（）」で示されるテーブルの名称を取得し、「ｔａｂｌｅｎａｍｅ［］」とする。そして、「ｔａｂｌｅｎａｍｅ」のテーブル構造「ｓｃｈｅｍａ（ｔａｂｌｅｎａｍｅ）」を取得し、「ａｔｔｒｉｂｕｔｅ［］」とする。当該実行の結果、第一データベース構造情報取得部１０３は、第一データベース構造情報を取得する（図７参照）。なお、データベースに複数の表がある場合、当該命令は、複数回繰り返され、複数の表のテーブル構造が取得される。
【００７７】
以下に、データ群を取得する処理について説明する。移行元である第一データベース管理システム１０２のデータベース言語が、例えば、「ＤＢＭＳ１」のデータベース言語と同じであれば、データ群取得部１０４は、「ｒｅｃｏｒｄ［］＝ｇｅｔ  ｒｅｃｏｒｄ（ｔａｂｌｅｎａｍｅ）；」を取得する。移行元である第一データベース管理システム１０２のデータベース言語が、例えば、「ＤＢＭＳ１」のデータベース言語と異なり、「ＤＢＭＳ２」または「ＤＢＭＳ３」と同じであれば、データ群取得部１０４は、「ＤＢＭＳ２」または「ＤＢＭＳ３」のいずれかのデータベース言語で記述された命令を取得する。次に、データ群取得部１０４は、例えば、取得された「ｒｅｃｏｒｄ［］＝ｇｅｔ  ｒｅｃｏｒｄ（ｔａｂｌｅｎａｍｅ）；」を実行する。当該命令の意味は以下である。「ｔａｂｌｅｎａｍｅ」で示される表のレコードのデータである「ｒｅｃｏｒｄ（ｔａｂｌｅｎａｍｅ）」を取得し、「ｒｅｃｏｒｄ［］」とする。当該実行の結果、データ群取得部１０４は、データ群を取得する（図８参照）。
【００７８】
以下に、移行先の第二データベース管理システム１０７に、データベース構造を構成する処理について説明する。移行先である第二データベース管理システム１０７のデータベース言語が、例えば、「ＤＢＭＳ３」のデータベース言語と同じであれば、データベース構造定義部１０５は、「ＣＲＥＡＴＥ  ＴＡＢＬＥ  ｔａｂｅｌｅ＿ｎａｍｅ１（ｃｏｌｕｍｎ１  ｔｙｐｅ１  ｃｏｌｕｍｎ２  ｔｙｐｅ２  ・・・）；」を取得する。移行先である第二データベース管理システム１０７のデータベース言語が、例えば、「ＤＢＭＳ３」のデータベース言語と異なり、「ＤＢＭＳ１」または「ＤＢＭＳ２」と同じであれば、データベース構造定義部１０５は、「ＤＢＭＳ１」または「ＤＢＭＳ２」のいずれかのデータベース言語で記述された命令を取得する。次に、データベース構造定義部１０５は、取得した「ＣＲＥＡＴＥ  ＴＡＢＬＥ  ｔａｂｅｌｅ＿ｎａｍｅ１（ｃｏｌｕｍｎ１  ｔｙｐｅ１  ｃｏｌｕｍｎ２  ｔｙｐｅ２  ・・・）；」である第二データベース構造定義命令を実行することを、命令実行部１０７１に指示する。次に、命令実行部１０７１は、第二データベース構造定義命令の「ＣＲＥＡＴＥ  ＴＡＢＬＥ  ｔａｂｅｌｅ＿ｎａｍｅ１（ｃｏｌｕｍｎ１  ｔｙｐｅ１  ｃｏｌｕｍｎ２  ｔｙｐｅ２  ・・・）；」を実行する。当該命令の意味は以下である。「ｔａｂｌｅ＿ｎａｍｅ１」という名称の表のテーブル構造を作成する。フィールドは、「ｃｏｌｕｍｎ１  ｔｙｐｅ１  ｃｏｌｕｍｎ２  ｔｙｐｅ２  ・・・」で定義される。「ｃｏｌｕｍｎ」は、フィールドの名称を示す。「ｔｙｐｅ」は、データ型を示す。「ｃｏｌｕｍｎ１  ｔｙｐｅ１  ｃｏｌｕｍｎ２  ｔｙｐｅ２  ・・・」は、「ａｔｔｒｉｂｕｔｅ［］」が有する情報と同一である。命令実行の結果、データベース構造が構成される（図９参照）。
【００７９】
以下に、移行先の第二データベース管理システム１０７に、データベースを構成する処理について説明する。移行先である第二データベース管理システム１０７のデータベース言語が、例えば、「ＤＢＭＳ３」のデータベース言語と同じであれば、データ挿入部１０６は、「ＩＮＳＥＲＴ  ＩＮＴＯ  ｔａｂｌｅ＿ｎａｍｅ１  ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ｔａｂｌｅ＿ｎａｍｅ；」を取得する。今、「ｔａｂｌｅ＿ｎａｍｅ」は、「ｒｅｃｏｒｄ［］」である。移行先である第二データベース管理システム１０７のデータベース言語が、例えば、「ＤＢＭＳ３」のデータベース言語と異なり、「ＤＢＭＳ１」または「ＤＢＭＳ２」と同じであれば、データ挿入部１０６は、「ＤＢＭＳ１」または「ＤＢＭＳ２」のいずれかのデータベース言語で記述された命令を取得する。次に、データ挿入部１０６は、取得した「ＩＮＳＥＲＴ  ＩＮＴＯ  ｔａｂｌｅ＿ｎａｍｅ１  ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ｒｅｃｏｒｄ［］；」であるデータ挿入命令を実行することを、命令実行部１０７１に指示する。次に、命令実行部１０７１は、データ挿入命令の「ＩＮＳＥＲＴ  ＩＮＴＯ  ｔａｂｌｅ＿ｎａｍｅ１  ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ｒｅｃｏｒｄ［］；」を実行する。当該命令の意味は以下である。「ｒｅｃｏｒｄ［］」で示される全てのデータを取得する。そして、「ｔａｂｌｅ＿ｎａｍｅ１」で示される表に、当該データの全てを挿入する。命令実行の結果、データベースが構成される（図１０参照）。
【００８０】
以下に、インデックス情報を取得する処理について説明する。移行元である第一データベース管理システム１０２のデータベース言語が、例えば、「ＤＢＭＳ１」のデータベース言語と同じであれば、インデックス情報取得部２０１は、「ａｔｔｒｉｂｕｔｅｎａｍｅ［］＝ｇｅｔ  ｉｎｄｅｘ（ｔａｂｌｅｎａｍｅ）」を取得する。移行元である第一データベース管理システム１０２のデータベース言語が、例えば、「ＤＢＭＳ１」のデータベース言語と異なり、「ＤＢＭＳ２」または「ＤＢＭＳ３」と同じであれば、インデックス情報取得部２０１は、「ＤＢＭＳ２」または「ＤＢＭＳ３」のいずれかのデータベース言語で記述された命令を取得する。次に、インデックス情報取得部２０１は、例えば、取得された「ａｔｔｒｉｂｕｔｅｎａｍｅ［］＝ｇｅｔ  ｉｎｄｅｘ（ｔａｂｌｅｎａｍｅ）」を実行する。当該命令の意味は以下である。「ｔａｂｌｅｎａｍｅ」で示される表のインデックスの情報を取得し、当該インデックスの情報を「ａｔｔｒｉｂｕｔｅｎａｍｅ［］」とする。当該実行の結果、インデックス情報取得部２０１は、インデックス情報を、データベース構造情報から取得する（図１６参照）。
【００８１】
以下に、移行先の第二データベース管理システム１０７に、インデックスを構築する処理について説明する。移行先である第二データベース管理システム１０７のデータベース言語が、例えば、「ＤＢＭＳ３」のデータベース言語と同じであれば、インデックス構築部２０２は、「ＣＲＥＡＴＥ  ＩＮＤＥＸ  ｉｎｄｅｘ＿ｎａｍｅ  ＯＮ  ｔａｂｌｅ＿ｎａｍｅ１（ｃｏｌｕｍｎ＿ｎａｍｅ）；」を取得する。今、「ｃｏｌｕｍｎ＿ｎａｍｅ」は、「ａｔｔｒｉｂｕｔｅｎａｍｅ［］」である。移行先である第二データベース管理システム１０７のデータベース言語が、例えば、「ＤＢＭＳ３」のデータベース言語と異なり、「ＤＢＭＳ１」または「ＤＢＭＳ２」と同じであれば、インデックス構築部２０２は、「ＤＢＭＳ１」または「ＤＢＭＳ２」のいずれかのデータベース言語で記述された命令を取得する。次に、インデックス構築部２０１は、取得した「ＣＲＥＡＴＥ  ＩＮＤＥＸ  ｉｎｄｅｘ＿ｎａｍｅ  ＯＮ  ｔａｂｌｅ＿ｎａｍｅ１（ａｔｔｒｉｂｕｔｅｎａｍｅ［］）；」であるインデックス情報を実行することを、命令実行部１０７１に指示する。次に、命令実行部１０７１は、インデックス構築命令の「ＣＲＥＡＴＥ  ＩＮＤＥＸ  ｉｎｄｅｘ＿ｎａｍｅ  ＯＮ  ｔａｂｌｅ＿ｎａｍｅ１（ａｔｔｒｉｂｕｔｅｎａｍｅ［］）；」を実行する。当該命令の意味は以下である。「ｔａｂｌｅ＿ｎａｍｅ１」の表に、「ｉｎｄｅｘ＿ｎａｍｅ」で示されるインデックスを作成する。命令実行の結果、インデックスが作成され、構築される（図１７、図１８、図１９参照）。
【００８２】
なお、本実施の形態において、データベース操作情報保持部３０１は、第一データベース構造取得命令情報と、データ群取得命令情報と第二データベース構造定義命令情報と、データ群挿入命令情報と、インデックス情報取得命令情報と、インデックス構築命令情報を有して構成されるものだったが、データベース操作情報保持部３０１は、インデックス情報取得命令情報と、インデックス構築命令情報を有さない構成であっても良い。かかる場合、データベース移行装置３００は、インデックス情報取得部２０１、インデックス構築部２０２を具備しない構成でも良い。
以上、本実施の形態によれば、種々のＤＢＭＳ間で、ＤＢの移行ができる。また、種々のＤＢＭＳ間で、インデックスを構築できる。
【００８３】
さらに、本実施の形態における動作をソフトウェアで実現した場合のプログラムは、以下のようになる。コンピュータに、第一データベース管理システムの第一データベース構造情報を取得する命令を示す情報である第一データベース構造取得命令情報に基づいて、第一データベース構造情報を取得する第一データベース構造情報取得ステップと、データ群を取得する命令を示す情報であるデータ群取得命令情報に基づいて、１以上のデータベースのレコードを構成するデータ群を取得するデータ群取得ステップと、第二データベース管理システムにおいてデータベース構造を定義する命令を示す情報である第二データベース構造定義命令情報に基づいて、１以上のデータベース構造を定義するデータベース構造定義ステップと、データベース構造定義ステップで定義したデータベース構造にデータ群を挿入する命令を示す情報であるデータ群挿入命令情報に基づいて、データ群取得ステップで取得したデータ群を、データベース構造定義ステップで定義したデータベース構造に挿入するデータ挿入ステップとを実行させるためのプログラムである。
【００８４】
また、コンピュータに、第一データベース管理システムの第一データベース構造情報を取得する命令を示す情報である第一データベース構造取得命令情報に基づいて、第一データベース構造情報を取得する第一データベース構造情報取得ステップと、データ群を取得する命令を示す情報であるデータ群取得命令情報に基づいて、１以上のデータベースのレコードを構成するデータ群を取得するデータ群取得ステップと、第二データベース管理システムにおいてデータベース構造を定義する命令を示す情報である第二データベース構造定義命令情報と第一データベース構造情報に基づいて１以上のデータベース構造を定義するデータベース構造定義ステップと、データベース構造定義ステップで定義したデータベース構造にデータ群を挿入する命令を示す情報であるデータ群挿入命令情報に基づいて、データ群取得ステップで取得したデータ群を、データベース構造定義ステップで定義したデータベース構造に挿入するデータ挿入ステップと、１以上のデータベースのインデックス情報を取得する命令を示す情報であるインデックス情報取得命令情報に基づいて、１以上のデータベースのインデックス情報を取得するインデックス情報取得ステップと、データ挿入ステップで挿入したデータ群の全部または一部に対するインデックスを構築する命令を示す情報であるインデックス構築命令情報とインデックス情報に基づいて、データ挿入ステップで挿入したデータ群の全部または一部に対するインデックスを構築するインデックス構築ステップを実行させるためのプログラムである。
【産業上の利用可能性】
【００８５】
以上のように、本発明は、データベースの移行処理を簡単に行え、さらに、移行先のＤＢＭＳ上で、手入力で、テーブル構造を定義しなくても良い。また、かかるテーブル構造を定義するための手入力する時間は必要なくなり、ＤＢ管理者のＤＢメンテナンス時間等を短縮できる等の効果を有し、例えば、異なるＤＢＭＳ間におけるデータベースの移行を処理するデータ移行装置等に有用である。
【図面の簡単な説明】
【００８６】
【図１】実施の形態１におけるデータベース移行装置１００の構成を示すブロック図
【図２】実施の形態１におけるデータベース移行装置１００の動作を示すフローチャート
【図３】実施の形態１におけるデータベース移行装置１００のディスプレイの表示例を示す図
【図４】実施の形態１におけるデータベース移行装置１００のディスプレイの表示例を示す図
【図５】実施の形態１におけるデータベース移行装置１００のディスプレイの表示例を示す図
【図６】実施の形態１における「人事管理ＤＢ」のデータ例を示す図
【図７】実施の形態１における「人事管理ＤＢ」のデータのデータベース構造情報の例を示す図
【図８】実施の形態１におけるデータ群の情報の例を示す図
【図９】実施の形態１におけるデータベース構造の例を示す図
【図１０】実施の形態１におけるデータベースの例を示す図
【図１１】実施の形態１における表示画面の表示例を示す図
【図１２】実施の形態１におけるデータベース移行装置、第一データベース管理システムおよび第二データベース管理システムの構成を示すブロック図
【図１３】実施の形態１におけるデータベース移行装置、第一データベース管理システムおよび第二データベース管理システムの外観の例を示す図
【図１４】実施の形態２におけるデータベース移行装置２００の構成を示すブロック図
【図１５】実施の形態２におけるデータベース移行装置２００の動作を示すフローチャート
【図１６】実施の形態２におけるデータベース構造情報のデータ例を示す図
【図１７】実施の形態２におけるインデックスの例を示す図
【図１８】実施の形態２におけるインデックスの例を示す図
【図１９】実施の形態２におけるインデックスの例を示す図
【図２０】実施の形態３におけるデータベース移行装置３００の構成を示すブロック図
【図２１】実施の形態３におけるデータベース移行装置３００の動作を示すフローチャート
【図２２】実施の形態３におけるデータベース操作情報保持部３０１が有する情報の例を示す図
【符号の説明】
【００８７】
１００、２００、３００、４００  データベース移行装置
１０１  入力受付部
１０２、５００  第一データベース管理システム
１０２１  第一データベース格納部
１０３  第一データベース構造情報取得部
１０４  データ群取得部
１０５  データベース構造定義部
１０６  データ挿入部
１０７、６００  第二データベース管理システム
１０７１  命令実行部
１０７１  第二データベース格納部
２０１  インデックス情報取得部
２０２  インデックス構築部
３０１  データベース操作情報保持部
４０１  送受信部
５０１  第一送受信部
６０１  第二受信部
【図１】
2005141280.tif 000003
【図２】
2005141280.tif 000004
【図３】
2005141280.tif 000005
【図４】
2005141280.tif 000006
【図５】
2005141280.tif 000007
【図６】
2005141280.tif 000008
【図７】
2005141280.tif 000009
【図８】
2005141280.tif 000010
【図９】
2005141280.tif 000011
【図１０】
2005141280.tif 000012
【図１１】
2005141280.tif 000013
【図１２】
2005141280.tif 000014
【図１３】
2005141280.tif 000015
【図１４】
2005141280.tif 000016
【図１５】
2005141280.tif 000017
【図１６】
2005141280.tif 000018
【図１７】
2005141280.tif 000019
【図１８】
2005141280.tif 000020
【図１９】
2005141280.tif 000021
【図２０】
2005141280.tif 000022
【図２１】
2005141280.tif 000023
【図２２】
2005141280.tif 000024