以下、データ移行装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態におけるデータ移行装置1のブロック図である。
データ移行装置1は、第一テーブル格納部101、第二テーブル格納部102、項目コード対応情報格納部103、テーブル対応情報格納部104、テーブルコード対応情報格納部105、移行指定受付部106、およびデータ移行部107を備える。
第一テーブル格納部101には、1以上の第一項目名と、各第一項目名を特定するコードである1以上の第一項目コードと、1以上の第一項目名と対応付けられた1以上のデータとを有する1以上の第一テーブルが格納され得る。第一テーブルとは、具体的には、テーブルを移行する際の,移行元となるテーブルである。テーブルの移行とは、例えば、移行前のテーブルのデータを、当該データの項目名に対応する移行後のテーブルの項目名のデータとして、第二テーブルに蓄積することである。ここで述べるテーブルとは具体的にはテーブルの情報のことである。テーブルとは、具体的には、1以上の項目とデータとを対応付けたレコードを1以上有する情報である。テーブルのデータ形式は問わない。例えば、CSV形式のデータや項目名や項目コードやデータ別にタブで区切られたテキストデータ等であってもよい。あるいはデータベース管理ソフトで利用されるテーブル専用の形式のデータであっても良い。テーブルは、例えば、アプリケーションソフトウェア(以下アプリケーションと称す)が利用するテーブルである。テーブルを利用するアプリケーションは、例えば、業務用途で利用されるソフトウェア(以下、ソフトと称す)である業務ソフトである。業務ソフトは、例えば、会計ソフトや、販売管理ソフト、給与管理ソフト、人事管理ソフト等である。また、複数の業務ソフトを統合しており、複数の業務ソフトの機能を切り替えて利用できる業務統合ソフトであっても良い。
本実施の形態で述べる第一項目名等の項目名とは、項目を識別可能な識別情報であり、例えばフィールド名や属性名である。項目名は、通常、ユーザが自由に値を変更可能な情報である。例えば、ユーザは、必要に応じて、項目名「名前」は、項目名「ユーザ名」等に変更可能である。本実施の形態の第一項目コード等の項目コードとは、例えば、項目名を特定するための、項目名と一対一で対応付けられたコードである。項目コードは、1以上の数字や文字や記号等により構成される。項目コードは、例えば、テーブルを利用するアプリケーション等により予め定義されているコードであり、例えば、通常は、ユーザが値を変更できないコードである。また、項目コードは、例えば、通常は、ユーザに対して不可視となっている場合が多い。項目コードは、例えば、テーブルを利用するアプリケーションによって、予め定義されているコードである。
第一テーブルが有する1以上のデータは、例えば、第一テーブル内の移行対象となるデータである。第一テーブルが有する1以上のデータの形式は問わない。例えば文字や数字を含む文字列により構成されるテキストデータであっても良いし、動画像や静止画像等の画像データや、音声データ等であっても良い。テキストデータの場合、その表示形式や書式等は問わない。また、第一テーブルは、このデータのファイル形式やフォーマットや表示形式や書式等を指定する情報を有していても良い。また、これらのフォーマット等を指定する情報は、第一テーブルと対応付けられて、図示しない格納部等で管理されてもよい。
第一テーブル格納部において、第一項目名と第一項目コードとデータとは、直接対応付けられて格納されていても良いし、間接的に対応付けられて記憶されていても良い。間接的に対応付けられているとは、例えば、それぞれに対応する識別情報同士が対応付けられていることや、一方の情報と他方の情報の識別情報とが対応付けられていること等を意味する。また、第一項目名と第一項目コードとデータとは、物理的に同じ記憶媒体に記憶されていても良いし、物理的に異なる記憶媒体に記憶されていても良い。なお、本実施の形態において複数のデータ同士等が対応付けられて格納されているとは、例えば、複数のデータを、一のレコードを構成する異なる項目の値として格納されていることである。
第一テーブル格納部101に第一テーブルの情報が蓄積される過程やタイミング等は問わない。例えば、記録媒体を介して1以上の第一テーブルが第一テーブル格納部101で記憶されるようになってもよく、通信回線等を介して送信された1以上の第一テーブルが第一テーブル格納部101で蓄積されるようになってもよく、あるいは、図示しない入力デバイスを介して入力された1以上の第一テーブルを、図示しない受付部等が受け付け、当該受付部が受け付けた第一テーブルを第一テーブル格納部101に蓄積されても良い。なお、ここで述べる格納とは、受付部等が受け付けた第一テーブルを一時記憶することも含む概念である。
なお、本実施の形態においては、一例として、第一テーブルが、当該第一テーブルを識別する情報である第一テーブル識別情報と対応付けられて、第一テーブル格納部101に格納される場合について説明する。第一テーブル識別情報は、例えば第一テーブル名や、第一テーブルの識別記号等である。
第一テーブル格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
第二テーブル格納部102には、1以上の第二項目名と、第二項目名を特定するコードである1以上の第二項目コードと、1以上の第二項目名と対応付けられた1以上のデータとを有する、第一テーブルから移行されたテーブルである1以上の第二テーブルが格納され得る。第二テーブルは、具体的には、第一テーブルの移行後、即ち移行先となるテーブルである。第二テーブルは、例えば、第一テーブルを利用するアプリケーションと異なるアプリケーション等で利用されるテーブルである。第二項目名、第二項目コード等については、上述した第一項目名、第二項目コード等と同様であるので、ここでは詳細な説明は省略する。
第二テーブルが有するデータは、例えば、第一テーブルが有するデータの、移行後のデータである。第二テーブルが有するデータは、例えば、第一テーブルに含まれていたデータが移動あるいは複製されたものや、移動や複製時に、フォーマットや表示形式や書式等が、第二テーブルの形式等に合わせて変換されたものである。なお、第二テーブルには、最終的に、1以上のデータが格納されればよく、例えば、第一テーブルが移行されるまでは、1以上のデータが格納されていなくても良い。あるいは、第二テーブルには、移行されたデータ以外のデータが予め格納されていてもよい。また、第二テーブルは、格納されるデータのファイル形式やフォーマットや表示形式や書式等を指定する情報を有していても良い。また、これらのフォーマット等を指定する情報は、第二テーブルと対応付けられて、図示しない格納部等で管理されてもよい。
第二テーブル格納部102に第二テーブルが蓄積される過程やタイミング等は問わない。例えば、第一テーブルの移行を行う際に、予め図示しない記憶媒体等の格納部に格納されている第二テーブルのフォーマットを指定する情報、例えば第二項目名と第二項目コードや格納されるデータの形式等を指定する情報を用いて、データが格納されていない新規の第二テーブル等を作成しても良い。あるいは、予め第二テーブルが格納されていても良い。また、第二テーブルを利用するアプリケーション等が第二テーブルを、適宜作成して蓄積しても良い。なお、ここで述べる格納とは、後述するデータ移行部107により移行された第二テーブルを一時記憶することも含む概念である。
なお、本実施の形態においては、一例として、第一テーブルと同様に、第二テーブルが第二テーブル識別情報と対応付けられて、第二テーブル格納部102に格納される場合について説明する。
第二テーブル格納部102は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
項目コード対応情報格納部103には、第一テーブルに含まれる各第一項目コードと、第二テーブルに含まれる各第二項目コードとの対応関係を示す情報である1以上の項目コード対応情報が格納され得る。例えば、項目コード対応情報格納部103には、対応する第一項目コードと、第二項目コードとが、一のレコードを構成する異なる項目の値として格納されている。項目コード対応情報は、例えば、予め項目コード対応情報格納部103に格納されている。また、ユーザ等により、作成された項目コード対応情報を、図示しない受付部等で受け付けて、蓄積されたものであっても良い。項目コード対応情報には、第一テーブルの1以上のデータを、第二テーブルの1以上のデータに変換する際に行われるフォーマットや表示形式や書式等の変換を指定する情報が含まれていてもよい。
なお、ここでは、一例として、項目コード対応情報が、第一テーブル識別情報等と同様に、項目コード対応情報を識別するための識別情報である項目コード対応情報識別情報と対応付けられている場合について説明する。
項目コード対応情報格納部103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
テーブル対応情報格納部104には、第一テーブル格納部101に格納されている1以上の第一テーブルと、第二テーブル格納部102に格納されている1以上の第二テーブルとの対応関係を示す情報である1以上のテーブル対応情報が格納され得る。テーブル対応情報は、具体的には、1以上の移行元となる第一テーブルと、当該第一テーブルを移行して得られる第二テーブルとの対応関係を示す情報である。テーブル対応情報は、例えば、対応する第一テーブルの第一テーブル識別情報と第二テーブルの第二テーブル識別情報とを対応付けて有する情報である。例えば、対応する第一テーブル識別情報と第二テーブル識別情報とを、一のレコードの異なる項目として有する情報である。テーブル対応情報は、予め格納されていても良いし、ユーザ等により作成されたテーブル対応情報が蓄積されても良い。
テーブル対応情報格納部104に格納されているテーブル対応情報の少なくとも一部は、第一テーブル格納部101に格納されている1以上の第一テーブルのうちの一の第一テーブルと、第二テーブル格納部102に格納されている2以上の第二テーブルのうちの複数の第二テーブルとを対応付ける情報であっても良い。また、テーブル対応情報格納部104に格納されているテーブル対応情報の少なくとも一部は、第一テーブル格納部101に格納されている2以上の第一テーブルのうちの複数の第一テーブルと、第二テーブル格納部102に格納されている1以上の第二テーブルのうちの一の第二テーブルとを対応付ける情報であっても良い。また、上記のようなテーブル対応情報が混在していても良い。
なお、ここでは、一例として、テーブル対応情報が、第一テーブル識別情報等と同様に、テーブル対応情報を識別するための識別情報であるテーブル対応情報識別情報と対応付けられている場合について説明する。
テーブル対応情報格納部104は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
テーブルコード対応情報格納部105には、テーブル対応情報格納部104に格納されて得るテーブル対応情報と、項目コード対応情報格納部103に格納され得る項目コード対応情報との対応関係を示す情報であるテーブルコード対応情報が格納され得る。テーブルコード対応情報は、具体的には、一の第一テーブルを、テーブル対応情報により当該第一テーブルと対応付けられた第二テーブルに変換する際に利用される項目コード対応情報を指定する情報である。テーブルコード対応情報は、例えば、テーブル対応情報識別情報と、項目コード対応情報識別情報とを対応付ける情報である。例えば、対応するテーブル対応情報識別情報と項目コード対応情報識別情報とを、一のレコードの異なる項目として有する情報である。テーブルコード対応情報は、予め格納されていても良いし、ユーザ等により作成されたテーブルコード対応情報が蓄積されても良い。
テーブルコード対応情報格納部105は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
移行指定受付部106は、移行元となる第一テーブルと、移行先となる第二テーブルとを指定する情報である移行指定情報を受け付ける。例えば、ユーザとにより入力される移行元となる第一テーブルの第一テーブル識別情報と、移行先となる第二テーブルの第二テーブル識別情報とを有する移行指定情報を受け付ける。移行指定情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。移行指定受付部106は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
データ移行部107は、第一テーブル格納部101に格納されている第一テーブルのデータを、項目コード対応情報によって当該データに対応する第一項目コードと対応付けられた第二項目コードに対応する第二テーブルのデータに移行して第二テーブルを取得し、第二テーブル格納部102に蓄積する。特に、データ移行部107は、第一テーブル格納部101に格納されている第一テーブルを、当該第一テーブルとテーブル対応情報によって対応付けられた第二テーブルに移行する際に、テーブルコード対応情報によって当該テーブル対応情報と対応付けられた項目コード対応情報を用いて移行を行うようにする。
データ移行部107は、例えば、移行指定受付部106が移行指定情報を受けつけている場合、移行指定受付部106が受け付けた移行指定情報により移行元に指定された第一テーブルを、移行指定情報により移行先に指定される第二テーブルに移行する。
また、移行指定受付部106がない場合や、移行指定情報を受けつけていない場合、第一テーブル格納部101および第二テーブル格納部102に格納されているテーブルのうちの、テーブル対応情報で対応付けられている第一テーブルと第二テーブルとで構成されるテーブルの組に対応するテーブルの組を、全て変換するようにしてもよい。例えば、テーブル対応情報格納部104に格納されている各テーブル対応情報によって対応付けられている第一テーブルと第二テーブルとの組を、第一テーブル格納部101、および第二テーブル格納部102から取得し、さらに、この組を対応付けているテーブル対応情報と対応付けられた項目コート対応情報を、テーブルコード対応情報を用いて取得する。そして、取得した項目コート対応情報を用いて、取得した第一テーブルを第二テーブルに移行する。この処理を、全てのテーブル対応情報に対して繰り返す。これにより、テーブル対応情報により対応付けられた第一テーブルと第二テーブルの組を移行させることができる。
以下、一例として、移行指定情報によって、変換元として一の第一テーブルが指定され、変換先として一の第二テーブルが指定された場合を例に挙げて具体的に説明する。ここでは、例として、指定された第一テーブルを指定第一テーブル、指定された第二テーブルを指定第二テーブルと呼ぶ。
1)まず、指定された変換元と変換先のテーブルの組に対応した項目コード対応情報を取得する処理を説明する。
データ移行部107は、テーブル対応情報格納部104に格納されているテーブル対応情報の中から、指定第一テーブルおよび指定第二テーブルと一致する、第一テーブルおよび第二テーブルを対応付けたテーブル対応情報を検索等により検出する。具体的には、指定第一テーブルの識別情報と一致する第一テーブル識別情報と、指定第二テーブルの識別情報と一致する第二テーブル識別情報とに一致する、第一テーブル識別情報と第二テーブル識別情報とを有するテーブル対応情報を検出し、検出したテーブル対応情報の識別情報であるテーブル対応情報識別情報を取得する。
次に、データ移行部107は、上記で検出したテーブル対応情報と対応付けられたコード対応情報を、テーブルコード対応情報格納部105に格納されているテーブルコード対応情報の中から、検索等により検出する。具体的には、上記で検出したテーブル対応情報識別情報を検索キーとして用いて、当該テーブル対応情報識別情報と一致するテーブル対応情報識別情報を有するテーブルコード対応情報を検出し、検出したテーブルコード対応情報に含まれる項目コード対応情報を取得する。
2)つぎに、項目コード対応情報を用いて移行する処理について説明する。ここでは、例として、上記の処理で取得した項目コード対応情報を用いた場合について説明する。
データ移行部107は、指定第一テーブルの中から、一の第一項目名に対応する一の第一項目コードを取得する。そして、この取得した第一項目コードを検索キーとして、この取得した第一項目コードと一致する第一項目コードと対応付けられた第二項目コードを、項目コード対応情報から検索により検出して取得する。そして、指定第一テーブルの中の上述した一の第一項目名に対応する一のデータ(即ち一の第一項目コードに対応するデータ)を取得し、取得したデータを、上記で取得した第二項目コードと一致する第二項目コードに対応づけて指定第二テーブル内に蓄積する。即ち、第二項目コードに対応する第二項目名と対応付けて指定第二テーブル内に蓄積する。指定第一テーブルからデータを取得する際には、元のデータは削除しても良いし、残すようにしても良い。このような処理を、指定第一テーブルの全てのデータに対してくり返し行うことで、指定第一テーブルのデータを、指定第二テーブルに移行する処理が終了する。
なお、ここでは、データの移行が、単なる移動、あるいは複製の蓄積である場合について説明したが、データ移行部107は、第一テーブルのデータを第二テーブルに蓄積する際に、第二テーブルのデータが蓄積される第二項目名等に指定されているフォーマットやデータ形式を示す情報等に応じて、第一テーブルから取得したデータを変換して蓄積しても良い。例えば、年月日のデータの表示形式を西暦から日本の年号に変換したり、数字の所定の桁以降の数字、例えば小数点以下の数字を非表示として蓄積したり、数字を四捨五入して蓄積してもよい。また、文字コード等の変換を行っても良い。このような変更は、データベースソフトウェアや、スプレッドシートを用いる表計算ソフトウェア等において公知技術であるので、ここでは、説明を省略する。
なお、ここでは、項目コード対応情報を用いた移行の処理として、上記の処理で取得した項目コード対応情報を用いた場合について説明したが、どのような項目コード対応情報を用いるようにしても良い。たとえば、ユーザ等により指定された項目コード対応情報を用いても良い。また、例えば、変換したいテーブルの組に対して利用する、項目コード対応情報が一つしかない場合等には、この項目コード対応情報を利用してもよい。特に、このような場合、テーブル対応情報や、テーブルコード対応情報は不要であり、上記の項目コード対応情報を取得する処理も省略可能である。
データ移行部107は、通常、MPUやメモリ等から実現され得る。データ移行部107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
なお、本実施の形態においては図示していないが、データ移行部107で移行されて蓄積された第二テーブルを出力するための出力部(図示せず)を備えていても良い。この場合の出力とは、ディスプレイへの表示、プリンタによる紙等への印字、外部の装置への送信等を含む概念である。このような出力部は、ディスプレイやプリンタ等の出力デバイスを含むと考えても含まないと考えても良い。出力部は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、データ移行装置1の動作について図2のフローチャートを用いて説明する。ここでは、移行指定受付部106が受け付けた移行指定情報により指定される第一テーブルを、同じ移行指定情報により指定される第二テーブルに移行する場合について説明する。また、ここでは、第一テーブルの一のレコードだけを移行する場合について説明する。
(ステップS101)移行指定受付部106は、移行指定情報を受け付けたか否かを判断する。受け付けた場合、ステップS102に進み、受け付けていない場合、ステップS101に戻る。
(ステップS102)データ移行部107は、ステップS101において受け付けた移行指定情報が指定する第一テーブルと第二テーブルとに一致する第一テーブルと第二テーブルとを対応付けたテーブル対応情報を、テーブル対応情報格納部104において検出する。具体的には、移行指定情報が指定する第一テーブル識別情報と第二テーブル識別情報とに一致する第一テーブル識別情報と第二テーブル識別情報とを対応付けたテーブル対応情報識別情報を、テーブル対応情報格納部104に格納されているテーブル対応情報において検出し取得する。
(ステップS103)データ移行部107は、ステップS102で検出したテーブル対応情報と対応付けられた項目コード対応情報を検出する。具体的には、ステップS102で取得したテーブル対応情報識別情報を検索キーとして用いて、当該テーブル対応情報識別情報と対応付けられた項目コード対応情報識別情報を、テーブルコード対応情報格納部において検出し取得する。
(ステップS104)データ移行部107は、カウンターnに1を代入する。
(ステップS105)データ移行部107は、ステップS101で受け付けた移行指定情報が指定する第一テーブルから、n番目の第一項目コードを取得する。
(ステップS106)データ移行部107は、ステップS105で取得した第一項目コードを検索キーとして用いて、この第一項目コードに対応する第二項目コードを、ステップS103で検出した項目コード対応情報(具体的にはステップS103で取得した項目コード対応情報識別情報が示す項目コード対応情報)から、検索により取得する。
(ステップS107)データ移行部107は、第一テーブル内の、n番目の第一項目コードに対応付けられたデータを、ステップS106で検索した第二項目コードと対応付けて、ステップS101において受け付けた移行指定情報が指定する第二テーブルに蓄積する。なお、蓄積する際に、データを第二テーブルのフォーマット等に合わせて変換するようにしても良い。
(ステップS108)データ移行部107は、カウンターnの値を1インクリメントする。
(ステップS109)データ移行部107は、ステップS101で受け付けた移行指定情報が指定する第一テーブル内に、n番目の第一項目コードがあるか否かを判断する。ある場合、ステップS105に進み、ない場合、移行処理を終了する。
なお、上記フローチャートにおいては、第一テーブルの一のレコードだけを移行する場合について説明したが、複数のレコードを移行する場合にも適用可能であることはいうまでもない。例えば、一のレコードに対して、上記のステップS104からステップS109までの処理を繰り返した後、次のレコードに対して、同様の処理を繰り返し、全てのレコードの移行が終了した時点で処理を終了しても良い。
あるいは、一度に、第一テーブルの複数レコードの一の第一項目コードのデータを全て、第二テーブルの対応する第二項目コードに対応したデータとして移行するようにしても良い。
以下、本実施の形態におけるデータ移行装置1の具体的な動作について説明する。
図3は、データ移行装置1で移行させる第一テーブルの指定と、移行先となる第二テーブルの指定とを受け付けるためのメニュー画面の一例を示す図である。
まず、ユーザが、図3に示すようなメニューを表示させ、データ移行装置1をマウス等の入力デバイス等(図示せず)を操作して、テーブル名が「受注テーブル」である第一テーブルを、テーブル名が「受注管理」である第二テーブルに変換する指示を、データ移行装置1に与えたとする。ここでのテーブル名は、第一テーブルおよび第二テーブルの識別情報であるとする。移行指定受付部106は、この操作に応じて、第一テーブルである「受注テーブル」を第二テーブルである「受注管理」に移行する移行指定情報を受け付ける。
図4は、第一テーブル格納部101に格納されている、テーブル名が「受注テーブル」である第一テーブルを示す図である。「受注テーブル」は、例えば、業務アプリケーションAにおいて利用されるテーブルであるとする。図において、一行目は、第一項目名を示す。また、二行目は、同じ列の第一項目名に対応した第一項目コードを示す。また、三行目以降の各行は、「受注テーブル」に格納される各レコードを示す。
図5は、第二テーブル格納部102に格納されている、テーブル名が「受注管理」である第二テーブルを示す図である。「受注テーブル」は、例えば、業務アプリケーションBにおいて利用されるテーブルであるとする。図において、一行目は、第二項目名を示す。また、二行目は、同じ列の第二項目名に対応した第二項目コードを示す。また、三行目以降の各行は、「受注管理」に格納される各レコードを示す。ただし、ここでは、第二テーブルには、また、レコードが蓄積されていないものとする。
図6は、テーブル対応情報格納部104に格納されているテーブル対応情報の一例を示す図である。テーブル対応情報は、「テーブル対応情報ID」、「第一テーブル名」、「第二テーブル名」という項目を有している。「テーブル対応情報ID」は、テーブル対応情報の識別情報である。「第一テーブル名」は、第一テーブル識別情報であり、上述した第一テーブル名に対応している。「第二テーブル名」は、第二テーブル識別情報であり、上述した第二テーブル名に対応している。
データ移行部107は、テーブル対応情報格納部104に格納されている図6に示したテーブル対応情報の中から、「第一テーブル名」の値が、移行指定受付部106が受け付けた移行指定情報が示す第一テーブル名である「受注テーブル」と一致し、「第二テーブル名」の値が、移行指定情報が示す第二テーブル名である「受注管理」に一致するレコードを検出する。ここでは、このようなレコードとして、「テーブル対応情報ID」が「T002」であるレコードを検出する。そして、データ移行部107は、このレコードの「テーブル対応情報ID」の値である「T002」を取得する。
図7は、テーブルコード対応情報格納部105に格納されているテーブルコード対応情報の一例を示す図である。テーブルコード対応情報は、「テーブル対応情報ID」と、「項目コード対応情報ID」という項目を有している。「テーブル対応情報ID」は、テーブル対応情報識別情報であり、図6の「テーブル対応情報ID」に対応する。「項目コード対応情報ID」は、項目コード対応情報識別情報であり、ここでは、例として項目コード対応情報のファイル名を示しているものとする。
次に、データ移行部107は、図7に示すようなテーブルコード対応情報から、「テーブル対応情報ID」の値が、データ移行部107が取得した「テーブル対応情報ID」である「T002」と一致するレコードを検出し、検出したレコ−ドの「項目コード対応情報ID」の値を取得する。ここでは、図7に示すようなテーブルコード対応情報の「テーブル対応情報ID」が「T002」であるレコードから、「C102」という「項目コード対応情報ID」を取得する。
次に、データ移行部107は、項目コード対応情報格納部103から、ファイル名が「C102」である項目コード対応情報を取得する。
図8は、ファイル名が「C102」である項目コード対応情報を示す図である。項目コード対応情報は、第一項目コードである「第一項目コード」と、第二項目コードである「第二項目コード」という項目を有している。
データ移行部107は、図8に示したファイル名が「C102」である項目コード対応情報を用いて、図4に示した第一テーブルである「受注テーブル」の移行を行う。
まず、データ移行部107は、第一テーブルである「受注テーブル」の一番目のレコードに格納されている左から一番目のデータである「平成21年4月1日」に対応する第一項目コードである「A001」を取得する。ここでは、そして、ファイル名が「C102」である項目コード対応情報において、「第一項目コード」の値が、「受注テーブル」から取得した第一項目コード「A001」と一致するレコードを検出し、検出したレコードの「第二項目コード」の値を取得する。ここでは、「B1002」を取得する。
そして、データ移行部107は、図5に示した第二テーブルのうちの、第二項目コードの値が、項目コード対応情報から取得した「第二項目コード」の値「B1002」と一致する項目(フィールド)を検出する。そして、第一テーブル「受注テーブル」に格納されている一番目のレコードの一番目のデータ「平成21年4月1日」を読み出して、読み出したデータを、第二テーブルの一番目のレコードの、「第二項目コード」の値「B1002」と一致する項目のデータとして蓄積する。ここでは、一番目のレコードの左から二番目の項目のデータとして蓄積する。なお、この具体例においては、第二テーブルのこの項目には、予め年月日を、西暦で表示する設定がなされており、データ移行部107は、この項目に値を蓄積する際に、取得した値である「平成21年4月1日」を、この設定に応じて変換して蓄積する。これにより、第二テーブルの一番目のレコードの一番目の項目のデータは、「2009年4月1日」となる。
つぎに、データ移行部107は、第一テーブル「受注テーブル」の一番目のレコードに格納されている二番目のデータである「平成21年4月2日」に対応する第一項目コードである「A002」を取得する。そして、項目コード対応情報「C102」において、「第一項目コード」の値が、第一項目コード「A002」と一致するレコードを検出し、検出したレコードの「第二項目コード」の値である「B1003」を取得する。
そして、データ移行部107は、図5に示した第二テーブルのうちの、第二項目コードの値が、「B1003」と一致する項目である左から三番目の項目を検出する。そして、第一テーブル「受注テーブル」に格納されている一番目のレコードの二番目のデータ「平成21年4月2日」を読み出して、第二テーブルの一番目のレコードの左から三番目の項目のデータとして蓄積する。
以下、同様の処理を第一テーブルの一番目のレコード内の他の項目のデータについて繰り返す。そして、全ての項目について処理が終わった場合、二番目以降のレコードについても順次同様の処理を繰り返す。
図9は、上記の繰り返しの結果、第二テーブル格納部102に蓄積された、移行後の第二テーブルを示す図である。
なお、上記具体例において、データ移行部107が、項目コード対応情報を取得した時点で、項目コード対応情報が対応付ける「第一項目コード」および「第二項目コード」にそれぞれ対応する第一項目名と第二項目名を、移行対象となっている第一テーブルおよび第二テーブルから検索により取得し、取得した第一項目名と第二項目名とで、項目コード対応情報の対応する「第一項目コード」および「第二項目コード」を置き換えた情報である確認用情報を作成し、この確認用情報を用いて、図10に示すような画像を、モニタ110等に表示して、ユーザにこの確認用情報に示すような項目名間の対応関係でデータの移行を行って良いか否かの確認を求めるようにしても良い。このような表示により、データ移行の不具合等を低減させることができる。
なお、上記具体例において、テーブル対応情報は、図11に示すように、一の第一テーブルと、複数の第二テーブルとが対応付けられていてもよいし、複数の第一テーブルと、一の第二テーブルとが対応付けられていても良い。
例えば、図11の、テーブル対応情報IDが「T002」であるレコードは、テーブル名が「受注テーブル」である一の第一テーブルが、テーブル名が「受注管理」および「受注伝票」である二つの第二テーブルに対応付けているレコードである。これは、例えば、テーブル名が「受注テーブル」である一の第一テーブルの複数の第一項目名に対応付けられたデータの少なくとも一部が、テーブル名が「受注管理」である第二テーブルに移行され得るものであり、また「受注テーブル」の複数の第一項目名に対応付けられたデータの少なくとも一部が、テーブル名が「受注伝票」である第二テーブルに移行され得るものであることを示している。このようなテーブル変換情報を用いることで、上記具体例において、例えば、一の第一テーブルから二つの第二テーブルへの移行を行うことができる。
また、図11の、テーブル対応情報IDが「T004」および「T005」であるレコードは、テーブル名が「発送テーブル」である第一テーブルと、テーブル名が「出荷テーブル」である第一テーブルとが、テーブル名が「発送管理」である一の第二テーブルに対応付けているレコードである。これは、例えば、テーブル名が「発送テーブル」である第一テーブルのデータと、テーブル名が「出荷テーブル」である第一テーブルのデータとが、それぞれ、テーブル名が「発送管理」である第二テーブルに移行され得るものであることを示している。このようなテーブル変換情報を用いることで、上記具体例において、例えば、二つの第一テーブルから一の第二テーブルへの移行を行うことができ、例えばこれにより、項目コード対応情報を削減することができる。
以上、本実施の形態によれば、第一テーブルの第一項目名に対応した第一項目コードと、第二テーブルの第二項目名に対応した第二項目コードとの対応関係を示す項目コード対応情報を用いて、第一テーブルのデータを、第二テーブルに移行させることができる。これにより、テーブルに含まれるデータの移行を容易に行うことができる。特に、ユーザが第一項目名や、第二項目名を変更した場合においても、適切なデータ移行を実現することができる。
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(情報送信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりする情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記各実施の形態では、データ移行装置がスタンドアロンである場合について説明したが、データ移行装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
なお、上記各実施の形態におけるデータ移行装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、1以上の第一項目名と、各第一項目名を特定するコードである1以上の第一項目コードと、1以上の第一項目名と対応付けられた1以上のデータとを有する1以上の第一テーブルが格納され得る第一テーブル格納部に格納されている第一テーブルのデータを、第一テーブルに含まれる各第一項目コードと、1以上の第二項目名と、第二項目名を特定するコードである1以上の第二項目コードと、1以上の第二項目名と対応付けられた1以上のデータとを有する、第一テーブルから移行されたテーブルである1以上の第二テーブルが格納され得る第二テーブル格納部に格納されている第二テーブルに含まれる各第二項目コードとの対応関係を示す情報である1以上の項目コード対応情報が格納され得る項目コード対応情報格納部に格納されている項目コード対応情報によってデータに対応する第一項目コードと対応付けられた第二項目コードに対応する第二テーブルのデータに移行して第二テーブルを取得し、第二テーブル格納部に蓄積するデータ移行部として機能させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図12は、上記プログラムを実行して、上記実施の形態によるデータ移行装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図12において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図13は、コンピュータシステム900の内部構成を示す図である。図13において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態によるデータ移行装置等の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態によるデータ移行装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。