JP2012504266A - データ記憶のためのシステム及び方法 - Google Patents

データ記憶のためのシステム及び方法 Download PDF

Info

Publication number
JP2012504266A
JP2012504266A JP2011528422A JP2011528422A JP2012504266A JP 2012504266 A JP2012504266 A JP 2012504266A JP 2011528422 A JP2011528422 A JP 2011528422A JP 2011528422 A JP2011528422 A JP 2011528422A JP 2012504266 A JP2012504266 A JP 2012504266A
Authority
JP
Japan
Prior art keywords
data
pattern
column
schema
pointer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011528422A
Other languages
English (en)
Inventor
ベン−ダイク,アンドリュー,デイビッド
ロングショウ,トーマス,ベンジャミン,
Original Assignee
レインスター リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by レインスター リミテッド filed Critical レインスター リミテッド
Publication of JP2012504266A publication Critical patent/JP2012504266A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/213Schema design and management with details for schema evolution support

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

データ記憶装置にデータを記憶し、データ記憶装置からデータを取り出すためにコンピュータ・システムを動作させる方法。コンピュ―タ・システムは、元の形式における記憶データの再構成を可能にするやり方でパターンに関連付けられたポインタとともに、記憶データにおけるパターンを管理するよう動作可能なデータ・マネージャ装置を有する。方法は、第1の時点におけるデータ・テーブル・エントリを併せて表すポインタ・データ及びパターン空間情報とともに第1の時点で使用されるスキーマを施す第1のデータ・テーブル・エントリを記憶する工程と、スキーマ変更に応じたマップを後の時点で生成する工程であって、上記マップが、新たなポインタ・データ及び/又は新たなパターン空間情報を含む工程とを含む。

Description

