(57)【特許請求の範囲】
【請求項１】
複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルとを含むデータベースを格納する記憶部と、
クエリを受信し、当該受信されたクエリに基づいたデータ処理を前記データベースに対して実行するデータ処理部と、
を備え、
前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有しており、
前記各識別子テーブルが列方向にそれぞれ持つ前記少なくとも１つの属性フィールドは、前記識別子テーブル毎に異なる属性種を示し、
前記データベースは、前記複数の識別子テーブルに加えて、前記識別子テーブル間のタプルを、前記複数の識別子テーブルの複数の前記属性フィールドを列方向に持つ表形式データの各タプルを構成するように、関連付けるリンクテーブルを含み、
前記データ処理部は、前記リンクテーブルおよび前記識別子テーブルを用いて前記データ処理を実行する、データベースシステム。
【請求項２】
請求項１記載のデータベースシステムであって、前記識別子テーブルに割り当てられた記憶領域と前記実体データ群に割り当てられた記憶領域とが互いに異なる、データベースシステム。
【請求項３】
請求項１または２記載のデータベースシステムであって、前記データ識別子の値は、前記実体データの入力に対して固定長のビット列を出力するハッシュ関数の出力値である、データベースシステム。
【請求項４】
請求項１から３のうちのいずれか１項に記載のデータベースシステムであって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルの記憶領域の相対的位置を指定するオフセットを含む、データベースシステム。
【請求項５】
請求項１から３のうちのいずれか１項に記載のデータベースシステムであって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルの記憶領域に割り当てられたアドレスを指すポインタを含む、データベースシステム。
【請求項６】
請求項１から３のうちのいずれか１項に記載のデータベースシステムであって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルを一意に表す外部タプル識別子を含み、
前記各識別子テーブルの属性フィールドは複数存在し、
前記各識別子テーブルの複数の属性フィールドのうち１つの属性フィールドは、当該各識別子テーブルのタプルを一意に表しかつ前記外部タプル識別子に対応する値を持つタプル識別子を含む、データベースシステム。
【請求項７】
請求項６記載のデータベースシステムであって、前記外部タプル識別子は固定長のビット列である、データベースシステム。
【請求項８】
請求項１から７のうちのいずれか１項に記載のデータベースシステムであって、
前記データベースは、前記複数の実体データそれぞれの記憶領域を示す位置データと前記複数のデータ識別子との間の対応関係を表す変換テーブルを含み、
前記データ処理部は、前記変換テーブルを用いて前記実体データ群の中から実体データを選択し、この選択結果を用いて前記データ処理を実行する、データベースシステム。
【請求項９】
請求項８記載のデータベースシステムであって、前記位置データは、前記実体データの記憶領域の絶対的位置を指定するアドレスである、データベースシステム。
【請求項１０】
請求項８記載のデータベースシステムであって、前記位置データは、前記実体データの記憶領域の相対的位置を指定するオフセットである、データベースシステム。
【請求項１１】
請求項１から７のうちのいずれか１項に記載のデータベースシステムであって、
前記複数の実体データには、それぞれ、前記複数のデータ識別子と同じ値を持つ検索用データ識別子が付加されており、
前記データ処理部は、前記検索用データ識別子を検索し、この検索結果に基づいて前記実体データを選択し、この選択結果を用いて前記データ処理を実行する、データベースシステム。
【請求項１２】
請求項１から１１のうちのいずれか１項に記載のデータベースシステムであって、前記複数のデータ識別子が前記記憶部内の連続的な記憶領域に記録されている、データベースシステム。
【請求項１３】
請求項１から１２のうちのいずれか１項に記載のデータベースシステムであって、前記複数のデータ識別子が不連続な複数の記憶領域に分散して記憶されているとき、前記複数のデータ識別子を前記記憶部から読み出し、当該読み出されたデータ識別子を、前記識別子テーブルに割り当てられた連続的な記憶領域に書き込むデフラグ処理部を更に備えるデータベースシステム。
【請求項１４】
請求項１から１３のうちのいずれか１項に記載のデータベースシステムであって、前記複数の実体データは可変長データを含む、データベースシステム。
【請求項１５】
請求項１から１４のうちのいずれか１項に記載のデータベースシステムであって、
前記実体データ群に割り当てられた記憶領域は、複数のパーティション領域に分割され、
前記複数のパーティション領域は、それぞれ、前記実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている、データベースシステム。
【請求項１６】
請求項１から１４のうちのいずれか１項に記載のデータベースシステムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記実体データと当該実体データに関連した内容を有するサブ実体データとが連続的な記憶領域に記憶されており、
前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記データベースから読み出す、データベースシステム。
【請求項１７】
請求項１から１４のうちのいずれか１項に記載のデータベースシステムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記各実体データには、当該各実体データに関連した内容を有する前記サブ実体データの記憶領域の位置を示す位置データが付加されており、
前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに付加された位置データで指定されるサブ実体データを前記データベースから読み出す、データベースシステム。
【請求項１８】
請求項１７記載のデータベースシステムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の絶対的位置を指定するアドレスである、データベースシステム。
【請求項１９】
請求項１７記載のデータベースシステムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の相対的位置を指定するオフセットである、データベースシステム。
【請求項２０】
請求項１から１４のうちのいずれか１項に記載のデータベースシステムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記識別子テーブルは、前記データ識別子に一対一で対応しかつ前記サブ実体データそのものを一意に表すサブデータ識別子を更に含み、
前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記サブデータ識別子を用いて前記データベースから読み出す、データベースシステム。
【請求項２１】
請求項１から１４のうちのいずれか１項に記載のデータベースシステムであって、
前記データベースは、前記実体データ群に関連した内容を有する少なくとも１つのサブ実体データ群を含み、
前記記憶部は、前記実体データ群に割り当てられた第１の記憶領域と、前記サブ実体データ群に割り当てられた第２の記憶領域とを含み、
前記データ処理部は、当該受信されたクエリに基づいて前記第１の記憶領域と前記第２の記憶領域とのいずれか一方を選択する、データベースシステム。
【請求項２２】
請求項１から２１のうちのいずれか１項に記載のデータベースシステムであって、
前記クエリは、問い合わせ言語で記述されており、
前記データ処理部は、前記クエリを解析し、その解析結果に基づいたトランザクションを前記データ処理として前記データベースに対して実行する、データベースシステム。
【請求項２３】
複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルとを含むデータベースについてクエリを受信するステップと、
前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行するステップと、
を備え、
前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有しており、
前記各識別子テーブルが列方向にそれぞれ持つ前記少なくとも１つの属性フィールドは、前記識別子テーブル毎に異なる属性種を示し、
前記データベースは、前記複数の識別子テーブルに加えて、前記識別子テーブル間のタプルを、前記複数の識別子テーブルの複数の前記属性フィールドを列方向に持つ表形式データの各タプルを構成するように、関連付けるリンクテーブルを含み、
前記データ処理は、前記リンクテーブルおよび前記識別子テーブルを用いることによって実行される、データベース管理方法。
【請求項２４】
複数の実体データからなる実体データ群と、
複数の固定長データのみを有する複数の識別子テーブルと、
前記識別子テーブル間を関連付けるリンクテーブルと、
を含み、
前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有しており、
前記各識別子テーブルが列方向にそれぞれ持つ前記少なくとも１つの属性フィールドは、前記識別子テーブル毎に異なる属性種を示し、
前記リンクテーブルは、前記識別子テーブル間のタプルを、前記複数の識別子テーブルの複数の前記属性フィールドを列方向に持つ表形式データの各タプルを構成するように、関連付け、
コンピュータが、クエリを受信し、該受信されたクエリの要求に応じて、前記リンクテーブル及び前記識別子テーブルを参照することにより、前記実体データ群の中から特定の実体データを選択する、
データベース構造。
【請求項２５】
データベース管理処理をコンピュータに実行させるコンピュータプログラムであって、
前記データベース管理処理は、
複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルとを含むデータベースについてクエリを受信する処理と、
前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行する処理と、
を備え、
前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有しており、
前記各識別子テーブルが列方向にそれぞれ持つ前記少なくとも１つの属性フィールドは、前記識別子テーブル毎に異なる属性種を示し、
前記データベースは、前記複数の識別子テーブルに加えて、前記識別子テーブル間のタプルを、前記複数の識別子テーブルの複数の前記属性フィールドを列方向に持つ表形式データの各タプルを構成するように、関連付けるリンクテーブルを含み、
前記データ処理は、前記リンクテーブルおよび前記識別子テーブルを用いることによって実行される、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース構造並びにデータベースに対するデータ処理を実行する技術に関する。
【背景技術】
【０００２】
ＲＤＢＭＳ（Relational DataBase Management System：リレーショナル・データベース管理システム）は、１９７０年にＥ・Ｆ・コッド（Edgar Frank Codd）により提唱された関係モデル（リレーショナルモデル）理論に基づいたシステムであり、現在広く使用されている。ＲＤＢ（Relational DataBase）は、複数のテーブル（すなわち、リレーション）の集合体であり、各テーブルは、少なくとも１つの行（タプル）と列（属性フィールド）とを有する。ＲＤＢＭＳに関する先行技術文献としては、たとえば、特許文献１（特開２００５−２０８７５７号公報）が挙げられる。【０００３】
しかしながら、一般にＲＤＢＭＳでは、データ処理量が巨大になり処理負荷が増大したときに、トランザクションの処理速度の低下が目立つようになる。この原因の１つとして、ＲＤＢを構成するテーブルを行単位で検索する際に、このテーブルの各行のデータ長が可変長である場合には、当該各行のデータ長が固定長である場合と比べて、データの読み出し位置の計算時間がかかることが挙げられる。【０００４】
また、ＲＤＢＭＳは、行ごとに一意のキー（key）を用いて行単位でデータを管理するため、行単位での大規模処理を高速かつ効率的に実行できるが、列単位での大規模処理を効率的に実行することが難しいという問題がある。たとえば、ＲＤＢＭＳは、列単位でデータ処理を実行する際、クエリが要求する列に対応する複数行のデータを読み出す必要があり、これが処理速度の低下を招くという問題がある。更に、ＲＤＢＭＳは、行単位でデータをメモリ内の連続的な記憶領域に書き込むことができるため、行単位でデータに高速にアクセスすることができる。しかしながら、ＲＤＢＭＳが、列単位での検索処理、比較演算あるいは集計演算などに関するトランザクションを実行する際には、非連続な複数のメモリ領域に格納されたデータにアクセスする現象が頻繁に生じ、これにより処理速度が低下する場合がある。【０００５】
一方、大規模な検索や集計を効率的に実行するデータベースシステムとして、データウェアハウス（ＤＷＨ：Data WareHouse）と称するシステムが使用されている。しかしながら、ＤＷＨは、基幹系業務システムとは独立して構築され、原則としてデータ更新（新規データの追加、既存データの変更または既存データの削除）を行わないシステムである。それ故、ＤＷＨは、データ更新を効率的に実行し得るデータベース構造を有していない。【０００６】
そこで、従来のＲＤＢＭＳやＤＷＨに関する前述の問題を解消するために、たとえば、特許文献２（特開２０００−３３９３９０号公報）および特許文献３（国際公開第００／１０１０３号パンフレット）に開示されたデータベースシステムが提案されている。特許文献２および特許文献３のデータベースシステムは、論理的な表形式のデータを、たとえば、性別、年齢、身長および体重のそれぞれの項目に対応する複数の情報ブロックに変換することで得られるデータベース構造を利用する。各情報ブロックは、値管理テーブル（値リスト）と、この値管理テーブルへのポインタ配列とを含む。ここで、値管理テーブルへのポインタ配列とは、表形式のデータの或る列の項目値番号（すなわち値管理テーブルへのポインタ）が当該表形式のデータの所定の順番（レコード番号順）に格納された配列である。【０００７】
しかしながら、特許文献２および特許文献３のデータベース構造では、値管理テーブル内の項目値番号が所定の順番で配列されることが要求される。このため、データ更新（たとえば、レコードの更新、挿入または削除）の際に新たな項目値番号が値管理テーブルに挿入されると、他の既存の項目値番号を再配列する必要がある。更に、この再配列後の項目値番号と整合するように、値管理テーブルへのポインタ配列も更新しなければならない。したがって、特許文献２および特許文献３のデータベース構造では、データ更新を効率的かつ高速に実行することができない。特に、データ更新が頻繁に行われる場合には、処理負荷が極めて大きくなり、処理速度が著しく低下するという問題がある。【０００８】
【特許文献１】特開２００５−２０８７５７号公報
【特許文献２】特開２０００−３３９３９０号公報
【特許文献３】国際公開第００／１０１０３号パンフレット
【発明の開示】
【０００９】
上記に鑑みて本発明の目的は、データベースに対するデータ更新の効率的かつ高速な実行を可能にするデータベースシステム、データベース管理方法、データベース構造およびコンピュータプログラムを提供することである。
【００１０】
本発明によれば、複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルとを含むデータベースを格納する記憶部と、クエリを受信し、当該受信されたクエリに基づいたデータ処理を前記データベースに対して実行するデータ処理部と、を備えたデータベースシステムが提供される。このデータベースシステムでは、前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有しており、前記データベースは、前記複数の識別子テーブルに加えて前記識別子テーブル間のタプルを関連付けるリンクテーブルを含む。前記データ処理部は、前記リンクテーブルおよび前記識別子テーブルを用いて前記データ処理を実行する。
【００１１】
本発明によれば、複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルとを含むデータベースについてクエリを受信するステップと、前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行するステップと、を備えたデータベース管理方法が提供される。前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有しており、前記データベースは、前記複数の識別子テーブルに加えて前記識別子テーブル間のタプルを関連付けるリンクテーブルを含む。前記データ処理は、前記リンクテーブルおよび前記識別子テーブルを用いることによって実行される。
【００１２】
本発明によれば、複数の実体データからなる実体データ群と、複数の固定長データのみを有する複数の識別子テーブルと、前記識別子テーブル間を関連付けるリンクテーブルと、を含むデータベース構造が提供される。このデータベース構造では、前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有しており、前記リンクテーブルは、前記識別子テーブル間のタプルを関連付ける。
【００１３】
そして、本発明によれば、データベース管理処理をコンピュータに実行させるコンピュータプログラムが提供される。前記データベース管理処理は、複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルとを含むデータベースについてクエリを受信する処理と、前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行する処理と、を備えており、前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有し、前記データベースは、前記複数の識別子テーブルに加えて前記識別子テーブル間のタプルを関連付けるリンクテーブルを含み、前記データ処理は、前記リンクテーブルおよび前記識別子テーブルを用いることによって実行される。
【００１４】
上記の通り、本発明によるデータベースシステムは、実体データ群と、この実体データ群の中の複数の実体データそのものをそれぞれ一意に表す固定長のデータ識別子を有する識別子テーブルとを含むデータベースを備えている。よって、たとえば、クエリに応じて実体データ群の中の特定の実体データを更新したとき、当該更新された実体データに対応するデータ識別子を更新するだけでデータベースに対する更新処理を実行できる。
【００１５】
また、クエリに応じて実体データ群に実体データを追加（挿入）するとき、当該追加された実体データに対応するデータ識別子のみを識別子テーブルに追加するだけでデータベースに対する更新処理を実行できる。
【００１６】
更に、クエリに応じて実体データ群から実体データを削除するとき、当該削除された実体データに対応するデータ識別子のみを識別子テーブルから削除すればデータベースに対する更新処理を実行できる。このように実体データの更新、追加または削除に伴い、識別子テーブルは必要最小限の範囲内で更新されるので、データベースに対する更新を効率的かつ高速に実行することが可能である。
【００１７】
本発明によるデータベース管理方法およびコンピュータプログラムは、上記データベースに対して更新処理を実行するので、データベースに対する更新を効率的かつ高速に実行することが可能である。
【００１８】
本発明によるデータベース構造は、前記データベースシステムに組み込まれたデータベースに適用可能である。また、このデータベース構造は、前記データベース管理方法または前記コンピュータが使用するデータベースに適用することができる。
【００１９】
データベースに対する更新を効率的かつ高速に実行することができる。
【図面の簡単な説明】
【００２０】
上記目的その他の目的、特徴および利点は、以下の添付図面および後述する好適な実施の形態によってさらに明らかになる。
【図１】本発明に係る一実施形態のデータベースシステムの概略構成を示す機能ブロック図である。
【図２】データベースシステムのトランザクション処理部の処理手順を概略的に示すフローチャートである。
【図３】本発明の第１の実施形態に係るデータベース構造の一例を示す概略図である。
【図４】データ識別子が連続的な記憶領域に記録されている状態を示す図である。
【図５】記憶領域に記憶されたデータ構造の一例を概略的に示す図である。
【図６】記憶領域に記憶されたデータ構造の他の例を概略的に示す図である。
【図７】本発明の第２の実施形態に係るデータベース構造の一例を示す概略図である。
【図８】本発明の第３の実施形態に係るデータベース構造の一例を示す概略図である。
【図９】本発明の第４の実施形態に係るデータベース構造の一例を示す概略図である。
【図１０】本発明の第５の実施形態に係るデータベース構造の一例を示す概略図である。
【図１１】本発明の第６の実施形態に係るデータベース構造の一例を示す概略図である。
【図１２】本発明の第７の実施形態に係るデータベース構造の一例を示す概略図である。
【図１３】本発明の第８の実施形態に係るデータベース構造の一部を示す概略図である。
【図１４】実体データとサブ実体データとの間の論理的な接続状態を示す図である。
【図１５】本発明の第９の実施形態に係るデータベース構造の一例を示す概略図である。
【図１６】本発明の第１０の実施形態に係るデータベース構造の一例を示す概略図である。
【図１７】データ型およびデータ形式の組み合わせとパーティション領域との間の対応関係を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明に係る種々の実施形態について図面を参照しつつ説明する。なお、すべての図面において、同様の構造または機能を持つ要素には同一符号が付されており、その詳細な説明は重複しないように適宜省略される。
【００２２】
（データベースシステム１０の基本構成）
図１は、本発明に係る一実施形態のデータベースシステム１０の概略構成を示す機能ブロック図である。このデータベースシステム１０は、トランザクション処理部２０、チェックポイント処理部３０、デフラグ処理部３１、トランザクションサーバ３２および記憶装置４０を有する。記憶装置４０には、データベース４１とログファイル４２とが格納されている。トランザクション処理部２０は、クエリ受信部２１、解析部２２、トランザクション実行部２３および応答処理部２４を含む。
【００２３】
ネットワークＮＷには、データベースシステム１０と、複数のクライアント端末５０１，５０２とが接続されている。ネットワークＮＷとしては、たとえば、一般的に使用されている小規模ネットワーク（たとえば、有線または無線ＬＡＮ）が挙げられるが、特に限定されるものではない。ネットワークＮＷがインターネットなどの大規模ネットワークであってもよい。
【００２４】
クライアント端末５０１，５０２は、それぞれ、データベース４１についてＳＱＬ（Structured Query Language）やＸＱｕｅｒｙ（XML Query Language：ＸＭＬ問い合わせ言語）などの問い合わせ言語（データベース言語）で記述されたクエリをデータベースシステム１０に宛てて送信する機能を有する。
【００２５】
データベースシステム１０のハードウェア構成は、汎用的な構成であればよく、たとえば、ＣＰＵ（Central Processing Unit）などのプロセッサ、主メモリ、キャッシュメモリ、信号伝達用バス、タイマ回路、入力装置（たとえば、キーボード）および出力装置（たとえば、ディスプレイやプリンタ）などのハードウェア資源によって構成され得るが、特に限定されるものではない。
【００２６】
データベースシステム１０の構成の全部または一部は、ハードウェアで実現されてもよいし、あるいは、プロセッサに処理を実行させるコンピュータプログラム（またはプログラムコード）で実現されてもよい。データベースシステム１０の構成要素２１〜２４，３０，３１，３２の機能がコンピュータプログラムで実現される場合、プロセッサは、不揮発性メモリなどの記録媒体からそのコンピュータプログラムを読み出し実行する。また、データベースシステム１０の構成要素２１〜２４，３０，３１，３２，４０は、単一の装置に組み込まれてもよいし、あるいは、互いに連携動作する複数の装置に分散して組み込まれてもよい。
【００２７】
図２は、データベースシステム１０のトランザクション処理部２０の処理手順を概略的に示すフローチャートである。トランザクション処理部２０では、クエリ受信部２１がクライアント端末５０１，５０２から到来したクエリを受信し（ステップＳ１１）、当該受信されたクエリを解析部２２に与える。解析部２２は、クエリの解析（構文解析や最適化処理など）を実行し、その解析結果をトランザクション実行部２３に与える（ステップＳ１２）。トランザクション実行部２３は、当該解析結果に基づいたトランザクションをデータベース４１に対して実行する（ステップＳ１３）。ここで、トランザクションとは、データベース４１の検索や更新などの処理を含む１つの作業単位を意味し、原子性（ATOMICITY）、一貫性（CONSISTENCY）、隔離性（ISOLATION）および持続性（DURABILITY）というＡＣＩＤ特性を満たす処理である。トランザクション処理が正常に終了したとき（ステップＳ１４；ＹＥＳ）、トランザクションはコミットされる（ステップＳ１５）。
【００２８】
ここで、トランザクション実行部２３は、トランザクションのログ情報（履歴情報）をログファイル４２として記憶装置４０に記録している。これと並行して、トランザクション実行部２３は、トランザクションのログのメタデータ（各トランザクションの開始または終了などの情報）をトランザクションサーバ３２に記録する。
【００２９】
チェックポイント処理部３０は、トランザクションサーバ３２に記録されたメタデータとログファイル４２とに基づいて定期的にチェックポイントを設定する機能を有する。トランザクションやシステムに関する障害が発生してトランザクションが正常に終了しなかったとき（図２のステップＳ１４；ＮＯ）、トランザクション実行部２３は、ロールフォワードを実行する（ステップＳ１６）。すなわち、チェックポイント処理部３０は、ログファイル４２を参照して、直前に設定されたチェックポイントの時点から障害発生時点までの期間Ｔｅｒｒのログ情報を確認し、この期間Ｔｅｒｒ中にコミットされていないトランザクションに関するログ情報をログファイル４２から削除する。次に、期間Ｔｅｒｒ中にコミットされたトランザクションが存在する場合、トランザクション実行部２３は、ログファイル４２に基づいて当該トランザクションの実行結果をデータベース４１に反映させる。その後、トランザクション実行部２３は、データベース４１を、コミットされていないトランザクションの処理開始前の状態に戻す、すなわち、ロールバックする（ステップＳ１７）。
【００３０】
そして、応答処理部２４は、トランザクション実行部２３からトランザクションの実行結果を受け取り、その実行結果をクライアント端末５０１，５０２に送信する（ステップＳ１８）。
【００３１】
後述するように、データベース４１は、複数の実体データからなる実体データ群と、複数の固定長データのみを有する少なくとも１つの識別子テーブルとを含む構造を有する。この識別子テーブルは、複数の実体データそのものをそれぞれ実質的に一意に表す複数のデータ識別子を前記固定長データとして有するものである。また、後述するように、識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義されかつデータ識別子を含む少なくとも１つの属性フィールドとを有する。
【００３２】
トランザクション実行部２３は、クエリの要求に応じて実体データ群の中から特定の実体データを選択する際、実体データ群を検索せずに、識別子テーブル内の固定長のデータ識別子を検索し、この検索結果に基づいて実体データを選択することができる。トランザクション実行部２３は、この選択結果を用いて、データベース４１に対する検索や更新などの処理を含むトランザクションを実行することができる。
【００３３】
データベース４１の更新が繰り返し実行されると、記憶装置４０内のデータの記録や削除が繰り返し実行されるので、記憶装置４０内の連続的な記憶領域に記録されていたデータ群が断片化（フラグメンテーション）し、これによりキャッシュヒット率が低下して処理速度が低下してしまう。デフラグ処理部３１は、複数のデータ識別子が記憶装置４０内の不連続な複数の記憶領域に分散して記憶されているとき、これらデータ識別子を記憶装置４０から読み出し、識別子テーブルに割り当てられた連続的な記憶領域に書き込む機能を有する。
【００３４】
次に、本発明の種々の実施形態に係るデータベース４１の構造について説明する。
【００３５】
（第１の実施形態）
図３は、本発明の第１の実施形態に係るデータベース構造の一例を示す概略図である。図３に示されるように、このデータベース構造は、記憶装置４０の記憶領域ＤＡ０に格納された実体データ群と、記憶領域ＤＡ０とは異なる記憶領域に格納された識別子テーブルＲＴ０とを有する。
【００３６】
識別子テーブルＲＴ０は、行方向に定義された４つのタプルと、列方向に定義された４つの属性フィールドＴＩＤ，Ｖａｌ１、Ｖａｌ２、Ｖａｌ３とを有している。第１の実施形態では、説明の便宜上、識別子テーブルＲＴ０のタプルの数は４つであるが、これに限定されず、タプルの数をたとえば数十〜数百万に設定することができる。属性フィールドＴＩＤ，Ｖａｌ１、Ｖａｌ２、Ｖａｌ３の数も４つに限定されるものではない。属性フィールドＶａｌ１、Ｖａｌ２、Ｖａｌ３の名称（属性名）として、たとえば、「顧客名」、「所属会社名」、「性別」を設定することができる。
【００３７】
識別子テーブルＲＴ０の４つのタプルには、それぞれ、一意のタプル識別子Ｒ１，Ｒ２，Ｒ３，Ｒ４が割り当てられている。属性フィールドＶａｌ１は、４つのタプルに対応する領域にそれぞれ固定長のデータ識別子ＶＲ１１，ＶＲ２１，ＶＲ３１，ＶＲ４１を含み、属性フィールドＶａｌ２は、４つのタプルに対応する領域にそれぞれ固定長のデータ識別子ＶＲ１２，ＶＲ２２，ＶＲ３２，ＶＲ４２を含み、属性フィールドＶａｌ３は、４つのタプルに対応する領域にそれぞれ固定長のデータ識別子ＶＲ１３，ＶＲ２３，ＶＲ３３，ＶＲ４３を含む。
【００３８】
これらデータ識別子ＶＲ１１〜ＶＲ４３は、記憶領域ＤＡ０内の実体データをそれぞれ実質的に一意に表す値を有する。このため、トランザクション実行部２３は、データ識別子ＶＲ１１〜ＶＲ４３を検索し、この検索結果に基づいてこれらデータ識別子ＶＲ１１〜ＶＲ４３のいずれかに対応する可変長の実体データにアクセスすることができる。なお、本明細書において「実質的に一意」とは、データベース４１に対するデータ処理上の一意性を満たしていることを意味する。
【００３９】
たとえば、属性フィールドＶａｌ１、Ｖａｌ２、Ｖａｌ３の名称（属性名）として、それぞれ「顧客名」、「所属会社名」、「性別」を設定する場合、データ識別子ＶＲ１１，ＶＲ１２，ＶＲ１３を、それぞれ、「山田太郎」，「Ｎ社」，「男性」の実体データＤ１１，Ｄ１２，Ｄ１３を一意に表す識別子とし、データ識別子ＶＲ２１，ＶＲ２２，ＶＲ２３を、それぞれ、「佐藤花子」，「Ｆ社」，「女性」の実体データＤ２１，Ｄ２２，Ｄ２３を一意に表す識別子とし、データ識別子ＶＲ３１，ＶＲ３２，ＶＲ３３を、それぞれ、「伊藤一」，「Ｓ社」，「不明」の実体データＤ３１，Ｄ３２，Ｄ３３を一意に表す識別子とすることができる。
【００４０】
このようなデータ識別子ＶＲ１１〜ＶＲ４３の値は、一方向性のハッシュ関数を用いて算出することができる。ハッシュ関数は、実体データの入力に対して固定長のビット列を出力するので、このハッシュ関数の出力値（ハッシュ値）をデータ識別子ＶＲ１１〜ＶＲ４３の値として利用すればよい。トランザクション実行部２３は、検索文字列をハッシュ値に変換し、このハッシュ値と一致する値を持つデータ識別子を識別子テーブルＲＴ０から探し出し、探し出されたデータ識別子に対応する実体データを選択することができる。このとき、トランザクション実行部２３は、固定長データ群のみからなる識別子テーブルＲＴ０を検索するので、文字列を高速に探し出すことができる。特に、行単位での検索を高速に実行することが可能である。
【００４１】
なお、図４に示されるように、データ識別子ＶＲ１１〜ＶＲ４１は記憶領域の連続的な領域に記録されていることが好ましい。これによりデータ識別子ＶＲ１１〜ＶＲ４３へのアクセスが高速化し、キャッシュヒット率も高くなるので、検索速度が向上する。
【００４２】
ただし、データベース４１に対する更新が頻繁に実行されると、これに伴い、データ識別子ＶＲ１１〜ＶＲ４３が不連続な記憶領域に分散して記憶されることが起こり得る。たとえば、データ識別子ＶＲ１１〜ＶＲ１３の群とデータ識別子ＶＲ２１〜ＶＲ２３の群とが互いに離れた記憶領域に記憶される。このような場合、デフラグ処理部３１は、所定のタイミングで、データ識別子ＶＲ１１〜ＶＲ４３を記憶領域ＲＡ０から読み出し、読み出されたデータ識別子ＶＲ１１〜ＶＲ４３を連続領域に書き込むことにより、検索速度の低下を防止することができる。
【００４３】
図５（Ａ）は、記憶領域ＤＡ０に記憶されたデータ構造の一例を概略的に示す図である。このデータ構造は、先頭部分にヘッダ領域を有し、末尾部分にアロケーション管理テーブルを有している。ヘッダ領域とアロケーション管理テーブルとの間に実体データ群が格納される領域が設けられている。
【００４４】
ヘッダ領域は、実体データそれぞれの記憶領域を示す位置データとデータ識別子との間の対応関係を表す変換テーブルを含む。より具体的には、図５（Ｂ）に示されるように、変換テーブルは、複数のデータ識別子ＶＲ１１〜ＶＲ４３と、複数の実体データＤ１１〜Ｄ４３それぞれの記憶領域を示す位置データＡ１１〜Ａ４３との間の対応関係を規定するものである。位置データＡ１１〜Ａ４３は、それぞれ対応する実体データＤ１１〜Ｄ４３の記憶領域の絶対的位置を指定するアドレス、あるいは、当該記憶領域の相対的位置を指定するオフセットであればよい。トランザクション実行部２３は、識別子テーブルＲＴ０を検索し図５（Ａ）のヘッダ領域を参照することにより、実体データＤ１１〜Ｄ４３にアクセスできる。このようにヘッダ領域を介して実体データ群と識別子テーブルＲＴ０との間を論理的に接続することで、後述するように、データベース４１に対する更新を効率的かつ高速に実行することが可能となる。
【００４５】
この変換テーブルでは、同一値を有するデータ識別子の重複が排除されている（すなわち、変換テーブル内にある任意の２つのデータ識別子の値は必ず異なる）ので、この変換テーブルを使用することにより、同一値を有する実体データを重複させずに記憶領域ＤＡ０に記憶させることができる。言い換えれば、データベース４１を構成する実体データ群を圧縮して記憶領域ＤＡ０に記憶させることができるので、記憶領域ＤＡ０の効率的な利用が可能となる。
【００４６】
図６（Ａ）は、記憶領域ＤＡ０に記憶されたデータ構造の他の例を概略的に示す図である。このデータ構造には、前述の変換テーブルを含むヘッダ領域は存在しない。図６（Ｂ）に示されるように、実体データＤ１３には、対応するデータ識別子ＶＲ１３と同じ値を持つ検索用データ識別子ＶＲ１３と、実体データＤ１３のビット長を示す値ＤＬ１３とが付加されている。他の実体データについても同様である。トランザクション実行部２３は、識別子テーブルＲＴ０を検索し、更に図６（Ａ）の検索用データ識別子ＶＲ１１〜ＶＲ４３を検索することにより、実体データＤ１１〜Ｄ４３にアクセスできる。
【００４７】
上記第１の実施形態に係るデータベース構造を使用することによりデータベースシステム１０が奏する効果は以下の通りである。
【００４８】
第１に、データベース４１に対する更新処理を効率的かつ高速に実行することができる。すなわち、第１の実施形態に係るデータベース４１は、複数の実体データＤ１１〜Ｄ４３と、これら実体データＤ１１〜Ｄ４３をそれぞれ実質的に一意に表す複数のデータ識別子ＶＲ１１〜ＶＲ４３とを有する。たとえば、クエリに応じてデータベース４１の中の特定の実体データＤ４１を新たな実体データに置換しようとするとき、この新たな実体データと同じ値を持つ実体データが既に記憶領域Ｄ０内に存在していれば、記憶領域Ｄ０内の実体データＤ４１を実際に書き換えることなく、識別子テーブルＲＴ０内のデータ識別子ＶＲ４１を新たなデータ識別子に置換するだけでデータベース４１に対する更新処理を実行できる。
【００４９】
また、クエリに応じて実体データ群にレコードを追加（挿入）するとき、このレコードに含めるべき実体データと同じ値を持つ実体データが既に記憶領域Ｄ０内に存在していれば、当該レコードに対応するデータ識別子を識別子テーブルＲＴ０に追加するだけでデータベース４１に対する更新処理を実行できる。更に、クエリに応じて実体データ群から実体データＤ４１を削除しようとするときも、記憶領域Ｄ０から実体データＤ４１を直ちに削除せずに、データ識別子ＶＲ４１のみを識別子テーブルＲＴ０から削除するだけでデータベース４１に対する更新処理を実行できる。
【００５０】
このように置換、追加または削除などの更新のクエリに対するデータベース処理について高いリアルタイム性を確保することができる。データベース４１に対する更新が頻繁に行われる場合でも、かかる更新を効率的かつ高速に実行することが可能である。
【００５１】
第２に、データベースの移植性が高いという効果が得られる。すなわち、データ識別子ＶＲ１１〜ＶＲ４３は、実体データＤ１１〜Ｄ４３をそれぞれ実質的に一意に表すので、データ識別子ＶＲ１１〜ＶＲ４３のハードウェア構成への依存性は低い。よって、第１の実施形態に係るデータベースを他のシステムへ容易に移植することができる。
【００５２】
第３に、データベース４１の分散性が高いという効果が得られる。上述の通り、識別子テーブルＲＴ０に割り当てられた記憶領域と実体データ群に割り当てられた記憶領域ＤＡ０とは別領域である。言い換えれば、識別子テーブルＲＴ０と実体データ群とは完全に分離されている。このため、識別子テーブルＲＴ０と実体データ群とを分散配置することが容易である。たとえば、ＬＡＮなどのコンピュータネットワークを介して接続された２つのコンピュータシステムにそれぞれ識別子テーブルＲＴ０と実体データ群とを分散配置することができる。
【００５３】
第４に、データベース４１に対するアクセス速度の低下を防止できる。上述の通り、データ識別子ＶＲ１１〜ＶＲ４３が不連続な記憶領域に分散して記憶される現象（フラグメンテーション）が生じても、デフラグ処理部３１は、データ識別子ＶＲ１１〜ＶＲ４３を連続的な記憶領域に書き換えることができるので、データベース４１に対するアクセス速度の低下を防止することができる。
【００５４】
（第２の実施形態）
図７は、本発明の第２の実施形態に係るデータベース構造の一例を示す概略図である。図７に示されるように、このデータベース構造は、記憶装置４０の記憶領域ＤＡ１に格納された実体データ群と、記憶領域ＤＡ１とは別の記憶領域に格納されたリンクテーブルＬＴ１と、第１および第２のカラムテーブル（識別子テーブル）ＣＴ１１，ＣＴ１２とを有する。図３に示した参照テーブルＲＴ０は、複数の属性フィールド（カラム）を有し、各カラムがデータ識別子を含むものである。本実施形態のカラムテーブルＣＴ１１，ＣＴ１２の各々は、図３の参照テーブルＲＴ０の各カラムに対応するデータ構造を有するものといえる。カラムテーブルＣＴ１１のデータ構造とカラムテーブルＣＴ１２のデータ構造とは、アドレスが連続しない記憶領域にそれぞれ記憶されてもよいし、アドレスが連続する記憶領域に記憶されてもよい。
【００５５】
第１のカラムテーブルＣＴ１１は、行方向に定義された複数のタプルと、列方向に定義された１つの属性フィールドＶａｌとを有し、この属性フィールドＶａｌは、４つのタプルに対応する領域にそれぞれ固定長のデータ識別子ＶＲ１２，ＶＲ１２，ＶＲ１１，ＶＲ１１を含む。一方、第２のカラムテーブルＣＴ１２は、行方向に定義された複数のタプルと、列方向に定義された１つの属性フィールドＶａｌとを有し、この属性フィールドＶａｌは、４つのタプルに対応する領域にそれぞれ固定長のデータ識別子ＶＲ２３，ＶＲ２４，ＶＲ２２，ＶＲ２１を含む。たとえば、カラムテーブルＣＴ１１の属性フィールドＶａｌの名称（属性名）として「顧客名」を設定し、カラムテーブルＣＴ１２の属性フィールドＶａｌの名称として「性別」を設定することができる。この場合、データ識別子ＶＲ１２，ＶＲ１１は、「山田太郎」や「佐藤花子」などの実体データＤ１２，Ｄ１１をそれぞれ一意に表す識別子とされ、データ識別子ＶＲ２１〜ＶＲ２４は、「男性」や「女性」などの実体データＤ２１〜Ｄ２４をそれぞれ一意に表す識別子とされる。
【００５６】
データ識別子ＶＲ１１〜ＶＲ２４は、記憶領域ＤＡ１の実体データＤ１１〜Ｄ２４をそれぞれ実質的に一意に表す値を有する。このため、トランザクション実行部２３は、データ識別子ＶＲ１１〜ＶＲ２４を検索して、この検索結果を用いて可変長の実体データにアクセスすることができる。記憶領域ＤＡ１は、図５（Ａ）および図５（Ｂ）に示す変換テーブルと同様の変換テーブルを有すればよく、あるいは、図６（Ａ）および図６（Ｂ）に示す検索用データ識別子と同様の検索用データ識別子を有していてもよい。
【００５７】
カラムテーブルＣＴ１１，ＣＴ１２の各々において、データ識別子は連続的な領域に記録されることが望ましい。これによりデータ識別子へのアクセスが高速化し、キャッシュヒット率も高くなるので、検索速度が向上する。データベース４１に対する更新が頻繁に実行された場合でも、デフラグ処理部３１は、所定のタイミングで、一群のデータ識別子を記憶領域から読み出し、読み出されたデータ識別子を連続領域に書き込むことにより、検索速度の低下を防止することができる。
【００５８】
リンクテーブルＬＴ１は、第１のカラムテーブルＣＴ１１と第２のカラムテーブルＣＴ１２との間のタプルを関連付ける構造を有している。すなわち、リンクテーブルＬＴ１は、行方向に定義された複数のタプルと、列方向に定義された２つの属性フィールドＴＩＤ，ＯＳＴとを有しており、一方の属性フィールドＴＩＤは、タプルを一意に表すタプル識別子Ｒ１，Ｒ２，Ｒ３，Ｒ４を含み、他方の属性フィールドＯＳＴは、カラムテーブルＣＴ１１，ＣＴ１２のタプルの記憶領域の相対的位置を指定するオフセットＶｏ１，Ｖｏ２，Ｖｏ３，Ｖｏ４を含む。たとえば、オフセットＶｏ１を所定の基準アドレスＡ０に加算することにより、データ識別子ＶＲ１２の記憶領域の絶対的位置を指定する実効アドレスＶｏ１＋Ａ０を求めることができる。
【００５９】
上記第１の実施形態と同様に、第１および第２のカラムテーブルＣＴ１１，ＣＴ１２の各々に含まれるデータ識別子ＶＲ１１〜ＶＲ２４の値は、一方向性のハッシュ関数を用いて算出されればよい。トランザクション実行部２３は、検索文字列をハッシュ値に変換し、このハッシュ値と一致する値を持つデータ識別子をカラムテーブルＣＴ１１，ＣＴ１２から探し出し、探し出されたデータ識別子に対応する実体データを選択することができる。このとき、トランザクション実行部２３は、固定長データ群のみからなるカラムテーブルＣＴ１１，ＣＴ１２を検索するので、文字列を高速に探し出すことができる。
【００６０】
第２の実施形態のデータベースは、２列の表形式データを、第１のカラムテーブルＣＴ１１、第２のカラムテーブルＣＴ１２および実体データ群に分解したものとみなすことができる。それ故、列単位での検索処理を高速に実行することが可能である。
【００６１】
なお、第２の実施形態では、カラムテーブルＣＴ１１，ＣＴ１２の各々の属性フィールドＶａｌの数を１つにしたが、これに限定されず、カラムテーブルＣＴ１１，ＣＴ１２の各々について属性フィールドの数をたとえば２個以上に設定してもよい。また、カラムテーブルＣＴ１１，ＣＴ１２の数も２個に限らず、３個以上にしてもよい。
【００６２】
上記第２の実施形態に係るデータベース構造を使用することによりデータベースシステム１０が奏する効果は以下の通りである。
【００６３】
第１に、データベース４１に対する更新処理を効率的かつ高速に実行することができる。すなわち、第２の実施形態に係るデータベースは、複数の実体データと、これら実体データをそれぞれ実質的に一意に表す複数のデータ識別子ＶＲ１１〜ＶＲ２４とを有する。このため、第１の実施形態の場合と同様に、実体データの更新、追加または削除などの更新のクエリに対するデータベース処理を効率良く実行することができ、高いリアルタイム性を確保することができる。よって、データベース４１に対する更新が頻繁に行われる場合でも、かかる更新を効率的かつ高速に実行することが可能である。
【００６４】
第２に、データベースの分散性が高いという効果が得られる。カラムテーブルＣＴ１１，ＣＴ１２と実体データ群とは完全に分離されている。このため、第１の実施形態と同様に、カラムテーブルＣＴ１１，ＣＴ１２と実体データ群とを分散配置することが容易である。
【００６５】
第３に、カラムテーブルＣＴ１１，ＣＴ１２間のタプル同士の論理的な接続形態を柔軟に決めることができる。たとえば、図７に示すように、タプル識別子Ｒ３に対応するオフセットＶｏ３を用いて、カラムテーブルＣＴ１１の実効アドレスＡ０＋Ｖｏ３以後に記録されているタプルと、カラムテーブルＣＴ１２の実効アドレスＡ１＋Ｖｏ３以後に記録されているタプルとを論理的に接続することができる。同時に、タプル識別子Ｒ４に対応するオフセットＶｏ４を用いて、カラムテーブルＣＴ１１の実効アドレスＡ０＋Ｖｏ４以後に記録されているタプルと、カラムテーブルＣＴ１２の実効アドレスＡ１＋Ｖｏ４以後に記録されているタプルとを論理的に接続することができる。
【００６６】
第４に、カラムテーブルＣＴ１１，ＣＴ１２間は、リンクテーブルＬＴ１の１つの属性フィールドＯＳＴだけで論理的に接続されるので、リンクテーブルＬＴ１のデータ容量を非常に小さくすることができる。
【００６７】
（第３の実施形態）
図８は、本発明の第３の実施形態に係るデータベース構造の一例を示す概略図である。図８に示されるように、このデータベース構造は、記憶装置４０の記憶領域ＤＡ１に格納された実体データ群と、記憶領域ＤＡ１とは別の記憶領域に格納されたリンクテーブルＬＴ２、第１および第２のカラムテーブル（識別子テーブル）ＣＴ１１，ＣＴ１２とを有する。
【００６８】
第３の実施形態に係るデータベース構造は、リンクテーブルＬＴ２を除いて、第２の実施形態に係るデータベース構造と同じ構成を有している。
【００６９】
リンクテーブルＬＴ２は、第１のカラムテーブルＣＴ１１と第２のカラムテーブルＣＴ１２との間のタプルを関連付ける構造を有している。すなわち、リンクテーブルＬＴ２は、行方向に定義された複数のタプルと、列方向に定義された第１〜第３の属性フィールドＴＩＤ，ＰＴ１，ＰＴ２とを有している。第１の属性フィールドＴＩＤは、タプルを一意に表すタプル識別子Ｒ１，Ｒ２，Ｒ３，Ｒ４を含む。第２の属性フィールドＰＴ１は、カラムテーブルＣＴ１１のタプルの記憶領域に割り当てられたアドレスを指すポインタＶｐ１１，Ｖｐ１２，Ｖｐ１３，Ｖｐ１４を含む。そして、第３の属性フィールドＰＴ２は、カラムテーブルＣＴ１２のタプルの記憶領域に割り当てられたアドレスを指すポインタＶｐ２１，Ｖｐ２２，Ｖｐ２３，Ｖｐ２４を含む。
【００７０】
トランザクション実行部２３は、リンクテーブルＬＴ２を介して第１および第２のカラムテーブルＣＴ１１，ＣＴ１２の中のデータ識別子ＶＲ１１〜ＶＲ２４を検索し、この検索結果を用いて実体データにアクセスすることができる。第３の実施形態のデータベースは、２列の表形式データを、第１のカラムテーブルＣＴ１１、第２のカラムテーブルＣＴ１２および実体データ群に分解したものとみなすことができる。それ故、列単位での検索処理を高速に実行することが可能である。
【００７１】
なお、第３の実施形態では、カラムテーブルＣＴ１１，ＣＴ１２の数も２個に限らず、３個以上にしてもよい。この場合でも、リンクテーブルＬＴ２は、複数のカラムテーブルにそれぞれ対応する属性フィールドを有している。
【００７２】
上記第３の実施形態に係るデータベース構造を使用することによりデータベースシステム１０が奏する効果は以下の通りである。上記第２の実施形態の場合と同様に、第１に、データベース４１に対する更新処理を効率的かつ高速に実行することができ、第２に、データベースの分散性が高いという効果が得られる。
【００７３】
第３に、カラムテーブルＣＴ１１，ＣＴ１２間のタプル同士の論理的な接続形態を柔軟に決めることができる。すなわち、リンクテーブルＬＴ２は、カラムテーブル毎に、ポインタを含む属性フィールドを有するので、第２の実施形態に係るデータベース構造よりも第３の実施形態に係るデータベース構造の方が、カラムテーブルＣＴ１１，ＣＴ１２間のタプル同士の接続形態をより柔軟に決めることが可能である。たとえば、リンクテーブルＬＴ２の属性フィールドＰＴ２内のポインタＶｐ２１，Ｖｐ２２，Ｖｐ２３，Ｖｐ２４のうちいずれかの値を変更するだけで、リンクテーブルＬＴ２における、カラムテーブルＣＴ１２内のデータ識別子ＶＲ２３，ＶＲ２４，ＶＲ２２，ＶＲ２１，…の論理的な位置を変更できる。このとき、他方のカラムテーブルＣＴ１１に影響を与えずに済む。
【００７４】
また、図８に示した例では、カラムテーブルＣＴ１１は同一データ識別子ＶＲ１２，ＶＲ１２を重複して有しているが、リンクテーブルＬＴ２の属性フィールドＰＴ１のポインタを変更することで（たとえば、ポインタＶｐ１２をＶｐ１１に変更することで）、その重複を解消することができ、データ容量を圧縮することが可能である。
【００７５】
第４に、第１のカラムテーブルＣＴ１１と第２のカラムテーブルＣＴ１２とが論理的に分離されているので、トランザクション実行部２３は、検索条件を指定するクエリに応じて、第１のカラムテーブルＣＴ１１に対する検索処理と第２のカラムテーブルＣＴ１２に対する検索処理とを同時並行に行うことができる。それ故、検索速度の向上が可能である。
【００７６】
（第４の実施形態）
図９は、本発明の第４の実施形態に係るデータベース構造の一例を示す概略図である。図９に示されるように、このデータベース構造は、記憶装置４０の記憶領域ＤＡ２に格納された実体データ群と、記憶領域ＤＡ２とは別の記憶領域に格納されたリンクテーブルＬＴ３、第１および第２のカラムテーブル（識別子テーブル）ＣＴ３１，ＣＴ３２とを有する。上述した通り、図３に示した参照テーブルＲＴ０は、複数の属性フィールド（カラム）を有し、各カラムがデータ識別子を含むものである。本実施形態のカラムテーブルＣＴ３１，ＣＴ３２の各々は、図３の参照テーブルＲＴ０の各カラムに対応するデータ構造を有するものといえる。カラムテーブルＣＴ３１のデータ構造とカラムテーブルＣＴ３２のデータ構造とは、アドレスが連続しない記憶領域にそれぞれ構成されてもよいし、アドレスが連続する記憶領域に構成されてもよい。
【００７７】
第１のカラムテーブルＣＴ３１は、行方向に定義された４つのタプルと、列方向に定義された２つの属性フィールドＣｏｌ１，Ｖａｌとを有し、一方の属性フィールドＣｏｌ１は、４つのタプルに対応する領域にそれぞれ固定長のタプル識別子ＣＲＶ１，ＣＲＶ２，ＣＲＶ３，ＣＲＶ４を含み、他方の属性フィールドＶａｌは、４つのタプルに対応する領域にそれぞれ固定長のデータ識別子ＶＲ１２，ＶＲ１２，ＶＲ１１，ＶＲ１１を含む。第１のカラムテーブルＣＴ３１のタプル識別子ＣＲＶ１，ＣＲＶ２，ＣＲＶ３，ＣＲＶ４は、それぞれ、当該第１のカラムテーブルＣＴ３１のタプルを一意に表す値を有する。
【００７８】
第２のカラムテーブルＣＴ３２は、行方向に定義された４つのタプルと、列方向に定義された２つの属性フィールドＣｏｌ２，Ｖａｌとを有し、一方の属性フィールドＣｏｌ２は、４つのタプルに対応する領域にそれぞれ固定長のタプル識別子ＣＲＶ１，ＣＲＶ２，ＣＲＶ３，ＣＲＶ４を含み、他方の属性フィールドＶａｌは、４つのタプルに対応する領域にそれぞれ固定長のデータ識別子ＶＲ２３，ＶＲ２４，ＶＲ２１，ＶＲ２２を含む。第２のカラムテーブルＣＴ３２のタプル識別子ＣＲＶ１，ＣＲＶ２，ＣＲＶ３，ＣＲＶ４は、それぞれ、当該第２のカラムテーブルＣＴ３２のタプルを一意に表す値を有する。
【００７９】
データ識別子ＶＲ１１〜ＶＲ２４は、記憶領域ＤＡ２の実体データＤ１１〜Ｄ２４をそれぞれ実質的に一意に表す値を有する。このため、トランザクション実行部２３は、データ識別子ＶＲ１１〜ＶＲ２４を検索して、この検索結果を用いて可変長の実体データにアクセスすることができる。記憶領域ＤＡ２は、図５（Ａ）および図５（Ｂ）に示す変換テーブルと同様の変換テーブルを有すればよく、あるいは、図６（Ａ）および図６（Ｂ）に示す検索用データ識別子と同様の検索用データ識別子を有していてもよい。
【００８０】
カラムテーブルＣＴ３１，ＣＴ３２の各々において、データ識別子は連続的な領域に記録されることが望ましい。これによりデータ識別子へのアクセスが高速化し、キャッシュヒット率も高くなるので、検索速度が向上する。データベース４１に対する更新が頻繁に実行された場合でも、デフラグ処理部３１は、所定のタイミングで、一群のデータ識別子を記憶領域から読み出し、読み出されたデータ識別子を連続領域に書き込むことにより、検索速度の低下を防止することができる。
【００８１】
リンクテーブルＬＴ３は、第１のカラムテーブルＣＴ３１と第２のカラムテーブルＣＴ３２との間のタプルを関連付ける構造を有している。すなわち、リンクテーブルＬＴ３は、行方向に定義された４つのタプルと、列方向に定義された２つの属性フィールドＴＩＤ，ＣｏｌＲｅｆとを有しており、一方の属性フィールドＴＩＤは、タプルを一意に表すタプル識別子Ｒ１，Ｒ２，Ｒ３，Ｒ４を含み、他方の属性フィールドＣｏｌＲｅｆは、カラムテーブルＣＴ３１，ＣＴ３２のタプル（外部タプル）を実質的に一意に表す外部タプル識別子ＣＲＶ１，ＣＲＶ２，ＣＲＶ３，ＣＲＶ４を含む。外部タプル識別子ＣＲＶ１，ＣＲＶ２，ＣＲＶ３，ＣＲＶ４は、それぞれ、第１のカラムテーブルＣＴ３１および第２のカラムテーブルＣＴ３２のタプル識別子ＣＲＶ１，ＣＲＶ２，ＣＲＶ３，ＣＲＶ４と同じ値を有するが、これに限定されるものではない。これらタプル識別子が、それぞれ、外部タプル識別子ＣＲＶ１，ＣＲＶ２，ＣＲＶ３，ＣＲＶ４に対応する値を有していてもよい。
【００８２】
上記第１の実施形態と同様に、第１および第２のカラムテーブルＣＴ３１，ＣＴ３２の各々に含まれるデータ識別子ＶＲ１１〜ＶＲ２４の値は、一方向性のハッシュ関数を用いて算出されればよい。トランザクション実行部２３は、検索文字列をハッシュ値に変換し、このハッシュ値と一致する値を持つデータ識別子をカラムテーブルＣＴ３１，ＣＴ３２から探し出し、探し出されたデータ識別子に対応する実体データを選択することができる。このとき、トランザクション実行部２３は、固定長データ群のみからなるカラムテーブルＣＴ３１，ＣＴ３２を検索するので、文字列を高速に探し出すことができる。
【００８３】
また、第４の実施形態のデータベースは、２列の表形式データを、第１のカラムテーブルＣＴ３１、第２のカラムテーブルＣＴ３２および実体データ群に分解したものとみなすことができる。それ故、列単位での検索処理を高速に実行することが可能である。
【００８４】
なお、カラムテーブルＣＴ３１，ＣＴ３２の各々の属性フィールドの数を２つにしたが、これに限定されず、カラムテーブルＣＴ３１，ＣＴ３２の各々について属性フィールドの数をたとえば３個以上に設定してもよい。また、カラムテーブルＣＴ３１，ＣＴ３２の数も２個に限らず、３個以上にしてもよい。
【００８５】
上記第４の実施形態に係るデータベース構造を使用することによりデータベースシステム１０が奏する効果は以下の通りである。
【００８６】
上記第２の実施形態の場合と同様に、第１に、データベース４１に対する更新処理を効率的かつ高速に実行することができ、第２に、データベースの分散性が高く、第３に、カラムテーブルＣＴ３１，ＣＴ３２間のタプル同士の論理的な接続形態を柔軟に決めることができる。
【００８７】
第４に、データベースの移植性が高いという効果が得られる。すなわち、データ識別子ＶＲ１１〜ＶＲ２４は、実体データＤ１１〜Ｄ２４をそれぞれ実質的に一意に表すので、データ識別子ＶＲ１１〜ＶＲ２４のハードウェア構成への依存性は低い。タプル識別子ＣＲＶ１〜ＣＲＶ４および外部タプル識別子ＣＲＶ１〜ＣＲＶ４についても同様である。よって、第４の実施形態に係るデータベースを他のシステムへ容易に移植することができる。
【００８８】
（第５の実施形態）
図１０は、本発明の第５の実施形態に係るデータベース構造の一例を示す概略図である。図１０に示されるように、このデータベース構造は、記憶装置４０の記憶領域ＤＡ３に格納された実体データ群と、記憶領域ＤＡ３とは別の記憶領域に格納された参照テーブルＲＴ１および第１〜第３の中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３とを有する。中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３は、記憶領域ＤＡ３とは別の記憶領域に格納されたデータ構造とすることができる。この場合、中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３の各データ構造は、アドレスが連続しない記憶領域にそれぞれ構成されてもよいし、アドレスが連続する記憶領域に構成されてもよい。
【００８９】
あるいは、中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３は、記憶領域ＤＡ３内に格納されたデータ構造としてもよい。この場合、記憶領域ＤＡ３が図５のヘッダ領域と同様なヘッダ領域を有し、中間識別子テーブルＩＴ４１、ＩＴ４２、ＩＴ４３の各データ構造がそのヘッダ領域内に変換テーブルとともに格納されていればよい。
【００９０】
第１の中間識別子テーブルＩＴ４１は、行方向に定義された２つのタプルと、列方向に定義された２つの属性フィールドＣｏｌ１，Ｖａｌとを有する。一方の属性フィールドＣｏｌ１は、２つのタプルに対応する領域にそれぞれ固定長のタプル識別子ＣＲＶ１１，ＣＲＶ１２を含む。他方の属性フィールドＶａｌは、２つのタプルに対応する領域にそれぞれ固定長のデータ識別子ＶＲ１１，ＶＲ１２を含んでいる。
【００９１】
第２の中間識別子テーブルＩＴ４２は、行方向に定義された４つのタプルと、列方向に定義された２つの属性フィールドＣｏｌ２，Ｖａｌとを有する。一方の属性フィールドＣｏｌ２は、４つのタプルに対応する領域にそれぞれ固定長のタプル識別子ＣＲＶ２１，ＣＲＶ２２，ＣＲＶ２３，ＣＲＶ２４を含む。第２の中間識別子テーブルＩＴ４２の他方の属性フィールドＶａｌは、４つのタプルに対応する領域にそれぞれ固定長のデータ識別子ＶＲ２１，ＶＲ２２，ＶＲ２３，ＶＲ２４を含む。
【００９２】
そして、第３の中間識別子テーブルＩＴ４３は、行方向に定義された３つのタプルと、列方向に定義された２つの属性フィールドＣｏｌ３，Ｖａｌとを有する。一方の属性フィールドＣｏｌ３は、３つのタプルに対応する領域にそれぞれ固定長のタプル識別子ＣＲＶ３１，ＣＲＶ３２，ＣＲＶ３３を含む。第３の中間識別子テーブルＩＴ４３の他方の属性フィールドＶａｌは、３つのタプルに対応する領域にそれぞれ固定長のデータ識別子ＶＲ３１，ＶＲ３２，ＶＲ３３を含む。
【００９３】
第１〜第３の中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３は、記憶領域ＤＡ３の実体データＤ１１〜Ｄ３３をそれぞれ実質的に一意に表すデータ識別子ＶＲ１１〜ＶＲ３３を有している。
【００９４】
一方、参照テーブルＲＴ１は、第１〜第３の中間識別子テーブルＩＴ４１〜ＩＴ４３内のデータ識別子ＶＲ１１〜ＶＲ３３をそれぞれ実質的に一意に表す参照識別子ＣＲＶ１１〜ＣＲＶ３３を有する。本実施形態では、参照識別子ＣＲＶ１１〜ＣＲＶ３３は、それぞれ、第１〜第３の中間識別子テーブルＩＴ４１〜ＩＴ４３内のタプル識別子ＣＲＶ１１〜ＣＲＶ３３と同じ値を有しており、これにより、データ識別子ＶＲ１１〜ＶＲ３３をそれぞれ実質的に一意に表している。たとえば、参照識別子ＣＲＶ１１〜ＣＲＶ３３の値は、それぞれ、データ識別子ＶＲ１１〜ＶＲ３３を入力としたときのハッシュ関数の値とすることができる。
【００９５】
図１０に示されるように、参照テーブルＲＴ１は、行方向に定義された４つのタプルと、列方向に定義された第１〜第４の属性フィールドＴＩＤ，Ｃｏｌ１Ｒｅｆ，Ｃｏｌ２Ｒｅｆ，Ｃｏｌ３Ｒｅｆとを有している。第１の属性フィールドＴＩＤは、タプルを一意に表すタプル識別子Ｒ１，Ｒ２，Ｒ３，Ｒ４を含む。第２の属性フィールドＣｏｌ１Ｒｅｆは、第１の中間識別子テーブルＩＴ４１のデータ識別子ＶＲ１１，ＶＲ１２を実質的に一意に表す参照識別子ＣＲＶ１２，ＣＲＶ１２，ＣＲＶ１１，ＣＲＶ１１の集合を含み、第３の属性フィールドＣｏｌ２Ｒｅｆは、第２の中間識別子テーブルＩＴ４２のデータ識別子ＶＲ２１，ＶＲ２２，ＶＲ２３，ＶＲ２４を実質的に一意に表す参照識別子ＣＲＶ２１，ＣＲＶ２２，ＣＲＶ２３，ＣＲＶ２４の集合を含み、第４の属性フィールドＣｏｌ３Ｒｅｆは、第３の中間識別子テーブルＩＴ４３のデータ識別子ＶＲ３１，ＶＲ３２，ＶＲ３３を実質的に一意に表す参照識別子ＣＲＶ３１，ＣＲＶ３２，ＣＲＶ３３の集合を含む。
【００９６】
たとえば、参照テーブルＲＴ１の属性フィールドＣｏｌ１Ｒｅｆ、Ｃｏｌ２Ｒｅｆ、Ｃｏｌ３Ｒｅｆの名称（属性名）として、それぞれ、「所在地」、「所属会社名」、「年齢層」を設定することができる。ここで、タプル識別子Ｒ１に対応するタプル（レコード）内のデータ識別子ＣＲＶ１２，ＣＲＶ２３，ＣＲＶ３２は、データ識別子ＶＲ１２，ＶＲ２３，Ｖ３２をそれぞれ一意に表す識別子とされ、これらデータ識別子ＶＲ１２，ＶＲ２３，Ｖ３２は、それぞれ、「品川」，「Ｎ社」，「２０代」の実体データＤ１２，Ｄ２３，Ｄ３２をそれぞれ一意に表す識別子とされる。同様に、タプル識別子Ｒ２に対応するタプル内のデータ識別子ＣＲＶ１２，ＣＲＶ２４，ＣＲＶ３３は、データ識別子ＶＲ１２，ＶＲ２４，ＶＲ３３をそれぞれ一意に表す識別子とされ、これらデータ識別子ＶＲ１２，ＶＲ２４，ＶＲ３３は、それぞれ、「田町」，「Ａ社」，「３０代」の実体データＤ１２，Ｄ２４，Ｄ３３をそれぞれ一意に表す識別子とされる。また、タプル識別子Ｒ３に対応するタプル内のデータ識別子ＣＲＶ１１，ＣＲＶ２１，ＣＲＶ３３は、データ識別子ＶＲ１１，ＶＲ２１，ＶＲ３３をそれぞれ一意に表す識別子とされ、これらデータ識別子ＶＲ１１，ＶＲ２１，ＶＲ３３は、それぞれ、「田町」，「Ａ社」，「３０代」の実体データＤ１１，Ｄ２１，Ｄ３３をそれぞれ一意に表す識別子とされる。そして、タプル識別子Ｒ４に対応するタプル内のデータ識別子ＣＲＶ１１，ＣＲＶ２２，ＣＲＶ３１は、データ識別子ＶＲ１１，ＶＲ２２，Ｖ３１をそれぞれ一意に表す識別子とされ、これらデータ識別子ＶＲ１１，ＶＲ２２，Ｖ３１は、それぞれ、「田町」，「Ｓ社」，「４０代」の実体データＤ１１，Ｄ２２，Ｄ３１をそれぞれ一意に表す識別子とされる。
【００９７】
上記第１の実施形態の場合と同様に、第１〜第３の中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３の各々に含まれるデータ識別子ＶＲ１１〜ＶＲ３３の値は、一方向性のハッシュ関数を用いて算出すればよい。また、参照識別子ＣＲＶ１１〜ＣＲＶ３３の値も、ハッシュ関数を用いて算出することができる。たとえば、データ識別子ＶＲ１１〜ＶＲ３３の値を入力したときのハッシュ関数の出力値を参照識別子ＣＲＶ１１〜ＣＲＶ３３の値とすればよい。トランザクション実行部２３は、検索文字列をハッシュ値に変換し、このハッシュ値と一致する値を持つ参照識別子を参照テーブルＲＴ１から探し出し、探し出された参照識別子に対応する実体データにアクセスすることができる。このとき、トランザクション実行部２３は、固定長データ群のみからなる参照テーブルＲＴ１を検索するので、文字列を高速に探し出すことが可能である。
【００９８】
トランザクション実行部２３は、参照識別子ＣＲＶ１１〜ＣＲＶ３３およびデータ識別子ＶＲ１１〜ＶＲ３３を検索し、この検索結果を用いて可変長の実体データにアクセスすることができる。記憶領域ＤＡ３は、図５（Ａ）および図５（Ｂ）に示す変換テーブルと同様の変換テーブルを有すればよく、あるいは、図６（Ａ）および図６（Ｂ）に示す検索用データ識別子と同様の検索用データ識別子を有していてもよい。
【００９９】
第１〜第３の中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３の各々は、互いに重複した値を持つデータ識別子を排除しているので、冗長性を排除したデータ構造を有する。これにより、記憶領域の効率的な利用が可能となる。
【０１００】
第１〜第３の中間識別子テーブルＩＴ４１〜ＩＴ４３の各々において、データ識別子は連続的な領域に記録されることが望ましい。参照テーブルＲＴ１においても、参照識別子ＣＲＶ１１〜ＣＲＶ３３が連続的な領域に記録されることが望ましい。これによりデータ識別子および参照識別子へのアクセスが高速化し、キャッシュヒット率も高くなるので、検索速度が向上する。
【０１０１】
データベース４１に対する更新が頻繁に実行された場合でも、デフラグ処理部３１は、所定のタイミングで、一群のデータ識別子または一群の参照識別子を記憶領域から読み出し、読み出されたデータ識別子または参照識別子を連続領域に書き込むことにより、検索速度の低下を防止することができる。
【０１０２】
また、デフラグ処理部３１は、第１〜第３の中間識別子テーブルＩＴ４１〜ＩＴ４３の各々において、属性フィールドＶａｌ内の複数のデータ識別子を、当該データ識別子に対応する参照識別子の値の昇順あるいは降順に並べ替える機能を有する。これにより、検索処理を効率的に行うことが可能となる。
【０１０３】
上記第５の実施形態に係るデータベース構造を使用することによりデータベースシステム１０が奏する効果は以下の通りである。
【０１０４】
第１に、データベース４１に対する更新処理を効率的かつ高速に実行することができる。すなわち、第５の実施形態に係るデータベースは、複数の実体データと、これら実体データをそれぞれ実質的に一意に表す複数のデータ識別子ＶＲ１１〜ＶＲ３３とを有する。このため、レコードの更新、追加または削除に伴い、中間識別子テーブルＩＴ４１〜ＩＴ４３だけでなく参照テーブルＲＴ１も必要最小限に更新されるので、データベース４１に対する更新が頻繁に行われる場合でも、かかる更新を効率的かつ高速に実行することが可能である。
【０１０５】
たとえば、新たなレコードが追加（挿入）される場合、トランザクション実行部２３は、当該レコードを参照識別子からなる参照レコードに変換し、この参照レコードをタプル識別子Ｒ５に対応付けて参照テーブルＲＴ１に新たに追加する。次いで、トランザクション実行部２３は、新たに追加された参照レコード内の参照識別子（新参照識別子）が、タプル識別子Ｒ１〜Ｒ４に対応する既存の参照レコード内に存在するか否かを判定する。新参照識別子が既存の参照レコード内に存在すると判定したとき、トランザクション実行部２３は、データベース４１に対する更新処理を終了する。他方、新参照識別子が既存の参照レコード内に存在しないと判定したとき、トランザクション実行部２３は、新参照識別子に対応するデータ識別子を中間識別子テーブルＩＴ４１〜ＩＴ４３のいずれかに追加するとともに、新参照識別子に対応する実体データを記憶領域ＤＡ３に追記する。
【０１０６】
よって、新参照識別子が既存の参照レコード内に存在していた場合は、参照テーブルＲＴ１のみが更新されるので、データベース４１に対する更新処理を短時間で完了することができる。たとえば、新たに追加されるべき参照レコードが、参照テーブルＲＴ１内に存在しない新参照識別子ＣＲＶ１３を含む場合、中間識別子テーブルＩＴ４１に、タプル識別子ＣＲＶ１３とデータ識別子ＶＲ１３とが追加される。同時に、記憶領域ＤＡ３に実体データＤ１３が追記される。一方、新たに追加されるべき参照レコードが、参照テーブルＲＴ１内に既に存在する新参照識別子ＣＲＶ１１のみを含む場合は、中間識別子テーブルＩＴ４１〜ＩＴ４３と実体データ群を更新せずに済む。
【０１０７】
第２に、データベースの分散性が高いという効果が得られる。中間識別子テーブルＩＴ４１〜ＩＴ４３と実体データ群とは完全に分離されている。このため、第１の実施形態と同様に、中間識別子テーブルＩＴ４１〜ＩＴ４３と実体データ群とを分散配置することが容易である。また、中間識別子テーブルＩＴ４１〜ＩＴ４３と参照テーブルＲＴ１とを分散配置することも容易に可能である。
【０１０８】
（第６の実施形態）
図１１は、本発明の第６の実施形態に係るデータベース構造の一例を示す概略図である。図１１に示されるように、このデータベース構造は、記憶装置４０の記憶領域ＤＡ４に格納された実体データ群と、記憶領域ＤＡ４とは別の記憶領域に格納された参照テーブルＲＴ１および第１〜第３の中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３とを有する。
【０１０９】
本実施形態では、実体データ群に割り当てられた記憶領域ＤＡ４が複数のパーティション領域ＰＡ１，ＰＡ２，ＰＡ３に分割されている。これらパーティション領域ＰＡ１，ＰＡ２，ＰＡ３は、それぞれ、実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている。たとえば、パーティション領域ＰＡ１には整数型の実体データのみが記憶され、パーティション領域ＰＡ２には文字列型の実体データのみが記憶され、パーティション領域ＰＡ３には日付型の実体データのみが記憶される。なお、本実施形態では、パーティション領域ＰＡ１，ＰＡ２，ＰＡ３の数は３つであるが、これに限定されるものではない。
【０１１０】
このように実体データを当該実体データのデータ型に応じたパーティション領域に格納することで、記憶領域ＤＡ４を効率良く利用することができる。
【０１１１】
（第７の実施形態）
図１２（Ａ）は、本発明の第７の実施形態に係るデータベース構造の一例を示す概略図である。図１２（Ａ）に示されるように、このデータベース構造は、記憶装置４０の記憶領域ＤＡ５に格納された実体データ群と、記憶領域ＤＡ５とは別の記憶領域に格納された参照テーブルＲＴ１および第１〜第３の中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３とを有する。
【０１１２】
本実施形態では、上記第５の実施形態の場合と同様に、第１〜第３の中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３は、記憶領域ＤＡ５の実体データＤ１１〜Ｄ３３をそれぞれ実質的に一意に表すデータ識別子ＶＲ１１〜ＶＲ３３を有している。ただし、実体データＤ１１〜Ｄ３３は、それぞれ、結合データＫＤ１１〜ＫＤ３３に含められている。第１〜第３の中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３の各々においては、互いに重複した値を持つデータ識別子は排除されている。
【０１１３】
図１２（Ｂ）は、結合データＫＤ１２の構造を概略的に示す図である。結合データＫＤ１２は、実体データＤ１２、第１のサブ実体データＴ１２ａおよび第２のサブ実体データＴ１２ｂで構成されている。実体データＤ１２、第１のサブ実体データＴ１２ａおよび第２のサブ実体データＴ１２ｂは、連続的な記憶領域に記憶されている。
【０１１４】
第１のサブ実体データＴ１２ａおよび第２のサブ実体データＴ１２ｂは、実体データＤ１２に関連した内容を有する。たとえば、実体データＤ１２がバイナリデータの場合、第１のサブ実体データＴ１２ａをそのバイナリデータの内容を示すテキストデータとすることができる。また、実体データＤ１２が文字列型の「１１」の内容を表すデータの場合、第１のサブ実体データＴ１２ａは、整数型の「１１」の内容を表し、第２のサブ実体データＴ１２ｂは、浮動小数点型の「１１．００」の内容を表してもよい。あるいは、実体データＤ１２が日本語テキストの内容を表すデータの場合、第１のサブ実体データＴ１２ａは英語テキストの内容を表し、第２のサブ実体データＴ１２ｂはロシア語テキストの内容を表してもよい。
【０１１５】
トランザクション実行部２３は、クエリの要求に応じて、参照テーブルＲＴ１および中間識別子テーブルＩＴ４１〜ＩＴ４３を検索して実体データＤ１２を選択したとき、この実体データＤ１２とともにサブ実体データＴ１２ａ，Ｔ１２ｂを読み出すことができる。あるいは、実体データＤ１２の代わりにサブ実体データＴ１２ａまたはＴ１２ｂを読み出してもよい。
【０１１６】
第７の実施形態に係るデータベース構造を使用すれば、トランザクション実行部２３は、クエリの要求に応じて、データベース４１から読み出した実体データＤ１２を第１のサブ実体データＴ１２ａや第２のサブ実体データＴ１２ｂに変換せずに済むので、クエリに対する応答速度の向上が可能となる。
【０１１７】
（第８の実施形態）
図１３は、本発明の第８の実施形態に係るデータベース構造の一部を示す概略図である。図１３に示されるように、このデータベース構造は、記憶装置４０の記憶領域ＤＡ６に格納された実体データ群を有し、記憶領域ＤＡ６とは別の記憶領域に格納された参照テーブルＲＴ１（図示せず）および第１〜第３の中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３（図示せず）を有する。
【０１１８】
本実施形態では、記憶領域ＤＡ６のパーティション領域ＱＡ１には、中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３のデータ識別子ＶＲ１１〜ＶＲ３３にそれぞれ対応する実体データＤ１１〜Ｄ３３を含む結合データＭＤ１１〜ＭＤ３３が記憶されている。また、記憶領域ＤＡ６のパーティション領域ＱＡ２には、実体データＤ１１〜Ｄ３３にそれぞれ関連した内容を有するサブ実体データＴ１１ａ〜Ｔ３３ａを含む結合データＭＴ１１ａ〜ＭＴ３３ａが記憶されている。更に、記憶領域ＤＡ６のパーティション領域ＱＡ３には、実体データＤ１１〜Ｄ３３にそれぞれ関連した内容を有するサブ実体データＴ１１ｂ〜Ｔ３３ｂを含む結合データＭＴ１１ｂ〜ＭＴ３３ｂが記憶されている。
【０１１９】
図１４に示されるように、結合データＭＤ３１を構成する実体データＤ３１には、当該実体データＤ３１に関連した内容を有するサブ実体データＴ３１ａの記憶領域の位置を示す位置データＰ３１が付加されている。更に、サブ実体データＴ３１ａには、当該実体データＤ３１に関連した内容を有するサブ実体データＴ３１ｂの記憶領域の位置を示す位置データＰ３１ａが付加されている。
【０１２０】
このように、本実施形態に係るデータベース構造は、実体データＤ３１とサブ実体データＴ３１ａ，Ｔ３１ｂとが論理的に連結する構造を有している。ここで、位置データＰ３１，Ｐ３１ａは、記憶領域の絶対的位置を指定するアドレス、記憶領域の相対的位置を指定するオフセット、あるいは、記憶領域に割り当てられたアドレスを指すポインタであればよい。他の実体データについても同様である。
【０１２１】
トランザクション実行部２３は、クエリの要求に応じて、参照テーブルＲＴ１および中間識別子テーブルＩＴ４１〜ＩＴ４３を検索して実体データＤ３１を選択したとき、この実体データＤ３１とともにサブ実体データＴ３１ａ，Ｔ３１ｂを読み出すことができる。あるいは、実体データＤ３１の代わりにサブ実体データＴ３１ａまたはＴ３１ｂを読み出すこともできる。
【０１２２】
したがって、第８の実施形態に係るデータベース構造を使用すれば、トランザクション実行部２３は、クエリの要求に応じて、データベース４１から読み出した実体データＤ３１を第１のサブ実体データＴ３１ａや第２のサブ実体データＴ３１ｂに変換せずに済むので、クエリに対する応答速度の向上が可能となる。
【０１２３】
（第９の実施形態）
図１５は、本発明の第９の実施形態に係るデータベース構造の一例を示す概略図である。図１５に示されるように、このデータベース構造は、記憶装置４０の記憶領域ＤＡ７に格納された実体データ群と、記憶領域ＤＡ７とは別の記憶領域に格納された参照テーブルＲＴ１および第１〜第３の中間識別子テーブルＩＴ４１ａ，ＩＴ４２ａ，ＩＴ４３ａとを有する。
【０１２４】
記憶領域ＤＡ７のパーティション領域ＲＡ１には、実体データＤ１１〜Ｄ３３が記憶されている。また、記憶領域ＤＡ７のパーティション領域ＲＡ２には、実体データＤ１１〜Ｄ３３にそれぞれ関連した内容を有するサブ実体データＴ１１ａ〜Ｔ３３ａが記憶されている。
【０１２５】
中間識別子テーブルＩＴ４１ａは、上記中間識別子テーブルＩＴ４１（図１０）の属性フィールドＣｏｌ１，Ｖａｌに加えて属性フィールドＴＲを有している。この属性フィールドＴＲは、属性フィールドＶａｌ内のデータ識別子ＶＲ１１，ＶＲ１２と一対一で対応し、かつサブ実体データＴ１１ａ，Ｔ１２ａをそれぞれ実質的に一意に表すサブデータ識別子ＶＴ１１，ＶＴ１２を含む。同様に、中間識別子テーブルＩＴ４２ａは、上記中間識別子テーブルＩＴ４２（図１０）の属性フィールドＣｏｌ２，Ｖａｌに加えて属性フィールドＴＲを有しており、この属性フィールドＴＲは、属性フィールドＶａｌ内のデータ識別子ＶＲ２１〜ＶＲ２４と一対一で対応し、かつサブ実体データＴ２１ａ〜Ｔ２４ａをそれぞれ実質的に一意に表すサブデータ識別子ＶＴ２１〜ＶＴ２４を含む。中間識別子テーブルＩＴ４３ａは、上記中間識別子テーブルＩＴ４３（図１０）の属性フィールドＣｏｌ３，Ｖａｌに加えて属性フィールドＴＲを有しており、この属性フィールドＴＲは、属性フィールドＶａｌ内のデータ識別子ＶＲ３１〜ＶＲ３３と一対一で対応し、かつサブ実体データＴ３１ａ〜Ｔ３３ａをそれぞれ実質的に一意に表すサブデータ識別子ＶＴ３１〜ＶＴ３３を含む。サブデータ識別子ＶＴ１１〜ＶＴ３３の値は、サブ実体データの入力に対して固定長のビット列を出力するハッシュ関数を用いて算出すればよい。
【０１２６】
トランザクション実行部２３は、クエリの要求に応じて、参照テーブルＲＴ１および中間識別子テーブルＩＴ４１ａ〜ＩＴ４３ａを検索して実体データ群の中から、たとえば実体データＤ１２を選択したとき、当該選択された実体データＤ１２に関連した内容を有するサブ実体データＴ１２ａをサブデータ識別子ＶＴ１２を用いて読み出すことができる。あるいは、実体データＤ１２の代わりにサブ実体データＴ１２ａを読み出すこともできる。
【０１２７】
したがって、第９の実施形態に係るデータベース構造を使用すれば、トランザクション実行部２３は、クエリの要求に応じて、データベース４１から読み出した実体データＤ１２をサブ実体データＴ１２ａに変換せずに済むので、クエリに対する応答速度の向上が可能となる。
【０１２８】
（第１０の実施形態）
図１６は、本発明の第１０の実施形態に係るデータベース構造の一例を示す概略図である。図１６に示されるように、このデータベース構造は、記憶装置４０の記憶領域ＤＡ８に格納された実体データ群と、記憶領域ＤＡ８とは別の記憶領域に格納された参照テーブルＲＴ１および第１〜第３の中間識別子テーブルＩＴ４１，ＩＴ４２，ＩＴ４３とを有する。
【０１２９】
本実施形態では、実体データ群に割り当てられた記憶領域ＤＡ８が複数のパーティション領域ＰＡａ，ＰＡｂ，ＰＡｃ，ＰＡｄに分割されている。これらパーティション領域ＰＡａ，ＰＡｂ，ＰＡｃ，ＰＡｄは、それぞれ、実体データ群のうち、データ型とデータ形式との互いに異なる組み合わせを持つ実体データを記憶する領域として割り当てられている。データ型としては、たとえば、整数型、文字列型および日付型が挙げられ、データ形式としては、たとえば日本語フォーマットや英語フォーマットが挙げられるが、これらに限定されるものではない。
【０１３０】
図１７は、データ型およびデータ形式の組み合わせと、パーティション領域との間の対応関係を示す図（変換テーブル）である。本実施形態のデータベース構造は図１７の変換テーブルを含んでもよいし、あるいは、図１７の変換テーブルは、データベース４１に割り当てられた記憶領域とは別の記憶領域に記憶されていてもよい。図１７の変換テーブルに示されるように、パーティション領域ＰＡａには、データ形式１とデータ型１の組み合わせを持つ実体データ群のみが記憶され、パーティション領域ＰＡｂには、データ形式２とデータ型１の組み合わせを持つサブ実体データ群のみが記憶され、パーティション領域ＰＡｃには、データ形式１とデータ型２の組み合わせを持つサブ実体データ群のみが記憶され、パーティション領域ＰＡｄには、データ形式２とデータ型２の組み合わせを持つサブ実体データ群のみが記憶される。
【０１３１】
トランザクション実行部２３は、クエリの要求に応じて、図１７の変換テーブルを参照してパーティション領域ＰＡａ〜ＰＡｄの中からいずれか１つの記憶領域を選択し、当該選択された記憶領域から実体データまたはサブ実体データを読み出すことができる。
【０１３２】
したがって、第１０の実施形態に係るデータベース構造を使用すれば、トランザクション実行部２３は、クエリの要求に応じて、データベース４１から読み出した実体データをサブ実体データに変換せずに済むので、クエリに対する応答速度の向上が可能となる。
【０１３３】
以上、図面を参照して本発明の実施形態について述べたが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１３４】
また、上記実施形態は本発明の例示であり、上記以外の様々な構成を採用することもできる。たとえば、上記実施形態は、データベース４１に対してトランザクションを実行するために適した処理を実行するが、これに限定されるものではない。上述の通り、トランザクションは、ＡＣＩＤ特性を満たす処理であるが、本発明に係るデータベース構造は、これらＡＣＩＤ特性のうちのいずれかの特性を満たさないデータ処理にも適用することが可能である。
【０１３５】
上記実施形態では、クエリ受信部２１は問い合わせ言語で記述されたクエリを受信し、解析部２２はそのクエリを解析するが、これに限定されるものではない。たとえば、クエリが、問い合わせ言語で記述されておらず、単に、データベース用のＡＰＩ（Application Programming Interface）関数を呼び出すための値を含むものであってもよい。
【０１３６】
上記第６〜第１０の実施形態に係る記憶領域ＤＡ４，ＤＡ５，ＤＡ６，ＤＡ７またはＤＡ８の構造を、上記第１〜第５の実施形態に係る記憶領域ＤＡ０，ＤＡ１，ＤＡ２またはＤＡ３に代えて適用してもよい。
【０１３７】
上記第２の実施形態または第３の実施形態に係るカラムテーブルＣＴ１１，ＣＴ１２は、互いに離れた記憶領域に記憶されていてもよいし、あるいは、連続する記憶領域に記憶されていてもよい。これらカラムテーブルＣＴ１１，ＣＴ１２が、実体データ群が格納されている記憶領域のヘッダ領域に組み込まれていてもよい。第４の実施形態に係るカラムテーブルＣＴ３１，ＣＴ３２も、互いに離れた記憶領域に記憶されていてもよいし、連続する記憶領域に記憶されていてもよいし、あるいは、実体データ群が格納されている記憶領域のヘッダ領域に組み込まれていてもよい。同様に、第５〜第７、第１０の実施形態の各実施形態に係る中間識別子テーブルＩＴ４１〜ＩＴ４３も、互いに離れた記憶領域に記憶されていてもよいし、連続する記憶領域に記憶されていてもよいし、あるいは、実体データ群が格納されている記憶領域のヘッダ領域に組み込まれていてもよい。第９の実施形態の中間識別子テーブルＩＴ４１ａ〜ＩＴ４３ａについても同様である。
【０１３８】
上記の通り、第２、第３および第４の実施形態のデータベースは、いずれも、Ｎ列（Ｎは２以上の整数）の表形式データを、１つのリンクテーブルとＮ個のカラムテーブルと実体データ群とに分解し得る構造を有する。それ故、列単位での検索処理を高速に実行することが可能である。一方、第１の実施形態のデータベースは、Ｍ行Ｎ列の（Ｍは２以上の整数）の表形式データを、Ｍ行Ｎ列の識別子テーブルと実体データ群とに分解し得る構造を有するので、第２、第３および第４のデータベースよりも、行単位での検索処理を高速に実行できる。よって、Ｎ列の表形式データの列数が一定数以上であれば、列単位での検索速度の向上を図るために、この表形式データを、第２、第３または第４の実施形態のＮ個のカラムテーブルとリンクテーブルと実体データ群とに分解することが好ましい。一方、Ｎ列の表形式データの列数が一定数以上であれば、行単位での検索速度の向上を図るために、この表形式データを、第１の実施形態のＭ行Ｎ列の識別子テーブルと実体データ群とに分解することが好ましい。
【０１３９】
この出願は、日本国特許庁に出願された特願２００８−１４３７６７号（出願日：２００８年５月３０日）および特願２００８−２４９０４２号（出願日：２００８年９月２６日）の双方を基礎とする優先権を主張するものであり、その開示の全ては、本明細書の一部として援用（incorporation herein by reference）される。上記の各実施形態の一部又は全部は、以下の付記のようにも特定され得る。但し、各実施形態が以下の記載に限定されるものではない。
（付記１）
複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルとを含むデータベースを格納する記憶部と、
クエリを受信し、当該受信されたクエリに基づいたデータ処理を前記データベースに対して実行するデータ処理部と、
を備え、
前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有しており、
前記データベースは、前記複数の識別子テーブルに加えて前記識別子テーブル間のタプルを関連付けるリンクテーブルを含み、
前記データ処理部は、前記リンクテーブルおよび前記識別子テーブルを用いて前記データ処理を実行する、データベースシステム。
（付記２）
付記１記載のデータベースシステムであって、前記識別子テーブルに割り当てられた記憶領域と前記実体データ群に割り当てられた記憶領域とが互いに異なる、データベースシステム。
（付記３）
付記１または２記載のデータベースシステムであって、前記データ識別子の値は、前記実体データの入力に対して固定長のビット列を出力するハッシュ関数の出力値である、データベースシステム。
（付記４）
付記１から３のうちのいずれか１つに記載のデータベースシステムであって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルの記憶領域の相対的位置を指定するオフセットを含む、データベースシステム。
（付記５）
付記１から３のうちのいずれか１つに記載のデータベースシステムであって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルの記憶領域に割り当てられたアドレスを指すポインタを含む、データベースシステム。
（付記６）
付記１から３のうちのいずれか１つに記載のデータベースシステムであって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルを一意に表す外部タプル識別子を含み、
前記各識別子テーブルの属性フィールドは複数存在し、
前記各識別子テーブルの複数の属性フィールドのうち１つの属性フィールドは、当該各識別子テーブルのタプルを一意に表しかつ前記外部タプル識別子に対応する値を持つタプル識別子を含む、データベースシステム。
（付記７）
付記６記載のデータベースシステムであって、前記外部タプル識別子は固定長のビット列である、データベースシステム。
（付記８）
付記１から７のうちのいずれか１つに記載のデータベースシステムであって、
前記データベースは、前記複数の実体データそれぞれの記憶領域を示す位置データと前記複数のデータ識別子との間の対応関係を表す変換テーブルを含み、
前記データ処理部は、前記変換テーブルを用いて前記実体データ群の中から実体データを選択し、この選択結果を用いて前記データ処理を実行する、データベースシステム。
（付記９）
付記８記載のデータベースシステムであって、前記位置データは、前記実体データの記憶領域の絶対的位置を指定するアドレスである、データベースシステム。
（付記１０）
付記８記載のデータベースシステムであって、前記位置データは、前記実体データの記憶領域の相対的位置を指定するオフセットである、データベースシステム。
（付記１１）
付記１から７のうちのいずれか１つに記載のデータベースシステムであって、
前記複数の実体データには、それぞれ、前記複数のデータ識別子と同じ値を持つ検索用データ識別子が付加されており、
前記データ処理部は、前記検索用データ識別子を検索し、この検索結果に基づいて前記実体データを選択し、この選択結果を用いて前記データ処理を実行する、データベースシステム。
（付記１２）
付記１から１１のうちのいずれか１つに記載のデータベースシステムであって、前記複数のデータ識別子が前記記憶部内の連続的な記憶領域に記録されている、データベースシステム。
（付記１３）
付記１から１２のうちのいずれか１つに記載のデータベースシステムであって、前記複数のデータ識別子が不連続な複数の記憶領域に分散して記憶されているとき、前記複数のデータ識別子を前記記憶部から読み出し、当該読み出されたデータ識別子を、前記識別子テーブルに割り当てられた連続的な記憶領域に書き込むデフラグ処理部を更に備えるデータベースシステム。
（付記１４）
付記１から１３のうちのいずれか１つに記載のデータベースシステムであって、前記複数の実体データは可変長データを含む、データベースシステム。
（付記１５）
付記１から１４のうちのいずれか１つに記載のデータベースシステムであって、
前記実体データ群に割り当てられた記憶領域は、複数のパーティション領域に分割され、
前記複数のパーティション領域は、それぞれ、前記実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている、データベースシステム。
（付記１６）
付記１から１４のうちのいずれか１つに記載のデータベースシステムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記実体データと当該実体データに関連した内容を有するサブ実体データとが連続的な記憶領域に記憶されており、
前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記データベースから読み出す、データベースシステム。
（付記１７）
付記１から１４のうちのいずれか１つに記載のデータベースシステムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記各実体データには、当該各実体データに関連した内容を有する前記サブ実体データの記憶領域の位置を示す位置データが付加されており、
前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに付加された位置データで指定されるサブ実体データを前記データベースから読み出す、データベースシステム。
（付記１８）
付記１７記載のデータベースシステムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の絶対的位置を指定するアドレスである、データベースシステム。
（付記１９）
付記１７記載のデータベースシステムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の相対的位置を指定するオフセットである、データベースシステム。
（付記２０）
付記１から１４のうちのいずれか１つに記載のデータベースシステムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記識別子テーブルは、前記データ識別子に一対一で対応しかつ前記サブ実体データそのものを一意に表すサブデータ識別子を更に含み、
前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記サブデータ識別子を用いて前記データベースから読み出す、データベースシステム。
（付記２１）
付記１から１４のうちのいずれか１つに記載のデータベースシステムであって、
前記データベースは、前記実体データ群に関連した内容を有する少なくとも１つのサブ実体データ群を含み、
前記記憶部は、前記実体データ群に割り当てられた第１の記憶領域と、前記サブ実体データ群に割り当てられた第２の記憶領域とを含み、
前記データ処理部は、当該受信されたクエリに基づいて前記第１の記憶領域と前記第２の記憶領域とのいずれか一方を選択する、データベースシステム。
（付記２２）
付記１から２１のうちのいずれか１つに記載のデータベースシステムであって、
前記クエリは、問い合わせ言語で記述されており、
前記データ処理部は、前記クエリを解析し、その解析結果に基づいたトランザクションを前記データ処理として前記データベースに対して実行する、データベースシステム。
（付記２３）
複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルとを含むデータベースについてクエリを受信するステップと、
前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行するステップと、
を備え、
前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有しており、
前記データベースは、前記複数の識別子テーブルに加えて前記識別子テーブル間のタプルを関連付けるリンクテーブルを含み、
前記データ処理は、前記リンクテーブルおよび前記識別子テーブルを用いることによって実行される、データベース管理方法。
（付記２４）
付記２３記載のデータベース管理方法であって、前記識別子テーブルに割り当てられた記憶領域と前記実体データ群に割り当てられた記憶領域とが互いに異なる、データベース管理方法。
（付記２５）
付記２３または２４記載のデータベース管理方法であって、前記データ識別子の値は、前記実体データの入力に対して固定長のビット列を出力するハッシュ関数の出力値である、データベース管理方法。
（付記２６）
付記２３から２５のうちのいずれか１つに記載のデータベース管理方法であって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルの記憶領域の相対的位置を指定するオフセットを含む、データベース管理方法。
（付記２７）
付記２３から２５のうちのいずれか１つに記載のデータベース管理方法であって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルの記憶領域に割り当てられたアドレスを指すポインタを含む、データベース管理方法。
（付記２８）
付記２３から２５のうちのいずれか１つに記載のデータベース管理方法であって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルを一意に表す外部タプル識別子を含み、
前記各識別子テーブルの属性フィールドは複数存在し、
前記各識別子テーブルの複数の属性フィールドのうち１つの属性フィールドは、当該各識別子テーブルのタプルを一意に表しかつ前記外部タプル識別子に対応する値を持つタプル識別子を含む、データベース管理方法。
（付記２９）
付記２８記載のデータベース管理方法であって、前記外部タプル識別子は固定長のビット列である、データベース管理方法。
（付記３０）
付記２３から２９のうちのいずれか１つに記載のデータベース管理方法であって、
前記データベースは、前記複数の実体データそれぞれの記憶領域を示す位置データと前記複数のデータ識別子との間の対応関係を表す変換テーブルを含み、
前記データ処理は、前記変換テーブルを用いて前記実体データ群の中から実体データを選択し、この選択結果を用いることによって実行される、データベース管理方法。
（付記３１）
付記２３から２９のうちのいずれか１つに記載のデータベース管理方法であって、
前記複数の実体データには、それぞれ、前記複数のデータ識別子と同じ値を持つ検索用データ識別子が付加されており、
前記データ処理は、前記検索用データ識別子を検索し、この検索結果に基づいて前記実体データを選択し、この選択結果を用いることによって実行される、データベース管理方法。
（付記３２）
付記２３から３１のうちのいずれか１つに記載のデータベース管理方法であって、前記複数のデータ識別子が不連続な複数の記憶領域に分散して記憶されているとき、前記複数のデータ識別子を記憶部から読み出し、当該読み出されたデータ識別子を、前記識別子テーブルに割り当てられた連続的な記憶領域に書き込むステップを更に備えるデータベース管理方法。
（付記３３）
付記２３から３２のうちのいずれか１つに記載のデータベース管理方法であって、
前記実体データ群に割り当てられた記憶領域は、複数のパーティション領域に分割され、
前記複数のパーティション領域は、それぞれ、前記実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている、データベース管理方法。
（付記３４）
付記２３から３２のうちのいずれか１つに記載のデータベース管理方法であって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記実体データと当該実体データに関連した内容を有するサブ実体データとが連続的な記憶領域に記憶されており、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記データベースから読み出すことによって実行される、データベース管理方法。
（付記３５）
付記２３から３２のうちのいずれか１つに記載のデータベース管理方法であって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記各実体データには、当該各実体データに関連した内容を有する前記サブ実体データの記憶領域の位置を示す位置データが付加されており、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに付加された位置データで指定されるサブ実体データを前記データベースから読み出すことによって実行される、データベース管理方法。
（付記３６）
付記３５記載のデータベース管理方法であって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の絶対的位置を指定するアドレスである、データベース管理方法。
（付記３７）
付記３５記載のデータベース管理方法であって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の相対的位置を指定するオフセットである、データベース管理方法。
（付記３８）
付記２３から３２のうちのいずれか１つに記載のデータベース管理方法であって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記識別子テーブルは、前記データ識別子に一対一で対応しかつ前記サブ実体データの記憶領域に関連付けられたサブデータ識別子を更に含み、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記サブデータ識別子を用いて前記データベースから読み出すことによって実行される、データベース管理方法。
（付記３９）
付記２３から３２のうちのいずれか１つに記載のデータベース管理方法であって、
前記データベースは、前記実体データ群に関連した内容を有する少なくとも１つのサブ実体データ群を含み、
前記データ処理は、当該受信されたクエリに基づいて、前記実体データ群に割り当てられた第１の記憶領域と前記サブ実体データ群に割り当てられた第２の記憶領域とのいずれか一方を選択することによって実行される、データベース管理方法。
（付記４０）
複数の実体データからなる実体データ群と、
複数の固定長データのみを有する複数の識別子テーブルと、
前記識別子テーブル間を関連付けるリンクテーブルと、
を含み、
前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルは、前記識別子テーブル間のタプルを関連付ける、データベース構造。
（付記４１）
付記４０記載のデータベース構造であって、前記識別子テーブルに割り当てられた記憶領域と前記実体データ群に割り当てられた記憶領域とが互いに異なる、データベース構造。
（付記４２）
付記４０または４１記載のデータベース構造であって、前記データ識別子の値は、前記実体データの入力に対して固定長のビット列を出力するハッシュ関数の出力値である、データベース構造。
（付記４３）
付記４０から４２のうちのいずれか１つに記載のデータベース構造であって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルの記憶領域の相対的位置を指定するオフセットを含む、データベース構造。
（付記４４）
付記４０から４２のうちのいずれか１つに記載のデータベース構造であって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルの記憶領域に割り当てられたアドレスを指すポインタを含む、データベース構造。
（付記４５）
付記４０から４２のうちのいずれか１つに記載のデータベース構造であって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルを一意に表す外部タプル識別子を含み、
前記各識別子テーブルの属性フィールドは複数存在し、
前記各識別子テーブルの複数の属性フィールドのうち１つの属性フィールドは、当該各識別子テーブルのタプルを一意に表しかつ前記外部タプル識別子に対応する値を持つタプル識別子を含む、データベース構造。
（付記４６）
付記４５記載のデータベース構造であって、前記外部タプル識別子は固定長のビット列である、データベース構造。
（付記４７）
付記４０から４６のうちのいずれか１つに記載のデータベース構造であって、前記複数の実体データそれぞれの記憶領域を示す位置データと前記複数のデータ識別子との間の対応関係を表す変換テーブルを含むデータベース構造。
（付記４８）
付記４０から４６のうちのいずれか１つに記載のデータベース構造であって、前記複数の実体データには、それぞれ、前記複数のデータ識別子と同じ値を持つ検索用データ識別子が付加されている、データベース構造。
（付記４９）
付記４０から４８のうちのいずれか１つに記載のデータベース構造であって、前記複数の実体データは可変長データを含む、データベース構造。
（付記５０）
付記４０から４９のうちのいずれか１つに記載のデータベース構造であって、
前記実体データ群に割り当てられた記憶領域は、複数のパーティション領域に分割され、
前記複数のパーティション領域は、それぞれ、前記実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている、データベース構造。
（付記５１）
付記４０から４９のうちのいずれか１つに記載のデータベース構造であって、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを更に含み、
前記実体データと当該実体データに関連した内容を有するサブ実体データとが連続的な記憶領域に記憶されている、データベース構造。
（付記５２）
付記４０から４９のうちのいずれか１つに記載のデータベース構造であって、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを更に含み、
前記各実体データには、当該各実体データに関連した内容を有する前記サブ実体データの記憶領域の位置を示す位置データが付加されている、データベース構造。
（付記５３）
付記４０から４９のうちのいずれか１つに記載のデータベース構造であって、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを更に含み、
前記識別子テーブルは、前記データ識別子に一対一で対応しかつ前記サブ実体データの記憶領域に関連付けられたサブデータ識別子を更に含む、データベース構造。
（付記５４）
付記４０から４９のうちのいずれか１つに記載のデータベース構造であって、前記実体データ群に関連した内容を有する少なくとも１つのサブ実体データ群を更に含み、
前記実体データ群は、第１の記憶領域に割り当てられ、前記サブ実体データ群は、前記第１の記憶領域とは異なる第２の記憶領域に割り当てられている、データベース構造。
（付記５５）
データベース管理処理をコンピュータに実行させるコンピュータプログラムであって、
前記データベース管理処理は、
複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルとを含むデータベースについてクエリを受信する処理と、
前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行する処理と、
を備え、
前記各識別子テーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義され、かつ前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして含む少なくとも１つの属性フィールドとを有しており、
前記データベースは、前記複数の識別子テーブルに加えて前記識別子テーブル間のタプルを関連付けるリンクテーブルを含み、
前記データ処理は、前記リンクテーブルおよび前記識別子テーブルを用いることによって実行される、コンピュータプログラム。
（付記５６）
付記５５記載のコンピュータプログラムであって、前記識別子テーブルに割り当てられた記憶領域と前記実体データ群に割り当てられた記憶領域とが互いに異なる、コンピュータプログラム。
（付記５７）
付記５５または５６記載のコンピュータプログラムであって、前記データ識別子の値は、前記実体データの入力に対して固定長のビット列を出力するハッシュ関数の出力値である、コンピュータプログラム。
（付記５８）
付記５５から５７のうちのいずれか１つに記載のコンピュータプログラムであって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルの記憶領域の相対的位置を指定するオフセットを含む、コンピュータプログラム。
（付記５９）
付記５５から５７のうちのいずれか１つに記載のコンピュータプログラムであって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルの記憶領域に割り当てられたアドレスを指すポインタを含む、コンピュータプログラム。
（付記６０）
付記５５から５７のうちのいずれか１つに記載のコンピュータプログラムであって、
前記リンクテーブルは、行方向に定義された少なくとも１つのタプルと、列方向に定義された少なくとも１つの属性フィールドとを有しており、
前記リンクテーブルの属性フィールドは、前記各識別子テーブルのタプルを一意に表す外部タプル識別子を含み、
前記各識別子テーブルの属性フィールドは複数存在し、
前記各識別子テーブルの複数の属性フィールドのうち１つの属性フィールドは、当該各識別子テーブルのタプルを一意に表しかつ前記外部タプル識別子に対応する値を持つタプル識別子を含む、コンピュータプログラム。
（付記６１）
付記６０記載のコンピュータプログラムであって、前記外部タプル識別子は固定長のビット列である、コンピュータプログラム。
（付記６２）
付記５５から６１のうちのいずれか１つに記載のコンピュータプログラムであって、
前記データベースは、前記複数の実体データそれぞれの記憶領域を示す位置データと前記複数のデータ識別子との間の対応関係を表す変換テーブルを含み、
前記データ処理は、前記変換テーブルを用いて前記実体データ群の中から実体データを選択し、この選択結果を用いることによって実行される、コンピュータプログラム。
（付記６３）
付記５５から６１のうちのいずれか１つに記載のコンピュータプログラムであって、
前記複数の実体データには、それぞれ、前記複数のデータ識別子と同じ値を持つ検索用データ識別子が付加されており、
前記データ処理は、前記検索用データ識別子を検索し、この検索結果に基づいて前記実体データを選択し、この選択結果を用いることによって実行される、コンピュータプログラム。
（付記６４）
付記５５から６３のうちのいずれか１つに記載のコンピュータプログラムであって、前記データベース管理処理は、前記複数のデータ識別子が不連続な複数の記憶領域に分散して記憶されているとき、前記複数のデータ識別子を記憶部から読み出し、当該読み出されたデータ識別子を、前記識別子テーブルに割り当てられた連続的な記憶領域に書き込むデフラグ処理を更に備える、コンピュータプログラム。
（付記６５）
付記５５から６４のうちのいずれか１つに記載のコンピュータプログラムであって、
前記実体データ群に割り当てられた記憶領域は、複数のパーティション領域に分割され、
前記複数のパーティション領域は、それぞれ、前記実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている、コンピュータプログラム。
（付記６６）
付記５５から６４のうちのいずれか１つに記載のコンピュータプログラムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記実体データと当該実体データに関連した内容を有するサブ実体データとが連続的な記憶領域に記憶されており、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記データベースから読み出すことによって実行される、コンピュータプログラム。
（付記６７）
付記５５から６４のうちのいずれか１つに記載のコンピュータプログラムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記各実体データには、当該各実体データに関連した内容を有する前記サブ実体データの記憶領域の位置を示す位置データが付加されており、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに付加された位置データで指定されるサブ実体データを前記データベースから読み出すことによって実行される、コンピュータプログラム。
（付記６８）
付記６７記載のコンピュータプログラムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の絶対的位置を指定するアドレスである、コンピュータプログラム。
（付記６９）
付記６７記載のコンピュータプログラムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の相対的位置を指定するオフセットである、コンピュータプログラム。
（付記７０）
付記５５から６４のうちのいずれか１つに記載のコンピュータプログラムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記識別子テーブルは、前記データ識別子に一対一で対応しかつ前記サブ実体データの記憶領域に関連付けられたサブデータ識別子を更に含み、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記サブデータ識別子を用いて前記データベースから読み出すことによって実行される、コンピュータプログラム。
（付記７１）
付記５５から６４のうちのいずれか１つに記載のコンピュータプログラムであって、
前記データベースは、前記実体データ群に関連した内容を有する少なくとも１つのサブ実体データ群を含み、
前記データ処理は、当該受信されたクエリに基づいて、前記実体データ群に割り当てられた第１の記憶領域と前記サブ実体データ群に割り当てられた第２の記憶領域とのいずれか一方を選択することによって実行される、コンピュータプログラム。
【図１】
0005392253.tif 000002
【図２】
0005392253.tif 000003
【図３】
0005392253.tif 000004
【図４】
0005392253.tif 000005
【図５】
0005392253.tif 000006
【図６】
0005392253.tif 000007
【図７】
0005392253.tif 000008
【図８】
0005392253.tif 000009
【図９】
0005392253.tif 000010
【図１０】
0005392253.tif 000011
【図１１】
0005392253.tif 000012
【図１２】
0005392253.tif 000013
【図１３】
0005392253.tif 000014
【図１４】
0005392253.tif 000015
【図１５】
0005392253.tif 000016
【図１６】
0005392253.tif 000017
【図１７】
0005392253.tif 000018