(57)【要約】      （修正有）【課題】関係データをあるリレーショナルデータベースから別のデータベースへとトランスポートする方法提供をする。【解決手段】トランスポートされるデータは、データベース全体のデータのサブセットであることができ、このデータのルートと他のデータエンティティとの間の関係は、ターゲットデータベースでのそれらの再構築を可能とするような態様で維持される。この維持効果それ自体は、構成設定によってさらに指定され、衝突を伴わずにして、また、元の識別子の維持をも要求せずにして、新たなデータ識別子を再作成することができる。【選択図】図９
2018014126.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ可読メモリ内に格納された一連の命令を備えるデータトランスポータコン
ピュータプログラムであって、前記命令は、
エクスポートインタフェースモジュールであって、ソースクライアントプログラムとイ
ンタフェースして、関係データのサブセットについてのソースリレーショナルデータベー
スからターゲットリレーショナルデータベースへのエクスポートの開始を前記ソースクラ
イアントプログラムができるように構成された、エクスポートインタフェースモジュール
と、
前記エクスポートインタフェースモジュールと結合されたソースデータベース接続モジ
ュールであって、前記ソースクライアントプログラムと関連づけられた前記ソースリレー
ショナルデータベースへと接続して、格納された前記関係データにアクセスするように構
成された、ソースデータベース接続モジュールと、
前記ソースデータベース接続モジュールと結合されたエクスポートサブシステムであっ
て、エクスポートされるべきデータを表すデータファイルを生成するように構成された、
エクスポートサブシステムと、
前記エクスポートサブシステムと結合されたトランスポートＩ／Ｏサブシステムであっ
て、前記ソースクライアントプログラムとインタフェースして、前記データファイルを前
記ソースクライアントプログラムに提供するように構成された、トランスポートＩ／Ｏサ
ブシステムと、
前記トランスポートＩ／Ｏサブシステムと結合されたインポートインタフェースモジュ
ールであって、ターゲットクライアントプログラムとインタフェースするように構成され
た、インポートインタフェースモジュールと、
前記インポートインタフェースモジュールと結合されたターゲットデータベース接続モ
ジュールであって、前記ターゲットクライアントプログラムと関連付けられたターゲット
リレーショナルデータベースへと接続して、前記データファイル内に格納された前記デー
タに基づいて関係データを格納するように構成された、ターゲットデータベース接続モジ
ュール
とを定義する、データトランスポータコンピュータプログラム。
【請求項２】
前記トランスポートＩ／Ｏサブシステムによって生成された前記データファイルでは各
行識別子がポータブルな代替行識別子で置換されて、前記元の行識別子が前記ターゲット
クライアントプログラム又は前記ターゲットリレーショナルデータベースに開示されるこ
とを回避する、請求項１に記載のデータトランスポータコンピュータプログラム
【請求項３】
前記エクスポートサブシステムは、前記ソースクライアントプログラムによって無視す
べきものと指定されたテーブル内に格納されたデータを除いて、前記エクスポートすべき
データによって参照されるデータを、自動的に前記データファイルに含めるように構成さ
れている、請求項１に記載のデータトランスポータコンピュータプログラム。
【請求項４】
前記エクスポートサブシステムは、テーブルＩＤ、行ＩＤ及び他のテーブルへの参照を
、前記データファイル内のセキュアかつ一時的かつポータブルな識別子で置換するように
構成されている、請求項３に記載のデータトランスポータコンピュータプログラム。
【請求項５】
前記ターゲットクライアントプログラムは前記インポートインタフェースへのアクセス
を有しており、また、前記ターゲットクライアントプログラムは、前記ターゲットデータ
ベースにて行われる前記エクスポートデータの再構築に関しての選択されたパラメータを
特定するように構成されている、請求項１に記載のデータトランスポータコンピュータプ
ログラム。
【請求項６】
前記ターゲットクライアントプログラムによって特定される前記パラメータは、ターゲ
ットテーブル名と後方マッチングカラムのためのグラフティングルートテーブルとを含む
、請求項５に記載のデータトランスポータコンピュータプログラム。
【請求項７】
前記ターゲットデータベース接続は前記ターゲットデータベースへの接続を確立し、前
記インポートサブシステムは、前記トランスポートＩ／Ｏサブシステムを介して作成され
た前記データファイルの内部表現を用いて、前記データを前記ターゲットデータベース内
へと再構築的にインポートして、前記ターゲットクライアントにグラフト点情報を返す、
請求項１に記載のデータトランスポータコンピュータプログラム。
【請求項８】
コンピュータ実施方法であって、該方法は、
ソースＲＤＢＭＳ内のデータテーブルにアクセスするステップと、
前記テーブルの行を選択するステップと、
前記行をエクスポートのためにエンコードするステップであって、
前記行の依存データを決定するステップと、
ポータブルな代替行識別子を生成するステップと、
前記行データと前記行で参照された任意の依存データとを収集して、除外のため指定
されたテーブル内に格納された依存データを除いて、エクスポートデータを形成するステ
ップ
とを含む、エンコードするステップと、
元の識別子の代わりに前記ポータブルな代替行識別子を活用して、前記エクスポートデ
ータを再構築可能なシーケンスに配列するステップと、
前記シーケンスに基づいて前記エクスポートデータをターゲットデータベース内へとイ
ンポートするステップ
とを含む、方法。
【請求項９】
前記再構築可能なシーケンスは、前記依存データを、前記依存データを参照するデータ
の前に配置することを伴う、請求項８に記載の方法。
【請求項１０】
前記行をエクスポートのためにエンコードするステップは、
前記エクスポートデータ内の前記元の識別子に対応するポータブルな識別子についての
一意なセキュアリスティングを生成するステップと、
ソースクライアントから、初期行識別子とエクスポートすべきテーブルとを含むパラメ
ータを、受信するステップと、
前記初期行をエクスポートのためにエンコードするステップと、
エクスポートを要する行がなくなるまで、即ち参照される側のもの及び参照する側のも
のがボトムアウトするまで、追加の行をエクスポートすることを反復するステップ、
エクスポートされた前記行を、順次的再構築のためのシーケンスによるリストに配列す
るステップと、
前記行のリストを、外部格納フォーマットに変換するステップ
とを含む、請求項８に記載の方法。
【請求項１１】
各行をエンコードするステップは、
エクスポートパラメータがそれに対応するテーブルを無視すべきと示す場合にその行の
エクスポートを省略するステップと、
一意であり、かつ、前記テーブル及び前記元の識別子へとトレース可能な、エンコード
された行識別子を作成するステップと、
前記エンコードされた行識別子が用いられる場合には前記行のエクスポートを省略する
ステップと、
前記エクスポートする行のカラムデータを、前記ソースデータベースからフェッチする
ステップと、
前記カラムデータを処理して内部表現にするステップと、
前記エクスポートする行に向かう関係及び前記エクスポートする行から発する関係を決
定するステップと、
前記エクスポートする行によって参照された行の各々を分析するステップであって、各
参照された行に関して−−
（ＩＦ−）参照された行が無視されたテーブルに属する場合、インポート時における後
の検出のために前記内部表現内にダミー値を格納し、
（ＥＬＳＥ−）その余の場合、前記行をエクスポートし、及び、対応する前記エンコー
ドされた行識別子を前記内部表現内に格納する、ステップと、
前記エクスポートする行を参照する行の各々を分析するステップと、
そのような参照を行う行の各々をエクスポートするステップ
とを含む、請求項１０に記載の方法。
【請求項１２】
エクスポートする依存データを決定するステップをさらに含む請求項１１に記載の方法
であって、各エクスポートする行に関して前記決定するステップは、
前記エクスポートする行のテーブル名をパラメータとして受信するステップと、
前記ソースデータベースのメタデータにアクセスして前記エクスポートする行のテーブ
ルによって参照される全てのテーブルのカラムを検索するステップと、
前記参照されたテーブルカラムを分析して、（ＩＦ）前記テーブルが前記エクスポート
する行のそれと同じである場合には前記カラムを省略して、（ＥＬＳＥ）その余の場合に
は前記依存データのうちに前記カラムを含める、ステップ
とを含む、請求項１１に記載の方法。
【請求項１３】
前記ソースデータベースのメタデータにアクセスして、前記エクスポートする行のテー
ブルを参照する全てのテーブルの選択されたカラムを検索するステップと、
各参照するテーブルカラムについて、前記参照するテーブルカラムを分析して、（ＩＦ
）前記テーブルが前記エクスポートする行のそれと同じである場合には前記カラムを省略
して、（ＥＬＳＥ）その余の場合には前記依存データのうちに前記カラムを含める、ステ
ップ
とをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記ポータブルな代替行識別子を生成するステップは、
エンコーディングキーを生成するステップと、
エンコーディングキーを、エクスポート段階に際しての全ての行のエクスポート中にお
いては、持続的な状態に維持するステップと、
セキュリティのために前記エンコーディングキーを前記エクスポートされたファイルか
ら除外するステップ
とを含む、請求項８に記載の方法
【請求項１５】
前記エンコーディングキーは疑似乱数生成器を用いて生成される、請求項１３に記載の
方法。
【請求項１６】
前記エンコーディングキーは疑似乱数生成器と現在タイムスタンプとを用いて生成され
る、請求項１３に記載の方法。
【請求項１７】
行をエクスポートのためにエンコードするステップは、
前記エクスポート行のテーブル名、エンコーディングキー及び行識別子を組み合わせて
、テキスト文字列を形成するステップと、
前記テキスト文字列をメッセージダイジェストプロセスへの入力として活用してバイナ
リメッセージダイジェストを作成するステップと、
前記キーの生成を完了するためにバイナリからテキストへとエンコードするエンコーダ
を用いて、前記バイナリメッセージダイジェストをＡＳＣＩＩテキスト形式に変換するス
テップ
とを含む、請求項１３に記載の方法。
【請求項１８】
前記ターゲットデータベース内で前記エンコードされたデータの行を再構築するステッ
プをさらに含む、請求項１２に記載の方法。
【請求項１９】
関係データのトランスポートのための、コンピュータ可読メモリ内に格納されるデータ
テーブル構造であって、該構造は、
複数のデータ行
を備え、各データ行は
エンコードされた行識別子と、
テーブル名と、
カラム名と関連づけられたカラム値とを含む少なくとも１つのデータカラムと、
カラム名と関連づけられたカラムタイプとを含む少なくとも１つのデータカラムタイプ
とを含む、データテーブル構造。
【請求項２０】
カラム名とエンコードされた行識別子とを含む少なくとも１つの参照カラムをさらに備
える、請求項１９に記載のデータテーブル構造。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、２０１４年５月２０に出願された米国特許出願第１４／２８２，３８７号の優
先権を主張し、該出願の全体が参照により取り込まれる。
【０００２】
著作権表示
(c) 2015 IFWIZARD CORPORTION. 本特許文献の開示の一部は著作権保護を受ける客体を
含む。著作権者は、特許商標庁のファイル又は記録において表れる態様での、特許文献又
は特許開示の、何人による、複写的複製について何ら異議を持たないが、その余の場合に
関してはあらゆる著作権を全て留保している、37 CFR § 1.71 (d)。
【背景技術】
【０００３】
データベース管理システム（ＤＢＭＳ、database management system）は、集中型の構
造化情報サービスをクライアントプログラムに提供する。ＤＢＭＳ内のデータは、データ
モデルと称される特定の基本的格納パターンに準拠して、定義、格納、及び、検索される
。例えば、階層データモデルを用いるＤＢＭＳでは、内部のデータエンティティはツリー
状の構造を介して関係づけられのであり、各エンティティは、単一の「親」エンティティ
と任意の個数の「子」エンティティとを有する（「ルート」エンティティの場合は親を持
たない）。この階層データモデルは、人気のあるＸＭＬデータフォーマット及びＸＭＬデ
ータベースに用いられている。
【０００４】
複雑なコンピュータ化情報に関しての最も一般的なＤＢＭＳデータモデルは関係データ
モデルであり、これはリレーショナルデータベース管理システム（ＲＤＢＭＳ、relation
al database management system）で用いられている。関係データは、２次元的テーブル
の集合として理解することができ、行（ロウ）がデータエンティティを表し、縦列（カラ
ム）がエンティティ特性を表している。典型的には、行は、各々の行又はエンティティを
一意的に識別するキーカラムを有している。これらのキーは、殆どの場合は正の整数であ
り、後に挿入される行毎にインクリメントされるものである。テーブルの行はそれらのキ
ーのみで識別されることができるため、テーブルＢからのキーを有するカラムを含めるこ
とによって、テーブルＡ内の行をテーブルＢ内の行に「関係づける」ことができる。
【０００５】
これらの行識別子をテーブル間関係に用いることによって、行の行識別子自体を除く全
てのデータについて、複製を行うことを要せず自己のカノニカルテーブル内のみに格納す
ることができる。例えば、顧客についてのテーブルは、住所情報を含み得る。例えば販売
注文リスト等においてある顧客に言及する場合、上述したように顧客行識別子のみが必要
とされ、販売注文の顧客部分内において顧客住所を複製することを要さない。これらの正
規化テーブル間関係の重要な利点の１つとしては、顧客テーブル内の情報を変えるだけで
顧客住所を変更することができる、という点が挙げられる。なぜならば、維持対象となる
（即ち、販売注文内での）顧客住所の重複的含有が生じていないからである。
【０００６】
典型的には、行識別子は、１，２，３，．．．等の単純にインクリメントする正数とし
てＲＤＢＭＳによって自動的に生成される。これらの識別子シーケンスジェネレータがテ
ーブル自体とは異なるものであるため、仮に２つのデータベースが同じタイプのテーブル
とカラムとを共有する場合、同一の内容を有していても２つのデータベース間の行識別子
が異なり得る。これらの差異は、テーブルの行のオーダ、ナンバ及び削除履歴に起因し得
る。例えば、２つのデータベースにおいて、３人の顧客が逆の順序で追加された場合、デ
ータベース間では、おそらくゼロ個の、又は最大で１個の、行が同じ行識別子を有してい
ることになろう。
【０００７】
ＲＤＢＭＳは、削減された記憶サイズと向上したデータ一貫性と一部の操作に関しては
より高いクエリパフォーマンスとを利点として提供するが、そのデータモデルは行識別子
キーの正確かつ一貫した使用方法に極度に依存している。データ重複が削減又は排除さえ
されているため、行識別子を介して正しい行が関係づけられていない場合、含有される重
複データの確認によって正しい行を回復する方策がないことになる。例えば、販売注文は
顧客行識別子のみを含み、クロスレファレンシングを可能とする追加的な顧客カラムたる
顧客の氏名や住所を有さないものとされる。さらに、間違った行識別子は、別のテーブル
内に存在しない行を参照するだけではなく、実在するが正しくない行を参照する可能性が
高い。
【０００８】
典型的には、ＤＢＭＳは単一の場所にある単一のサーバ上で実行されるが、より複雑な
亜種は幾つかの場所に透過的に分散されている場合がある。ＲＤＢＭＳは２つの主要部、
即ち（１）データ構造を記述及び定義するデータテーブル、及び、（２）そのように記述
されたモデルに準拠するデータ行、を含むため、同様にして、サーバは定義をもたらすコ
ンテナであると共にそうして内包される内容であるものと看做されることができる。全く
別個のデータベース間（即ち、テーブルと共にデータまでもが別個のものである場合）で
の相互作用は可能であるが、複数のＲＤＢＭＳサーバが同じテーブル定義を伴って運用に
供せられている場合が幾つかあり得るのであり、この場合これらが格納しているデータは
同じものであるか異なるものであることができる。これらの同一定義シナリオでは、デー
タベースサーバ間でデータをトランスポートする必要があり得る。
【０００９】
このようなシナリオの１つとしては、多数のデータベースサーバを通じて多数のソフト
ウェアインスタレーションを表象する場合が挙げられる。例えば、複数の場所にある店舗
を考える。全店舗に同じ販売トラッキングソフトウェアがインストールされているが、各
店舗が自前のデータベースサーバを有して自己の現地売上データをトラッキングしている
場合があり得る。このケースでは、顧客データ等の一部のデータと、注文履歴等の関連レ
コードとを、あるインスタレーションから別のインスタレーションのサーバへと、移転し
たい場合がある。別のシナリオは、継続的な可用性とセキュリティを実現するために、場
合によっては異なる地域に配置された複数の異なるデータベースサーバ内に同一データを
複製することを伴う。第３のシナリオでは、１つのデータベースサーバ内のデータをテン
プレートとして用いて別のサーバに対して新規データ挿入を行う。このシナリオの亜種と
しては、元のデータベースサーバ内でそのようなテンプレートを用いる場合が考えられる
。
【００１０】
上述したリレーショナルデータベースに関しての詳細を前提とすると、タビュラー的に
同一なデータをＲＤＢＭＳ間で及びＲＤＢＭＳ内でトランスポートするに際しては、次の
４つの主たる困難性が見出されることになる。
（１）  既存の識別子との衝突及び関係の不足によって、トランスポートされたデータ行
識別子を新たなデータベースで安全に使用することができないこと。
（２）  トランスポートされた行が必要とされている関係であるか、該行がトランスポー
トされるべき追加的な他の行と関係づけられる必要があるかもしれないこと。例えば、製
品行をトランスポートするには、供給者行（製品へ向かっての関係）又はサポート履歴行
（製品から派生する関係）が必要となり得る。
（３）  以前の行識別子を安全に使用することができないため、トランスポートの一環と
して新たな行識別子の割り当てを行わなければならないこと。
（４）  これらの新たなかつ異なる行識別子を与えられると、プライマリ行と共にトラン
スポートされた全ての必要な関係データに対して、新たな行識別子を用いて再度の関係づ
けを行わなければならないこと。
【００１１】
これらの困難性故に、リレーショナルデータベース間でのトランスポートは、一般に次
の３つのシナリオに限定されており、これらはいずれも運用では限定的なものである。即
ち、３つの限定的シナリオは次のとおりである。
（１）  データベースを完全に複製或いは「クローン」して第２のデータベースを得るこ
とができる。該プロセスは、破壊的なプロセスであり、第２のデータベース内に存在する
データを全て完全に消去することを要する。一般的には、データベースをバックアップ及
びリストアする場合に該手法を用いる。
（２）  必要とされる具体的な行を収集し、それらを第２のデータベース内に挿入する様
に構成されたカスタムプログラムを作成することができる。この手法はデータの部分的ト
ランスポートを可能とするが、データのセクション、データベース、及び意図された用途
に関して完全に特化したものである。なぜならば、トランスポートするデータのセクショ
ン毎に固有のプログラムが必要となり、また、テーブル定義又はインテンションに対する
変更に合致するように同時的に保守していかなければならないからである。
（３）  特定のケースでは、データをＣＳＶ形式等の中間フォーマットへエクスポートし
てから、再インポートすることができる。一般的には中間フォーマットが関係及びディペ
ンデンシーに関しての完全な表現方法を欠いているため、このシナリオは、関係元とも関
係先ともならない行等が登場する極めて単純なデータトランスポートの場合を除いて、限
定的な効用しか持たない。
【００１２】
これらのシナリオでは具体性、適用用途、又は適用範囲に関しての相当な制約が示され
るため、関係データのトランスポート、とりわけ、ＲＤＢＭＳの相互関連する部分的サブ
セットに関するトランスポートに関しての一般的ソリューションは、現在は存在していな
いといえる。
【発明の概要】
【００１３】
一部の特徴やコンテキストに関しての基礎的な理解を可能とするために、以下には本願
開示に関しての概要が示されている。この概要は、発明の要となる要素／重要な要素を特
定したり、本願発明の範囲を画定したりすることを意図はしていない。この概要の唯一の
目的は、より詳細な後述の詳細な説明との関係で序論としての役割を果たすことであり、
そのために本願開示の幾つかの概念を単純化した態様で提示する。
【００１４】
本願開示によれば、リレーショナルデータベース内でデータをトランスポートする一般
的方法が提供される。トランスポートされるべきデータは、任意の行識別子を有する任意
のテーブル内の任意の行であることができる。トランスポートされた行に依存している他
の全てのデータ及びトランスポートされた行が依存する他の全てのデータは、自動的に決
定されて所与の行と共にトランスポートされる。方法は、転送において無視されるべきテ
ーブルを随意的に特定することをさらに許容しており、これにより不必要なデータ又は他
の意味で機能的に必要とされていないデータを除外することができる。
【００１５】
また、本願発明によれば、トランスポートされたデータのための中間フォーマットも提
供され、該フォーマットは、付属する全ての関係を含めた上でのトランスポートされたデ
ータの完全な再構築を可能とする。このトランスポートフォーマットは、ランダムキー暗
号で一貫して代替させることによって、元の行識別子に対してのセキュアマスキングをサ
ポートする。そして、これらの一時的キーを、インポート時の後の再構築処理の最中に置
換する。
【００１６】
本願開示によれば、データを新たなデータベース及びストックにグラフト（graft、接
合）するに際して、元の内部関係同一性を保持するようなシーケンス及び態様で、中間フ
ォーマットの再構築が行われる。このインポートプロセスにおいて、本願方法は行−カラ
ム値に関しての具体的な代替処理を可能とするのであり、これによって、明示的な分析及
び再構築処理の変更を伴わずにして新たなデータについての複雑な統合処理を可能とする
。
【００１７】
本願発明はソフトウェア、即ち１以上のコンピュータプログラム、ルーチン、関数等、
で実装されることが意図されている。したがって、本願発明は、後述するような、少なく
とも１つのプロセッサとメモリへのアクセスとを有するコンピュータや他の装置等のマシ
ン上で最も良く活用され得る。したがって、本願明細書では、「コンポーネント」、「サ
ブシステム」、又は、「ルーチン」等の用語を時折用いるが、これらの各々は好適にはソ
フトウェアで実装されることができる。
【００１８】
本願発明の追加的な側面及び利点は、後述の好適実施形態に関する詳細な説明から明ら
かになるのであり、以下においては添付の図面について述べる。
【図面の簡単な説明】
【００１９】
本願開示に関わる、上述の及びその他の、利点及び特徴を得るための態様について説明
するために、本願に関する具体的な実施形態を参照するさらなる具体的説明が以下続くの
であり、これらは添付の図面によって図示される。これらの図面は一般的な実施形態のみ
を図示するものと理解されるのであり、それらの範囲を限定するものとして解されてはな
らない。本願発明は、添付の図面を参照して、さらなる具体性と詳細さとを伴って、形容
及び説明される。
【００２０】
【図１】本願開示による機能的コンポーネントに関するブロック図である。
【図２】図１のデータトランスポータの機能的サブコンポーネントに関するブロック図である。
【図３】図１におけるデータエクスポート段階の動作フローに関するフローチャートである。
【図４】データエクスポート中になされるデータのエンコーディングを示すフローチャートである。
【図５】データエクスポート中になされる依存データの決定プロセスを示すフローチャートである。
【図６】データエクスポート中になされる、ポータブルな行識別子の代替となるものの生成を示すフローチャートである。
【図７】エクスポートデータを再構築可能なシーケンスに配列する際の動作を示すフローチャートである。
【図８】図１におけるデータトランスポート段階で用いられる記憶フォーマットを示す概略図である。
【図９】データインポート中になされるデータ行のデコードと再構築を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下の詳細な説明は添付の図面を参照する。図面内では可能な限り同じ参照符号が用い
られ、以下の詳細な説明は同じ又は類似の要素について言及する。明確性及び簡潔性のた
め、実際的な実施形態の全ての特性が明細書中で説明されているわけではない。もっとも
、開発者の特定の目的を達成するための実際的な実施形態を開発するためには、実施形態
に固有な多くの決定を行う必要があるということに留意されたい。本願発明の幾つかの実
施形態が説明されているが、当業者であれば、本願発明の精神及び範囲から逸脱せずに変
更、改案、及び他の実施形態も可能であるということに気付くであろう。例えば、図中の
構成要素に対して置換、追加、又は変更を行うことができるのであり、また、開示される
方法に関して処理段階を置換、再配列、又は追加することによって本願開示の方法を変更
することができる。したがって、以下の詳細な説明は発明を限定するわけではない。むし
ろ、本願発明の真正な範囲は添付の特許請求の範囲によって画定される。
【００２２】
図１は、本願方法の実施形態の機能的コンポーネントを示す。データトランスポータコ
ンポーネント１００は、ソースデータベース１０３とターゲットデータベース１０４との
間でのデータの移動性を提供するのであり、これらのデータベースは同一又は異なるマシ
ン上で実行されているＲＤＢＭＳインスタンスである。ソースデータベース１０３から発
せられて、データトランスポータ１００を経て行われるデータのエクスポートは、コンピ
ュータアプリケーション、プログラムライブラリルーチン、又は他のマシン若しくはシス
テムであることができるソースクライアント１０１によって開始及び指揮管制される。こ
のエクスポートされたデータの、ターゲットデータベース１０４へ向かってのインポート
は、ターゲットクライアント１０２によって開始及び指揮管制されるのであり、該ターゲ
ットクライアント１０２もコンピュータアプリケーション、プログラムライブラリルーチ
ン、又は他のマシン若しくはシステムであることができる。例示の実施形態では、データ
トランスポータ１００は、ソースクライアント１０１及びターゲットクライアント１０２
等のコンピュータアプリケーションからアクセスできるのであり、該アクセスはアプリケ
ーションプログラミングインターフェース（ＡＰＩ）ライブラリを経て行われることがで
き、共通データベース接続ライブラリを経由して様々なリレーショナルデータベースと共
に用いることができる。
【００２３】
図２は、図１に示したデータトランスポータ１００の機能的コンポーネントを示す。ソ
ースクライアント１０１はエクスポートインタフェース２００へのアクセスを有しており
、ソースデータベース接続情報１０３を含む必要なパラメータが特定される。ソースデー
タベース接続２０１はソースデータベース１０３との接続を確立することができ、エクス
ポート段階の大部分が営まれるエクスポートサブシステム２０２に対してこのアクセスを
提供することができる。
【００２４】
エクスポートサブシステム２０２によって生成された内部エクスポート表現を用いるこ
とによって、トランスポート入力出力（Ｉ／Ｏ）サブシステム２０３は、トランスポート
されたデータを表すデータファイルを、ソースクライアント１０１に提供することができ
る。このデータファイルは、ターゲットクライアント１０２によって、インポートインタ
フェース２０４を介してトランスポートＩ／Ｏサブシステム２０３へと内部表現への変換
のために提供される。
【００２５】
ターゲットクライアント１０２はインポートインタフェース２０４へのアクセスを有し
ており、ターゲットデータベース１０４を再構築するために必要なパラメータとトランス
ポートＩ／Ｏサブシステム２０３によって生成されたデータファイルとが特定される。タ
ーゲットデータベース接続２０５はターゲットデータベース１０４への接続を確立するの
であり、インポートサブシステム２０６は、トランスポートＩ／Ｏサブシステム２０３に
よって作成された、データファイルの内部表現を用いてデータをターゲットデータベース
１０４内へと再構築的にインポートして、グラフト点情報をターゲットクライアント１０
２に返す。
【００２６】
図３は、データエクスポート段階における動作フローを示す。開始されると（３００）
、エクスポートサブシステム２０２は、初期化し（３０１）、必要なデータ操作及び構成
可能な変数を全て格納するための内部構造を作成する。例示の実施形態では、初期化（３
０１）は、メッセージダイジェストサービスと行エクスポート（３０３）中に用いるため
の一意なエンコーディングキーとの生成を伴う。初期化（３０１）の後、ソースクライア
ント１０１はパラメータ（３０２）を特定するのであり、該パラメータには初期行識別子
とエクスポートすべきテーブルと除外されたテーブルに関する随意的リストとが含まれる
。一般的にエクスポート段階はソースクライアント１０１の活動に応答して開始（３００
）されるが、サービス或いはユーザアプリケーションとして動作する場合には適宜パラメ
ータ（３０２）を入力することによって能動的エクスポートはせずに持続的に利用可能と
されることができる。
【００２７】
エクスポートサブシステム２０２の中核的ループは、パラメータ（３０２）で特定され
る初期行をエクスポートすることによって開始（３０３）される。エクスポートプロセス
（３０３）がエクスポートを要する行がさらにある（３０４）と決定した場合、エクスポ
ートを要する行がなくなるまで追加の行に対して行エクスポート（３０３）が行われる。
全ての行がエクスポートされると、それら行をリストに配列するのであり（３０５）、該
リストは順次的再構築のためのシーケンスによるものとされる。
【００２８】
行リストが外部格納フォーマットに変換されると（３０６）、プロセスは終了する（３
０７）。トランスポートＩ／Ｏサブシステム２０３を介したこの変換によって、データフ
ァイルをソースクライアント１０１に提供することができる。
【００２９】
図４は、エクスポートプロセス（３０３）の際のデータ行のエンコーディング処理を示
す。エンコーディングが開始されると（４００）、行のテーブルと識別子（４０１）とが
パラメータとして用いられる。テーブルが無視される場合（４０２）、行のエクスポート
は省略される（４０３）。エンコードされた代替行識別子が作成されるのであり（４０４
）、これは一意であり、かつ、テーブル及び元の行識別子へとトレース可能である。この
エンコードされた識別子が既に格納されている場合（４０５）、行のエクスポートは省略
される（４０６）。
【００３０】
ソースデータベース１０３から行のカラムデータがフェッチされる（４０７）。行識別
子が存在しないものと認められた場合（４０８）、行のエクスポートは省略される（４０
９）。その余の場合、カラムデータは、トランスポートＩ／Ｏサブシステム２０３のため
に準備（４１０）される内部表現に、加工される。
【００３１】
所与の行への関係及び所与の行からの関係は決定され（４１１）、エクスポート行によ
って参照される各行は分析される（４１２）。参照された行が無視されたテーブルに属す
る場合（４１３）、インポート時における後の検出のために内部表現内にダミー値が格納
される（４１４）。その余の場合、被参照行はエクスポートされ、結果としてもたらされ
るそのエンコードされた識別子（或いは、既にエクスポートされている場合には既存のエ
ンコードされた識別子）を、内部表現内に格納する。被参照行がさらにある場合（４１６
）、これらも分析される（４１２）。
【００３２】
被参照行に関するループが完了すると内部表現は、存在するエンコードされたデータと
エンコードされた識別子とからなる集合内へと格納される（４１７）。そして、エクスポ
ート行を参照する行が分析され（４１８）、エクスポートを要する参照する行がなくなる
まで（４２０）、そのような行の各々がエクスポートされる（４１９）。プロセスは終了
し（４２１）、エンコードされた識別子を返すのであり、これには被参照行の内部的エク
スポート時（４１５）においての使途がある。
【００３３】
図５は、データエクスポートプロセス（３０３）に際しての依存データ決定プロセスを
示す。プロセスが開始されると（５００）、テーブル名がパラメータとして受信される（
５０１）。ソースデータベース１０３のメタデータがアクセスされて、行のテーブルによ
って参照されるテーブル全てについての関連性を有するカラムが検索される（５０２）。
被参照テーブルカラムは分析され（５０３）、テーブルがエクスポート行のそれと同じで
ある場合にはそれが省略され（５０４）、その余の場合には被参照テーブルカラムが依存
関係に含まれる（５０５）。この検定・包含プロセスは、各被参照テーブルカラムについ
て反復される（５０６）。
【００３４】
同様に、エクスポートテーブルを参照するカラムは、ソースデータベース１０３から検
索される（５０７）。各カラムは分析され（５０８）、エクスポート行と同じテーブルで
ある場合には省略され（５０９）、その余の場合には含められる（５１０）。残されたカ
ラムがなくなるまでこの処理が反復され（５１１）、プロセスは終了する（５１２）。
【００３５】
図６は、データエクスポートプロセス（３０３）に際してのポータブルな代替行識別子
の生成プロセスを示す。プロセスは開始され（６００）、疑似乱数生成器（ＰＲＮＧ）と
現在タイムスタンプとを用いてランダムエンコーディングキーを生成する（６０１）。こ
のエンコーディングキーは、エクスポート段階に際しての全ての行のエクスポート処理中
においては持続的な状態に維持されるが、エクスポートされたファイルに保持されること
は決してなく、また、インポート段階へとその他の態様で伝達されることも決してない。
【００３６】
エンコードされるべき行のテーブル名と行識別子とを受信すると（６０２）、テーブル
名とエンコーディングキーと行識別子とが一緒に組み合わされる（６０３）。結果として
もたらされるテキスト文字列は、ＭＤ５等のメッセージダイジェストアルゴリズムのため
の入力として用いられて、バイナリメッセージダイジェストが作成される（６０４）。そ
して、Ｂａｓｅ６４等のバイナリｔｏテキストエンコーダを用いてこのダイジェスト値を
ＡＳＣＩＩ形式に変換するのであり（６０５）、これによってキー生成が完了する（６０
６）。
【００３７】
このプロセスによって、同じテーブル名と行識別子とを伴う一貫して同質なキーが生成
されるのであり、これにより機能的な比較が可能となる。もっとも、エンコーディングキ
ーを破棄すると、たとえ同時期にエクスポートされたキーからなる大規模なプールをもっ
てしても、元の識別子を決定することは極めて困難になる。
【００３８】
図７は、エクスポートデータを再構築可能なシーケンスに配列するプロセス（３０５）
を示す。それぞれのテーブルに従ってエクスポートされた行は蓄積されているが故に、プ
ロセスが開始されると（７００）、エクスポートされた行を有するそのようなテーブルの
全てが、キューに追加される（７０１）。このキューは配列を行うループで削減され、テ
ーブルが含まれていない空の状態になっているか否かに関して判定される（７０２）。キ
ューが空ならば、配列プロセスは終了される（７０３）。
【００３９】
キューが空でない場合にはテーブルがキューから引かれ、それによって参照されている
全てのテーブルが新たなリストに追加される（７０４）。テーブルのリストがキュー内に
現存していないテーブルを含む場合、該テーブルはリストから取り除かれる（７０５）。
結果としてもたらされるリストが空でない場合７０６、リストに関しての判定は、キュー
内の次のテーブルへと進行する。しかし、リストが空である場合、キューからのテーブル
はキューから取り除かれて（７０７）、その行が結果リストにプリペンドされる（７０８
）。
【００４０】
図８は、図１のデータトランスポートに際して用いられる格納フォーマットを示す。デ
ータのトランスポート用表現はデータ行８００によって提供され、これはプロパティとし
てエンコードされた行識別子８０１とテーブル名８０２とを含んでいる。追加的には、デ
ータ行８００は、タプルのコレクションを３つ含むことができる。
【００４１】
このようなコレクションの第１のものはデータカラムタイプ８０３であり、これはテー
ブルカラム名８０４を「整数」等の記述的カラムタイプ８０５へとマッピングする。第２
のコレクションはデータカラム８０６であり、これはテーブルカラム名８０７を整数の値
そのもの等の生データ８０８へとマッピングする。最後たる第３のコレクションは参照カ
ラム８０９であり、これは、図６で示したように生成されたエンコードされた行識別子８
１１へとマッピングされた、テーブルカラム名８１０を、含む。
【００４２】
これらのデータ行８００はそれらのデータベーステーブルに従ってグルーピングされる
のであり、グルーピングは単純な記名リストでなされるのであり、これらリストはデータ
テーブル８１２と称される。図７にてアレンジされているこれらのデータテーブル８１２
の再構築可能なシーケンス（３０５）は、トランスポートＩ／Ｏサブシステム２０３にて
用いられるトランスポート可能なデータファイルの基礎となる。例示の実施形態では、こ
れらのデータテーブル８１２はバイナリＸＭＬへとシリアライズされ、また、ＬＺ７７及
びハフマンコーディングによって圧縮される。インポートされる前にこれらのステップは
逆順で行われて、配列されたデータテーブル８１２が再生される
【００４３】
図９は、データインポート段階における動作フローを示す。開始されると（９００）、
インポートサブシステム２０６は、インポート処理中において複数の「グラフト点」を付
着させるために用いられるべき随意的な代替カラム識別子（９０１）（テーブル／カラム
／ＩＤのトリプレットとして格納されている）と、後のマッチングのためのグラフティン
グルートテーブルとを、受け取る。配列されたテーブルリスト８１２は抽出され（９０２
）、第１番目のテーブルが分析される（９０３）。テーブルの行が列挙され、そして、各
行が分析されて（９０４）、これによってターゲットデータベース１０４のための適切な
ＳＱＬデータベース命令を作る（９０５）。
【００４４】
各行カラムは、カラムがデータカラム８０６であるか否かについて分析され（９０６）
、検定されるのであり（９０７）、カラムタイプ８０５に従って生の値８０８がＳＱＬ操
作に組み込まれる。代わりにカラムが参照カラムである場合（８０９）、そのカラムは以
前提供された（９０１）代替識別子に合致するかについて検定され（９０９）、発見され
れば代替識別子がＳＱＬコマンドに組み込まれる（９１１）。その余の場合には、エンコ
ードされた識別子はマッチング（デコード）されて、ターゲットデータベース１０４によ
って新規に生成された行識別子を探すのであり、この新たな識別子はＳＱＬコマンドに組
み込まれる（９１０）。
【００４５】
カラムについてＳＱＬを準備した後は、カラムがさらに残っている場合には、プロセス
が反復される（９１２）。全てのカラムについてのＳＱＬが準備された後は、ＳＱＬステ
ートメントがターゲットデータベース１０４に対して実行され、結果としてもたらされる
新規に生成された行識別子は、それらの間の関係が指示（９１０）されているように記録
される（９１４）。データベースの行生成処理はテーブルの全ての行に関して反復される
のであり（９１５）、逐次的に連続して存在する各テーブルへと続いていき（９１６）、
これによって行識別子に関しての全く新たなセットを伴って、ソースデータベース１０３
内のデータを再構築する。９０１で与えられるルートテーブルのための新たな行識別子を
返すことによってプロセスは終了する（９１７）。
【００４６】
コンピュータプログラムの記憶
上述したように、本願発明は好適にはコンピュータソフトウェア（「コンピュータプロ
グラム」又は「コード」ともいう。以下、可換のものとして使用することもある。）とし
て実現又は具体化することができる。プログラム又はコードは、デジタルプロセッサによ
って読み込むことができるデジタルメモリに記憶されている場合に最も効用を発揮する。
「コンピュータ可読記憶媒体」（或いは「マシン可読記憶媒体」）等の用語は、上述した
全てのタイプのメモリを含むものとして使用しており、また、記憶された情報が適切なデ
ジタルプロセッサによって「読む」ことができるような態様で、少なくとも一時的に、コ
ンピュータプログラムや他のデータとしてのデジタル情報を記憶することができるのなら
ば、将来生じる新たな技術をも含むものとして使用している。「コンピュータ可読」との
用語を用いることによって、語句を「コンピュータ」の歴史的な文脈に制限して完全なメ
インフレーム、ミニコンピュータ、デスクトップ機、ラップトップ機を指し示そうと意図
はしていない。むしろ、該用語は、記憶媒体がデジタルプロセッサ又は任意のデジタルコ
ンピューティングシステムによって読み込まれることができる、ということを意味する。
このような媒体は、ローカル及び／又はリモートにおいてコンピュータ又はプロセッサに
よってアクセス可能な任意の利用可能媒体であることができ、また、揮発性／不揮発性の
媒体、及び脱着可能／脱着不可能の媒体のいずれをも含む。一部の場合、例えば単純なテ
キストドキュメント又は「フラットファイル」の場合では、デジタルコンピューティング
システムは次の態様でファイルを「読む」ことしかできない場合がある：該ファイルに関
しての、移動、コピー、削除、電子メール発信、ウイルススキャン等。換言すれば、その
特定のコンピューティングシステム上では、該ファイルが実行可能でないことがある（た
だし、別のプロセッサ又はコンピューティングシステム又はプラットフォーム上では、該
ファイルは実行可能であるかもしれない。）。
【００４７】
コンピュータプログラム製品
プログラムがコンピュータ可読記憶媒体内に格納されている場合、その記憶媒体をコン
ピュータプログラム製品と称する場合がある。例えば、可搬なデジタル記憶媒体は、コン
ピュータプログラムを記憶及び移送（引き渡し、販売、購入、ライセンス）するための便
利な手段として用いられることができる。過去においては、上記のようなことは、パッケ
ージド（「シュリンクラップされた」）プログラムの販売地点でのリテイル型引き渡しの
場面で行われてきた。このような記憶媒体の例には、ＣＤ−ＲＯＭ等が含まれるが、これ
らには限定されない。記憶済みコンピュータプログラムを含んでいるこのようなＣＤ−Ｒ
ＯＭは、コンピュータプログラム製品の例である。
【００４８】
当業者にとっては、本願発明の基底にある原理から逸脱せずに上述した実施形態の詳細
に対して多くの変更を加えることができるということは、明白である。したがって、本願
発明の範囲は、添付の請求の範囲によってのみ画定されるべきである。
【図１】
2018014126.tif 000003
【図２】
2018014126.tif 000004
【図３】
2018014126.tif 000005
【図４】
2018014126.tif 000006
【図５】
2018014126.tif 000007
【図６】
2018014126.tif 000008
【図７】
2018014126.tif 000009
【図８】
2018014126.tif 000010
【図９】
2018014126.tif 000011
【手続補正書】
【提出日】平成29年9月19日(2017.9.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性コンピュータ可読メモリであって、前記メモリと結合されたデジタルプロセッサにおいて実行可能な一連の命令を備え、前記命令は前記プロセッサに、
エクスポートインタフェースモジュールであって、ソースクライアントプログラムとインタフェースして、関係データのサブセットについてのエクスポートであって、ソースリレーショナルデータベースからターゲットリレーショナルデータベースへのエクスポートの開始を前記ソースクライアントプログラムができるように構成された、エクスポートインタフェースモジュールと、
前記エクスポートインタフェースモジュールと結合されたソースデータベース接続モジュールであって、前記ソースクライアントプログラムと関連づけられた前記ソースリレーショナルデータベースへと接続して、格納された前記関係データにアクセスするように構成された、ソースデータベース接続モジュールと、
前記ソースデータベース接続モジュールと結合されたエクスポートサブシステムであって、エクスポートされるべきデータを表すデータファイルを生成するように構成された、エクスポートサブシステム
とを実装させる、不揮発性コンピュータ可読メモリであって、
前記エクスポートサブシステムによって生成された前記データファイルでは各行識別子がポータブルな代替行識別子で置換されて、前記元の行識別子が前記ターゲットクライアントプログラム又は前記ターゲットリレーショナルデータベースに開示されることを回避し、
前記エクスポートサブシステムは、前記ソースクライアントプログラムによって無視すべきものと指定されたテーブル内に格納されたデータを除いて、前記エクスポートすべきデータによって参照されるデータを、自動的に前記データファイルに含めるように構成されており、
前記命令は前記プロセッサに
前記エクスポートサブシステムと結合されたトランスポートＩ／Ｏサブシステムであって、前記ソースクライアントプログラムとインタフェースして、前記データファイルを前記ソースクライアントプログラムに提供するように構成された、トランスポートＩ／Ｏサブシステムと、
前記トランスポートＩ／Ｏサブシステムと結合されたインポートインタフェースモジュールであって、ターゲットクライアントプログラムとインタフェースするように構成された、インポートインタフェースモジュールと、
前記インポートインタフェースモジュールと結合されたターゲットデータベース接続モジュールであって、前記ターゲットクライアントプログラムと関連付けられたターゲットリレーショナルデータベースへと接続して、前記データファイル内に格納された前記データに基づいて関係データを前記ターゲットリレーショナルデータベース内に格納するように構成された、ターゲットデータベース接続モジュール
とを実装させる、不揮発性コンピュータ可読メモリ。
【請求項２】
前記エクスポートサブシステムは、テーブルＩＤ、行ＩＤ及び他のテーブルへの参照を、前記データファイル内のセキュアかつ一時的かつポータブルな識別子で置換するように構成されている、請求項１に記載のメモリ。
【請求項３】
前記ターゲットクライアントプログラムは前記インポートインタフェースへのアクセスを有しており、また、前記ターゲットクライアントプログラムは、前記ターゲットデータベースにて行われる前記エクスポートされたデータの再構築に関しての選択されたパラメータを特定するように構成されている、請求項１に記載のメモリ。
【請求項４】
前記ターゲットクライアントプログラムによって特定される前記パラメータは、ターゲットテーブル名と後方マッチングカラムのためのグラフティングルートテーブルとを含む、請求項３に記載のメモリ。
【請求項５】
前記ターゲットデータベース接続は前記ターゲットデータベースへの接続を確立し、前記インポートサブシステムは、前記トランスポートＩ／Ｏサブシステムを介して作成された前記データファイルの内部表現を用いて、前記データを前記ターゲットデータベース内へと再構築的にインポートして、前記ターゲットクライアントにグラフト点情報を返す、請求項１に記載のメモリ。
【請求項６】
コンピュータ実施方法であって、該方法は、
ソースＲＤＢＭＳ内のデータテーブルにアクセスするステップであって、前記データテーブルは少なくとも１つのデータカラムを含む行を少なくとも１つ含み前記行は元の識別子を有している、ステップと、
前記テーブルの行の少なくとも１つをエクスポートのために選択するステップと、
前記行をエクスポートのためにエンコードするステップ
とを含み、
前記エンコードするステップは、
前記行の依存データを決定するステップと、
ポータブルな代替行識別子を生成して前記元の行識別子が前記ターゲットクライアントプログラム又は前記ターゲットリレーショナルデータベースに開示されることを回避するステップと、
前記行データと前記行で参照された任意の依存データとを収集して、除外のため指定されたテーブル内に格納された依存データを除いて、エクスポートデータを形成するステップと、
元の行識別子の代わりに前記ポータブルな代替行識別子を活用して、前記エクスポートデータを再構築可能なシーケンスに配列するステップと、
前記シーケンスに基づいて前記エクスポートデータをターゲットデータベース内へとインポートするステップ
とを含む、方法。
【請求項７】
前記再構築可能なシーケンスは、前記依存データを、前記依存データを参照するデータの前に配置することを伴う、請求項６に記載の方法。
【請求項８】
前記行をエクスポートのためにエンコードするステップは、
前記エクスポートデータ内の前記元の行識別子に対応するポータブルな識別子についての一意なセキュアリスティングを生成するステップと、
ソースクライアントから、初期行識別子とエクスポートすべきテーブルとを含むパラメータを、受信するステップと、
前記初期行識別子に対応する、テーブルの第１の行をエクスポートのためにエンコードするステップと、
前記第１の行を参照する全ての行又は該第１の行によって参照される全ての行を含む追加の行をエクスポートのために反復してエンコードするステップと、
エクスポートされた前記行を、順次的再構築のためのシーケンスによるリストに配列するステップと、
前記行のリストを、外部格納フォーマットに変換するステップ
とを含む、請求項６に記載の方法。
【請求項９】
選択された行の依存データを決定するステップは、
前記ソースデータベースのメタデータにアクセスするステップと、
前記メタデータに基づいて、前記選択された行によって参照されるテーブルカラムを識別するステップと、
前記参照されたテーブルカラムの第１のものを分析するステップと、
前記参照されたテーブルカラムが前記選択された行と同じテーブル内にない場合には前記参照されたテーブルカラムを前記依存データに含めて、その余の場合には省略する、ステップと、
残余の参照されたテーブルカラムについて該テストを反復するステップと、
前記メタデータに基づいて、前記参照するテーブルカラム、即ち前記選択された行を参照するカラム、を識別するステップと、
前記参照するテーブルカラムの第１のものを分析するステップと、
前記参照するテーブルカラムが前記選択された行と同じテーブル内にない場合には前記参照するテーブルカラムを前記依存データに含めて、その余の場合には省略する、ステップと、
残余の参照するテーブルカラムについて該テストを反復するステップ
とを含む、請求項６に記載の方法。
【請求項１０】
ポータブルな識別子についての一意なセキュアリスティングを生成するステップは、
ランダムなエンコーディングキーを疑似乱数及び現在タイムスタンプに基づいて生成するステップと、
前記選択された行のエクスポート時のみにおいて前記エンコーディングキーをメモリ内に保持するステップ
とを含む、請求項６に記載の方法
【請求項１１】
テーブル名及びエクスポートのためにエンコードされるべき行識別子を受信するステップと、
前記テーブル名、前記エンコーディングキー及び前記ポータブルな行識別子を一緒に組み合わせて、テキスト文字列を形成するステップと、
前記テキスト文字列を用いてバイナリメッセージダイジェストを作成するステップ
とをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記エンコーディングキーの生成を完了するために前記ダイジェストをＡＳＣＩＩテキスト形式に変換するステップを含む、請求項１１に記載の方法。
【請求項１３】
前記バイナリメッセージダイジェストを作るためにハッシュ関数を用いるステップを含む、請求項１１に記載の方法。
【請求項１４】
コンピュータ実施方法であって、該方法は、
ソースＲＤＢＭＳ内のデータテーブルにアクセスするステップであって、前記データテーブルは少なくとも１つのデータカラムを含む行を少なくとも１つ含み前記行は元の識別子を有している、ステップと、
前記テーブルの行の少なくとも１つをエクスポートのために選択するステップと、
前記行をエクスポートのためにエンコードするステップ
とを含み、
当該エンコードするステップは、
前記行の依存データを決定するステップと、
ポータブルな代替行識別子を生成するステップであって、前記代替行識別子は一意であり並びに前記テーブル及び前記元の行識別子へと追跡可能である、ステップと、
前記行データと前記行で参照された任意の依存データとを収集して、除外のため指定されたテーブル内に格納された依存データを除いて、エクスポートデータを形成するステップと、
元の行識別子の代わりに前記ポータブルな代替行識別子を活用して、前記エクスポートデータを再構築可能なシーケンスに配列するステップと、
前記シーケンスに基づいて前記エクスポートデータをターゲットデータベース内へとインポートするステップとを含み、
前記選択された行の依存データを決定するステップは、
前記ソースデータベースのメタデータにアクセスするステップと、
前記メタデータに基づいて、前記選択された行によって参照されるテーブルカラムを識別するステップと、
前記参照されたテーブルカラムの第１のものを分析するステップと、
前記参照されたテーブルカラムが前記選択された行と同じテーブル内にない場合には前記参照されたテーブルカラムを前記依存データに含めて、その余の場合には省略する、ステップと、
残余の参照されたテーブルカラムについて該テストを反復するステップと、
前記メタデータに基づいて、前記参照するテーブルカラム、即ち前記選択された行を参照するカラム、を識別するステップと、
前記参照するテーブルカラムの第１のものを分析するステップと、
前記参照するテーブルカラムが前記選択された行と同じテーブル内にない場合には前記参照するテーブルカラムを前記依存データに含めて、その余の場合には省略する、ステップと、
残余の参照するテーブルカラムについて該テストを反復するステップとを含む、方法。
【外国語明細書】
2018014126000001.pdf