(57)【要約】【課題】１つの自動変換ツールでフレキシブルに多種類のオブジェクトデータのインポートを行えるようにする。【解決手段】インポート先のデータベースの各フィールド（カラム）に対応し、同じ属性を有するカラムを表す複数のフィールド名を定義したマルチリンクキーテーブルＭＬＴを作成する。インポート元のデータベースのフィールド名をキーとして読み取り、この読み取ったキーと一致するリンクキーがマルチリンクキーテーブルＭＬＴに存在するか否かを確認する。存在していれば、その一致するリンクキーに対応するインポート先のデータベースのカラムを該当するカラムとし、この該当するカラムとキーの読み取りを行ったインポート元のデータベースのカラムとの間にリンクをはる。このリンクに従ってデータのインポートを行う。【選択図】  図４
2006268661.tif 000002
【特許請求の範囲】
【請求項１】
インポート先のデータベースの各フィールドに対し、同じ属性を有するフィールドを表す複数のフィールド名を定義したテーブルを作成する第１のステップと、
インポート元のデータベースのフィールド名を読み取り、読み取ったフィールド名が前記テーブル上に存在するか否かを確認する第２のステップと、
前記読み取ったフィールド名が前記テーブル上に存在する場合に、その読み取ったフィールド名に対応するインポート元のデータベースのフィールドと、その読み取ったフィールド名に前記テーブルを介して対応づけられる前記インポート先のデータベースのフィールドとを対応づける第３のステップと、
前記インポート元のデータベースと前記インポート先のデータベースとのフィールド間の対応に基づいて前記インポート元のデータベースのデータを前記インポート先のデータベースにインポートする第４のステップと
を備えることを特徴とするデータインポート方法。
【請求項２】
請求項１に記載されたデータインポート方法において、
前記テーブルに定義されたフィールド名に対して編集を行う第５のステップ
を備えることを特徴とするデータインポート方法。
【請求項３】
請求項１に記載されたデータインポート方法において、
前記第４ステップは、前記インポート元のデータベースのフィールドの個数が前記インポート先のデータベースのフィールドの個数よりも多い場合でも、前記インポート元のデータのインポートを実行する
ことを特徴とするデータインポート方法。
【請求項４】
請求項１に記載されたデータインポート方法において、
前記第４ステップは、前記インポート元のデータベースのフィールドの個数が前記インポート先のデータベースのフィールドの個数よりも少ない場合でも、前記インポート元のデータのインポートを実行する
ことを特徴とするデータインポート方法。
【請求項５】
インポート先のデータベースの各フィールドに対し、同じ属性を有するフィールドを表す複数のフィールド名を定義したテーブルと、
インポート元のデータベースのフィールド名を読み取り、読み取ったフィールド名が前記テーブル上に存在するか否かを確認する手段と、
前記読み取ったフィールド名が前記テーブル上に存在する場合に、その読み取ったフィールド名に対応するインポート元のデータベースのフィールドと、その読み取ったフィールド名に前記テーブルを介して対応づけられる前記インポート先のデータベースのフィールドとを対応づける手段と、
前記インポート元のデータベースと前記インポート先のデータベースとのフィールド間の対応に基づいて前記インポート元のデータベースのデータを前記インポート先のデータベースにインポートするインポート手段と
を備えることを特徴とするデータインポート装置。
【請求項６】
請求項５に記載されたデータインポート装置において、
前記テーブルに定義されたフィールド名に対して編集を行う手段
を備えることを特徴とするデータインポート装置。
【請求項７】
請求項５に記載されたデータインポート装置において、
前記インポート手段は、前記インポート元のデータベースのフィールドの個数が前記インポート先のデータベースのフィールドの個数よりも多い場合でも、前記インポート元のデータのインポートを実行する
ことを特徴とするデータインポート装置。
【請求項８】
請求項５に記載されたデータインポート装置において、
前記インポート手段は、前記インポート元のデータベースのフィールドの個数が前記インポート先のデータベースのフィールドの個数よりも少ない場合でも、前記インポート元のデータのインポートを実行する
ことを特徴とするデータインポート装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、会社間のデータベース、部門間のデータベースなど、データベース間のデータインポート方法およびデータインポート装置に関するものである。
【背景技術】
【０００２】
従来より、ビルなどの監視システムでは、各種のデータを収集し、収集したデータを編集し、ＣＳＶ（comma separate value）形式のファイル（ＣＳＶファイル）として、データベースに蓄積している。図６にＹ社のデータベースＤＹに格納されたＣＳＶファイルＦＹの一例を示す。
【０００３】
このＹ社のＣＳＶファイルＦＹにおいて、そのファイル中の１データ（以下、オブジェクトデータと呼ぶ）のフォーマット（データ構造）は、ｎ個のフィールド（属性の並び）で表される。このフィールドは、カラムとも呼ばれる。この例では、カラム＃１にオブジェクト識別子を、カラム＃２にオブジェクト名を、カラム＃３にオブジェクトタイプを、カラム＃４に単位を、カラム＃５に最大値を、カラム＃６に最小値を、・・・・、カラム＃ｍに重みを割り当て、この割り当てにしたがって個別具体的なオブジェクトデータを構成する個々のデータをデータベースＤＹに書き込んでいる。
【０００４】
また、ＣＳＶファイルＦＹに対しては、そのオブジェクトデータのフォーマットを示すデータ構造情報が作成される。このデータ構造情報には、そのオブジェクトデータの各カラムに対応して、そのカラムに割り当てられたデータの属性（プロパティ）の名称を示すフィールド名（プロパティ名）が書き込まれる。この例では、英文字表記のフィールド名が用いられている。すなわち、カラム＃１に対してはオブジェクト識別子であることを示す「object_identifire 」、カラム＃２に対してはオブジェクト名であることを示す「object_name 」、カラム＃３に対してはオブジェクトタイプであることを示す「object_type 」というように、英文字表記でそのカラムに割り当てられたデータの属性の名称を示すフィールド名がデータ構造情報に書き込まれている。
【０００５】
図６はＹ社の例を示したが、他社でも同様にして、データの収集・編集・蓄積が行われる。図７にＡ社のデータベースＤＡに格納されたＣＳＶファイルＦＡの一例を示す。このＡ社のＣＳＶファイルＦＡでは、Ｙ社と同様、カラム＃１がオブジェクト識別子、カラム＃２がオブジェクト名、カラム＃３がオブジェクトタイプ、カラム＃４が単位、カラム＃５が最大値、カラム＃６が最小値、・・・・、カラム＃ｍが重みとされている。また、データ構造情報に書き込まれたフィールド名も、Ｙ社と同様、英文字表記のフィールド名とされている。
【０００６】
図８にＢ社のデータベースＤＢに格納されたＣＳＶファイルＦＢの一例を示す。このＢ社のＣＳＶファイルＦＢにおいて、データ構造情報に書き込まれたフィールド名はＹ社と同じ英文字表記とされているが、カラムに割り当てられたデータの属性の並びが異なり、カラム＃１がオブジェクト名、カラム＃２がオブジェクト識別子とされている。
【０００７】
図９にＣ社のデータベースＤＣに格納されたＣＳＶファイルＦＣの一例を示す。このＣ社のＣＳＶファイルＦＣにおいて、カラムに割り当てられたデータの属性の並びはＹ社と同じであるが、データ構造情報に書き込まれているフィールド名の表記が異なっている。この例では、プロパティＩＤと呼ばれる数字表記によるフィールド名が用いられている。
【０００８】
〔データのインポート〕
ところで、異なるデータベース間で違いのデータを比較しなければならない場合がある。例えば、会社間では、自社のデータベースに他社のデータベースのデータをインポートし、自社と他社との間での制御状況を比較するなど、各種のデータ解析を行うことがある。この場合、Ａ社のデータベースＤＡに格納されているデータをＹ社のデータベースＤＹにインポートするということが行われる。
【０００９】
一般に、データのインポートは、次のような手順で行われている。先ず、Ａ社のデータベースＤＡに格納されているＣＳＶファイルＦＡをフレキシブルディスクなどの記憶媒体にコピーし、この記憶媒体をＹ社のコンピュータにセットする。Ｙ社のコンピュータは、記憶媒体に格納されているＡ社のＣＳＶファイルＦＡのデータ構造情報（インポート元のオブジェクトデータのデータ構造情報）を読み取り、このデータ構造情報が自社のデータベースＤＹに格納されているＣＳＶファイルＦＹのデータ構造情報（インポート先のオブジェクトデータのデータ構造情報）と全て一致している場合に、記憶媒体からＡ社のＣＳＶファイルＦＡを読み出して、自社のデータベースＤＹにインポートする。
【００１０】
すなわち、Ａ社のＣＳＶファイルＦＡのデータ構造情報に書き込まれているカラム毎のフィールド名を読み取り、カラムの個数が等しく、かつ全てのカラムのフィールド名がその表記（英文字表記、数字表記など）を含めて一致した場合に、Ａ社のＣＳＶファイルＦＡのインポートを行う。カラムの個数が違っていたり、フィールド名が１カラムでも一致しなければ、不完全な状態でのデータの取り込みを避けるため、インポートは行われない。不完全な状態でデータを取り込むと、インポートしてもそのインポートされたデータはインポート先のデータベースで定義された属性のデータとは違う意味を持つことになり、データ処理する際にエラーが頻発してしまう虞れがあるからである。この例では、Ａ社のＣＳＶファイルＦＡのデータ構造情報とＹ社のＣＳＶファイルＦＹのデータ構造情報とは一致するので、Ａ社のＣＳＶファイルＦＡはＹ社のデータベースＤＹにインポートされる。
【００１１】
〔Ｂ社のデータのインポート〕
Ｂ社のデータベースＤＢに格納されているデータをＹ社のデータベースＤＹにインポートする場合、Ｂ社のＣＳＶファイルＦＢのデータ構造情報に書き込まれたフィールド名は、Ｙ社と同じ英文字表記とされているものの、各カラムに割り当てられたデータの属性の並びが異なり、カラム＃１がオブジェクト名、カラム＃２がオブジェクト識別子とされている。従って、Ｙ社のコンピュータは、フィールド名が一致しない（この場合は、データの属性の並びが違う）と判断し、Ｂ社のＣＳＶファイルＦＢのＹ社のデータベースＤＹへのインポートは行わない。
【００１２】
〔Ｃ社のデータのインポート〕
また、Ｃ社のデータベースＤＣに格納されているデータをＹ社のデータベースＤＹにインポートする場合、Ｃ社のＣＳＶファイルＦＣのデータ構造情報によれば、カラムに割り当てられたデータの属性の並びはＹ社と同じであるが、データ構造情報に書き込まれているフィールド名の表記が異なる。従って、Ｙ社のコンピュータは、カラムのフィールド名が一致しない（この場合は、フィールド名の表記が違う）と判断し、Ｃ社のＣＳＶファイルＦＣのＹ社のデータベースＤＹへのインポートは行わない。
【００１３】
このように、通常は、自社のデータベースに格納されているＣＳＶファイルのデータ構造情報のフィールド名と他社のデータベースに格納されているＣＳＶファイルのデータ構造情報のフィールド名とが完全に一致しないと、データのインポートは行われない。
【００１４】
なお、上述した従来技術は、出願人が出願時点で知る限りにおいて文献公知ではない。また、出願人は出願時までに本発明に関連する先行技術文献を発見することはできなかった。よって、先行技術文献情報を開示していない。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
そこで、従来は、データをインポートする際、インポート先のオブジェクトデータのカラムの個数とインポート元のオブジェクトデータのカラムの個数とが同じとなり、かつ双方のデータ構造情報が全て一致するように、インポート先、インポート元それぞれについて検証したうえで、データをインポートするということが行われている。
【００１６】
すなわち、Ｂ社のデータをインポートする場合には、人為的に、ＣＳＶファイルＦＢにおけるカラム＃１のデータとカラム＃２のデータを入れ替え、またＣ社のデータをインポートする場合には、人為的に、ＣＳＶファイルＦＣのデータ構造情報のフィールド名を英文字表記のフィールド名に書き替えることが必要となる。この作業はオペレータにとって、かなりの負担となり、ミスも生じやすい。
【００１７】
なお、上述した作業を人為的ではなく、自動的に行わせることも可能である。しかし、自動的に行わせるためには、Ｂ社用の自動変換ツール、Ｃ社用の自動変換ツールというように、データベース毎に自動変換ツールを作成し準備しておく必要があり、この自動変換ツールの作成や管理に多大な手間と費用がかかる。また、このような自動変換ツールは、データベース間におけるフィールド名の対応が分かっていることを前提としていることから、カラムに割り当てられるデータの属性の並びやフィールド名の表記が途中で変更されたり、カタカナ文字表記、ひらがな文字表記、ハングル文字表記など、それまでに用いられていなかった新種のフィールド名が用いられた場合、即座に対応することができない。
【００１８】
本発明は、このような課題を解決するためになされたもので、その目的とするところは、１つの自動変換ツールでフレキシブルに多種類のオブジェクトデータのインポートを行うことができ、かつ、フィールドに割り当てられるデータの属性の並びやフィールド名の表記が途中で変更されたり、新種のフィールド名が用いられた場合でも、即座に対応することが可能なデータインポート方法およびデータインポート装置を提供することにある。
【課題を解決するための手段】
【００１９】
このような目的を達成するために本発明は、インポート先のデータベースの各フィールドに対し、同じ属性を有するフィールドを表す複数のフィールド名を定義したテーブルを作成する第１のステップと、インポート元のデータベースのフィールド名を読み取り、読み取ったフィールド名が前記テーブル上に存在するか否かを確認する第２のステップと、読み取ったフィールド名が前記テーブル上に存在する場合に、その読み取ったフィールド名に対応するインポート元のデータベースのフィールドと、その読み取ったフィールド名に前記テーブルを介して対応づけられるインポート先のデータベースのフィールドとを対応づける第３のステップと、インポート元のデータベースとインポート先のデータベースとのフィールド間の対応に基づいてインポート元のデータベースのデータをインポート先のデータベースにインポートする第４のステップとを設けたものである。
【００２０】
この発明では、事前に、インポート先のデータベースの各フィールドに対し、すなわちインポート先のデータベースに格納されるオブジェクトデータの各フィールドに対し、同じ属性を有するフィールドを表す複数のフィールド名（リンクキー）を定義したテーブル（マルチリンクキーテーブル）を作成しておく。例えば、インポート先のデータベースのカラム＃１に対応してオブジェクト識別子を示す英文字表記のフィールド名「object_identifire 」と数字表記のフィールド名「７５」（プロパティＩＤ）を、インポート先のデータベースのカラム＃２に対応してオブジェクト名を示す英文字表記のフィールド名「object_name 」と数字表記のフィールド名「７７」（プロパティＩＤ）を書き込んだマルチリンクキーテーブルを作成しておく。
そして、インポート元のデータベースのフィールド名を読み取り、すなわちインポート元のデータベースに格納されているオブジェクトデータのフィールド名を読み取り、この読み取ったフィールド名と一致するフィールド名がマルチリンクキーテーブルに存在するか否かを確認する。読み取ったフィールド名がマルチリンクキーテーブルに存在すれば、その読み取ったフィールド名に対応するインポート元のデータベースのフィールドと、その読み取ったフィールド名にマルチリンクキーテーブルを介して対応づけられるインポート先のデータベースのフィールドとを対応づける。例えば、読み取ったフィールド名が「object_name 」であり、マルチリンクキーテーブルに「object_name 」というフィールド名（リンクキー）があれば、インポート元のデータベースのそのフィールド名が「object_name 」とされているフィールドと、マルチリンクキーテーブルにそのフィールド名の１つを「object_name 」として定義されているインポート先のデータベースのフィールドとを対応づける。
本発明では、このインポート元のデータベースとインポート先のデータベースのフィールド間の対応づけに基づいて、インポート元のデータベースのデータをインポート先のデータベースにインポートする。
【００２１】
本発明において、マルチリンクキーテーブルに定義されたフィールド名は、追加、変更、削除などの編集を行うことができる。例えば、新種のフィールド名としてカタカナ文字表記のフィールド名が用いられるような場合、マルチリンクテーブルにカタカナ文字表記のフィールド名を追加する。
また、本発明において、インポート元のデータベースのフィールドの個数とインポート先のデータベースのフィールドの個数とは等しくなくてもよい。すなわち、インポート元のデータベースのフィールドの個数がインポート先のデータベースのフィールドの個数よりも多くてもよく、インポート元のデータベースのフィールドの個数がインポート先のデータベースのフィールドの個数よりも少なくてもよい。
本発明では、マルチリンクキーテーブルを介してインポート元のデータベースのカラムとインポート先のデータベースのカラムとを対応づけるので、インポートされたカラムのデータはインポート先のカラムのデータと同じ意味を持つことになり、インポート元の一部のカラムのデータが切り捨てられた不完全な状態であっても、インポート先の全てのカラムに対応するデータがインポートされない不完全な状態であっても、インポート先でのデータ処理は可能である。
【００２２】
なお、本発明は、上述したデータインポート方法を適用したデータインポート装置としても構成することができる。また、このデータインポート方法による処理を実現させるための制御プログラムとして提供することも可能であり、この制御プログラムを記憶させたフレキシブルディスク、ＣＤ−ＲＯＭ、メモリカードなどの記録媒体としても提供可能である。
【発明の効果】
【００２３】
本発明によれば、インポート先のデータベースの各フィールドに対し、同じ属性を有するフィールドを表す複数のフィールド名を定義したテーブル（マルチリンクキーテーブル）を利用し、インポート先のデータベースのフィールドとインポート元のデータベースのフィールドとを対応づけ、この対応づけに従ってインポート元のデータをインポート先のデータベースにインポートするようにしたので、１つの自動変換ツールでフレキシブルに多種類のオブジェクトデータのインポートを行うことができ、かつ、フィールドに割り当てられるデータの属性の並びやフィールド名の表記が途中で変更されたり、新種のフィールド名が用いられた場合でも、即座に対応することが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明を図面に基づいて詳細に説明する。図１は本発明に係るデータインポート方法の実施に用いるＹ社のビル監視システムにおける中央監視装置の一例を示すブロック構成図である。
【００２５】
同図において、１−１はＣＰＵ、１−２はＲＡＭ、１−３はＲＯＭ、１−４はハードディスクなどの記憶装置、１−５〜１−７はインターフェイス、１−８はディスプレイ、１−９はキーボード、１−１０はマウスである。
【００２６】
ＣＰＵ１−１は、インターフェイス１−５〜１−７を介して与えられる各種入力情報を得て、ＲＡＭ１−２にアクセスしながら、ＲＯＭ１−３や記憶装置１−４に格納されたプログラムに従って動作する。
【００２７】
記憶装置１−４には、本実施の形態特有のプログラムとして、データインポートプログラムが格納されている。このデータインポートプログラムは、例えばＣＤ−ＲＯＭなどの記録媒体に記録された状態で提供され、この記録媒体から読み出されて記憶装置１−４にインストールされている。また、記憶装置１−４中にデータベースＤＹが構築され、このデータベースＤＹ中にＹ社のＣＳＶファイルＦＹが作成される。このＣＳＶファイルＦＹにはＹ社のオブジェクトデータが書き込まれて行く。また、記憶装置１−４中には、本実施の形態特有のテーブルとしてマルチリンクキーテーブルＭＬＴが事前に作成され、格納されている。
【００２８】
図２（ａ）に記憶装置１−４中に格納されたマルチリンクキーテーブルＭＬＴを例示する。このマルチリンクキーテーブルＭＬＴには、Ｙ社のＣＳＶファイルＦＹにおけるオブジェクトデータの各カラム（Ｙ社のデータベースＤＹの各フィールド）に対し、同じ属性を有するカラムを表す複数のフィールド名（リンクキー）が書き込まれている。この例では、英文字表記のリンクキーと、数字表記のリンクキー（プロパティＩＤ）の２種類のリンクキーが書き込まれている。
【００２９】
例えば、データの属性としてオブジェクト識別子が割り当てられたカラム＃１に対応して、英文字表記のリンクキー「object_identifire 」と、数字表記のリンクキー「７５」（プロパティＩＤ）が書き込まれ、データの属性としてオブジェクト名が割り当てられたカラム＃２に対応して、英文字表記のリンクキー「object_name 」と、数字表記のリンクキー「７７」（プロパティＩＤ）が書き込まれている。
【００３０】
以下、図３に示すフローチャートを用いて、記憶装置１−４に格納されているデータインポートプログラムに従うＣＰＵ１−１の処理動作について説明する。ここでは、具体例として、Ｂ社のデータベースＤＢ（図８）に格納されているデータをＹ社のデータベースＤＹにインポートする場合と、Ｃ社のデータベースＤＣ（図９）に格納されているデータをＹ社のデータベースＤＹにインポートする場合について説明する。
【００３１】
なお、Ｂ社のデータをインポートする場合には、Ｂ社のデータベースＤＢに格納されているＣＳＶファイルＦＢをフレキシブルディスクなどの記憶媒体にコピーし、この記憶媒体をＹ社の中央監視装置１にセットする。同様に、Ｃ社のデータをインポートする場合には、Ｃ社のデータベースＤＣに格納されているＣＳＶファイルＦＣをフレキシブルディスクなどの記憶媒体にコピーし、この記憶媒体をＹ社の中央監視装置１にセットする。また、この実施の形態において、Ｙ社のＣＳＶファイルＦＹにおけるオブジェクトデータのカラムの個数と、Ｂ社，Ｃ社のＣＳＶファイルＦＢ、ＦＣにおけるオブジェクトデータのカラムの個数とは、等しいものとする。
【００３２】
〔Ｂ社のデータのインポート〕
ＣＰＵ１−１は、セットされた記憶媒体に格納されているＢ社のＣＳＶファイルＦＢのデータ構造情報を読み込む（ステップ３０１）。そして、ｎ＝１とし（ステップ３０２）、読み込んだＢ社のＣＳＶファイルＦＢのデータ構造情報に書き込まれているｎ番目のカラム、すなわちカラム＃１のフィールド名をキーとして読み取る（ステップ３０３）。この場合、Ｂ社のＣＳＶファイルＦＢのデータ構造情報にはカラム＃１のフィールド名として「object_name 」が書き込まれており、すなわちオブジェクト名を示す英文字表記のフィールド名が書き込まれており、この「object_name 」がカラム＃１のキーとして読み取られる（図４（ａ）参照）。
【００３３】
そして、ＣＰＵ１−１は、読み取ったキーと一致するリンクキーがマルチリンクキーテーブルＭＬＴに存在するか否かを確認し（ステップ３０４）、一致するリンクキーがマルチリンクキーテーブルＭＬＴにあれば（ステップ３０４のＹＥＳ）、その一致するリンクキーに対応するインポート先のオブジェクトデータのカラムを該当するカラムとし、この該当するカラムとキーの読み取りを行ったインポート元のオブジェクトデータのカラムを対応づける（ステップ３０５）。すなわち、インポート元のオブジェクトデータのカラムとインポート先のオブジェクトデータのカラムとの間にリンクをはる。ここで、リンクをはるとは、２つのカラム同士の対応関係をメモリ上に記憶することを言う。
【００３４】
この場合、マルチリンクキーテーブルＭＬＴには、カラム＃２に対応して「object_name 」がリンクキーとして書き込まれており（図４（ｂ）参照）、Ｂ社のＣＳＶファイルＦＢのデータ構造情報から読み取ったカラム＃１のキー「object_name 」はマルチリンクキーテーブルＭＬＴに存在する。したがって、ＣＰＵ１−１は、「object_name 」に対応するインポート先のオブジェクトデータのカラム＃２を該当するカラムとし、この該当するカラム＃２とキーの読み取りを行ったインポート元のオブジェクトデータのカラム＃１との間にリンクをはる（図４（ａ），（ｂ），（ｅ）参照：矢印(１)，(２)）。
【００３５】
そして、インポート先のオブジェクトデータのカラムの個数をＮとして読み取り、ｎがＮに達していないことを確認のうえ（ステップ３０６のＮＯ）、ｎ＝ｎ＋１＝２とし（ステップ３０７）、ステップ３０３へ戻る。これにより、ＣＰＵ１−１は、Ｂ社のＣＳＶファイルＦＢのデータ構造情報に書き込まれているｎ＝２番目のカラム、すなわちカラム＃２のフィールド名を次のキーとして読み取る（ステップ３０３）。この場合、Ｂ社のＣＳＶファイルＦＢのデータ構造情報にはカラム＃２のフィールド名として「object_identifire 」が書き込まれており、すなわちオブジェクト識別子を示す英文字表記のフィールド名が書き込まれており、この「object_identifire 」がカラム＃２のキーとして読み取られる（図４（ａ）参照）。
【００３６】
そして、ＣＰＵ１−１は、読み取ったキーと一致するリンクキーがマルチリンクキーテーブルＭＬＴに存在するか否かを確認し（ステップ３０４）、一致するリンクキーがマルチリンクキーテーブルＭＬＴにあれば（ステップ３０４のＹＥＳ）、その一致するリンクキーに対応するインポート先のオブジェクトデータのカラムを該当するカラムとし、この該当するカラムとキーの読み取りを行ったインポート元のオブジェクトデータのカラムとの間にリンクをはる（ステップ３０５）。
【００３７】
この場合、マルチリンクキーテーブルＭＬＴには、カラム＃１に対応して「object_identifire 」がリンクキーとして書き込まれており（図４（ｂ）参照）、Ｂ社のＣＳＶファイルＦＢのデータ構造情報から読み取ったカラム＃２のキー「object_identifire 」はマルチリンクキーテーブルＭＬＴに存在する。したがって、ＣＰＵ１−１は、「object_identifire 」に対応するインポート先のオブジェクトデータのカラム＃１を該当するカラムとし、この該当するカラム＃１とキーの読み取りを行ったインポート元のオブジェクトデータのカラム＃２との間にリンクをはる（図４（ａ），（ｂ），（ｅ）参照：矢印(３)，(４)）。
【００３８】
以下、同様動作を繰り返し、ｎ＝Ｎとなれば（ステップ３０６のＹＥＳ）、すなわちＢ社のＣＳＶファイルＦＢのデータ構造情報に書き込まれているＮ番目のカラムまでキーの読み取りを終了し、インポート先のオブジェクトデータのカラムとインポート元のオブジェクトデータのカラムとの間のリンクづけが完了すれば、このリンクに従ってインポート用のＢ社のＣＳＶファイルを作成する（ステップ３０８）。この例では、インポート元のオブジェクトデータのカラム＃１と＃２のデータを入れ替え、カラム＃１のデータの属性を「object_identifire 」とし、カラム＃２のデータの属性を「object_name 」とし、インポート先のオブジェクトデータとそのデータの属性の並びを一致させたＣＳＶファイルＦＢ’（図４（ｅ））を作成する。
【００３９】
そして、この作成したＣＳＶファイルＦＢ’について、必須情報が入っているか否かを確認する（ステップ３０９）。この例では、必須情報として、オブジェクト識別子、オブジェクト名、オブジェクトタイプのデータが入っているか否かを確認する。必須情報が入っていれば（ステップ３０９のＹＥＳ）、ステップ３０３でキーの読み取りを行った全てのカラムについてリンクキーがあったことを確認のうえ（ステップ３１２のＹＥＳ）、ステップ３０８で作成したインポート用のＢ社のＣＳＶファイルＦＢ’をＹ社のデータベースＤＹに格納する（ステップ３１３）。
【００４０】
この例において、Ｙ社のＣＳＶファイルＦＹのオブジェクトデータのカラムの個数とＢ社のＣＳＶファイルＦＢのオブジェクトデータのカラムの個数とは等しく、またカラムに割り当てられたデータの属性はカラム＃１とカラム＃２とが入れ替わっているのみであるので、ステップ３０９，３１２のＹＥＳに応じて直ちにステップ３１３へ進み、Ｂ社のＣＳＶファイルＦＢ’がＹ社のデータベースＤＹに格納されるものとなる。
【００４１】
〔Ｃ社のデータのインポート〕
ＣＰＵ１−１は、セットされた記憶媒体に格納されているＣ社のＣＳＶファイルＦＣのデータ構造情報を読み込む（ステップ３０１）。そして、ｎ＝１とし（ステップ３０２）、読み込んだＣ社のＣＳＶファイルＦＣのデータ構造情報に書き込まれているｎ番目のカラム、すなわちカラム＃１のフィールド名をキーとして読み取る（ステップ３０３）。この場合、Ｃ社のＣＳＶファイルＦＣのデータ構造情報にはカラム＃１のフィールド名として「７５」が書き込まれており、すなわちオブジェクト識別子を示す数字表記のフィールド名（プロパティＩＤ）が書き込まれており、この「７５」がカラム＃１のキーとして読み取られる（図４（ｃ）参照）。
【００４２】
そして、ＣＰＵ１−１は、読み取ったキーと一致するリンクキーがマルチリンクキーテーブルＭＬＴに存在するか否かを確認し（ステップ３０４）、一致するリンクキーがマルチリンクキーテーブルＭＬＴにあれば（ステップ３０４のＹＥＳ）、その一致するリンクキーに対応するインポート先のオブジェクトデータのカラムを該当するカラムとし、この該当するカラムとキーの読み取りを行ったインポート元のオブジェクトデータのカラムとの間にリンクをはる（ステップ３０５）。
【００４３】
この場合、マルチリンクキーテーブルＭＬＴには、カラム＃１に対応して「７５」がリンクキーとして書き込まれており（図４（ｂ）参照）、Ｃ社のＣＳＶファイルＦＣのデータ構造情報から読み取ったカラム＃１のキー「７５」はマルチリンクキーテーブルＭＬＴに存在する。したがって、ＣＰＵ１−１は、「７５」に対応するインポート先のオブジェクトデータのカラム＃１を該当するカラムとし、この該当するカラム＃１とキーの読み取りを行ったインポート元のオブジェクトデータのカラム＃１との間にリンクをはる（図４（ｃ），（ｂ），（ｆ）参照：矢印(５)，(６)）。
【００４４】
そして、インポート先のオブジェクトデータのカラムの個数をＮとして読み取り、ｎがＮに達していないことを確認のうえ（ステップ３０６のＮＯ）、ｎ＝ｎ＋１＝２とし（ステップ３０７）、ステップ３０３へ戻る。これにより、ＣＰＵ１−１は、Ｃ社のＣＳＶファイルＦＣのデータ構造情報に書き込まれているｎ＝２番目のカラム、すなわちカラム＃２のフィールド名を次のキーとして読み取る（ステップ３０３）。この場合、Ｃ社のＣＳＶファイルＦＣのデータ構造情報にはカラム＃２のフィールド名として「７７」が書き込まれており、すなわちオブジェクト名を示す数字表記のフィールド名（プロパティＩＤ）が書き込まれており、この「７７」がカラム＃２のキーとして読み取られる（図４（ｃ）参照）。
【００４５】
そして、ＣＰＵ１−１は、読み取ったキーと一致するリンクキーがマルチリンクキーテーブルＭＬＴに存在するか否かを確認し（ステップ３０４）、一致するリンクキーがマルチリンクキーテーブルＭＬＴにあれば（ステップ３０４のＹＥＳ）、その一致するリンクキーに対応するインポート先のオブジェクトデータのカラムを該当するカラムとし、この該当するカラムとキーの読み取りを行ったインポート元のオブジェクトデータのカラムとの間にリンクをはる（ステップ３０５）。
【００４６】
この場合、マルチリンクキーテーブルＭＬＴには、カラム＃２に対応して「７７」がリンクキーとして書き込まれており（図４（ｂ）参照）、Ｃ社のＣＳＶファイルＦＣデータ構造情報から読み取ったカラム＃２のキー「７７」はマルチリンクキーテーブルＭＬＴに存在する。したがって、ＣＰＵ１−１は、「７７」に対応するインポート先のオブジェクトデータのカラム＃２を該当するカラムとし、この該当するカラム＃２とキーの読み取りを行ったインポート元のオブジェクトデータのカラム＃２との間にリンクをはる（図４（ｃ），（ｂ），（ｆ）参照：矢印(７)，(８)）。
【００４７】
以下、同様動作を繰り返し、ｎ＝Ｎとなれば（ステップ３０６のＹＥＳ）、すなわちＣ社のＣＳＶファイルＦＣのデータ構造情報に書き込まれているＮ番目のカラムまでキーの読み取りを終了し、インポート先のオブジェクトデータのカラムとインポート元のオブジェクトデータのカラムとの間のリンクづけが完了すれば、このリンクに従ってインポート用のＣ社のＣＳＶファイルを作成する（ステップ３０８）。この例では、カラム＃１のデータの属性を「object_identifire 」とみなし、カラム＃２のデータの属性を「object_name 」とみなし、Ｂ社の時のようなインポート元のオブジェクトデータのカラム＃１と＃２のデータの入れ替えは行わず、そのままの並びのＣＳＶファイルＦＣ’（図４（ｆ））を作成する。
【００４８】
そして、この作成したＣＳＶファイルＦＣ’について、必須情報（オブジェクト識別子、オブジェクト名、オブジェクトタイプ）が入っているか否かを確認する（ステップ３０９）。必須情報が入っていれば（ステップ３０９のＹＥＳ）、ステップ３０３でキーの読み取りを行った全てのカラムについてリンクキーがあったことを確認のうえ（ステップ３１２のＹＥＳ）、ステップ３０８で作成したインポート用のＣ社のＣＳＶファイルＦＣ’をＹ社のデータベースＤＹに格納する（ステップ３１３）。
【００４９】
この例において、Ｙ社のＣＳＶファイルＦＹのオブジェクトデータのカラムの個数とＣ社のＣＳＶファイルＦＣのオブジェクトデータのカラムの個数とは等しく、またカラムに割り当てられたデータの属性は全て同じであるので、ステップ３０９，３１２のＹＥＳに応じて直ちにステップ３１３へ進み、Ｃ社のＣＳＶファイルＦＣ’がＹ社のデータベースＤＹに格納されるものとなる。
【００５０】
〔データの属性の並びの変更〕
途中で、Ｂ社のＣＳＶファイルＦＢについて、そのオブジェクトデータのカラムに割り当てるデータの属性の並びが変更されたとする。例えば、カラム＃１のデータの属性がオブジェクト識別子とされ、カラム＃２のデータの属性がオブジェクト名とされたとする。この場合、Ｂ社のＣＳＶファイルＦＢのデータ構造情報は、カラム＃１が「object_identifire 」となり、カラム＃２が「object_name 」となり、マルチリンクテーブルＭＬＴによって、インポート先のオブジェクトデータのカラム＃１とインポート元のオブジェクトデータのカラム＃１との間にリンクがはられ、インポート先のオブジェクトデータのカラム＃２とインポート元のオブジェクトデータのカラム＃２との間にリンクがはられる。これにより、カラムに割り当てるデータの属性の並びが変更される前と同様にして、インポート先のオブジェクトデータとそのデータの属性の並びが一致するＣＳＶファイルＦＢ’が作成され、Ｙ社のデータベースＤＹにインポートされるものとなる。
【００５１】
〔フィールド名の表記の変更〕
途中で、Ｂ社のＣＳＶファイルＦＢについて、そのデータ構造情報に書き込まれるフィールド名の表記が変更されたとする。例えば、英文字表記のフィールド名から数字表記のフィールド名（プロパティＩＤ）に変更されたとする。この場合、Ｂ社のＣＳＶファイルＦＢのデータ構造情報は、カラム＃１が「７７」となり、カラム＃２が「７５」となり、マルチリンクテーブルＭＬＴによって、インポート先のオブジェクトデータのカラム＃１とインポート元のオブジェクトデータのカラム＃２との間にリンクがはられ、インポート先のオブジェクトデータのカラム＃２とインポート元のオブジェクトデータのカラム＃１との間にリンクがはられる。これにより、データ構造情報に書き込まれるフィールド名の表記が変更される前と同様にして、インポート先のオブジェクトデータとそのデータの属性の並びが一致するＣＳＶファイルＦＢ’が作成され、Ｙ社のデータベースＤＹにインポートされるものとなる。
【００５２】
〔新種のフィールド名〕
図５にＤ社のデータベースＤＤに格納されたＣＳＶファイルＦＤの一例を示す。このＤ社のＣＳＶファイルＦＤにおいて、カラムに割り当てられたデータの属性の並びはＹ社と同じであるが、データ構造情報に書き込まれているフィールド名の表記が異なり、カタカナ文字表記のフィールド名とされている。このカタカナ文字表記のフィールド名は、図２（ａ）に示したマルチリンクキーテーブルＭＬＴには登録されていない新種のフィールド名である。この場合、マルチリンクキーテーブルＭＬＴに書き込まれているリンクキーに対し、図２（ｂ）に示すように、カタカナ文字表記のリンクキーを追加する。
【００５３】
これにより、数字表記のフィールド名（プロパティＩＤ）であった場合と同様にして、インポート元のオブジェクトデータのカラムとインポート先のオブジェクトデータのカラムとの間にリンクがはられ、このリンクに従ってＤ社のＣＳＶファイルＦＤのインポートが行われるものとなる。この場合、マルチリンクキーテーブルＭＬＴにカタカナ文字表記のリンクキーを追加するのみでよいので、素早い対応が可能となる。
【００５４】
〔インポート元のオブジェクトデータのカラムの個数がインポート先のオブジェクトデータのカラムの個数よりも多い場合〕
上述した実施の形態では、インポート元のオブジェクトデータのカラムの個数とインポート先のオブジェクトデータのカラムの個数とが等しいことを前提としたが、インポート元のオブジェクトデータのカラムの個数はインポート先のオブジェクトデータのカラムの個数よりも多くてもよい。この場合も、上述と同様にして、マルチリンクキーテーブルＭＬＴを利用して、インポート元のオブジェクトデータのカラムとインポート先のオブジェクトデータのカラムとの間にリンクがはられる。
【００５５】
但し、この場合、インポート元のオブジェクトデータのカラムの個数がインポート先のオブジェクトデータのカラムの個数よりも多いので、インポート元のＣＳＶファイルのデータ構造情報のキーの読み取り数がｎ＝Ｎとなった時点で（ステップ３０６のＹＥＳ）、データ構造情報からのキーの読み取りが終了し、インポート用のＣＳＶファイルの作成が行われる（ステップ３０８）。この場合、インポート元のオブジェクトデータのＮを超えるカラムに対してはインポート先のオブジェクトデータのカラムとの間にリンクがはられず、破棄されるものとなる。すなわち、リンクがはられないカラムのデータを破棄して、インポート用のＣＳＶファイルが作成される。
【００５６】
そして、この作成されたＣＳＶファイルのオブジェクトデータに必須情報（オブジェクト識別子、オブジェクト名、オブジェクトタイプ）があり（ステップ３０９のＹＥＳ）、かつステップ３０３でキーの読み取りを行った全てのカラムについてリンクキーがあった場合に（ステップ３１２のＹＥＳ）、そのインポート用のＣＳＶファイルがＹ社のデータベースＤＹに格納される（ステップ３１３）。この場合、インポートされたカラムのデータはインポート先のカラムのデータと同じ意味を持つので、インポート元の一部のカラムのデータが切り捨てられた不完全な状態であっても、インポート先でのデータ処理は可能である。
【００５７】
なお、作成されたＣＳＶファイルのオブジェクトデータに必須情報がなかった場合（ステップ３０９のＹＥＳ）、ＣＰＵ１−１は、エラー情報の表示を行い（ステップ３１０）、インポート用のＣＳＶファイルの修正やマルチリンクキーテーブルＭＬＴの編集（変更、追加、削除）をオペレータに促す（ステップ３１１）。また、ステップ３０３でキーの読み取りを行ったカラムについて１つでもリンクキーがなかった場合（ステップ３１２のＮＯ）、インポート用のＣＳＶファイルの修正やマルチリンクキーテーブルＭＬＴの編集（変更、追加、削除）をオペレータに促す（ステップ３１１）。
【００５８】
〔インポート元のオブジェクトデータのカラムの個数がインポート先のオブジェクトデータのカラムの個数よりも少ない場合〕
インポート元のオブジェクトデータのカラムの個数はインポート先のオブジェクトデータのカラムの個数よりも少なくてもよい。この場合も、上述と同様にして、マルチリンクキーテーブルＭＬＴを利用して、インポート元のオブジェクトデータのカラムとインポート先のオブジェクトデータのカラムとの間にリンクがはられる。
【００５９】
但し、この場合、インポート元のオブジェクトデータのカラムの個数がインポート先のオブジェクトデータのカラムの個数よりも少ないので、ｎ＝Ｎとなる前に、インポート元のＣＳＶファイルのデータ構造情報から読み取るべきキーがなくなる。読み取るべきキーがなくなると、ｎ＝Ｎとなるまでカウント動作が続けられ、ｎ＝Ｎとなった時点で（ステップ３０６のＹＥＳ）、インポート用のＣＳＶファイルの作成が行われる（ステップ３０８）。
【００６０】
そして、この作成されたＣＳＶファイルのオブジェクトデータに必須情報（オブジェクト識別子、オブジェクト名、オブジェクトタイプ）があり（ステップ３０９のＹＥＳ）、かつステップ３０３でキーの読み取りを行った全てのカラムについてリンクキーがあった場合に（ステップ３１２のＹＥＳ）、そのインポート用のＣＳＶファイルがＹ社のデータベースＤＹに格納される（ステップ３１３）。この場合、インポートされたカラムのデータはインポート先のカラムのデータと同じ意味を持つので、インポート先の全てのカラムに対応するデータがインポートされない不完全な状態であっても、インポート先でのデータ処理は可能である。
【００６１】
なお、作成されたＣＳＶファイルのオブジェクトデータに必須情報がなかった場合（ステップ３０９のＹＥＳ）、ＣＰＵ１−１は、エラー情報の表示を行い（ステップ３１０）、インポート用のＣＳＶファイルの修正やマルチリンクキーテーブルＭＬＴの編集（変更、追加、削除）をオペレータに促す（ステップ３１１）。また、ステップ３０３でキーの読み取りを行ったカラムについて１つでもリンクキーがなかった場合（ステップ３１２のＮＯ）、インポート用のＣＳＶファイルの修正やマルチリンクキーテーブルＭＬＴの編集（変更、追加、削除）をオペレータに促す（ステップ３１１）。
【００６２】
以上のようにして、本実施の形態では、１つの自動変換ツールでフレキシブルに多種類のオブジェクトデータのインポートを行うことができる。また、カラムに割り当てられるデータの属性の並びやフィールド名の表記が途中で変更されたり、新種のフィールド名が用いられた場合でも、動的にマルチリンクキーテーブルＭＴＬを変化させて、すなわちマルチリンクキーテーブルＭＴＬ中のリンクキーを編集（追加、変更、削除）して、即座に対応することが可能となる。したがって、会社毎に自動変換ツールを作成し準備しておく必要がななく、自動変換ツールの作成や管理に多大な手間と費用がかかることもない。また、インポート元のオブジェクトデータのカラムの個数が等しい場合に限らず、多い場合や少ない場合でもデータのインポートを行うことが可能であり、データの並び、個数などデータフォーマットに依存せず、効率よくデータをインポートすることができるようになる。
【００６３】
なお、上述した実施の形態では、Ｙ社のデータベースＤＹへデータをインポートする例で説明したが、Ａ社、Ｂ社、Ｃ社、Ｄ社においても同様にして他社のデータをインポートすることが可能である。また、会社間ではなく、部門間などでも同様にして、データのインポートを行うことが可能である。
【００６４】
また、上述した実施の形態では、ＣＳＶファイルをフレキシブルディスクなどの記憶媒体にコピーし、この記憶媒体をＹ社の中央監視装置１にセットするようにしたが、通信回線を介してダウンロードするようにしてもよい。
また、上述した実施の形態では、新種のフィールド名をカタカナ文字表記のフィールド名としたが、ひらがな文字表記、ハングル文字表記など、多種多様の表記のフィールド名が考えられる。
【図面の簡単な説明】
【００６５】
【図１】本発明に係るデータインポート方法の実施に用いるＹ社のビル監視システムにおける中央監視装置の一例を示すブロック構成図である。
【図２】この中央監視装置の記憶装置中に事前に作成され格納されたマルチリンクキーテーブルを例示する図である。
【図３】この中央監視装置のＣＰＵが行うデータインポートプログラムに従う処理動作を示すフローチャートである。
【図４】マルチリンクキーテーブルを利用したＹ社のデータベースへのＢ社のデータのインポート過程およびＣ社のデータのインポート過程を説明する図である。
【図５】Ｄ社のデータベースに格納されたＣＳＶファイルの一例を示す図である。
【図６】Ｙ社のデータベースに格納されたＣＳＶファイルの一例を示す図である。
【図７】Ａ社のデータベースに格納されたＣＳＶファイルの一例を示す図である。
【図８】Ｂ社のデータベースに格納されたＣＳＶファイルの一例を示す図である。
【図９】Ｃ社のデータベースに格納されたＣＳＶファイルの一例を示す図である。
【符号の説明】
【００６６】
１…中央監視装置、１−１…ＣＰＵ、１−２…ＲＡＭ、１−３…ＲＯＭ、１−４…記憶装置、１−５〜１−７…インターフェイス、１−８…ディスプレイ、１−９…キーボード、１−１０…マウス、ＭＬＴ…マルチリンクキーテーブル、ＦＹ，ＦＡ，ＦＢ，ＦＣ…ＣＳＶファイル、ＤＹ，ＤＡ，ＤＢ，ＤＣ，ＤＤ…データベース、ＦＢ’，ＦＣ’…インポート用のＣＳＶファイル。
【図１】
2006268661.tif 000003
【図２】
2006268661.tif 000004
【図３】
2006268661.tif 000005
【図４】
2006268661.tif 000006
【図５】
2006268661.tif 000007
【図６】
2006268661.tif 000008
【図７】
2006268661.tif 000009
【図８】
2006268661.tif 000010
【図９】
2006268661.tif 000011