(57)【特許請求の範囲】
【請求項１】
データにアクセスする方法であって、
各々が１つ又は複数のトラックをもった１つ又は複数のページを有するデータベース内の第１のデータにアクセスする要求を受け取るステップであって、前記第１のデータはデータベースの第１のページ上に置かれ、前記第１のページは、それぞれ前記第１のページ上の複数のトラックに格納された前記第１のデータの複数のバージョンを含み、
前記第１のページ上の第１のトラックに格納された前記第１のデータの最新バージョンは、１つ又は複数のエントリを有するデータ構造体内の第１のエントリに格納された値に基づいて識別可能であり、前記１つ又は複数のエントリは、それぞれ前記データベース内の前記１つ又は複数のページと関連付けられており、
前記データ構造体内の前記第１のエントリは前記データベース内の前記第１のページと関連付けられており、前記第１のエントリの前記値は、前記第１のページ上の前記第１のデータの前記最新バージョンが置かれた、前記データベース内の前記第１のページ上の前記第１のトラックの位置を識別し、かつ、前記第１のデータの前記最新バージョンが前記第１のトラックに格納された時間とは関連付けられていない、受け取るステップと、
前記データ構造体から、前記第１のエントリに格納された前記値を読み出して、前記データの前記最新バージョンが格納された前記第１のページ上のトラックを見つけるステップと、
前記第１のデータを含むものとして、前記第１のエントリから読み出された前記値に基づいて識別された前記第１のトラック上の第１のロックを取得して、前記第１のデータに対するアクセスを同期させるステップと、
前記第１のエントリに格納された前記値は読み出されているので、前記第１のトラックに格納された前記第１のデータを読み出す又は更新する前に、前記第１のエントリに格納された前記値をもう一度読み出すことによって、前記第１のトラックが前記第１のデータの前記最新バージョンを格納していることを検証するステップと、
前記第１のページを現行世代に進めるステップと、
前記第１のページ上の第２のトラックに書き込んで前記データの前記最新バージョンを更新するステップと、
前記第２のトラックに対するアクセスを同期させる第２のロックを解除するステップと、
前記データの前記最新バージョンのコピーを前記第２のトラック上に生成するステップと
を含む方法。
【請求項２】
前記要求は、前記第１のデータを読み出すことであり、
前記データの前記最新バージョンを返すステップと、
前記第１のロックを解除するステップと
を更に含む、請求項１に記載の方法。
【請求項３】
前記要求は、前記第１のデータを更新することであり、
前記第１のトラックが前記データベースの前記現行世代と関連付けられているかどうかを判断するステップを更に含む、請求項１に記載の方法。
【請求項４】
前記第１のトラックは、前記データベースの前記現行世代と関連付けられており、
前記第１のトラックに書き込んで前記データの前記最新バージョンを更新するステップと、
前記第１のロックを解除するステップと
を更に含む、請求項３に記載の方法。
【請求項５】
前記第２のトラックを前記現行世代に関連付けるステップと、
前記第２のロックをリセットし取得して前記第２のトラックに対するアクセスを同期させるステップと、
前記第１のページに対応する前記エントリを前記第２のトラックを参照するように更新して、前記コピーが前記データの前記最新バージョンとなるようにするステップと、
前記第１のロックを解除するステップと
を更に含む、請求項１に記載の方法。
【請求項６】
前記コピーを生成するステップは、前記第２のトラックに格納された前記データの最も古いバージョンに上書きするステップを含む、請求項５に記載の方法。
【請求項７】
データベース内のデータにアクセスするためのシステムであって、
１つ又は複数のプロセッサと、
各々が１つ又は複数のトラックをもった１つ又は複数のページを有するデータベース内の第１のデータにアクセスする要求を受け取るための論理ユニットであって、前記第１のデータはデータベースの第１のページ上に置かれ、前記第１のページは、それぞれ前記第１のページ上の複数のトラックに格納された前記第１のデータの複数のバージョンを含み、
前記第１のページ上の第１のデータの最新バージョンは、１つ又は複数のエントリを有するデータ構造体内の第１のエントリに格納された値に基づいて識別可能であり、前記１つ又は複数のエントリは、それぞれ前記データベース内の前記１つ又は複数のページと関連付けられており、
前記データ構造体内の前記第１のエントリは前記データベース内の前記第１のページと関連付けられており、前記第１のエントリの前記値は、前記第１のページ上の前記第１のデータの前記最新バージョンが置かれた、前記データベース内の前記第１のページ上の第１のトラックの位置を識別し、かつ、前記第１のデータの前記最新バージョンが前記第１のトラックに格納された時間とは関連付けられていない、論理ユニットと、
前記データ構造体から、前記第１のエントリに格納された前記値を読み出して、前記データの前記最新バージョンが格納された前記第１のページ上のトラックを見つけるための論理ユニットと、
前記第１のデータを含むものとして、前記第１のエントリから読み出された前記値に基づいて識別された前記第１のトラック上の第１のロックを取得して、前記第１のデータに対するアクセスを同期させるための論理ユニットと、
前記第１のエントリに格納された前記値は読み出されているので、前記第１のトラックに格納された前記第１のデータを読み出す又は更新する前に、前記第１のエントリに格納された前記値をもう一度読み出すことによって、前記第１のトラックが前記第１のデータの前記最新バージョンを格納していることを検証するための論理ユニットと、
前記第１のページを現行世代に進めるための論理ユニットと、
前記第１のページ上の第２のトラックに書き込んで前記データの前記最新バージョンを更新するための論理ユニットと、
前記第２のトラックに対するアクセスを同期させる第２のロックを解除するための論理ユニットと、
前記データの前記最新バージョンのコピーを前記第２のトラック上に生成するための論理ユニットと
を備えるシステム。
【請求項８】
前記要求は、前記第１のデータを読み出すことであり、
前記データの前記最新バージョンを返すための論理ユニットと、
前記第１のロックを解除するための論理ユニットと
を更に備える、請求項７に記載のシステム。
【請求項９】
前記要求は、前記第１のデータを更新することであり、
前記第１のトラックが前記データベースの現行世代と関連付けられているかどうかを判断するための論理ユニットを更に備える、請求項７に記載のシステム。
【請求項１０】
前記第１のトラックは、前記データベースの前記現行世代と関連付けられており、
前記第１のトラックに書き込んで前記データの前記最新バージョンを更新するための論理ユニットと、
前記第１のロックを解除するための論理ユニットと
を更に備える、請求項９に記載のシステム。
【請求項１１】
前記第２のトラックを前記現行世代に関連付けるための論理ユニットと、
前記第２のロックをリセットし取得して前記第２のトラックに対するアクセスを同期させるための論理ユニットと、
前記第１のページに対応する前記エントリを前記第２のトラックを参照するように更新して、前記コピーが前記データの前記最新バージョンとなるようにするための論理ユニットと、
前記第１のロックを解除するための論理ユニットと
を更に備える、請求項７に記載のシステム。
【請求項１２】
前記データの前記最新バージョンの前記コピーを前記第２のトラック上に生成するための前記論理ユニットは、前記第２のトラックに格納された前記データの最も古いバージョンに上書きするための論理ユニットを含む、請求項１１に記載のシステム。
【請求項１３】
論理コードがその上に格納されたコンピュータ・プログラムであって、前記論理コードは、コンピュータ上で実行されるとき、前記コンピュータに、
各々が１つ又は複数のトラックをもった１つ又は複数のページを有するデータベース内の第１のデータにアクセスする要求を受け取ることであって、前記第１のデータはデータベースの第１のページ上に置かれ、前記第１のページは、それぞれ前記第１のページ上の複数のトラックに格納された前記第１のデータの複数のバージョンを含み、
前記第１のページ上の前記第１のデータの最新バージョンは、１つ又は複数のエントリをするデータ構造体内の第１のエントリに格納された値に基づいて識別可能であり、前記１つ又は複数のエントリは、それぞれ前記データベース内の前記１つ又は複数のページと関連付けられており、
前記データ構造体内の前記第１のエントリは前記データベース内の前記第１のページと関連付けられており、前記第１のエントリの前記値は、前記第１のページ上の前記第１のデータの前記最新バージョンが置かれた、前記データベース内の前記第１のページ上の第１のトラックの位置を識別し、かつ、前記第１のデータの前記最新バージョンが前記第１のトラックに格納された時間とは関連付けられていない、受け取ることと、
前記データ構造体から、前記第１のエントリに格納された前記値を読み出して、前記データの前記最新バージョンが格納された前記第１のページ上のトラックを見つけることと、
前記第１のデータを含むものとして、前記第１のエントリから読み出された前記値に基づいて識別された前記第１のトラック上の第１のロックを取得して、前記第１のデータに対するアクセスを同期させることと、
前記第１のエントリに格納された前記値は読み出されているので、前記第１のトラックに格納された前記第１のデータを読み出す又は更新する前に、前記第１のエントリに格納された前記値をもう一度読み出すことによって、前記第１のトラックが前記第１のデータの前記最新バージョンを格納していることを検証することと、
前記第１のページを現行世代に進めることと、
前記第１のページ上の第２のトラックに書き込んで前記データの前記最新バージョンを更新することと、
前記第２のトラックに対するアクセスを同期させる第２のロックを解除することと、
前記データの前記最新バージョンのコピーを前記第２のトラック上に生成することと
を行わせるコンピュータ・プログラム。
【請求項１４】
前記要求は、前記第１のデータを読み出すことであり、前記論理コードは、コンピュータ上で実行されるとき、前記コンピュータに、
前記データの前記最新バージョンを返すことと、
前記第１のロックを解除することと
を更に行わせる、請求項１３に記載のコンピュータ・プログラム。
【請求項１５】
前記要求は、前記第１のデータを更新することであり、前記論理コードは、コンピュータ上で実行されるとき、前記コンピュータに、
前記第１のトラックが前記データベースの現行世代と関連付けられているかどうかを判断することを更に行わせる、請求項１３に記載のコンピュータ・プログラム。
【請求項１６】
前記第１のトラックは、前記データベースの前記現行世代と関連付けられており、前記論理コードは、コンピュータ上で実行されるとき、前記コンピュータに、
前記第１のトラックに書き込んで前記データの前記最新バージョンを更新することと、
前記第１のロックを解除することと
を更に行わせる、請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
前記第１のトラックは、前記データベースの前記現行世代と関連付けられておらず、前記論理コードは、コンピュータ上で実行されるとき、前記コンピュータに、
前記第１のページを前記現行世代に進めることと、
前記第１のページ上の第２のトラックに書き込んで前記データの前記最新バージョンを更新することと、
前記第２のトラックに対するアクセスを同期させる第２のロックを解除することと
を更に行わせる、請求項１５に記載のコンピュータ・プログラム。
【請求項１８】
前記論理コードは、コンピュータ上で実行されるとき、前記コンピュータに、
前記第２のトラックを前記現行世代に関連付けることと、
前記第２のロックをリセットし取得して前記第２のトラックに対するアクセスを同期させることと、
前記第１のページに対応する前記エントリを前記第２のトラックを参照するように更新して、前記コピーが前記データの前記最新バージョンとなるようにすることと、
前記第１のロックを解除することと
を更に行わせる、請求項１３に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデータベースに関し、より具体的には、複数世代データベース内のデータに対するアクセスに関する。
【背景技術】
【０００２】
データベースとは、データベース管理システム（ＤＢＭＳ）により管理されたデータ記憶システムに格納されたデータの組織化された集合を指す。ＤＢＭＳは通常、ある形式の同期化を実施してデータベース内のデータに対する同時アクセスを可能にする。
【０００３】
同期化はデータベース内の各データに対するロックを実装することを伴うことができる。しかしながら、ロックが高速メモリに格納される場合には、高速メモリは小型である傾向があるので、データベースの大きさ次第でスケーラビリティの問題が生じ得る。一方、低速アクセス・メモリ内の専用位置にロックを格納すると、性能に悪影響を与える。
【０００４】
複数世代データベースにおいて、データは１つ又は複数の世代又は期間に従って組織化される。チェックポイントにおいて、復元ポイントにおいて、ある特定の操作の開始において、又は何か他の指定された時点において、１つの世代が終了して別の世代が開始することが可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通常、各データに関して、世代毎に一つの複数のバージョンが存在する。各バージョンは１つの世代と関連付けられるので、最新バージョンは、最新世代に関連付けられたバージョンの検索によって識別することができる。残念ながら、最新世代に関連付けられたバージョンのために全てのバージョンを検索することは非効率的であり同期化を困難にする。
上述の欠点を克服するためのシステム及び方法が必要である。
【課題を解決するための手段】
【０００６】
本開示は、複数世代データベース内のデータに対するアクセスを容易にするシステム及び対応する方法に向けられる。
【０００７】
要約のために、ある特定の態様、利点及び新規な特徴をここで説明する。かかる利点の全てを、任意の１つの特定の実施形態によって達成することは可能ではないことを理解されたい。従って、特許請求される主題事項は、全ての利点を本明細書において開示若しくは示唆されるように達成することなく、１つの利点又は一群の利点を達成し又は最適化する方法で具体化又は実施することができる。
【０００８】
１つの実施形態により、複数世代データベース内のデータにアクセスする方法が提供される。この方法は、データベースの第１のページ上に置かれた、データベース内の第１のデータにアクセスする要求を受け取るステップと、第１のページに対応するエントリを読み出して第１のページ上の第１のトラックの位置を見つけてデータの最新バージョンにアクセスするステップと、第１のロックを取得して第１のトラックへのアクセスを同期させるステップと、第１のロックを保持しながら、エントリの読み出しに応答して、第１のトラックがデータの最新バージョンを格納していることを判定するステップとを含む。
【０００９】
別の実施形態により、１つ又は複数の論理ユニットを備えるシステムが提供される。１つ又は複数の論理ユニットは、上で開示した方法に関連する機能と動作を実行するように構成される。更に別の実施形態により、コンピュータ可読プログラムを有するコンピュータ使用可能媒体を備えたコンピュータ・プログラム製品及びコンピュータ・プログラムが提供される。コンピュータ可読プログラムは、コンピュータ上で実行されるとき、該コンピュータに上で開示した方法に関連する機能と動作を実行させる。
【００１０】
特定の代替物に加えて、上記に開示した１つ又は複数の実施形態を、添付の図面を参照して以下にさらに詳細に提供する。しかしながら、本発明は、開示した何れの特定の実施形態にも限定されるものではない。
【００１１】
ここで本発明を、以下の図面に示す好ましい実施形態を参照しながら例証としてのみ説明する。
【図面の簡単な説明】
【００１２】
【図１】１つ又は複数の実施形態による、複数世代データベースに関する例示的なデータベースのレイアウトを示す。
【図２】１つの実施形態による、データの最新バージョンを識別するための例示的なページ・テーブルを示す。
【図３】１つの実施形態による、複数世代データベースからデータを読み出す方法の流れ図である。
【図４】１つの実施形態による、データの最新バージョンを識別するための例示的な方法の流れ図である。
【図５】１つの実施形態による、複数世代データベースにデータを書き込むための方法の流れ図である。
【図６】１つの実施形態による、複数世代データベース内のページを進めるための方法の流れ図である。
【図７】１つ又は複数の実施形態による、本発明のシステムが動作できるハードウェア環境のブロック図である。
【図８】１つ又は複数の実施形態による、本発明のシステムが動作できるソフトウェア環境のブロック図である。
【発明を実施するための形態】
【００１３】
異なる図面において同じ数字により参照される本発明の特徴、要素及び態様は、１つ又は複数の実施形態による、同じ、同等の、又は類似の特徴、要素及び態様を表す。
【００１４】
以下において、本発明の様々な実施形態の完全な説明を提供するために、多数の具体的な詳細が述べられる。本発明の特定の実施形態は、これら具体的な詳細がなくても、又は詳細に幾つかの変更を伴って実施することができる。場合によっては、本発明の好ましい実施形態の他の態様を不明瞭にしないように、特定の特徴はあまり詳細には記述されない。要素又は特徴の各々と関連した詳細の度合いは、他のものに優る１つの特徴の新規性又は重要性を制限するように解釈すべきではない。
【００１５】
図１を参照すると、１つの実施形態による、例示的な複数世代データベース１００は、データベース１００に格納されたデータに対応する１つ又は複数のページを含む。データベース１００は、例えば、Ｎ個のデータを含むことができるので、各データに対して１ページのＮ個のページが存在する。データの各ページは、１つ又は複数のバージョンのデータを含み、データの各バージョンは、ページ上の異なるトラック又は場所に置かれる。例えば、ページ１は、それぞれトラック１、２、及び３の上に置かれたバージョンＡ、Ｂ、及びＣを含むことができ、ページ２は、それぞれトラック１、２、及び３の上に置かれたバージョンＤ、Ｂ、及びＣを含むことができる。
【００１６】
データベース１００は、ＤＢＭＳ１１０により管理される。具体的には、ＤＢＭＳ１１０は、データベース１００内のデータに対するアクセスを管理する。そのため、ＤＢＭＳ１１０は、データベース１００内の各ページの各トラックに対して１つのロックを実装することにより、データに対するアクセスを同期させることができる。読み出しアクセスに対しては、２つ以上のアクセスによってロックを共有させることができる。書き込みアクセスに対しては、ロックは１つのアクセスに専用である。ロックは、データと共にトラック上に格納し、トラック上のロックとデータのバージョンとの両者にアクセスするのに１つのアクセスで十分であるようにして、性能を改善すると共に大きいデータベースに対するスケーラビリティをもたらすことが望ましい。１つの実施形態において、同じページ上のロックは単一のロックとして一括して取り扱うことができる。
【００１７】
ＤＢＭＳ１１０はまた、ページ・テーブルを保持して１つのページ上のデータの最新バージョンの位置を見つけることができる。ページ・テーブルを保持することにより、最新バージョンを見出すためにデータの各バージョンを検索する必要がなくなり、性能が改善され、同期化が簡単になる。図１及び図２を参照すると、１つの実施形態により、例示的なページ・テーブル２００は、データベース１００の１つ又は複数のページに対応する１つ又は複数のエントリを含む。例えば、ページ・テーブル２００は、データベース１００のＮ個のページに対応するＮ個のエントリを含むことができる。各々のエントリは、該エントリと関連付けられたページに格納されているデータの最新バージョンのトラックを参照する。
【００１８】
実装によって、異なるフォーマットを用いてトラックを参照することができる。最小のビット数を使用して大きいデータベースに対するスケーラビリティをもたらすことが望ましい。例えば、１つのページ上にＮ個のトラックがある場合には、およそｌｏｇ２（Ｎ）のビットを使用して１つのトラックを参照することができる。図１の例示的な説明図では、ページ１上のデータの最新バージョンであるバージョンＣがトラック３に配置され、ページ２上のデータの最新バージョンであるバージョンＤがトラック１に配置される。１つのページ上に３トラックあるので、２ビットを使用してトラックを参照する。例えば、“００”を使用してトラック１を参照し、“０１”を使用してトラック２を参照し、“１０”を使用してトラック３を参照する。
【００１９】
図１及び図３を参照すると、１つの実施形態により、ＤＢＭＳ１１０は、データベース１００の第１のページ上に置かれたデータにアクセスする要求を受け取る（Ｐ３００）。それに応答して、ＤＢＭＳ１１０は、ページ・テーブル２００から第１のページに対応するエントリを読み出して、データの最新バージョンを格納している第１のページ上の第１のトラックの位置を見つける（Ｐ３１０）。例えば、ＤＢＭＳ１１０がデータベース１００の第１のページからのデータにアクセスする要求を受け取ると、ＤＢＭＳ１１０は、ページ・テーブル２００からエントリ１を読み出す。図１及び図２において、エントリ１は、バージョンＣのデータを格納しているトラック３を参照する。
【００２０】
第１のトラックの位置を見つけると、ＤＢＭＳ１００はロックを取得して第１のトラックへのアクセスを同期させる（Ｐ３２０）。ロックは、データに対するアクセスを同期させて、トラックに対するロックを保持しながら、エントリが第１のトラックを参照しさえすればデータの最新バージョンが第１のトラックに見つかるようにする。第１のトラックに対するロックが取得されると、該エントリが２度目に読み出され、データの最新バージョンが依然として第１のトラック上に置かれているかどうかを判断する（Ｐ３３０）。
【００２１】
１回目の読み出し後かつ第１のトラックに対するロックを取得する前に、データを含む第１のページが新しい世代に進められると、１回目の読み出しと２回目の読み出しとの間でエントリが変化する場合がある。ページの進行に関するさらなる詳細は、以下で図６を参照して与える。データの最新バージョンが依然として第１のトラック上に置かれている場合（Ｐ３４０）、ＤＢＭＳは、第１のトラック上に置かれているデータのバージョンを返す（Ｐ３５０）。データの最新バージョンがもはや第１のトラック上に置かれていない場合は（Ｐ３４０）、ＤＢＭＳ１１０は、ロックを解除し（Ｐ３６０）、Ｐ３１０からＰ３６０までを繰り返す。
【００２２】
図１、図３及び図４を参照すると、１つの実施形態により、ＤＢＭＳ１１０は、データベース１００の第１のページ上に置かれているデータを読み出す要求を受け取る（Ｐ４００）。要求を受け取ると、ＤＢＭＳ１１０は、データの最新バージョンを格納している第１のページ上の第１のトラックにアクセスし（Ｐ４１０、Ｐ３００−３５０）、データの最新バージョンを返す（Ｐ４２０）．ＤＢＭＳ１１０はまた、Ｐ４１０中に取得された第１のトラックに対するロックを解除する（Ｐ４３０）。
【００２３】
図１、図３及び図５を参照すると、１つの実施形態により、ＤＢＭＳ１１０は、データベース１００の第１のページ上に置かれたデータを更新する要求を受け取る。要求を受け取ると、ＤＢＭＳ１１０は、データの最新バージョンを格納している第１のページ上の第１のトラックにアクセスし（Ｐ５００，Ｐ３００−３５０）、第１のトラックが現行の世代と関連付けられているかどうかを判断する（Ｐ５２０）。ＤＢＭＳ１１０は、例えば、ＤＢＭＳ１１０により維持されるトランザクション・ログの最近のトランザクションを調べることにより、現行の世代を識別することができる。
【００２４】
第１のトラックが現行の世代と関連付けられている場合には（Ｐ５２０）、ＤＢＭＳ１１０は、第１のトラックに書き込んでデータの最新バージョンを更新し（Ｐ５３０）、次いで、Ｐ５００の間に専用に取得された第１のトラックに対するロックを解除する（Ｐ５４０）。そうでない場合には、ＤＢＭＳ１１０は、第１のページを現行の世代に進め（Ｐ５５０）、第１のページ上の第２のトラックに書き込んでデータの最新バージョンを更新する（Ｐ５６０）。第１のページを進めることは、第２のトラック上のデータの新バージョンを生成すること及びページ・テーブル２００を更新することを含み、ユーザの観点からはアトミックに行われる。
【００２５】
図１、図５及び図６を参照すると、１つの実施形態により、ＤＢＭＳ１１０は、データの最新バージョンのコピーを作成する（Ｐ６００）。第１のページ上の未使用の第２のトラックが利用可能である場合は（Ｐ６１０）、ＤＢＭＳ１１０は、未使用の第２のトラック上にコピーを格納する（Ｐ６２０）。そうでない場合には、ＤＢＭＳ１１０は、データの最も古いバージョンに上書きすることにより、コピーを使用中の第２のトラックに格納する（Ｐ６３０）。１つの実施形態において、データの最も古いバージョンは、データの最新バージョンの右側のトラックに配置される。例えば、図１及び図２において、バージョンＣがページ１上のデータの最新バージョンであるので、データの最も古いバージョンは、トラック１上に配置されたバージョンＡである（重複を伴う）。
【００２６】
データの最新バージョンが第２のトラックにコピーされると、第２のトラックは現行の世代と関連付けられ（Ｐ６４０）、第２のトラックに対するアクセスを同期させるロックがリセットされ、専用に取得される（Ｐ６５０）。従って、第２のトラック上に格納されたデータの最新バージョンのコピーが、データの最新バージョンとなる。
【００２７】
再び図１、図５及び図６を参照すると、第２のトラックに対するロックを取得すると、ＤＢＭＳ１１０は、ページ・テーブル２００内のページに関するエントリを更新し（Ｐ６６０）、Ｐ５００中に専用に取得された第１のトラックに対するロックを解除する（Ｐ６７０）。エントリが更新されると、ＤＢＭＳ１１０は、第２のトラックに書き込んで新たに生成されたデータの最新バージョンを更新し（Ｐ６８０，Ｐ５６０）、第２のトラックに対するロックを解除する（Ｐ６９０）。例えば、ページ１が進められる場合、図１のページ１及び図２のエントリ１は、図１のページ２及び図２のエントリ２のようになる。
【００２８】
異なる実施形態において、本発明は、完全にハードウェアの形態、完全にソフトウェアの形態、又はハードウェア要素とソフトウェア要素との組み合わせで実装することができる。例えば、データベース１００及びＤＢＭＳ１１０は、ハードウェア構成要素と、本発明のシステムにより意図される結果を達成するプロセスを遂行するように実行されるソフトウェア・コードとによって大部分が与えられる制御されたコンピュータ・システム環境に含めることができる。
【００２９】
図７及び図８を参照すると、例示的な実施形態によるコンピュータ・システム環境は、ハードウェア環境１１１０とソフトウェア環境１１２０からなる。ハードウェア環境１１１０は、ソフトウェアに対する実行環境を提供する機械及び装置を含み、ソフトウェアは、以下で規定されるハードウェアに対する実行命令を与える。
【００３０】
本明細書で規定されるように、図示したハードウェア要素上で実行されるソフトウェア要素は、具体的な論理的／機能的関係によって説明される。しかしながら、ソフトウェア内に実装されるそれぞれの方法はまた、例えば、構成されかつプログラムされたプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレー（ＦＰＧＡ）及びデジタル信号プロセッサ（ＤＳＰ）を手段としてハードウェア内に実装することができることに留意されたい。
【００３１】
ソフトウェア環境１１２０は、システム・ソフトウェア１１２１とアプリケーション・ソフトウェア１１２２とを含む２つの主要なクラスに分割される。システム・ソフトウェア１１２１は、ハードウェアにどのように機能し情報を処理するかを指示するオペレーティングシステム（ＯＳ）及び情報管理システムのような制御プログラムを含む。
【００３２】
１つの実施形態において、ＤＢＭＳ１１０は、１つ又は複数のハードウェア環境で実行されてデータベース１００に対するアクセスを管理するアプリケーション・ソフトウェア１１２２として実装される。アプリケーション・ソフトウェア１１２２は、プログラム・コード、データ構造体、ファームウェア、常駐ソフトウェア、マイクロコード、又はマイクロコントローラによって読み出し、解析し、又は実行することができる任意の他の形態の情報又はルーチンを含むことができるが、それらに限定されない。
【００３３】
代替的実施形態において、本発明は、コンピュータ又は任意の命令実行システムによって又はそれらと共に使用するためのプログラム・コードを備えるコンピュータ使用可能又はコンピュータ可読媒体からアクセス可能な、コンピュータ・プログラムとして実装することができる。この説明のために、コンピュータ使用可能又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスによって又はそれらと共に使用するためのプログラムを含有し、格納し、伝達し、伝搬し又は運ぶことができる任意の装置とすることができる。
【００３４】
コンピュータ可読媒体は、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（又は装置又はデバイス）又は伝搬媒体とすることができる。コンピュータ可読媒体の例には、半導体メモリ又は固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、固定磁気ディスク及び光ディスクが含まれる。現在の光ディスクの例には、コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク読み出し／書き込みメモリ（ＣＤ−Ｒ／Ｗ）及びデジタル・ビデオ・ディスク（ＤＶＤ）が含まれる。
【００３５】
図７を参照すると、アプリケーション・ソフトウェア１１２２の実施形態は、システム・バス１１００を経由して１つ又は複数のメモリ要素と結合されたプロセッサ１１０１を含むハードウェア環境１１１０のようなデータ処理システム上で実行される、コンピュータ可読コードの形態のコンピュータ・ソフトウェアとして実装することができる。例えば、メモリ要素は、ローカル・メモリ１１０２，記憶媒体１１０６、及びキャッシュ・メモリ１１０４を含むことができる。プロセッサ１１０１は,記憶媒体１１０６から実行コードをローカル・メモリ１１０２へロードする。キャッシュ・メモリ１１０４は、一時記憶領域を提供して、コードが実行のために記憶媒体１１０６からロードされる回数を減らす。
【００３６】
ユーザ・インターフェース・デバイス１１０５（例えばキーボード、ポインティング・デバイスなど）及び表示スクリーン１１０７は、直接に、又は、例えば介在するＩ／Ｏコントローラ１１０３を通して、コンピュータ・システムに結合することができる。また、ネットワーク・アダプタなどの通信インターフェース・ユニット１１０８をコンピュータ・システムに結合して、データ処理システムが、介在する私的又は公的ネットワークを通して、他のデータ処理システム又は遠隔プリンタ若しくは記憶装置と通信できるようにすることもできる。有線又は無線モデム及びイーサネット・カードは、幾つかの例示的なタイプのネットワーク・アダプタである。
【００３７】
１つ又は複数の実施形態において、ハードウェア環境１１１０は、上記の構成要素の全ては含まないことがあり、又は、追加の機能若しくはユーティリティに関する他の要素を含むことがある。例えば、ハードウェア環境１１１０は、ラップトップ・コンピュータ、又は、セット・トップ・ボックス、携帯情報端末（ＰＤＡ）、移動通信ユニット（例えば無線電話）、若しくは他の類似の情報処理及び／又はデータ記憶及び通信能力を有するハードウェア・プラットフォームなどの内蔵システム内に具体化された他のポータブル・コンピュータ・デバイスとすることもできる。
【００３８】
本システムの幾つかの実施形態において、通信インターフェイス１１０８は、プログラム・コードを含む各種の情報を表わすデジタル・データストリームを搬送する電気的、電磁気的又は光学的信号を送受信することにより、他のシステムと通信する。通信は、遠隔ネットワーク（例えば、インターネット）を経由して、又は代替的に搬送波上での伝送を通して確立することができる。
【００３９】
図８を参照すると、アプリケーション・ソフトウェア１１２２は、記憶媒体１１０６からローカル・メモリ１１０２へロードされた後、システム・ソフトウェア１１２１上で実行される１つ又は複数のコンピュータ・プログラムを含むことができる。クライアント・サーバー・アーキテクチャにおいて、アプリケーション・ソフトウェア１１２２は、クライアント・ソフトウェアとサーバ・ソフトウェアとを含むことができる。例えば、１つの実施形態において、クライアント・ソフトウェアは汎用コンピュータ・システム上で実行され、サーバ・ソフトウェアはサーバ・システム上で実行される。
【００４０】
ソフトウェア環境１１２０はまた、ローカル又は遠隔コンピュータ・ネットワーク上で利用可能なデータにアクセスするためのブラウザ・ソフトウェア１１２６を含むことができる。更にソフトウェア環境１１２０は、ユーザ・コマンド及びデータを受け取るためのユーザ・インターフェース１１２４（例えば、グラフィカル・ユーザ・インターフェース（ＧＵＩ））を含むことができる。上記のハードウェア及びソフトウェア・アーキテクチャ並びに環境は例示のためであり、本発明の１つ又は複数の実施形態は、任意の型のシステム・アーキテクチャ又は処理環境上で実装することができることに留意されたい。
【００４１】
また、論理コード、プログラム、モジュール、プロセス、方法、及び各方法のそれぞれのステップが実行される順序は、単に例示的なものであることを理解されたい。実装によって、各ステップは、本開示において特に指示されない限り、任意の順序で又は並列に実行することができる。更に、論理コードは、何れの特定のプログラミング言語にも関連せず又は限定されず、分散環境、非分散環境又は多重処理環境における１つ又は複数のプロセッサ上で実行される１つ又は複数のモジュールを含むことができる。
【符号の説明】
【００４２】
１００：データベース
１１０：ＤＢＭＳ
２００：ページ・テーブル
１１００：システム・バス
１１０１：プロセッサ
１１０２：ローカル・メモリ
１１０３：Ｉ／Ｏコントローラ
１１０４：キャッシュ・メモリ
１１０５：ユーザ・インターフェース・デバイス
１１０６：記憶媒体
１１０７：表示スクリーン
１１０８：通信インターフェース・ユニット
１１１０：ハードウェア環境
１１２０：ソフトウェア環境
１１２１：システム・ソフトウェア
１１２２：アプリケーション・ソフトウェア
１１２４：ユーザ・インターフェース
１１２６：ブラウザ・ソフトウェア
【図１】
0005567585.tif 000002
【図２】
0005567585.tif 000003
【図３】
0005567585.tif 000004
【図４】
0005567585.tif 000005
【図５】
0005567585.tif 000006
【図６】
0005567585.tif 000007
【図７】
0005567585.tif 000008
【図８】
0005567585.tif 000009