本発明は一般に、データ記憶に関する。より具体的には、本発明の実施例は、特に、あまり、又は全くデータを修正することなく、レガシー・データの使用を可能にするアーカイブ及びデータベース管理のための種々のシステム及び方法に関する。
多くのビジネス及び他の組織は、それらの情報インフラの一部として特定の形態の大規模データ記憶を使用する。多くの組織は、ルーチンのビジネス及び記録を保持するために、数百テラバイトを記憶し、更に複数のペタバイト(それらそれぞれは1000テラバイトである)を記憶する。データは、周期的に前述のアーカイブに加えられる。毎週、毎月、毎年、又はアプリケーションの管理者(本明細書及び特許請求の範囲では「ユーザ」とも表す)が適切と認める何れかの期間において、データが、実動システムから除去され、アーカイブに入れられる。しかし、この新たなデータは、アーカイブに既にあるデータと同じ形式にないことがあり得る。この意味合いで、実動システムは、何らかの形式で、データ・テーブルを生成し、データ・テーブルをアーカイブに送信し、アーカイブからデータを再受信するよう動作可能なコンピュータ・システム上で実行する何れかのコンピュータ・システム又はプログラムである。
時間の経過につれ、データがアーカイブされるアプリケーションの性質又は要件が変動する。例えば、既存テーブル内の新たな列に新たなデータを収集し、記憶することができ、又は、データが記憶される精度は変動し得る(すなわち、列の「タイプ」が変動する)。あるいは、もう必要でないデータは収集されず、列がテーブルから削除される。前述の変動の何れかが生じる(か、又は、他の構造的変更がデータベースに行われる)と、既にアーカイブされているデータに何が起きるかという疑問が残る。一部の代替案を以下に列挙する。
1.アーカイブされたデータは、全て復元し、同じ変更を施し、前述の変更を行って再保存することが可能である。しかし、このことは、長く、高価な処理であるのみならず、更に、元のデータが、コンプライアンスの目的でアーカイブされていた場合、この形態のリカバリには潜在的な課題が存在している。元のデータの一部の部分をもう記憶することができないからである。例えば、データベース・フィールドを、より低い精度のタイプにキャストする(例えば、固定小数点タイプの小数の桁数を削減する)ことにより、アーカイブされた旧いデータに対するくつがえせないデータ喪失が生じる。
2.措置をとらず、アーカイブされたデータを不変のままにしておく。しかし、アーカイブ内のデータを照会する際に問題がもたらされる。別々の複数のスキーマでデータが記憶された場合、各スキーマにおいて別々のクエリを使用し、前述の別々のクエリからの結果が合成される一部の更なる手順を提供することが必要になる。更に、別々のクエリの結果は、違ったふうに、かつ、異なる精度でフォーマッティングし得る。
データベース・スキーマに対する変更が、アーカイブに保持された旧いデータに対する修正を必要としないと同時に、アーカイブ内のデータの何れか、及び/又は全てに対して実行する対象の最新の(すなわち、現在の)スキーマに対してクエリが記述されることを可能にする機構を提供する現在知られている手法は存在しない。
本発明の実施例によれば、データ記憶装置にデータを記憶し、データ記憶装置からデータを取り出すためにコンピュータ・システムを動作させる方法が提供される。上記方法では、コンピュ―タ・システムは、元の形式における記憶データの再構成を可能にするやり方でパターンに関連付けられたポインタとともに、記憶データにおけるパターンを管理するよう動作可能なデータ・マネージャ装置を有し、上記方法は、第1の時点におけるデータ・テーブル・エントリを併せて表すポインタ・データ及びパターン空間情報とともに第1の時点で使用されるスキーマを施す第1のデータ・テーブル・エントリを記憶する工程と、スキーマ変更に応じたマップを後の時点で生成する工程であって、上記マップが、新たなポインタ・データ及び/又は新たなパターン空間情報を含む工程とを含む。
好ましくは、ポインタ・データは、テーブル・メタ・データ及びインデクス・データの1つ又は複数を含む。
好ましくは、ポインタ・データは、スキーマの局面を定義するヘッダ情報を含む。
好ましくは、ポインタ・データはテーブル・メタ・データを含み、テーブル・メタ・データは、テーブルのフィールド、フィールドのタイプ、フィールドの最大値、フィールドの最小値、フィールドの別の属性から選択された1つ又は複数を含む。
好ましくは、ポインタ・データは、パターン空間内のパターン要素の配列を規定するインデクス・データを含む。
好ましくは、ポインタ・データは、制御機能がどのようにしてパターン要素を横移動すべきか規定する経路データを含む。
好ましくは、経路データは、1つ又は複数の変換に対する命令を含む。
好ましくは、ポインタ・データは、パターン空間の少なくとも一部分を再現する。
好ましくは、ポインタ・データの少なくとも一部分は、不変である。
好ましくは、スキーマ変更により、旧いポインタ情報に対する変更がマップに示される。
好ましくは、スキーマ変更により、合体したポインタ情報がマップに示される。
好ましくは、合体ポインタ情報からデータ・エントリを求めるために再帰プロセスが活用される。
好ましくは、スキーマ変更は、列を削除する工程を含み、マップは新たな列、旧いインデクス・データ、及び旧いパターン空間情報を含む。
好ましくは、スキーマ変更は、列を改名することを含み、マップは新たな列名、及び隠す対象の旧い列名を含む。
好ましくは、スキーマ変更は、列を加える工程を含み、マップは、別の列における値の関数、リテラルのデフォルト値、及びナル値から選択された新たな列情報を示す。
好ましくは、マップは、少なくとも部分的に、経路データへの参照により、新たな列情報を示す。
好ましくは、経路データは、ナビゲーション・データ及び機能要素の1つ又は複数を含む。
好ましくは、スキーマ変更は列の再タイプを含み、マップは、新たな列におけるエントリにつながる少なくとも一変換を示す。
好ましくは、スキーマ変更は列を再タイプする工程を含み、上記変換は、少なくとも部分的に経路データで規定される。
本発明の一局面によれば、上述の方法が提供され、上記方法は更に、先行する時点における記憶データをクエリする工程を含み、データ・マネージャは、スキーマ変更に応じて生成された少なくとも1つのマップにアクセスして、その先行する時点におけるクエリをサポートするデータを導き出す。
好ましくは、スキーマ変更は、列の分割を含み、データ・マネージャは、新たな列を加え、列を削除することに関するマップ・データを生成する。
好ましくは、スキーマ変更は、列のマージを含み、データ・マネージャは、列の削除、及び、新たな少なくとも1つの列の追加に関するマップ・データを生成する。
本発明の実施例によれば、データ記憶装置にデータを記憶し、データ記憶装置からデータを取り出すコンピュータ・システムを提供し、コンピュータ・システムは、元の形式における記憶データの再構成を可能にするやり方でパターンに関するポインタとともに記憶データにおけるパターンを管理するよう動作可能なパターン・マネージャ装置と、第1の時点におけるデータ・テーブル・エントリを併せて表すポインタ・データ及びパターン空間情報とともに第1の時点で使用されるスキーマを施す第1のデータ・テーブル・エントリを記憶する記憶装置と、スキーマ変更に応じてマップを後の時点で生成するマップ生成器とを備え、上記マップは、新たなポインタ・データ及び/又は新たなパターン空間情報を含む。
本発明の一実施例によれば、データ記憶装置にデータを記憶し、データ記憶装置からデータを取り出すコンピュータ・システムが提供され、上記コンピュータ・システムは、(i)データ記憶装置内の複数のデータ・テーブル、及び(ii)データ・テーブルの生成に施される複数のスキーマに関する補助データを生成し、管理するよう動作可能なデータ・マネージャ装置を備え、補助データは、データ・テーブルの個々のフィールド値をパターン空間から求めることが可能な参照データ、及びデータ記憶装置のパターン空間内の少なくとも1つのパターンの表示を含む。
本発明の一実施例によれば、アーカイブされたデータを処理するための、コンピュータによって実現される方法が提供され、上記方法は、時点Tにおいてデータ・レポジトリからアーカイブに抽出データを転送する工程であって、データが、時点Tにおける第1のスキーマによって表される工程と、(i)ヘッダ部分、(ii)インデクス部分、及び(iii)アーカイブにおける少なくとも1つのパターン空間に向けたポインタの組み合わせとしての少なくとも1つの抽出データを記憶する工程であって、ヘッダ部分は、データ・レポジトリにおいて存在した形式のデータを回復するためにパターン空間におけるパターンをどのようにして解釈するかに関する情報を含み、インデクス部分は、レポジトリからのデータ・レコード全体を表すパターン空間内からのパターンを識別する工程と、Tよりも遅い時点でデータ・クエリを受信する工程であって、レポジトリにおけるデータ・スキーマが、第1と異なる第2のスキーマに変更された工程と、第2のスキーマ下で作成されたかのように第1のスキーマがクエリに応じて挙動するように、ヘッダ部分、インデクス部分及びパターン空間におけるデータを利用するアーカイブからのデータをデータ・クエリに応じて返す工程とを含む。
好ましくは、クエリする工程は更に、データに対して変換を行う工程を更に含む。
好ましくは、変換は、列を削除する工程、列を改名する工程、列を追加する工程、列を再タイプする工程、一時点でクエリする工程、列を分割する工程、列をマージする工程のうちの1つ又は複数から選択される。
好ましくは、少なくとも1つの抽出データが不変データとして記憶される。
好ましくは、ヘッダ部分は少なくとも、(i)テーブルのレコード内に存在するフィールド名、及び(ii)前述のフィールドのタイプを含む。
好ましくは、デ―タ・レポジトリは、リレーショナル・データベース、データ・ウェアハウス、又はスター・スキーマのデータベースである。
本発明の一実施例によれば、コンピュータ・システムにおいて使用するためにデータ構造が提供され、データ構造は、(i)パターン空間に向けたポインタであって、パターン空間は、元のデータ・ソースにおいて発見されている1つ又は複数のパターンを含むポインタと、(ii)インデクス部分であって、インデクス領域は、元のデータ・ソースからのデータ・レコード全体を表すパターン空間内からのパターンを識別するインデクス部分と、(iii)ヘッダ部分であって、ヘッダ部分は、データ・レポジトリに存在した形式でデータを回復するためにパターン空間におけるパターンをどのようにして解釈するかを記述したメタデータを含むヘッダ部分とを含み、併せて、ヘッダ、インデクス、及びパターン空間に対するポインタは、一時点におけるデータ・ソースの状態を表す抽出データを形成する。
好ましくは、2つ以上の抽出データは、単一パターン空間を共有する。
本発明の一実施例によれば、アーカイブされたデータをクエリする方法が提供され、上記方法は、データをテーブルTに記憶する工程であって、Tは、2つ以上の抽出データ・テーブルTl、T2、T3...TNの和集合であり、各抽出データ・テーブルが、アーカイブに記憶され、そのデータを表す別のスキーマを有する工程と、抽出データ・テ―ブルTl、T2、T3...TN間の各スキーマ変更を表すマップを生成し、抽出データ・テーブルのうちの1つに含まれるデータに対するユーザ要求をクエリ・マネージャにおいて受信する工程と、第2の抽出データ・テーブルのスキーマ下で作成されたかのようにクエリに応じて、それを表すデータがふるまうようにクエリ・マネージャは第1の抽出データ・テーブルのスキーマを再書き込みするように適切なマップを施す工程とを含む。
好ましくは、各抽出データ・テーブルは不変データを含む。
本発明の実施例によれば、レガシー・データ・マネージャに提供される。レガシー・データ・マネージャは、少なくとも1つの実動システムからデータを受信するよう構成されたインタフェースと、データを受信し、データにおけるパターンを求め、識別されたパターンをメモリに記憶し、ポインタを使用してパターンの表現を生成するよう動作可能なパターン識別器と、ヘッダ領域を規定し、それをメモリに記憶し、ポインタを使用したヘッダの表現を生成するよう動作可能なヘッダ・マネージャと、メモリからアーカイブにデータを転送するよう構成された記憶装置上の少なくとも1つのデータ・アーカイブとのインタフェースとを備える。
本発明の一実施例によれば、データをアーカイブするコンピュータ・システムが提供される。上記コンピュータ・システムは、上述のレガシー・データ・マネージャと、動作するようレガシー・データ・マネージャに接続された、データを生成するよう動作可能な少なくとも1つの実動システムとを備える。
好ましくは、コンピュータ・システムは、動作するよう、実動システム及び/又はレガシー・データ・マネージャに少なくとも1つのユーザ端末を接続し、データ・クエリを受信するよう構成された少なくとも1つのユーザ端末インタフェースを更に備える。
好ましくは、ユーザ端末は、パーソナル・コンピュータ、シン・クライアント装置、又は何れかの他の適切な電子装置である。
本発明の実施例によるレガシー・データ・コンピュータ・システムを示す図である。 過去の別々の時点においてレガシー・データ・マネージャ10により、アーカイブ20にアーカイブされたデータの例を示す図である。 本発明の実施例による、アーカイブ20内のデータのテーブルの表現の例を示す図である。 本発明の実施例による、経路及びインデクス・エントリの例を示す図である。 本発明の一実施例により、列がどのようにして削除されるかの更なる詳細を示す図である。 本発明の実施例による、列情報を取り出すための手順の例を示す図である。 本発明の実施例による、データを記憶するための別々の可能性を示す図である。 本発明の実施例による、データを記憶するための別々の可能性を示す図である。 本発明の実施例による、経路を使用して値が取り出される処理を示す図である。
本発明、及びどのようにして本発明を実施することができるかをより良く理解するために、次に、例示の目的でのみ、添付図面を参照する。
添付図面に示される同じ参照符号は、別途明記しない限り、本明細書を通じて記載された機能的に同等の構成を表すものとして解されるものとする。
図1は、本発明の実施例によるレガシー・データ・コンピュータ・システムを示す。レガシー・データ・コンピュータ・システムは、レガシー・データ・マネージャ10と、記憶装置上に常駐している少なくとも1つのデータ・アーカイブ20と、少なくとも1つの実動システム30とを備える。任意的には、ユーザ・データ要求/クエリを受信するために、動作するようレガシー・データ・マネージャ10及び/又は実動システム30に接続された少なくとも1つのユーザ端末40も存在し得る。ユーザ端末は、例えば、パーソナル・コンピュータ、シン・クライアント装置、又は何れかの他の適切な電子装置である。
レガシー・データ・マネージャ10は、レガシー・データ・マネージャ10とアーカイブ20との間の通信を容易にするよう動作可能なアーカイブ・インタフェース101と、レガシー・データ・マネージャ10と実動システム30との間の通信を容易にするよう動作可能な実動システム・インタフェース102と、パターン識別器モジュール104と、クエリ・マネージャ105と、マップ生成器108と、インデクス・マネージャ110と、ヘッダ・マネージャ112とを含む。更に、メモリ60も、動作するようレガシー・データ・マネージャ10に接続される。
通常、実動システム30は、少なくとも1つのデータベースを生成し、かつ/又は管理する。本発明の意味合いでは、「データベース」という語は、レコード又はデータの何れかの構造化された収集物を広く表すものと解されることを意図している。何れの特定のデータベース・モデルへの限定を意図するものでなく、したがって、階層モデル、ネットワーク・モデル、リレーショナル・モデル又は何れかの他のモデルのうちの1つ又は複数から選択することができる。一実施例によれば、本発明の装置及び方法がリレーショナル・データベースに施される。別の実施例によれば、本発明の装置及び方法が、スター・スキーマ又は他のデータ・ウェアハウス・モデルに施される。少なくとも1つのデータベース50のデータの生成及び/又は管理は、自動的に、実動システム30によって行うことができ、端末40へのユーザ入力に応じて行うことができ、又はそれらの組み合わせによって行うことができる。いずれにせよ、少なくとも1つのデータベース50からのデータ・テーブルは、経時的にデータ・アーカイブ20にバックアップされる。本発明の実施例によれば、このバックアップ処理は、レガシー・データ・マネージャ10の種々の構成部分によって管理される。
データベース・アーカイブ動作を行うために、データはデータベース50からアーカイブ20に転送しなければならない。しかし、一実施例によれば、データは、別個のデータベース50に維持されるものでなく、代わりに、実動システム30からアーカイブ20にレガシー・データ・マネージャ10を介して直接、転送される。いずれにせよ、この処理は、自動的に、レガシー・データ・マネージャ10によって起動させることができ、実動システム30によって起動させることができ、かつ/又は(例えば、端末40への)ユーザ入力に応じて起動させることができる。デ―タベース・アーカイブ動作の結果は、過去の別々の時点でアーカイブされたデータで埋められる。不可避にも、種々の変更を経時的にデータに施し得る。特に、データ・スキーマは、時間の経過とともにデータベースの変動する要件に応じて変更し得る。「スキーマ」という語は、本明細書及び特許請求の範囲では、データベース・システムの構造、すなわち、データを表すメタデータを表すために使用される。例えば、リレーショナル・データベースでは、スキ―マはテーブル、各テーブル内のフィールド、及びフィールドとテーブルとの間の関係を規定する。しかし、上述の通り、本発明の実施例はリレーショナル・データベースにのみ限定されるものでない。
図2は、過去の別々の時点においてレガシー・データ・マネージャ10により、アーカイブ20にアーカイブされたデータの例を示す図である。データが、インタフェース102を介して実動システム30からレガシー・データ・マネージャ10によって受信される。例証的な一例では、抽出データは、過去の別々のいくつかの時点において実動システム30からアーカイブ20に送信される、各抽出データは、別個のスタンドアロン・テーブルとしてアーカイブに記憶される。アーカイブ抽出データ間で、実動システム30によって使用されるスキーマは異なる。よって、図2を参照すれば、時点t1で作成されたテーブルT1(210)は、実動システム30において同じ名前及び汎用機能を有するテーブルT2(230)及びスキーマS1(220)を使用する。
一例によれば、例えば、端末40に位置するユーザは、アーカイブ内のデータに対してクエリ260を実行したいものとする。図2に示す例では、このクエリがテーブルT(250)に対して実行される。テーブルT(250)は、上述の通り、抽出データ・テーブルT1(210)及びテーブルT2(220)の和集合である。T1及びT2は別々のスキーマを有するので、両方のテーブルに対して有効に実行する単一のクエリを記述することは一般に可能でない。しかし、本発明の実施例によれば、変動していない状態でT1に記憶された元のデータを維持することが可能である。これは、マップ生成器108によって作成されたマップ270のおかげである。具体例によれば、T2のアーカイブに先行して行われたスキーマ変更に応じて、マップ生成器108は、T1を取り囲むマップ270を作成し、そのスキーマを書き直し、ちょうどスキーマS2下で作成されたかのようにクエリ260に応じて元のデータが振る舞うことを可能にするマップ270を作成する。マップ270の機能は以下に更に詳細に説明する。しかし、概ね、マップ270は、スキーマ240の複製であるかのようにスキーマ220が挙動することを可能にする機能を表す。
クエリ・マネージャ105は、例えば、ユーザ端末40からユーザ・クエリを受信し、マップ270を使用して、スキーマS1及びS2を使用して記憶されているデータに対してユーザ・クエリ260を実行するよう動作可能である。この影響は、別々のスキーマを使用して記憶されたデータが、例えば、このケースS2において、単一のスキーマを使用して記述されているかのようにクエリに対してふるまう。
データ編成
本発明の実施例によれば、データ・セットにおけるパターンを識別し、一時データベースにパターンを記憶し、記憶パターンに対するポインタを使用してデータベース構造の表現を生成することにより、実動システム30によって生成されたデータの組(すなわち、「データ・セット」)からレガシー・データ・マネージャ10により、メモリ60において作成される。好ましい実施例によれば、この表現は、以下に更に詳細に説明するように<ヘッダ(header)、インデクス(index)、(パターン(pattern))スペース(space)>のトリプルである。
本明細書及び特許請求の範囲の意味合いでは、「ポインタ」は、そのアドレスを使用してアーカイブ20内の他の所に記憶された別の値をその値が直接指す(すなわち、「指し示す」)データ・タイプを表す。リスト、キュー、ツリー等などのデータ構造を設定する場合、構造が実現され、制御されるやり方を管理するためにポインタを有することが有用である。ポインタの使用は、データベース上のより高速のサーチ、ソート及び他の動作を可能にし得る。前述の動作は、単一動作における多くのレコード(組)のフィールド値を表すために個々のパターンを使用して行うことが可能である。注:「組」、「行」、及び「レコード」の語は本明細書を通じて同義に使用される。
本発明の実施例は例えば、「Method of Querying a Structure of Compressed Data」と題する国際公開第02/063498号に記載されたようなデータベースを使用し、操作し得る。
以下の実施例、及び、適切な場合、具体例は、例えば、リレーショナル・データベース、別の階層モデルによるデータベース、又は何れかの他のデータベース・モデルによるデータベースであり得る、アーカイブ20におけるテーブルのデータ・セットを参照して説明される。しかし、上記説明した実施例は、単一のテーブルのみでなく、いくつかのテーブルにわたって使用することが可能であり、本明細書及び特許請求の範囲の記載は、データベースの単一のテーブル上でのみ動作するよう本発明の実施例を限定するものとして解されないものとする。
図3は、本発明の実施例による、アーカイブ20内のデータのテーブルの表現の例を示す。好ましい実施例によれば、元のデータ・テーブルは、実動システム30からレガシー・データ・マネージャ10によって受け取られ、別個の3つの構成部分に分割される。一実施例によれば、この分割処理は、最も一般的には、ランダム・アクセス・メモリ(RAM)などの揮発性メモリであるメモリ60において行われる。しかし、他のタイプのメモリを、適宜、使用し得る。データ・テーブルは、3つの構成部分に操作された後、インタフェース101を介してアーカイブ20に書き込まれる。
第1の構成部分は、ポインタ320によって表されるパターン空間340である。パターン空間340は、元のデータ・テーブルにおいて発見されているパターンが記憶されたランダム・アクセス領域である。データ・テーブルにおいて発見されたパターンを識別し、記憶する処理は、インタフェース102を介して実動システム30からデータを受け取り、(例えば、適切なアルゴリズムを使用して)パターンを求め、メモリ60に、識別されたパターンを記憶し、適宜、適切なポインタを使用してパターンの表現を生成するよう動作可能なパターン識別器104によって管理される。好ましい実施例によれば、この表現は、<ヘッダ(header)、インデクス(index),パターン(pattern)(空間(space))>というトリプルを構成するために使用される。
「パターン空間」という語は、本明細書及び特許請求の範囲では、レガシー・データ・マネージャにより受け取られ、アーカイブ20に最終的に記憶されるデータのインスタンス全てのレポジトリを広く表すために使用される。すなわち、パターン空間340は、実動システム30及び/又は元のデータベース50から埋められたデータのプールである。パターンがどのようにして発見され、生成されるかの一例は、「Method and System for Implementing An Enhanced Database」と題する米国特許出願公開第11/244347号明細書において見つけ得る。
パターンを参照するためにポインタを使用することは、通常、パターン自体よりもかなり小さい更なるポインタで複製パターンを置き換えることにより、データ・セットを記憶するために必要なメモリ又は他の空間の量を大きく削減することが可能であるという点で効果的である。
第2の構成部分は、ポインタ310によって示されるインデクス領域330である。インデクス領域330は、元のデータ・テーブルからのデータ・レコード全体を表すパターン空間340内からのパターンを識別する。基本的には、インデクスは、レコードを訪問する特定の配列を実施し、インデクス領域は、前述のインデクス全てのレポジトリである。通常、インデクスは、レコードが、必然的でないが、元のテーブルに現れた配列を支配する。例えば、元のレコードの部分集合のみを参照するインデクスを有することも考えられる。
インデクス領域は、インデクス・マネージャ110によって識別され、管理され、インデクス・マネージャ110は、インタフェース102からの入力データを受け取り、インデクス領域を識別するためにデータを操作し、この情報をメモリ60に記憶し、適切なポインタを適宜、使用してインデクスの表現を生成するよう動作可能である。好ましい実施例によれば、この表現は、上述の<header、index、(pattern)space>のトリプルを構成するために使用され、これは更に、メモリ60において生成され、適宜、アーカイブ20に送出される。
構造の第3の構成部分は、ポインタ300が指すヘッダ領域350である。ヘッダ領域350は、特定のテーブルに関連付けられたメタデータを実施する。ヘッダ350は、ア―カイブの一部であり、そういうものとして、アーカイブにコミットされると、変わらないという意味で不変である。ヘッダを変えることが必要な場合、新たなヘッダを表すために別のヘッダが作成される。更に、ヘッダはパターン空間において、又は、アーカイブ内の別の所で、データを変えず、やはり、不変性を維持する。その代わりに、ヘッダは、テーブルにあったデータを回復するためにパターン空間におけるパターンをどのようにして解釈するかについての情報を提供する。
ヘッダにおけるメタデータは、(i)テーブルのレコードに現れるフィールドの名称、(ii)前述のフィールドのタイプ(すなわち、整数フィールドであるか、テキスト・フィールドであるか等を含む)。使用されるデータ・フィールドのタイプから、データがどのようにして表されるか、及びデータに対して行うことが可能な動作を判定することが可能である。ヘッダ領域350は、フィールドが読み出しのみ等であるかに係わらず、その最大値及び最小値などのフィールドの他の属性を含み得る。ヘッダ領域350の局面は全て、ヘッダ領域を規定するためにインタフェース102を介して入ってくるデータを操作し、メモリ60に記憶し、適宜、適切なポインタを使用してヘッダの表現を生成するよう動作可能なヘッダ・マネージャ112によって管理される。好ましい実施例によれば、この表現は、上述の<header、index、(pattern)space>のトリプルを構成するために使用され、これは更に、メモリ60において生成され、適宜、アーカイブ20に送出される。
ヘッダ領域350が記憶する別のメタデータは、特定のフィールドのナビゲーション情報である。よって、ヘッダ350は、伝統的なデータベース・スキーマよりも多くの情報を含む。「経路」という語は、このナビゲーション情報を広く表すために本明細書を通して使用される。これは、インデクス領域330におけるインデクス・エントリから始め、元のレコードに現れたフィールドの値を回復することが可能な工程を説明する。前述のプロセスにはパターン空間340のナビゲーションが関係する。インデクス領域330における各インデクス・エントリは、パターン空間340内のデータ・レコード全体を表す特定のパターンを識別する。前述の特定のパターンは通常、更なるパターン等にそれら自体が指し示し得る他のパターンに対するポインタを含む。最も基本的なレベルでは、何れかの特定のレコードに対するフィールドの実際の値を表す「プリミティブ値」が存在している。
要約すれば、上記3つの構成部分は、相互依存的な役割を果たし、それぞれは、アーカイブに記憶されたデータに依存する。パターン空間は単純にパターンの集合である。単一のテーブルを表すために必要なパターンよりもずっと多いパターンが空間内に存在し得る。例えば、パターン空間は、別々の多くのテーブル、又は同じテーブルの別々のビューを表し得る。インデクス330は、このインスタンスにおいてどのパターンが存在しているか、及びそれが現れる順序を識別する。インデクス及びパターン空間の組み合わせはほぼ、例えば、行及び列におけるセルの集合である概念的なテーブルの再作成を可能にする。例えば、パターン空間及びインデクスにより、テーブルに現れた順序でセルを再構成することが可能である。しかし、この時点で、セルを埋めるためにパターンが存在しているに過ぎない。例証するために、セルにパターン20050806が存在し得るが、その情報は、如何なるもの(例えば、西暦2005年8月6日、西暦2005年6月8日、整数20050806、固定小数2005.0806、又は他の多くのこと)も表し得る。眼に見えるパターンをどのようにして解釈するかの情報を提供するヘッダ350なしで元のテーブルの復元を完了することは可能でない。よって、ヘッダは、テーブルのスキーマにおいて伝統的に現れる情報を提供すると言うことが可能である。しかし、当業者に分かるように、ヘッダはスキーマよりも多くのことを行う。パターン空間もインデクスもスキーマに貢献しない。もう一度図2を参照すれば、マップ270は、ヘッダ(又は、より単純なレベルで考慮された場合にはスキーマ)220がヘッダ240の複製であるかのようにふるまうことを可能にする機能を表す。マップは概念的な装置である。実際には、新たな経路を含む新たなヘッダ(図示せず)が作成され、個々の経路はそれぞれ、ヘッダ240からの同等のフィールドであるかのようにヘッダ220内の一フィールドがふるまうことを可能にするマッピングの一部を含むからである。
データの上記操作が完了すると、すなわち、データ・テーブルが上記種々の構成部分に分割されると、レガシー・データ・マネージャ10はデータをメモリ60からアーカイブ20にインタフェース104を介して転送する。一実施例によれば、操作中に各種レートを一時的に記憶するために一時データベースが利用される一方、別の実施例によれば、レガシー・データ・マネージャ10は、一時データベースを利用しないことがあり得、その代わりに、アーカイブ20に直接記憶する以外は同じやり方で、オンザフライで、メモリに実動システム30から受け取られたデータを操作し得る。
要約すれば、経路のナビゲーションは、パターン空間340内のパターンをまわる工程、及び、プリミティブ・パターンに達し、クエリに応じて返すことが可能である状態になるまで、その中のポインタをたどって、サブパターンに達する工程を含む。前述の意味合いにおける経路のナビゲーションはクエリ・マネージャ106によって管理される。クエリ・マネージャ106は、ユーザが取り出そうとするフィールドの識別情報により、特定のパターンからたどる対象のポインタを識別する。すなわち、フィールドの(ヘッダ領域350における)メタデータに記憶された経路は、特定のフィールドに対応するパターンに達するためにクエリ・マネージャ106が横移動しなければならないパターンがどれかを求める旨の命令を含む。例えば、パターン空間340におけるパターン全てに一意の整数識別子が割り当てられ、インデクス領域330におけるエントリが前述の識別子のうちの1つ(例えば、626)であるとすれば、経路は、(パターンに割り当てられたものと無関係に)更なる整数の系列、例えば、3、0、2、を含み得る。
図4は、本発明の実施例による、経路及びインデクス・エントリの例を示す。インデクス・エントリ値は、例えば、工程410におけるユーザにより、レガシー・データ・マネージャ10に入力される。上記の例をたどると、この値は626である。よって、パターン番号626が、工程420で、クエリ・マネージャ105によって回復され、この時点で、何れかのサブパターンがクエリ・マネージャ105によって識別される。もう一度、上記例をたどれば、パターン番号626は、5つのサブパターン識別子(例えば、735、102、103、416、170)を含むと判定し得る。工程430で、クエリ・マネージャ105は、経路から第1の整数(例えば、3)を回復する。すなわち、(上述の)経路は、[3,0,2]であり得るので、第1の整数は、テキストに現れているように「3」である。<735,102,103,416,170>という組は、特定の例示的なパターンの内容である。この例による整数「3」は、関心の要素、すなわち、このケースでは、パターンにおける4つ目の要素(すなわち、「416」)をもたらす。クエリ・マネージャ105は次いで、工程440で、次の経路の要素を求めるよう動作する。工程450では、クエリ・マネージャ105は、サブパターン・インデクスにおけるサブパターンに現在のインデクスを割り当てる。インデクスは、パターン空間における要素を識別するポインタ(この例では、整数)を含む。経路をたどると、クエリ・マネージャ105は、インデクスから読み取られた値に現在のインデクスがセットされることから開始する。例えば、インデクスから読み取られる値には、変数「ci」が割り当てられるものとする。「ci」における値は、パターン空間、例えば、<735,102,103,416,170>からパターンを回復するために使用される。経路は次いで、サブ要素「3」(4番目)が必要なものである旨を識別するために使用されるので、それにはciが割り当てられ、よって、その場合、そのciは416を含む。この処理が繰り返され、パターン416がパターン空間から回復される。経路内の次の要素は0であるので、第1の値/ポインタはこのパターンから得られ、経路の終点に達するまで「ci」等に割り当てられる。工程460では、プリミティブ・パターンに達したか否かがクエリ・マネージャ105によって判定される。これを判定するために、クエリ・マネージャ105は、経路上に残っている工程がなお存在しているか否かを検査する。経路の終点に達していないと検査が判定した場合、クエリ・マネージャ105は工程420に戻り、さもなければ、処理は、工程470において完了しているものと認められ、保持された現在のパターンのインデクスは、テーブル内の特定のレコードについて必要なフィールドに対応するプリミティブ・パターンを識別する。
ヘッダ領域350は、フィールド毎のメタデータ、及び経路(又はナビゲーション情報)を含み、インデクス領域330はパターン空間340へのポインタ(又はインデクス)を含む。しかし、経路は、単に、パターン空間を追うための工程を含むものでなくてよい。更に、クエリ中にフェッチされるデータに対して行う対象の変換に関する命令も含み得る。あるいは、経路は単に、既存のプリミティブ・パターンに対するレファレンス又はリテラルの値を含み得る。
以下の動作は、本発明の実施例による、クエリ中にデータに対して行い得る変換の限定的でない例である:1.列を削除する、2.列を命名する、3.列を追加する、4.列を再タイプする、5.一時点においてクエリする、及び、6.列を分割し/マージする。これらは、レガシー・データ・マネージャ10により、アーカイブ20におけるデータに対して行われる通常の動作である。
1. 列を削除する
列を削除することは、データ・テーブルから列を除去することを意味する。これは、実動システム30において、その列に保持されたデータがもう必要ない場合に行われる。既にアーカイブされたデータの組(すなわち、アーカイブ20に記憶されたデータの組)からの列を削除するために、そのデータの組に関連付けられたヘッダ350から列を除去するだけで十分である。例えば、初期ヘッダ350は、
Figure 2012504266
の4つのフィールドを含む。更に、フィールドBを削除するために、ヘッダ350を、
Figure 2012504266
で置き換えることが可能である。
図5は、本発明の一実施例により、列がどのようにして削除されるかの更なる詳細を示す。図5に示す例では、2つの「ヘッダ/インデクス/パターン」の組のトリプルが存在している。第1のトリプル500、510、520は、A、B、C、Dを含む、元のヘッダ550に対するポインタを含む。第1のトリプルは更に、元のインデクス及び元のパターン空間を含む。第2のトリプル570、580、590は、旧いパターン空間540、旧いインデクス530以外に、A、C、D560を含む新たなヘッダへのポインタを含む。インデクスがこのインスタンスにおいて共有される。列が削除されているが、この場合において列Bがないことにもかかわらず、同じレコードがパターン空間内に存在するからである。更に、トリプル500、510、520を用いることにより、スキーマ変更の前に存在した形式のデータをクエリすることが可能であり、トリプル570、580、590を用いることにより、スキーマ変更後に存在した状態をクエリすることが可能である。
テーブル内のフィールドが多数存在している場合、単一の列を削除するために、n−1個のフィールド・エントリを複製することは不経済と考えられ得る。したがって、本発明の別の実施例によれば、ヘッダは、先行するヘッダに対するポインタ、及びこのヘッダに対して行われる変更(又は「デルタ」)のリストを含む。このようにして情報を記憶することはいくつかの理由で効果的であるが、大量の記憶空間を節減し、データの特に効率的な回復を可能にする。
図6は、本発明の実施例による、列情報を取り出すための手順の例を示す。ユーザ要求に応じて、工程610では、クエリ・マネージャ105は、ヘッダの鎖の先頭から開始し、そのヘッダが関心の列(すなわち、この場合においてユーザが削除したい列)を定義するかを検査する。肯定の場合、クエリ・マネージャ105は、その列の列情報を取り出し、列が、削除されたとしてマーキングされているかを検査する(640)。当該項目が削除されたものとしてマーキングされていない場合、クエリ・マネージャ105はその列のデータを返す。さもなければ、クエリ・マネージャ105は、鎖における次のヘッダに移動し(630)、工程510からもう一度始めて検査を繰り返す。この方法を使用して列を削除するために、クエリ・マネージャ105は、列が削減されている旨を表示するための特殊マーカをヘッダに入れる。限定列挙でないが、削除を示す旨の追加のフラグ属性をヘッダ情報に加える工程、列のタイプをナルにセットする工程等を含む、これを行うための多くのやり方が存在している。図6に示す例では、列が削除された(640)としてマーキングされ、次いで、列が存在していない(650)旨を示すためにエラーを返す。工程640において削除されたとして列がマーキングされていない場合、クエリ・マネージャ105は、ヘッダから情報を返す(660)。
多数のスキーマ変更が行われた場合、使用するのに扱いにくい長いヘッダ鎖が存在し得る。したがって、本発明の更なる実施例は、前述の要素全ての効果を合成する単一のヘッダに、鎖内の2つ以上の要素を合体させることを可能にする。例証するために、以下の例を記載する。3つのスキーマ変更(すなわち、「列Bの削除」、「列Dの削除」及び「列Aの削除」)が行われる、上記の例をたどる。この例では、結果は、(元のものを含む)4つのヘッダとなる。一実施例によれば、各ヘッダが、先行するヘッダに対するポインタ、及び最後のヘッダが作成されてから行われる変更のみを含むように「デルタ」が利用される。
したがって、ヘッダ0は、
A,INTEGER,..
B,CHAR(20),..
C,DATE,..
D,FLOAT(15),..
であり得る。
最初のスキーマ変更後、ヘッダ1はその場合、
B,NULL,..
<header 0>である。
(タイプをナルにセットすることは、列が削除されている旨を示す1つのやり方である。)
ヘッダ2は、
D,NULL,..
<header 1>
である。
ヘッダ3は、
A,NULL,..
<header 2>
である。
前述の例示的なヘッダが合体された場合、4つのヘッダの組み合わせた効果を表す単一のヘッダを生成するようデルタが「集められる」。これは、再帰プロセス(例えば、coalesce(header3)=remove(A,coalesce(header2))等)とみなし得る。この例示的なプロセスが施された場合、結果は例えば、ヘッダ
C,DATE,...
である。
この実施例によれば、このヘッダは、何れの他のヘッダも指し示さないが、それは、完全にスタンドアロンであり、先行して存在していた何れかの他のヘッダと無関係に動作するからである。
2. 列の改名
本発明の実施例によれば、列が改名されると、ヘッダ300においてその列の新たな名前を割り当てるだけでよい。例えば、ユーザが、上述の例(上記参照)における列「B」を「E」に改名しようとした場合、結果として生じるヘッダは、
Figure 2012504266
になる。
その名称から離れた列の属性全てが変わらない状態にどのようにして留まるかに留意する。ヘッダ鎖を使用する場合、改名された列を定義するのみならず、旧い名前を隠す鎖の要素を提供することが必要である。例えば、
Figure 2012504266

