(57)【要約】データオブジェクトの複数のバージョンをデータベースに効率的に記憶し、かつレポートを作成して任意の所定の時間に対応するデータオブジェクトの単一のバージョンを表示するためのシステムおよび方法を提供する。データオブジェクトは、データオブジェクトのバージョンに対応する信用時間を記憶するための信用時間フィールド（４０）を含むバージョン化されたデータ構造（１０）によって表される。データオブジェクトの単一のバージョンが、データオブジェクトを検索するために必要とされる複数のフィールドを指定するためのＳＥＬＥＣＴ文節と、検索されるデータオブジェクトのバージョンを指定するためのＷＨＥＲＥ文節とを含むＳＱＬコード（９５）を生成することによって、検索される。単一の対外キーを用いて、同一のオブジェクトの複数のバージョンをアクセスする。
2006505059.tif 000002
【特許請求の範囲】
【請求項１】
データベース内のデータオブジェクトの履歴を維持して、データオブジェクトのバージョンについてデータベースを照会するための方法であって、
複数のバージョンと共にデータオブジェクトを表すためのバージョン化されたデータ構造を提供することと、
データオブジェクトを参照するための単一の対外キーを提供することと、
データオブジェクトのバージョンをデータベースから検索するためのクエリールーチンを生成することと、
クエリールーチンを指定された時間につき実行して、指定された時間に対応するデータオブジェクトのバージョンをデータベースから検索することとを含む、方法。
【請求項２】
複数のバージョンと共にデータオブジェクトを表すためのバージョン化されたデータ構造を提供することは、主要キーフィールド、記述フィールド、信用時間フィールド、対外フィールド、およびバージョン番号フィールドのうちの１つまたはそれ以上を備える複数のフィールドを備えるデータ構造を提供することを含む、請求項１に記載の方法。
【請求項３】
記述フィールドを備えるデータ構造を提供することは、データオブジェクトのバージョンの特徴を指定するためのフィールドを提供することを含む、請求項２に記載の方法。
【請求項４】
信用時間フィールドを備えるデータ構造を提供することは、データオブジェクトのバージョンがデータベースに入力された時間を指定するためのフィールドを提供することを含む、請求項２に記載の方法。
【請求項５】
対外キーフィールドを備えるデータ構造を備えることは、主要キーフィールドを用いてデータベース内のデータオブジェクトを参照するためのフィールドを提供することを含む、請求項２に記載の方法。
【請求項６】
バージョン番号フィールドを備えるデータ構造を提供することは、データオブジェクトのバージョンを一意に識別するためのフィールドを提供することを含む、請求項２に記載の方法。
【請求項７】
データオブジェクトを参照するための単一の対外キーを提供することは、単一の対外キーを用いて、単一の対外キーの値によって識別されるデータオブジェクトの複数のバージョンとなることを含む、請求項１に記載の方法。
【請求項８】
データオブジェクトのバージョンをデータベースから検索するためにクエリールーチンを生成することは、データオブジェクトのバージョンを検索するために複数のフィールドから１つまたはそれ以上のフィールドを指定することを含む、請求項１に記載の方法。
【請求項９】
データオブジェクトのバージョンをデータベースから検索するためにクエリールーチンを生成することは、フィルタを指定することをさらに含む、請求項１に記載の方法。
【請求項１０】
クエリールーチンを実行することは、ＳＱＬルーチンを生成するために複数のフィールドから１つまたはそれ以上のフィールドをフィルタで解析することを含む、請求項１に記載の方法。
【請求項１１】
指定された時間につきクエリールーチンを実行して、指定された時間に対応するデータベースからデータオブジェクトのバージョンを検索することは、ＳＱＬルーチンを指定された信用時間で実行して、指定された信用時間につき有効なデータオブジェクトのバージョンを生成することを含む、請求項１に記載の方法。
【請求項１２】
データベース内のデータオブジェクトの履歴を維持して、データオブジェクトのバージョンについてデータベースを照会するためのシステムであって、
複数のバージョンと共にデータオブジェクトを記憶するためのバージョン化されたデータベースと、
単一の対外キーを複数のバージョンに対して実行するためのカスタムトリガルーチンと、
指定された時間におけるデータオブジェクトのバージョンを検索するためのクエリールーチンとを備える、システム。
【請求項１３】
バージョン化されたデータベースは、主要キーフィールド、記述フィールド、信用時間フィールド、対外フィールド、およびバージョン番号フィールドのうちの１つまたはそれ以上を備える複数のフィールドを備える、請求項１２に記載のシステム。
【請求項１４】
記述フィールドは、データオブジェクトのバージョンの特徴を指定するためのフィールドを備える、請求項１３に記載のシステム。
【請求項１５】
信用時間フィールドは、データオブジェクトのバージョンがデータベースに入力された時間を指定するためのフィールドを備える、請求項１３に記載のシステム。
【請求項１６】
対外キーフィールドは、主要キーフィールドを用いてデータベース内のデータオブジェクトを参照するためのフィールドを備える、請求項１３に記載のシステム。
【請求項１７】
バージョン番号フィールドは、データオブジェクトのバージョンを一意に識別するためのフィールドを備える、請求項１３に記載のシステム。
【請求項１８】
クエリールーチンは、
データオブジェクトのバージョンを検索するために複数のフィールドを指定するための選択パラメータと、
フィルタと、
信用時間パラメータを備えるＳＱＬルーチンとを備える、請求項１２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の背景）
本発明は、一般的に、データベース内のバージョン化されたデータの管理に関する。より特定的には、本発明は、データベース内のデータオブジェクトの複数のバージョンを記憶し、かつレポートを作成して任意の所定の時間に対応するデータオブジェクトの単一のバージョンを表示するためのシステムおよび方法に関する。
【背景技術】
【０００２】
インターネットおよび情報技術（ＩＴ）の出現は、世界中のビジネスのやり方に大きな変革をもたらした。これらの技術を採用して、ビジネス組織は、その構造、ワークフロー、およびビジネス関係を組織化し、ビジネス処理をより一層効率的にしてきている。特に、これらの技術は、ビジネス組織が日々取り扱う大量のデータを管理するのを可能にする助けとなっている。
【０００３】
所定のビジネス組織によって生成されたデータは、典型的には、ビジネス組織の情報システムの全体に渡る様々なデータベースに記憶される。データベースは、その内容が容易にアクセス、管理、および更新されるように組織化されたデータの集まりである。データベース内に記憶されたデータおよび当該データを操作するために用いられたアルゴリズムは、コンピュータメモリ内において、特にキュー、リンクされたリスト、ストック、ヒープ、ツリー、またはハッシュテーブルなどのデータ構造によって表される。
【０００４】
データベースの最も普及している型は、リレーショナルデータベースであって、正式に記述されたテーブルの組として組織化されており、それらテーブルから、テーブルを再組織化する必要なく、多くの互いに異なる方法でデータをアクセスまたは再構成することができる。各テーブルは、リレーションとも称され、列に１つまたはそれ以上のデータカテゴリを含む。テーブル内の各行は、列によって規定されたカテゴリによって表されるデータオブジェクトについて固有のデータレコードまたはインスタンスを含む。テーブル内の各行は、主要キーによって一意に識別され、主要キーは、行を一意に識別するテーブル内の任意の１列または複数の列であってもよい。典型的には、テーブルは、デフォルトの主要キーとして機能する固有の整数値を保持する列を含むであろう。整数値は、データベースによって自動的に割り当てられてもよく、通常、増分するように生成される。１つ以上の列からなる主要キーは、通例、複合主要キーと称される。
【０００５】
例えば、カリフォルニア州シアトルのアマゾン・ドット・コムなどの店電子商取引のウェブサイトは、顧客の注文を記述するためのリレーショナルデータベースを有してもよい。リレーショナルデータベースは、顧客の名前、住所、およびクレジットカードについての列を有する顧客の個人情報を記憶するテーブルと、購入製品、その価格および数量についての列を有する注文自体を記述する別のテーブルとを含んでもよい。顧客および顧客の注文は、データオブジェクトであり、テーブル内の各行は、所定のオブジェクトについてのデータのデータレコードまたはインスタンスを含むであろう。テーブルは、整数値で各データレコードを一意に識別して、テーブルの主要キーとしての役割を果たすＩＤ列を含んでもよい。代わりに、所定の顧客の姓名を、顧客の個人情報テーブルにおいて複合主要キーとして用いてもよい。
【０００６】
データベースからのデータの照会は、構造化照会言語（「ＳＱＬ」）と呼ばれる標準アプリケーションプログラムインターフェイスを用いてもよい。ＳＱＬによって、ユーザは、データ操作の中でもとりわけ、データの位置を選択、挿入、削除、更新、および探し当てることができる。ユーザは、ＳＱＬ文を指定して、リレーショナルデータベースを作成、更新、および管理するためのプログラムであるリレーショナルデータベース管理システム（「ＲＤＢＭＳ」）の一部として、データベース内のデータを操作してもよい。市販のＲＤＢＭＳの例には、ニューヨーク州ホワイトプレインズのＩＢＭ社によって販売されているＤＢ２、カリフォルニア州レッドウッドショアーのオラクル社によって販売されているオラクル９ｉデータベース、およびニューヨーク州アイランディアのコンピュータアソシエイツインターナショナル社によって販売されているオープンアングルが含まれる。代わりに、ビジネス組織は、ワシントン州レドモンドのマイクロソフト社によって販売されているエクセルなどのスプレッドシートソフトウェアアプリケーションを用いて、ＲＤＢＭＳをエミュレートしてもよい。
【０００７】
ビジネス組織は、市販のＲＤＢＭＳを用いて、とりわけ、会計、財務情報、従業員の記録、在庫、および法的記録などの顧客、調達先、および内部データを記憶するデータベースを管理することが多い。加えて、建設業および製造業などの業界におけるのビジネス組織は、様々なビジネス活動に関わる活動ベースのコスト計算データ、ならびに各活動についてのコストおよびコスト要因の決定を管理するために、より専門的なＲＤＢＭＳを必要とする場合もある。活動ベースのコスト計算データの例には、建築ユニットの材料および労働コストもしくは所定の購入注文または機械の使用によって生じたコストが含まれる。市販の活動ベースのコスト計算ＲＤＢＭＳには、カリフォルニア州フォルソムのメリディアンプロジェクトシステム社によって販売されているプロログマネージャおよびプロログスケジューラ、ならびにコロラド州デンバーのＪ．Ｄ．エドワードアンドカンパニー社によって販売されているワンワールドソフトウェアパッケージが含まれる。
【０００８】
これらの活動ベースのコスト計算システムの主要な機能の１つは、実際のコストと、予算コストとの間の相違を進行ベースで明らかにすることである。実際のコストの正確かつ一貫した計算を確実なものにするために、これらのシステムは、数多く野の変数を考慮することを必要とするデータベースクエリーを実行する。これらの変数は、とりわけ、資源の識別および分類、プロジェクト、フェーズ、およびタスク参照、コストコード参照、ならびに日付および時間を含みうる。正確な結果を生じさせるためには、これらのシステムにおける実際のコストの計算を促進するトランザクションは、これらの各変数を正確に記録しなければならない。
【０００９】
このことは、ＲＤＢＭＳに対して、ビジネス組織によって生じたすべてのデータレコードおよびトランザクションの履歴記録を付けることを要求する。データベースに内に履歴を取っておくための一般的な方策としては、データオブジェクトに対するすべての更新を、データベース内の当該オブジェクトについての新規バージョンとすることによって、データオブジェクトの有効日を追跡することが挙げられる。各バージョンは、データベース内の単一のデータレコードまたは行に対応し、データオブジェクトの特定の表象が該当するのがどの時点かを示す１つまたはそれ以上の日付フィールドを含む。そして、ＳＱＬクエリーを用いて、データベース内のデータフィールドに対する日付範囲を用いて、任意の時点に該当する行またはバージョンの組を返すことができる。
【００１０】
例えば、ビジネス組織は、その従業員についての情報を記憶する労働データベースであって、従業員名および住所についての列を有する従業員の個人情報を記憶する個人情報テーブルと、従業員の肩書き、技能、所定日の勤務時間、および所属ビジネス単位についての列を有するビジネス組織内における従業員の役割を記述する他のワークテーブルとを備える労働データベースを有してもよい。従業員の経過を常に把握するために、ビジネス組織は、ビジネス組織での従業員の仕事の履歴を記憶する必要がある場合がある。所定のデータオブジェクトまたは従業員についてのワークテーブルの各バージョンまたは行は、従業員が特定のビジネス単位で働いていた期間を示す「開始日」および「終了日」フィールドを含んでもよい。代わりに、各バージョンは、バージョンが日付フィールドにおいて示された日付から有効であることを示す単一の日付フィールドと共に表されてもよい。いずれの場合も、従業員のビジネス組織における仕事生活の履歴を付けると、ビジネス組織内において従業員の役割が変化する度に、ワークテーブルに対して新たなバージョンまたは行が追加されるということになる。そして、ＳＱＬクエリーを用いて、所定の期間に従業員がどのビジネス単位で働いていたかを見つけるようにしてもよい。
【００１１】
より複雑な場合には、ビジネス組織は、各データオブジェクトについて、同一のテーブル内または異なるテーブルに記憶された他のデータオブジェクトを参照するための１つまたはそれ以上の対外キーを含まなければならないこともある。対外キーは、ある他のテーブルの（複数の）主要キー列に見つかる（複数の）値を保持しているであろう任意のテーブル内にある１つまたはそれ以上の列の組である。上記の例では、ワークテーブルは、テーブルの主要キーとして機能する整数値を有するＩＤ列と、個人情報テーブルに対する対外キーとして機能する名前列とを含んでもよい。
【００１２】
しかしながら、データオブジェクトの複数のバージョンが１つのテーブルに記憶される場合、単一の対外キーを用いて他のオブジェクトを参照するのは困難な場合がある。なぜならば、対外キーは、同一のデータオブジェクトの１つまたはそれ以上のバージョンとなる場合があるからである。例えば、名前列は、個人情報テーブル内の所定の従業員の複数のバージョンを参照することがあり、各バージョンは、ビジネス組織で働いている間に従業員が保持した互いに異なる住所に対応することがある。
【００１３】
現在、バージョン化されたデータオブジェクトの単一のバージョンとなる単一の対外キーを用いることが可能なＲＤＢＭＳは存在しない。バージョン化されたデータオブジェクトの単一のバージョンを現在のＲＤＢＭＳを用いて抽出するには、日付フィールドを含む複合対外キーを用いて所望のバージョンを参照するか、または特定のデータベース設計用にカスタマイズされた従来にはない対外キーを用いることが必要であろう。上記の例では、所定の時点での従業員の住所を探し出すには、従業員の名前と共に、所望の時間に対応するための日付対外キーをも含む複合対外キーを用いることが必要であろう。しかしながら、バージョン化されたデータオブジェクトを複合対外キーを用いてアクセスすることは煩雑であり、維持するのが困難である。データレコードに対する頻繁な変更は、対外キー自体の頻繁な変更を必要とする場合がある。
【００１４】
さらに、カリフォルニア州パロアルトのクリスタルディシジョン社によって提供されているクリスタルレポート、カリフォルニア州レッドウッドショアーのオラクル社によって提供されているオラクルレポート、カナダオタワ州のコグノス社によって提供されているコグノスなどのような、現在利用可能なデータベースレポーティングツールは、所定のデータオブジェクトの単一のバージョンを抽出するための従来にはない対外キーが必要なバージョン化されたデータオブジェクトについてのデータベースレポートを作成することができない。データベースレポーティングツールを用いて、テキスト、グラフィック、またはマルチメディアレポートまたはデータオブジェクトの表示をデータベース内に生成することが多い。これらのレポーティングツールによって、ビジネス組織は、そのデータオブジェクトを連続的に閲覧することができる一方で、データオブジェクトが従来にはないやり方で記憶される場合に、任意の所定の時間におけるバージョン化されたデータオブジェクトのクエリーを生成し、かつ単一の対外キーを用いて他のデータオブジェクトを参照することはできない。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
以上に鑑み、本発明の目的は、データベース内にデータオブジェクトの複数のバージョンを効率的に記憶するためのシステムおよび方法を提供することである。
【００１６】
本発明のさらなる目的は、バージョン化されたデータオブジェクトの単一バージョンになる単一の対外キーを用いるためのシステムおよび方法を提供することである。
【００１７】
また、本発明の目的は、データベースレポートを作成して、任意の所定の時間に対応するデータオブジェクトの単一のバージョンを表示するためのシステムおよび方法を提供することである。
【課題を解決するための手段】
【００１８】
（発明の概要）
本発明のこれらおよび他の目的は、データオブジェクトの複数バージョンをデータベースに記憶し、かつ、任意の所定の時点についてのデータベースレポートを作成するためのデータオブジェクトの単一バージョンを検索するためのシステムおよび方法を本発明の原則に従って提供することによって達成される。データオブジェクトは、テーブルに記憶すべき要素を表し、互いに異なるフィールドまたはカテゴリに関連する。例えば、データオブジェクトは、名前フィールドおよび従業員番号フィールドに関連する従業員を表してもよい。
【００１９】
データオブジェクトの各バージョンは、テーブル内の単一のデータレコードまたは行に対応し、テーブルにデータレコードが入力された日時、すなわち、その時からデータレコードが有効であると思われる日時を示す信用時間フィールドを含む。また、各バージョンは、他のデータオブジェクトを参照するための対外キーを含んでもよい。対外キーは、所定のデータオブジェクトの複数のバージョンとなってもよい。所定のデータオブジェクトの単一バージョンは、対外キーの変化を信用時間と関連付けることによって、照会されてもよい。
【００２０】
好ましい一実施形態において、本発明のシステムは、４つの主なソフトウェア構成要素、すなわち、（１）単一の対外キーと共に、バージョン化されたデータオブジェクトをテーブルに記憶するためのバージョン化されたデータ構造と、（２）バージョン化されたデータオブジェクトを記述するためのカスタマイズされたデータ辞書と、（３）バージョン化されたデータオブジェクトに対して単一の対外キーを実施するためのカスタムトリガと、（４）テーブルからデータオブジェクトのバージョンを検索するためのクエリー生成器とを含んでもよい。
【００２１】
バージョン化されたデータ構造は、データオブジェクトを一意に識別する主要キーフィールドと、データオブジェクトを説明する複数のフィールドと、その時からデータレコードが有効と思われる日時を示す信用時間フィールドと、主要キーを用いてテーブル内の他のデータオブジェクトを参照する対外キーフィールドと、テーブル内のデータオブジェクトの各バージョンを示すバージョン番号フィールドとを有するバージョン化されたデータオブジェクトを表す。
【００２２】
フィールドは、カスタマイズされたデータ辞書において指定され、当該辞書は、データオブジェクトを完全に記述するために用いられるであろう情報の中でもとりわけ、データオブジェクトが有するであろう値などの、データオブジェクトに関するすべての情報と、データオブジェクトのテキスト記述とを含む。
【００２３】
データオブジェクトの完全性は、対外キーフィールドに割り当てられた値がテーブル内でサポートされていることを証明するカスタムトリガによって実施される。カスタムトリガは、所定のデータオブジェクトについての新たなバージョンがテーブルに挿入されるたびに、呼び出される。
【００２４】
所定のデータオブジェクトについてのバージョンは、クエリー生成器を用いることによってテーブルから検索される。クエリー生成器は、２つの入力パラメータを有する関数として、すなわち、当該バージョンを検索するのに所望される複数のフィールドと、クエリーによって返されるバージョンを制限するフィルタとによって、実施される。クエリー生成器は、パラメータを解析し、ＳＱＬコードを生成して、テーブル内の所定のデータオブジェクトについてのバージョンを抽出する。その後、ＳＱＬコードを実行して所定のデータオブジェクトについての単一のバージョンを返すために、信頼時間が各クエリー生成器の要求について設定される。フォーマットされたデータベースレポートを作成して、所望のバージョンを市販のレポート提示ツールを用いて表示してもよい。
【００２５】
都合のよいことには、本発明のシステムおよび方法によって、ビジネス組織は、データオブジェクトの複数のバージョンを効率的に記憶し、かつ任意の所定の時点についてのデータベースレポートを作成するためにデータオブジェクトの単一のバージョンを検索することができる。
【発明を実施するための最良の形態】
【００２６】
（図面の詳細な説明）
図１を参照して、本発明の原則に従って用いられるソフトウェア構成要素の概略図を説明する。バージョン化されたデータ構造１０は、バージョン化されたデータオブジェクトをいくつかのフィールドと共に表す。フィールドは、（１）データオブジェクトを一意に識別する主要キーフィールドと、（２）データオブジェクトに固有の特徴を指定する記述フィールドと、（３）その時からデータレコードが有効と思われる日時を示す信用フィールドと、（４）主要キーを用いて、テーブル内の他のデータオブジェクトを参照する対外キーフィールドと、（５）テーブル内のデータオブジェクトの各バージョンを示すバージョン番号フィールドとを含む。
【００２７】
フィールドは、カスタマイズされたデータ辞書１５において指定され、当該辞書は、データオブジェクトを完全に記述するために用いられるであろう情報の中でもとりわけ、データオブジェクトが有するであろう値などの、テーブルに記憶されたデータオブジェクトに関するすべての情報と、データオブジェクトのテキスト記述とを含む。
【００２８】
データオブジェクトの完全性は、対外キーフィールドに割り当てられた値がテーブル内でサポートされていることを証明するカスタムトリガ２０によって実施される。カスタムトリガ２０は、所定のデータオブジェクトについての新たなバージョンがテーブルに挿入されるたびに、呼び出される。
【００２９】
クエリ生成器２５は、所定のデータオブジェクトの１つまたはそれ以上のバージョンをテーブルから検索する機能である。クエリー生成器２５は、２つの入力パラメータ、すなわち、当該バージョンを検索するのに所望される複数のフィールドと、クエリーによって返されるバージョンを制限するフィルタとを取る。クエリー生成器２５は、パラメータを解析し、ＳＱＬコードを生成して、テーブル内の所定のデータオブジェクトについてのバージョンを抽出する。その後、ＳＱＬコードを抽出して所定のデータオブジェクトについての単一のバージョンを返すために、信頼時間が各クエリー生成器の要求について設定される。その後、フォーマットされたデータベースレポートを作成して、所望のバージョンを市販のレポート提示ツールを用いて表示してもよい。
【００３０】
今度は図２を参照して、バージョン化されたデータ構造の概略図を説明する。バージョン化されたデータ構造１０は、いくつかのフィールドと共に、バージョン化されたデータオブジェクトを表す。フィールドは、（１）主要キーフィールド３０と、（２）複数の記述フィールド３５と、（３）信用時間フィールド４０と、（４）対外キーフィールドと、（５）バージョン番号フィールド５０とを含む。
【００３１】
主要キーフィールド３０を用いて、整数値、テキスト、アスキーコード、またはデータベーステーブル内の行を一意に識別するために用いられるであろう他の表象によって、データオブジェクトを一意に識別する。
【００３２】
記述フィールド３５は、所定のオブジェクトの特徴を記述するために用いられるであろう１つまたはそれ以上のフィールドを含む。例えば、従業員データオブジェクトは、それを記述するための名フィールド、姓フィールド、および住所フィールドを有してもよい。
【００３３】
信用時間フィールド４０を用いて、データオブジェクトの所定のバージョンがテーブルに挿入された日時を示す。また、信用時間４０は、その時から当該バージョンが有効と思われる日時を示す。信用時間フィールド４０を用いてデータオブジェクトの複数のバージョンを記憶すると、ユーザは、データオブジェクトの現在のバージョンのような、データオブジェクトの任意の時間的表象を抽出することができる。また、信用時間フィールド４０により、ユーザは、任意の所定の期間中のデータベースの完全な監査を、当該期間に対応する信用時間フィールド４０についての値を有するすべてのバージョンについてデータベースに照会することによって、行うことができる。
【００３４】
バージョン番号フィールド５０は、データベーステーブル内に記憶された所定のデータオブジェクトの各バージョンを一意に識別するための固有のＩＤである。最後に、対外キーフィールド４５は、所定のデータオブジェクトについて、主要キーフィールド３０を用いた他のデータオブジェクトに対する参照を表す。
【００３５】
さらなるフィールドを用いてデータベース内のバージョン化されたデータを表してもよいことが、当業者によって理解されるべきである。
【００３６】
今度は図３を参照して、バージョン化されたデータ構造を用いて従業員情報を表すためのテーブルの説明図を説明する。テーブル６０は、ビジネス組織についてのバージョン化された従業員情報を表しており、すなわち、テーブル６０を用いて、従業員レコードからなるデータオブジェクトに関連する情報を記憶する。主要キーフィールド３０は、テーブル６０においては、従業員番号を指定するための増分する整数値によって表され、各値は、テーブル６０内のデータオブジェクトを参照する。記述フィールド３５は、テーブル６０においては、ビジネス組織内で従業員が同僚から呼んでもらいたい名前を列挙した単一の従業員名フィールド６５によって表される。信用時間４０は、テーブル６０においては、修正済みフィールド７０によって表され、主要キーフィールド３０によって識別された所定のバージョンがテーブル６０に入力された日付、すなわち、所定の従業員名がテーブル６０において修正された日付を示す。最後に、対外キーフィールド５０は、管理者フィールド７５によって表され、テーブル６０内の各従業員の管理者を示す。また、テーブル６０は、各従業員のバージョンを一意に識別するためのバージョン番号フィールド５５を有する。
【００３７】
例えば、従業員１は、２００２年２月２日にはジョン、２００２年２月６日にはジョニー、２００２年２月８日にはジャックと称された。同様に、従業員３は、２００２年２月２日にはロバート、２００２年２月４日にはボビー、２００２年２月６日にはボブと称された。従業員３は、従業員３のバージョン１，２，および３の管理者フィールド７５の値によって示されているように、従業員１によって管理されている。従業員３のマネージャーの名前を決定するには、管理者フィールド７５の値を、対応信用時間または修正済みフィールド７０についての値によってテーブル６０内で検索しなければならない。どの信用時間も管理者フィールド７５の値に関連付けられていない場合には、テーブル６０内の対外キーとして用いられる時の管理者フィールド７５の値は、従業員１の３つの異なるバージョンとなる。管理者フィールド７５の値は、カスタムトリガ２０によって実施される。
【００３８】
今度は図４を参照して、テーブルからクエリー生成器を用いてデータオブジェクトの単一のバージョンを検索するためのフローチャートを説明する。ステップ８５において、データオブジェクトのバージョンを検索するために必要とされるフィールドが指定される。例えば、ユーザは、従業員名およびその管理者を表示することによって、テーブル６０（図３）に記憶された従業員３の現在のバージョンを閲覧したい場合がある。
【００３９】
ステップ９０において、所定のクエリーに対して返されるバージョンを制限するために用いられるフィルタを指定する。ステップ９５において、パラメータは解析されて、対応のＳＱＬコードが生成される。テーブル内のデータオブジェクトの単一のバージョンを返すには、信用時間がステップ１００において設定される。最後に、ＳＱＬコードがステップ１０５において実行されて、レポートがステップ１１０において作成される。ＳＱＬクエリは、必要なフィールドをカスタマイズされたデータ辞書１５に対して分析することによって生成される。上記の例では、クエリー生成器２５は、従業員３の現在の管理者は「ジャック」と呼ばれているとわかるであろう。
【００４０】
さらなるステップを用いて、データオブジェクトの単一のバージョンをデータベース内のバージョン化されたテーブルから検索してもよいことが、当業者によって理解されるべきである。
【００４１】
今度は図５を参照して、クエリー生成器パラメータ、クエリー生成器によって当該パラメータから生成された関連ＳＱＬコード、およびクエリー生成器によって信用時間の組について生じた結果の説明図を説明する。クエリー生成器パラメータ１２０が、従業員名およびその管理者を列挙することによって従業員データオブジェクトをテーブル６０から検索するために指定される。フィルタ１２５が、「ボブ」と呼ばれるすべての従業員を返すために指定される。パラメータ１２０およびフィルター１２５と共に実行中のクエリー生成器２５は、ＳＱＬコード１３０となる。ＳＱＬコード１３０は、テーブル６０から所定の信用時間における従業員の１つのバージョンを検索する「ｗｈｅｒｅ」文節を有する。
【００４２】
「現在（ｎｏｗ）」という信用時間で実行中のＳＱＬコード１３０は、「ボブ」という名のすべての従業員の現在のバージョンを返し、テーブル６０においてバージョン１３５となる。同様に、「２００２年２月５日」という信用時間で実行中のＳＱＬコード１３０は、従業員名およびその管理者名について無効の値を有するバージョン１４０を返す。なぜなら、「ボブ」という名の従業員は、その日にはテーブル６０内に列挙されていないからである。
【００４３】
以上、本発明の特定の実施形態を詳細に説明してきたが、本説明は例証の目的のために過ぎないことが理解されるであろう。本発明の特定の特徴は、便宜上のためのみ、ある図面には示されているが他には示されておらず、また、任意の特徴は、本発明に係る他の特徴と組み合わせてもよい。説明した処理のステップは、再配列または組み合わせてもよく、他のステップが含まれてもよい。当業者には、さらなる変形が本開示の観点から明らかであり、そのような変形は、添付の請求項の範囲内に収まることが意図されている。
【図面の簡単な説明】
【００４４】
本発明の以上およびその他の目的は、添付の図面と共に以下の詳細な説明を考慮して、明らかになるであろう。図面において、同様の参照文字は同様の部分を指し、図面において、
【図１】図１は、本発明の原則に従って用いられるソフトウェア構成要素の概略図である。
【図２】図２は、バージョン化されたデータ構造の概略図である。
【図３】図３は、バージョン化されたデータ構造を用いて従業員情報を表すためのテーブルの説明図である。
【図４】図４は、クエリー生成器を用いてテーブルからデータオブジェクトの単一のバージョンを検索するためのフローチャートである。
【図５】図５は、クエリー生成器パラメータ、クエリー生成器によって当該パラメータから生成された関連ＳＱＬコード、およびクエリー生成器によって信用時間の組について生じた結果の説明図である。
【図１】
2006505059.tif 000003
【図２】
2006505059.tif 000004
【図３】
2006505059.tif 000005
【図４】
2006505059.tif 000006
【図５】
2006505059.tif 000007
【国際調査報告】
2006505059.tif 000008