である。
3.列を追加する。
リレーショナル・データベースに、新たな列を加える場合、その列に保持された初期値を定義することが必要である。明らかに、既存のテーブルはこの列を含まず、データベースは、その列に対する要求によって返される値を知る必要がある。前述の値は、ナル、列のリテラルのデフォルト値として、又は、テーブル内の別の列に保持された値の関数として規定される。本発明の実施例によれば、これが、各フィールドの属性の1つである「経路」オブジェクトの使用の根拠である。
上述の通り、経路は、ナビゲーション要素及び機能要素を組み合わせる。新たな列のデフォルト値が、パターン空間に既に現れているリテラル値又はナル値である場合、パターン空間240からその値を取り出す経路をこの列に割り当てることが可能である。リテラル値が、現在のパターン空間に現れていない場合、ナビゲーション情報はないが、リテラル値を返す経路の終点における単純な関数を有する経路を追加することが可能である。
以下には、より複雑な関数が関係する列を加える例証的な例を示す。元のテーブルが、「コスト」及び「価格」と呼ばれる(とりわけ)2つの列を含んでいるとする。例えば、
Figure 2012504266
である。
ユーザが、新たな列(この例では、「利益」と呼ばれ、その値が「価格−コスト」になる)をテーブルに追加しようとする場合、このことを行うために、レガシー・データ・マネージャ10は、やはりナビゲーション要素を有しない経路を作成するが、「価格・コスト」を計算し、その値を返す機能要素を有する。
ユーザが列をデータ・テ―ブルに加える場合、データがどのようにして記憶されるかにはいくつかの可能性が存在している。例えば、一実施例によれば、元のデータ・テーブルが、<header,index,pattern,space>というトリプルとして記憶され、新たなデータが<header’,index’,pattern space’>というトリプルとして記憶され、ここで、pattern space’は、新たなデータ及び元のデータ全ての複製である(すなわち、パターン空間+更なるデータ(δ))。別の実施例によれば、変更(この場合、列を加えること)がデータベースに対して行われると、更なるデータ(δ)は、単に、更なるデータ及び元のデータを含む別個のパターン空間を有することなく、元のパターン空間に記憶することができる。すなわち、一実施例によれば、パターン全てのレポジトリである単一のパターン空間が存在しており、新たなヘッダ及びインデクスのみが、スキーマ変動を反映するために作成される。変更が行われる都度、新たなヘッダ及びインデクスを作成することが可能であり、更なるデータ・パターンがパターン空間に加えられる。前述の2つの可能性は図7A及び図7Bに示す。
熟練した読者に明らかになるように、構成部分(ヘッダ、インデクス、パターン空間)の種々の組み合わせにおけるデータをアーカイブするための種々の可能性は、列の追加だけでなく、適切なデータベース変更全てにあてはまる。
4. 列の再タイプ
列の再タイプは一般に、下にあるアプリケーションが変わる場合に生じる。例えば、実動システムは、トランザクションに対する日付及び時間を記録し始め得、又は、ドルのみでなく、ドル及びセントで価格を記録し得る。列のタイプが変わると、これは、その列の将来の値が、アーカイブに既に入れられている値とは異なる表現を使用する。新たな表現に一致させるためにアーカイブに既にある値全てを変えることが可能であるが、それは、長く、多くの場合、費用がかかる処理であることは言うまでもなく、アーカイブされた元のデータの破壊、及び長く、多くの場合、高価な処理を意味する。ユーザは、新たな値と組み合わせて旧い値にクエリしたい場合、新たな値と同じ表現を使用するよう旧い値を変換することが必要になる。更に、値自体が、パターン空間の一部であるので、場所を変換することは可能でない。
本発明の実施例によれば、変換は、やはり経路構造を使用することによって実現することが可能である。スキーマの変更後、システムは、列のタイプが新たなタイプに一致するようにヘッダ・エントリを書き直す。この列の属性に記憶された経路はこの場合、先行する経路の複製になり、更なる関数が経路の終点に加えられる。この更なる関数は、先行して返され、新たなタイプによって要求された表現に書き換える値を得る。例として、元のフィールドが「価格」と呼ばれ、整数値を有しており、例えば、DECIMAL(6,2)に精度を向上させるようスキーマ変更が行われた場合、この例示的な新たなタイプは、6桁を有する固定小数を表し、6桁のうちの2桁は、小数点の右側である。前述の数を表すための1つのやり方は、整数として記憶するが、何らかの結果を表示する前に適切に変換することである。例えば、値43.57は内部的に整数4357として記憶することが可能である。
したがって、本発明の実施例によれば、特定のタイプ(例えば、DECIMAL(6,2)のもの)を有し、その経路が先行する経路の複製であるが、経路の終点に新たな関数が加えられている新たなエントリ(例えば、「価格」)をヘッダに割り当てることが可能である。この関数は、元の表現における値を得て、それを一係数(例えば、100)で乗算して、その表現を、新たなデータによって使用されるものと一致させている。この新たなスキーマ下では、例えば、35として記憶された値は、3500としてクエリに経路によって返される。
一時点におけるクエリ
ユーザが、アーカイブにクエリしたく、特に、時間上、特定のインスタンスでのデータにクエリしたい場合、その時点において提示されたデータのみならず、そのデータに施されるスキーマも識別することが重要である。上記から明らかであるように、スキーマ変更がアーカイブに施される都度、システムは、アーカイブにおけるテーブル及びサブテーブル毎に<header,index,space>という新たなトリプルを作成する。システムは更に、スキーマが変更された日時で前述のトリプルをマーキングする。ユーザが特定の時点でのアーカイブの状態をクエリしたい場合、システムは、その時点において存在していたデータを回復し、次いで、テーブルの一部を表すパターン空間毎に、システムは、その時点でアクティブであった対応するトリプルを求める。システムが、前述のトリプルを併せて収集すると、その場合、その時点でのデータベースに対するクエリを実行するための適切な手段を有する。
6. 列の分割/マージ
列の分割は、新たな2つの列の追加(上記項番3参照)及び1つの列の削除(上記項番1参照)の組み合わせとしてみなし得る。同様に、列のマージは、2つの列の削除及び新たな1列の追加とみなし得る。
図8は、本発明の実施例による、経路を使用して値が取り出される処理を示す。工程800では、クエリ・マネージャ105は、<header,index,(pattern)space>というトリプルであるテーブルの表現及び経路から開始する。経路が、ナビゲーション情報810を含む場合、ナビゲーション情報は、インデクスによって識別される初期パターンから始まるパターン空間から値を取り出すためにクエリ・マネージャ105によって使用される(820)。ナビゲーション情報が存在しない場合、有用なデフォルト(例えば、「ナル」)が値に割り当てられる(830)。経路が、少なくとも1つの関数840を含む場合、システムは、新たな値を得るために(850)関数を現在の値に加える。システムは更に、テーブル・トリプルを関数に渡す。このことは、関数を使用して、テーブルからの更なる1つ又は複数の値に基づいて結果を取り出し、計算することも可能である旨を意味する。施すための関数がもうない場合(870)、システムは通常、実動システム30又は端末40に、経路により、取り出しされた(860)現在の値を返す。
本明細書及び特許請求の範囲が、最善のモードであると考えられるものが何であるか、及び適切な場合、本発明を実行する他のモードを開示するが、本発明は、好ましい実施例の説明に開示された特定の構成及び方法に限定されない。

Claims (40)

  1. データ記憶装置にデータを記憶し、前記データ記憶装置からデータを取り出すためにコンピュータ・システムを動作させる方法であって、前記コンピュ―タ・システムは、元の形式における前記記憶データの再構成を可能にするやり方でパターンに関連付けられたポインタとともに、前記記憶データにおけるパターンを管理するよう動作可能なデータ・マネージャ装置を有し、前記方法は、
    第1の時点におけるデータ・テーブル・エントリを併せて表すポインタ・データ及びパターン空間情報とともに第1の時点で使用されるスキーマを施す第1のデータ・テーブル・エントリを記憶する工程と、
    スキーマ変更に応じたマップを後の時点で生成する工程であって、前記マップが、新たなポインタ・データ及び/又は新たなパターン空間情報を含む工程と
    を含む方法。
  2. 請求項1記載の方法であって、ポインタ・データはテーブル・メタ・データ及びインデクス・データのうちの1つ又は複数を含む方法。
  3. 請求項1又は2に記載の方法であって、ポインタ・データは、スキーマの局面を定義するヘッダ情報を含む方法。
  4. 請求項2記載の方法であって、ポインタ・データはテーブル・メタ・データを含み、前記テーブル・メタ・データは、テーブルのフィールド、フィールドのタイプ、フィールドの最大値、フィールドの最小値、及びフィールドの別の属性から選択された1つ又は複数を含む方法。
  5. 請求項2記載の方法であって、ポインタ・データは、パターン空間内のパターン要素の順序を規定するインデクス・データを含む方法。
  6. 請求項5記載の方法であって、ポインタ・データは、制御機能がパターン要素をどのようにして横移動すべきかを規定する経路データを含む方法。
  7. 請求項6記載の方法であって、経路データが、1つ又は複数の変換に関する命令を含む方法。
  8. 請求項1乃至7の何れか一項に記載の方法であって、ポインタ・データは前記パターン空間の少なくとも一部分を複製する方法。
  9. 請求項1乃至8の何れか一項に記載の方法であって、ポインタ・データの少なくとも一部分は不変である方法。
  10. 請求項1乃至9の何れか一項に記載の方法であって、スキーマ変更により、前記マップに、旧いポインタ情報に対する変更を示させる方法。
  11. 請求項1乃至10の何れか一項に記載の方法であって、スキーマ変更により、前記マップに、合体されたポインタ情報を示させる方法。
  12. 請求項11記載の方法であって、再帰処理は、合体されたポインタ情報からのデータ・エントリを求めるよう使用される方法。
  13. 請求項1乃至12の何れか一項に記載の方法であって、前記スキーマ変更は、列を削除する工程を含み、前記マップは新たな列、旧いインデクス・データ、及び旧いパターン空間情報を含む方法。
  14. 請求項1乃至12の何れか一項に記載の方法であって、前記スキーマ変更は、列を改名することを含み、前記マップは新たな列名、及び隠す対象の旧い列名を含む方法。
  15. 請求項1乃至12の何れか一項に記載の方法であって、前記スキーマ変更は列を追加する工程を含み、前記マップは、ナル値、リテラルのデフォルト値、及び別の列における値の関数から選択された新たな列情報を示す方法。
  16. 請求項15記載の方法であって、前記マップは、少なくとも部分的に、経路データへの参照により、新たな列情報を示す方法。
  17. 請求項16記載の方法であって、前記経路データは、ナビゲーション・データ及び機能要素のうちの1つ又は複数を含む方法。
  18. 請求項1乃至12の何れか一項に記載の方法であって、前記スキーマ変更は列の再タイプを含み、前記マップは、新たな列におけるエントリにつながる少なくとも一変換を示す方法。
  19. 請求項18記載の方法であって、前記スキーマ変更は列を再タイプする工程を含み、前記変換は、少なくとも部分的に経路データで規定される方法。
  20. 請求項1乃至19の何れか一項に記載の方法であって、前記方法は更に、先行する時点における記憶データをクエリする工程を含み、データ・マネージャは、スキーマ変更に応じて生成された少なくとも1つのマップにアクセスして、その先行する時点におけるクエリをサポートするデータを導き出す方法。
  21. 請求項1乃至12の何れか一項に記載の方法であって、前記スキーマ変更は、列を分割することを含み、前記データ・マネージャは新たな列の追加、及び列名の削除に関するマップ・データを生成する方法。
  22. 請求項1乃至12のうちの何れか一項に記載の方法であって、前記スキーマ変更は、列をマージする工程を含み、前記データ・マネージャは新たな少なくとも1つの列の追加、及び列の削除に関するマップ・データを生成する方法。
  23. データ記憶装置にデータを記憶し、前記データ記憶装置からデータを取り出すコンピュータ・システムであって、
    元の形式で前記記憶データの再構成を可能にするやり方でパターンに関するポインタとともに前記記憶データにおけるパターンを管理するよう動作可能なパターン・マネージャ装置と、
    第1の時点におけるデータ・テーブル・エントリを併せて表すポインタ・データ及びパターン空間情報とともに第1の時点で使用されるスキーマを施す第1のデータ・テーブル・エントリを記憶する記憶装置と、
    スキーマ変更に応じてマップを後の時点で生成するマップ生成器と
    を備え、前記マップは、新たなポインタ・データ及び/又は新たなパターン空間情報を含むコンピュータ・システム。
  24. データ記憶装置にデータを記憶し、データ記憶装置からデータを取り出すコンピュータ・システムであって、前記コンピュータ・システムは、(i)前記データ記憶装置内の複数のデータ・テーブル、及び(ii)前記データ・テーブルの生成に施される複数のスキーマに関する補助データを生成し、管理するよう動作可能なデータ・マネージャ装置を備え、前記補助データは、データ・テーブルの個々のフィールド値をパターン空間から求めることが可能な参照データ、及び前記データ記憶装置のパターン空間内の少なくとも1つのパターンの表示を含むコンピュータ・システム。
  25. アーカイブされたデータを処理する、コンピュータによって実現される方法であって、
    時点Tにおいてデータ・レポジトリからアーカイブに抽出データを転送する工程であって、前記データが、時点Tにおける第1のスキーマによって表される工程と、
    (i)ヘッダ部分、(ii)インデクス部分、及び(iii)前記アーカイブにおける少なくとも1つのパターン空間に向けたポインタの組み合わせとしての少なくとも1つの抽出データを記憶する工程であって、
    前記ヘッダ部分は、前記データ・レポジトリにおいて存在した形式のデータを回復するために前記パターン空間におけるパターンをどのようにして解釈するかに関する情報を含み、前記インデクス部分は、前記レポジトリからのデータ・レコード全体を表すパターン空間内からのパターンを識別する工程と、
    Tよりも遅い時点でデータ・クエリを受信する工程であって、前記レポジトリにおける前記データ・スキーマが、前記第1のスキーマと異なる第2のスキーマに変更された工程と、
    前記第2のスキーマ下で作成されたかのように前記第1のスキーマがクエリに応じて挙動するように、前記ヘッダ部分、前記インデクス部分、及び前記パターン空間におけるデータを利用する前記アーカイブからのデータをデータ・クエリに応じて返す工程とを含む方法。
  26. 請求項25記載の方法であって、クエリする工程は、データに対して変換を行う工程を更に含む方法。
  27. 請求項26記載の方法であって、前記変換は、列の削除、列の改名、列の追加、列の再タイプ、一時点におけるクエリ、列の分割、列のマージのうちの1つ又は複数から選択される方法。
  28. 請求項25記載の方法であって、前記少なくとも1つの抽出データが不変データとして記憶される方法。
  29. 請求項25記載の方法であって、前記ヘッダ部分は少なくとも、(i)テーブルのレコード内に存在するフィールドの名称、及び(ii)前記フィールドのタイプを含む方法。
  30. 請求項25乃至29の何れか一項に記載の方法であって、前記データ・レポジトリがリレーショナル・データベースである方法。
  31. 請求項25乃至29の何れか一項に記載の方法であって、前記データ・レポジトリがデータ・ウェアハウスである方法。
  32. 請求項25乃至29の何れか一項に記載の方法であって、前記データ・レポジトリがスター・スキーマ・データベースである方法。
  33. コンピュータ・システムにおいて使用するためのデータ構造であって、前記データ構造は、
    (i)パターン空間に対するポインタであって、前記パターン空間は、元のデータ・ソースにおいて発見されている1つ又は複数のパターンを含むポインタと、
    (ii)インデクス部であって、インデクス領域は、前記元のデータ・ソースからのデータ・レコード全体を表す前記パターン空間内からのパタ―ンを識別するインデクス部と、
    (iii)ヘッダ部分であって、前記ヘッダ部分は、データ・レポジトリに存在した形式でデータを回復するために前記パターン空間における前記パターンをどのようにして解釈するかを表すメタデータを含むヘッダ部分と
    を備え、
    併せて、前記パターン空間に対するポインタ、前記インデクス、及び前記ヘッダは、一時点におけるデータ・ソースの状態を表す抽出データを構成するデータ構造。
  34. 請求項1乃至33のうちの何れか一項に記載のデータ構造であって、前記2つ又は複数の抽出データは、単一のパターン空間を共有するデータ構造。
  35. アーカイブされたデータをクエリする方法であって、前記方法は、
    前記データをテーブルTに記憶する工程であって、Tは、2つ以上の抽出データ・テーブルTl,T2,T3...TNの和集合であり、各抽出データ・テーブルが、アーカイブに記憶され、そのデータを表す別のスキーマを有する工程と、
    抽出データ・テ―ブルTl, T2, T3...TN間の各スキーマ変更を表すマップを生成する工程と、
    前記抽出データ・テーブルのうちの1つに含まれるデータに対するユーザ要求をクエリ・マネージャにおいて受信する工程と、
    第2の抽出データ・テーブルのスキーマ下で作成されたかのようにクエリに応じて、それを表すデータが挙動するように前記クエリ・マネージャは第1の抽出データ・テーブルのスキーマに再書き込みするように適切なマップを施す方法。
  36. 請求項35記載の方法であって、各抽出データが不変データを含む方法。
  37. レガシー・データ・マネージャであって、
    少なくとも1つの実動システムからデータを受信するよう構成されたインタフェースと、
    前記データを受信し、前記データにおけるパターンを求め、識別されたパターンをメモリに記憶し、ポインタを使用してパターンの表現を生成するよう動作可能なパターン識別器と、
    前記データを受信し、インデクス領域を識別し、前記メモリにインデクスを記憶し、ポインタを使用してインデクスの表現を生成するよう動作可能なインデクス・マネージャと、
    ヘッダ領域を規定し、それをメモリに記憶し、ポインタを使用してヘッダの表現を生成するよう動作可能なヘッダ・マネージャと、
    前記メモリからアーカイブにデータを転送するよう構成された記憶装置上の少なくとも1つのデータ・アーカイブとのインタフェースと
    を備えるレガシー・データ・マネージャ。
  38. データをアーカイブするコンピュータ・システムであって、
    請求項37記載のレガシー・データ・マネージャと、
    動作するよう前記レガシー・データ・マネージャに接続された記憶装置上に常駐している少なくとも1つのデータ・アーカイブと、
    前記レガシー・データ・マネージャに、動作するよう接続され、データを生成するよう動作可能な少なくとも1つの実動システムと
    を備えるコンピュータ・システム。
  39. 請求項38記載のコンピュータ・システムであって、動作するよう、前記実動システム及び/又はレガシー・データ・マネージャに少なくとも1つのユーザ端末を接続し、データ・クエリを受信するよう構成された少なくとも1つのユーザ端末インタフェースを更に備えるコンピュータ・システム。
  40. 請求項39記載のコンピュータ・システムであって、前記ユーザ端末は、パーソナル・コンピュータ、シン・クライアント装置、又は何れかの他の適切な電子装置であるコンピュータ・システム。
JP2011528422A 2008-09-30 2009-09-30 データ記憶のためのシステム及び方法 Pending JP2012504266A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10155308P 2008-09-30 2008-09-30
US61/101,553 2008-09-30
PCT/GB2009/002331 WO2010038019A2 (en) 2008-09-30 2009-09-30 System and method for data storage

Publications (1)

Publication Number Publication Date
JP2012504266A true JP2012504266A (ja) 2012-02-16

Family

ID=41319398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011528422A Pending JP2012504266A (ja) 2008-09-30 2009-09-30 データ記憶のためのシステム及び方法

Country Status (4)

Country Link
US (2) US8386436B2 (ja)
EP (1) EP2350877A1 (ja)
JP (1) JP2012504266A (ja)
WO (1) WO2010038019A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016189155A (ja) * 2015-03-30 2016-11-04 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8935492B2 (en) 2010-09-30 2015-01-13 Commvault Systems, Inc. Archiving data objects using secondary copies
US9251184B2 (en) * 2011-01-07 2016-02-02 International Business Machines Corporation Processing of destructive schema changes in database management systems
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
US10346375B2 (en) * 2012-04-26 2019-07-09 Entit Software Llc In-database parallel analytics
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
US11275760B2 (en) * 2014-10-28 2022-03-15 Microsoft Technology Licensing, Llc Online schema and data transformations
US10003492B2 (en) * 2015-02-24 2018-06-19 CENX, Inc. Systems and methods for managing data related to network elements from multiple sources
US10324914B2 (en) * 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US10592508B2 (en) 2016-09-13 2020-03-17 The Bank Of New York Mellon Organizing datasets for adaptive responses to queries
US10838934B2 (en) * 2017-08-30 2020-11-17 International Business Machines Corporation Modifying archive data without table changes
US11423020B2 (en) * 2018-10-19 2022-08-23 Oracle International Corporation Efficient extraction of large data sets from a database
US20220229821A1 (en) * 2019-07-19 2022-07-21 Namogoo Technologies Ltd. Data restoration using dynamic data structure altering
US11809394B1 (en) * 2020-05-20 2023-11-07 Workday, Inc. Amendments for transactional index
CN112804618B (zh) * 2021-01-06 2022-07-29 昆腾微电子股份有限公司 一种音频输出方法及装置
US11921878B2 (en) * 2021-01-21 2024-03-05 Servicenow, Inc. Database security through obfuscation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07210435A (ja) * 1994-01-26 1995-08-11 Fuji Xerox Co Ltd データベース管理装置
JP2001331315A (ja) * 2000-05-24 2001-11-30 Sony Corp データ処理システム及び方法、並びに、記憶媒体
JP2007094539A (ja) * 2005-09-27 2007-04-12 Mitsubishi Electric Corp 情報処理装置、情報処理方法およびこれらに用いられる情報の記憶媒体

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3271282B2 (ja) * 1991-12-30 2002-04-02 カシオ計算機株式会社 自動メロディ生成装置
US5625816A (en) * 1994-04-05 1997-04-29 Advanced Micro Devices, Inc. Method and system for generating product performance history
US5794239A (en) * 1995-08-30 1998-08-11 Unisys Corporation Apparatus and method for message matching using pattern decisions in a message matching and automatic response system
US5974418A (en) * 1996-10-16 1999-10-26 Blinn; Arnold Database schema independence
US7877421B2 (en) * 2001-05-25 2011-01-25 International Business Machines Corporation Method and system for mapping enterprise data assets to a semantic information model
US6785689B1 (en) * 2001-06-28 2004-08-31 I2 Technologies Us, Inc. Consolidation of multiple source content schemas into a single target content schema
US7020667B2 (en) * 2002-07-18 2006-03-28 International Business Machines Corporation System and method for data retrieval and collection in a structured format
US7464254B2 (en) * 2003-01-09 2008-12-09 Cisco Technology, Inc. Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data
US20050004918A1 (en) * 2003-07-02 2005-01-06 International Business Machines Corporation Populating a database using inferred dependencies
US7194516B2 (en) * 2003-10-23 2007-03-20 Microsoft Corporation Accessing different types of electronic messages through a common messaging interface
US7546324B2 (en) * 2003-11-13 2009-06-09 Commvault Systems, Inc. Systems and methods for performing storage operations using network attached storage
US7200621B2 (en) * 2003-12-17 2007-04-03 International Business Machines Corporation System to automate schema creation for table restore
US7287048B2 (en) * 2004-01-07 2007-10-23 International Business Machines Corporation Transparent archiving
WO2006037613A2 (en) * 2004-10-04 2006-04-13 Clearpace Software Limited Method and system for implementing an enhanced database
US20090132466A1 (en) * 2004-10-13 2009-05-21 Jp Morgan Chase Bank System and method for archiving data
US8140786B2 (en) * 2006-12-04 2012-03-20 Commvault Systems, Inc. Systems and methods for creating copies of data, such as archive copies
US7784094B2 (en) * 2005-06-30 2010-08-24 Intel Corporation Stateful packet content matching mechanisms
US7870173B2 (en) * 2005-10-13 2011-01-11 International Business Machines Corporation Storing information in a common information store
US20070100869A1 (en) * 2005-11-01 2007-05-03 Doney Gary C Transferring specifications and providing an integration point for external tools to access the specifications
US7660807B2 (en) * 2005-11-28 2010-02-09 Commvault Systems, Inc. Systems and methods for cataloging metadata for a metabase
US7512642B2 (en) * 2006-01-06 2009-03-31 International Business Machines Corporation Mapping-based query generation with duplicate elimination and minimal union
US8176052B2 (en) * 2006-03-03 2012-05-08 Perfect Search Corporation Hyperspace index
US8903883B2 (en) * 2006-05-24 2014-12-02 International Business Machines Corporation Apparatus, system, and method for pattern-based archiving of business events
US9176975B2 (en) * 2006-05-31 2015-11-03 International Business Machines Corporation Method and system for transformation of logical data objects for storage
US20080222121A1 (en) * 2006-06-02 2008-09-11 Wolfgang Wiessler System for Adaptively Querying a Data Storage Repository
US8086758B1 (en) * 2006-11-27 2011-12-27 Disney Enterprises, Inc. Systems and methods for interconnecting media applications and services with centralized services
US7720918B1 (en) * 2006-11-27 2010-05-18 Disney Enterprises, Inc. Systems and methods for interconnecting media services to an interface for transport of media assets
US8027970B1 (en) * 2006-12-22 2011-09-27 Emc Corporation Query translation for searching complex structures of objects
US8145677B2 (en) * 2007-03-27 2012-03-27 Faleh Jassem Al-Shameri Automated generation of metadata for mining image and text data
US7849065B2 (en) * 2007-07-20 2010-12-07 Microsoft Corporation Heterogeneous content indexing and searching
US7725454B2 (en) * 2007-07-20 2010-05-25 Microsoft Corporation Indexing and searching of information including handler chaining
US7725439B2 (en) * 2007-08-03 2010-05-25 International Business Machines Corporation Handling column renaming as part of schema evolution in a data archiving tool
US7937410B2 (en) * 2007-12-19 2011-05-03 Sap Ag Generic archiving of enterprise service oriented architecture data
US20090204636A1 (en) * 2008-02-11 2009-08-13 Microsoft Corporation Multimodal object de-duplication
US20090292745A1 (en) * 2008-05-23 2009-11-26 Orbitz Worldwide, L.L.C. Database management system and method
US8812614B2 (en) * 2008-06-05 2014-08-19 Qualcomm Incorporated Data backup for a mobile computing device
US8799251B2 (en) * 2008-06-26 2014-08-05 Microsoft Corporation Document templates for schema-based data transfer into and out of a data-based application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07210435A (ja) * 1994-01-26 1995-08-11 Fuji Xerox Co Ltd データベース管理装置
JP2001331315A (ja) * 2000-05-24 2001-11-30 Sony Corp データ処理システム及び方法、並びに、記憶媒体
JP2007094539A (ja) * 2005-09-27 2007-04-12 Mitsubishi Electric Corp 情報処理装置、情報処理方法およびこれらに用いられる情報の記憶媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016189155A (ja) * 2015-03-30 2016-11-04 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム

Also Published As

Publication number Publication date
US20130013568A1 (en) 2013-01-10
US20110252002A1 (en) 2011-10-13
US8386436B2 (en) 2013-02-26
WO2010038019A2 (en) 2010-04-08
US8706779B2 (en) 2014-04-22
EP2350877A1 (en) 2011-08-03

Similar Documents

Publication Publication Date Title
JP2012504266A (ja) データ記憶のためのシステム及び方法
US8914414B2 (en) Integrated repository of structured and unstructured data
CN107835983B (zh) 使用一致的数据库快照在分布式数据库中进行备份和还原
US9009201B2 (en) Extended database search
US8543613B2 (en) Generating a checkpoint image for use with an in-memory database
US8620884B2 (en) Scalable blob storage integrated with scalable structured storage
US8495036B2 (en) Blob manipulation in an integrated structured storage system
US9639542B2 (en) Dynamic mapping of extensible datasets to relational database schemas
US8386431B2 (en) Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor
US8161024B2 (en) Selection of rows and values from indexes with updates
US9152659B2 (en) Systems and methods for migrating database data
US9149054B2 (en) Prefix-based leaf node storage for database system
EP2144177B1 (en) System and method for a log-based data storage
KR100556594B1 (ko) 데이터베이스에 관한 방법
US20110035359A1 (en) Database Backup and Restore with Integrated Index Reorganization
JPH05342264A (ja) インデックス付け及び検索のための方法及び装置
US7058664B1 (en) Method and system for data recovery
Katz et al. DVID: distributed versioned Image-Oriented dataservice
CN111427847A (zh) 面向用户自定义元数据的索引与查询方法和系统
US20130006940A1 (en) Methods and apparatus related to completion of large objects within a db2 database environment
US20080201290A1 (en) Computer-implemented methods, systems, and computer program products for enhanced batch mode processing of a relational database
US7136861B1 (en) Method and system for multiple function database indexing
US20200278980A1 (en) Database processing apparatus, group map file generating method, and recording medium
JP2007501476A (ja) オブジェクトおよび従属オブジェクトをドロップしないデータベースシステム
JP2003208346A (ja) データベース更新情報の反映システムおよびそのためのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130827

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140218