JP5392254B2 - データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム - Google Patents

データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム Download PDF

Info

Publication number
JP5392254B2
JP5392254B2 JP2010514374A JP2010514374A JP5392254B2 JP 5392254 B2 JP5392254 B2 JP 5392254B2 JP 2010514374 A JP2010514374 A JP 2010514374A JP 2010514374 A JP2010514374 A JP 2010514374A JP 5392254 B2 JP5392254 B2 JP 5392254B2
Authority
JP
Japan
Prior art keywords
data
database
identifier
entity data
entity
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.)
Expired - Fee Related
Application number
JP2010514374A
Other languages
English (en)
Other versions
JPWO2009144942A1 (ja
Inventor
岳彦 柏木
純平 上村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2010514374A priority Critical patent/JP5392254B2/ja
Publication of JPWO2009144942A1 publication Critical patent/JPWO2009144942A1/ja
Application granted granted Critical
Publication of JP5392254B2 publication Critical patent/JP5392254B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

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

Description

本発明は、データベース構造並びにデータベースに対するデータ処理を実行する技術に関する。
RDBMS(Relational DataBase Management System:リレーショナル・データベース管理システム)は、1970年にE・F・コッド(Edgar Frank Codd)により提唱された関係モデル(リレーショナルモデル)理論に基づいたシステムであり、現在広く使用されている。RDB(Relational DataBase)は、複数のテーブル(すなわち、リレーション)の集合体であり、各テーブルは、少なくとも1つの行(タプル)と列(属性フィールド)とを有する。RDBMSに関する先行技術文献としては、たとえば、特許文献1(特開2005−208757号公報)が挙げられる。
しかしながら、一般にRDBMSでは、データ処理量が巨大になり処理負荷が増大したときに、トランザクションの処理速度の低下が目立つようになる。この原因の1つとして、RDBを構成するテーブルを行単位で検索する際に、このテーブルの各行のデータ長が可変長である場合には、当該各行のデータ長が固定長である場合と比べて、データの読み出し位置の計算時間がかかることが挙げられる。
また、RDBMSは、行ごとに一意のキー(key)を用いて行単位でデータを管理するため、行単位での大規模処理を高速かつ効率的に実行できるが、列単位での大規模処理を効率的に実行することが難しいという問題がある。たとえば、RDBMSは、列単位でデータ処理を実行する際、クエリが要求する列に対応する複数行のデータを読み出す必要があり、これが処理速度の低下を招くという問題がある。更に、RDBMSは、行単位でデータをメモリ内の連続的な記憶領域に書き込むことができるため、行単位でデータに高速にアクセスすることができる。しかしながら、RDBMSが、列単位での検索処理、比較演算あるいは集計演算などに関するトランザクションを実行する際には、非連続な複数のメモリ領域に格納されたデータにアクセスする現象が頻繁に生じ、これにより処理速度が低下する場合がある。
一方、大規模な検索や集計を効率的に実行するデータベースシステムとして、データウェアハウス(DWH:Data WareHouse)と称するシステムが使用されている。しかしながら、DWHは、基幹系業務システムとは独立して構築され、原則としてデータ更新(新規データの追加、既存データの変更または既存データの削除)を行わないシステムである。それ故、DWHは、データ更新を効率的に実行し得るデータベース構造を有していない。
そこで、従来のRDBMSやDWHに関する前述の問題を解消するために、たとえば、特許文献2(特開2000−339390号公報)および特許文献3(国際公開第00/10103号パンフレット)に開示されたデータベースシステムが提案されている。特許文献2および特許文献3のデータベースシステムは、論理的な表形式のデータを、たとえば、性別、年齢、身長および体重のそれぞれの項目に対応する複数の情報ブロックに変換することで得られるデータベース構造を利用する。各情報ブロックは、値管理テーブル(値リスト)と、この値管理テーブルへのポインタ配列とを含む。ここで、値管理テーブルへのポインタ配列とは、表形式のデータの或る列の項目値番号(すなわち値管理テーブルへのポインタ)が当該表形式のデータの所定の順番(レコード番号順)に格納された配列である。
しかしながら、特許文献2および特許文献3のデータベース構造では、値管理テーブル内の項目値番号が所定の順番で配列されることが要求される。このため、データ更新(たとえば、レコードの更新、挿入または削除)の際に新たな項目値番号が値管理テーブルに挿入されると、他の既存の項目値番号を再配列する必要がある。更に、この再配列後の項目値番号と整合するように、値管理テーブルへのポインタ配列も更新しなければならない。したがって、特許文献2および特許文献3のデータベース構造では、データ更新を効率的かつ高速に実行することができない。特に、データ更新が頻繁に行われる場合には、処理負荷が極めて大きくなり、処理速度が著しく低下するという問題がある。
特開2005−208757号公報 特開2000−339390号公報 国際公開第00/10103号パンフレット
上記に鑑みて本発明の目的は、データベースに対するデータ更新の効率的かつ高速な実行を可能にするデータベースシステム、データベース管理方法、データベース構造およびコンピュータプログラムを提供することである。
本発明によれば、複数の実体データからなる実体データ群と複数の固定長データのみを有する少なくとも1つの識別子テーブルとを含むデータベースを格納する記憶部と、クエリを受信し、当該受信されたクエリに基づいたデータ処理を前記データベースに対して実行するデータ処理部と、を備えたデータベースシステムが提供される。前記識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有する。
本発明によれば、複数の実体データからなる実体データ群と複数の固定長データのみを有する少なくとも1つの識別子テーブルとを含むデータベースについてクエリを受信するステップと、前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行するステップと、を備えたデータベース管理方法が提供される。このデータベース管理方法でも、前記識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有する。
本発明によれば、複数の実体データからなる実体データ群と、複数の固定長データのみを有する少なくとも1つの識別子テーブルと、を含むデータベース構造が提供される。このデータベース構造でも、前記識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有する。
そして、本発明によれば、データベース管理処理をコンピュータに実行させるコンピュータプログラムが提供される。前記データベース管理処理は、複数の実体データからなる実体データ群と複数の固定長データのみを有する少なくとも1つの識別子テーブルとを含むデータベースについてクエリを受信する処理と、前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行する処理と、を備え、前記識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有する。
本発明によるデータベース構造は、前記データベースシステムに組み込まれたデータベースに適用可能である。また、このデータベース構造は、前記データベース管理方法または前記コンピュータが使用するデータベースに適用することができる。
データベースに対する更新処理を効率的かつ高速に実行することができる。
上記目的その他の目的、特徴および利点は、以下の添付図面および後述する好適な実施の形態によってさらに明らかになる。
本発明に係る一実施形態のデータベースシステムの概略構成を示す機能ブロック図である。 データベースシステムのトランザクション処理部の処理手順を概略的に示すフローチャートである。 本発明の第1の実施形態に係るデータベース構造の一例を示す概略図である。 データ識別子が連続的な記憶領域に記録されている状態を示す図である。 記憶領域に記憶されたデータ構造の一例を概略的に示す図である。 記憶領域に記憶されたデータ構造の他の例を概略的に示す図である。 本発明の第2の実施形態に係るデータベース構造の一例を示す概略図である。 本発明の第3の実施形態に係るデータベース構造の一例を示す概略図である。 本発明の第4の実施形態に係るデータベース構造の一例を示す概略図である。 本発明の第5の実施形態に係るデータベース構造の一例を示す概略図である。 本発明の第6の実施形態に係るデータベース構造の一例を示す概略図である。 本発明の第7の実施形態に係るデータベース構造の一例を示す概略図である。 本発明の第8の実施形態に係るデータベース構造の一部を示す概略図である。 実体データとサブ実体データとの間の論理的な接続状態を示す図である。 本発明の第9の実施形態に係るデータベース構造の一例を示す概略図である。 本発明の第10の実施形態に係るデータベース構造の一例を示す概略図である。 データ型およびデータ形式の組み合わせとパーティション領域との間の対応関係を示す図である。
発明を実施するための形態
以下、本発明に係る種々の実施形態について図面を参照しつつ説明する。なお、すべての図面において、同様の構造または機能を持つ要素には同一符号が付されており、その詳細な説明は重複しないように適宜省略される。
(データベースシステム10の基本構成)
図1は、本発明に係る一実施形態のデータベースシステム10の概略構成を示す機能ブロック図である。このデータベースシステム10は、トランザクション処理部20、チェックポイント処理部30、デフラグ処理部31、トランザクションサーバ32および記憶装置40を有する。記憶装置40には、データベース41とログファイル42とが格納されている。トランザクション処理部20は、クエリ受信部21、解析部22、トランザクション実行部23および応答処理部24を含む。
ネットワークNWには、データベースシステム10と、複数のクライアント端末501,502とが接続されている。ネットワークNWとしては、たとえば、一般的に使用されている小規模ネットワーク(たとえば、有線または無線LAN)が挙げられるが、特に限定されるものではない。ネットワークNWがインターネットなどの大規模ネットワークであってもよい。
クライアント端末501,502は、それぞれ、データベース41についてSQL(Structured Query Language)やXQuery(XML Query Language:XML問い合わせ言語)などの問い合わせ言語(データベース言語)で記述されたクエリをデータベースシステム10に宛てて送信する機能を有する。
データベースシステム10のハードウェア構成は、汎用的な構成であればよく、たとえば、CPU(Central Processing Unit)などのプロセッサ、主メモリ、キャッシュメモリ、信号伝達用バス、タイマ回路、入力装置(たとえば、キーボード)および出力装置(たとえば、ディスプレイやプリンタ)などのハードウェア資源によって構成され得るが、特に限定されるものではない。
データベースシステム10の構成の全部または一部は、ハードウェアで実現されてもよいし、あるいは、プロセッサに処理を実行させるコンピュータプログラム(またはプログラムコード)で実現されてもよい。データベースシステム10の構成要素21〜24,30,31,32の機能がコンピュータプログラムで実現される場合、プロセッサは、不揮発性メモリなどの記録媒体からそのコンピュータプログラムを読み出し実行する。また、データベースシステム10の構成要素21〜24,30,31,32,40は、単一の装置に組み込まれてもよいし、あるいは、互いに連携動作する複数の装置に分散して組み込まれてもよい。
図2は、データベースシステム10のトランザクション処理部20の処理手順を概略的に示すフローチャートである。トランザクション処理部20では、クエリ受信部21がクライアント端末501,502から到来したクエリを受信し(ステップS11)、当該受信されたクエリを解析部22に与える。解析部22は、クエリの解析(構文解析や最適化処理など)を実行し、その解析結果をトランザクション実行部23に与える(ステップS12)。トランザクション実行部23は、当該解析結果に基づいたトランザクションをデータベース41に対して実行する(ステップS13)。ここで、トランザクションとは、データベース41の検索や更新などの処理を含む1つの作業単位を意味し、原子性(ATOMICITY)、一貫性(CONSISTENCY)、隔離性(ISOLATION)および持続性(DURABILITY)というACID特性を満たす処理である。トランザクション処理が正常に終了したとき(ステップS14;YES)、トランザクションはコミットされる(ステップS15)。
ここで、トランザクション実行部23は、トランザクションのログ情報(履歴情報)をログファイル42として記憶装置40に記録している。これと並行して、トランザクション実行部23は、トランザクションのログのメタデータ(各トランザクションの開始または終了などの情報)をトランザクションサーバ32に記録する。
チェックポイント処理部30は、トランザクションサーバ32に記録されたメタデータとログファイル42とに基づいて定期的にチェックポイントを設定する機能を有する。トランザクションやシステムに関する障害が発生してトランザクションが正常に終了しなかったとき(図2のステップS14;NO)、トランザクション実行部23は、ロールフォワードを実行する(ステップS16)。すなわち、チェックポイント処理部30は、ログファイル42を参照して、直前に設定されたチェックポイントの時点から障害発生時点までの期間Terrのログ情報を確認し、この期間Terr中にコミットされていないトランザクションに関するログ情報をログファイル42から削除する。次に、期間Terr中にコミットされたトランザクションが存在する場合、トランザクション実行部23は、ログファイル42に基づいて当該トランザクションの実行結果をデータベース41に反映させる。その後、トランザクション実行部23は、データベース41を、コミットされていないトランザクションの処理開始前の状態に戻す、すなわち、ロールバックする(ステップS17)。
そして、応答処理部24は、トランザクション実行部23からトランザクションの実行結果を受け取り、その実行結果をクライアント端末501,502に送信する(ステップS18)。
後述するように、データベース41は、複数の実体データからなる実体データ群と、複数の固定長データのみを有する少なくとも1つの識別子テーブルとを含む構造を有する。この識別子テーブルは、複数の実体データそのものをそれぞれ実質的に一意に表す複数のデータ識別子を前記固定長データとして有するものである。また、後述するように、識別子テーブルは、行方向に定義された少なくとも1つのタプルと、列方向に定義されかつデータ識別子を含む少なくとも1つの属性フィールドとを有する。
トランザクション実行部23は、クエリの要求に応じて実体データ群の中から特定の実体データを選択する際、実体データ群を検索せずに、識別子テーブル内の固定長のデータ識別子を検索し、この検索結果に基づいて実体データを選択することができる。トランザクション実行部23は、この選択結果を用いて、データベース41に対する検索や更新などの処理を含むトランザクションを実行することができる。
データベース41の更新が繰り返し実行されると、記憶装置40内のデータの記録や削除が繰り返し実行されるので、記憶装置40内の連続的な記憶領域に記録されていたデータ群が断片化(フラグメンテーション)し、これによりキャッシュヒット率が低下して処理速度が低下してしまう。デフラグ処理部31は、複数のデータ識別子が記憶装置40内の不連続な複数の記憶領域に分散して記憶されているとき、これらデータ識別子を記憶装置40から読み出し、識別子テーブルに割り当てられた連続的な記憶領域に書き込む機能を有する。
次に、本発明の種々の実施形態に係るデータベース41の構造について説明する。
(第1の実施形態)
図3は、本発明の第1の実施形態に係るデータベース構造の一例を示す概略図である。図3に示されるように、このデータベース構造は、記憶装置40の記憶領域DA0に格納された実体データ群と、記憶領域DA0とは異なる記憶領域に格納された識別子テーブルRT0とを有する。
識別子テーブルRT0は、行方向に定義された4つのタプルと、列方向に定義された4つの属性フィールドTID,Val1、Val2、Val3とを有している。第1の実施形態では、説明の便宜上、識別子テーブルRT0のタプルの数は4つであるが、これに限定されず、タプルの数をたとえば数十〜数百万に設定することができる。属性フィールドTID,Val1、Val2、Val3の数も4つに限定されるものではない。属性フィールドVal1、Val2、Val3の名称(属性名)として、たとえば、「顧客名」、「所属会社名」、「性別」を設定することができる。
識別子テーブルRT0の4つのタプルには、それぞれ、一意のタプル識別子R1,R2,R3,R4が割り当てられている。属性フィールドVal1は、4つのタプルに対応する領域にそれぞれ固定長のデータ識別子VR11,VR21,VR31,VR41を含み、属性フィールドVal2は、4つのタプルに対応する領域にそれぞれ固定長のデータ識別子VR12,VR22,VR32,VR42を含み、属性フィールドVal3は、4つのタプルに対応する領域にそれぞれ固定長のデータ識別子VR13,VR23,VR33,VR43を含む。
これらデータ識別子VR11〜VR43は、記憶領域DA0内の実体データをそれぞれ実質的に一意に表す値を有する。このため、トランザクション実行部23は、データ識別子VR11〜VR43を検索し、この検索結果に基づいてこれらデータ識別子VR11〜VR43のいずれかに対応する可変長の実体データにアクセスすることができる。なお、本明細書において「実質的に一意」とは、データベース41に対するデータ処理上の一意性を満たしていることを意味する。
たとえば、属性フィールドVal1、Val2、Val3の名称(属性名)として、それぞれ「顧客名」、「所属会社名」、「性別」を設定する場合、データ識別子VR11,VR12,VR13を、それぞれ、「山田太郎」,「N社」,「男性」の実体データD11,D12,D13を一意に表す識別子とし、データ識別子VR21,VR22,VR23を、それぞれ、「佐藤花子」,「F社」,「女性」の実体データD21,D22,D23を一意に表す識別子とし、データ識別子VR31,VR32,VR33を、それぞれ、「伊藤一」,「S社」,「不明」の実体データD31,D32,D33を一意に表す識別子とすることができる。
このようなデータ識別子VR11〜VR43の値は、一方向性のハッシュ関数を用いて算出することができる。ハッシュ関数は、実体データの入力に対して固定長のビット列を出力するので、このハッシュ関数の出力値(ハッシュ値)をデータ識別子VR11〜VR43の値として利用すればよい。トランザクション実行部23は、検索文字列をハッシュ値に変換し、このハッシュ値と一致する値を持つデータ識別子を識別子テーブルRT0から探し出し、探し出されたデータ識別子に対応する実体データを選択することができる。このとき、トランザクション実行部23は、固定長データ群のみからなる識別子テーブルRT0を検索するので、文字列を高速に探し出すことができる。特に、行単位での検索を高速に実行することが可能である。
なお、図4に示されるように、データ識別子VR11〜VR41は記憶領域の連続的な領域に記録されていることが好ましい。これによりデータ識別子VR11〜VR43へのアクセスが高速化し、キャッシュヒット率も高くなるので、検索速度が向上する。
ただし、データベース41に対する更新が頻繁に実行されると、これに伴い、データ識別子VR11〜VR43が不連続な記憶領域に分散して記憶されることが起こり得る。たとえば、データ識別子VR11〜VR13の群とデータ識別子VR21〜VR23の群とが互いに離れた記憶領域に記憶される。このような場合、デフラグ処理部31は、所定のタイミングで、データ識別子VR11〜VR43を記憶領域RA0から読み出し、読み出されたデータ識別子VR11〜VR43を連続領域に書き込むことにより、検索速度の低下を防止することができる。
図5(A)は、記憶領域DA0に記憶されたデータ構造の一例を概略的に示す図である。このデータ構造は、先頭部分にヘッダ領域を有し、末尾部分にアロケーション管理テーブルを有している。ヘッダ領域とアロケーション管理テーブルとの間に実体データ群が格納される領域が設けられている。
ヘッダ領域は、実体データそれぞれの記憶領域を示す位置データとデータ識別子との間の対応関係を表す変換テーブルを含む。より具体的には、図5(B)に示されるように、変換テーブルは、複数のデータ識別子VR11〜VR43と、複数の実体データD11〜D43それぞれの記憶領域を示す位置データA11〜A43との間の対応関係を規定するものである。位置データA11〜A43は、それぞれ対応する実体データD11〜D43の記憶領域の絶対的位置を指定するアドレス、あるいは、当該記憶領域の相対的位置を指定するオフセットであればよい。トランザクション実行部23は、識別子テーブルRT0を検索し図5(A)のヘッダ領域を参照することにより、実体データD11〜D43にアクセスできる。このようにヘッダ領域を介して実体データ群と識別子テーブルRT0との間を論理的に接続することで、後述するように、データベース41に対する更新を効率的かつ高速に実行することが可能となる。
この変換テーブルでは、同一値を有するデータ識別子の重複が排除されている(すなわち、変換テーブル内にある任意の2つのデータ識別子の値は必ず異なる)ので、この変換テーブルを使用することにより、同一値を有する実体データを重複させずに記憶領域DA0に記憶させることができる。言い換えれば、データベース41を構成する実体データ群を圧縮して記憶領域DA0に記憶させることができるので、記憶領域DA0の効率的な利用が可能となる。
図6(A)は、記憶領域DA0に記憶されたデータ構造の他の例を概略的に示す図である。このデータ構造には、前述の変換テーブルを含むヘッダ領域は存在しない。図6(B)に示されるように、実体データD13には、対応するデータ識別子VR13と同じ値を持つ検索用データ識別子VR13と、実体データD13のビット長を示す値DL13とが付加されている。他の実体データについても同様である。トランザクション実行部23は、識別子テーブルRT0を検索し、更に図6(A)の検索用データ識別子VR11〜VR43を検索することにより、実体データD11〜D43にアクセスできる。
上記第1の実施形態に係るデータベース構造を使用することによりデータベースシステム10が奏する効果は以下の通りである。
第1に、データベース41に対する更新処理を効率的かつ高速に実行することができる。すなわち、第1の実施形態に係るデータベース41は、複数の実体データD11〜D43と、これら実体データD11〜D43をそれぞれ実質的に一意に表す複数のデータ識別子VR11〜VR43とを有する。たとえば、クエリに応じてデータベース41の中の特定の実体データD41を新たな実体データに置換しようとするとき、この新たな実体データと同じ値を持つ実体データが既に記憶領域D0内に存在していれば、記憶領域D0内の実体データD41を実際に書き換えることなく、識別子テーブルRT0内のデータ識別子VR41を新たなデータ識別子に置換するだけでデータベース41に対する更新処理を実行できる。
また、クエリに応じて実体データ群にレコードを追加(挿入)するとき、このレコードに含めるべき実体データと同じ値を持つ実体データが既に記憶領域D0内に存在していれば、当該レコードに対応するデータ識別子を識別子テーブルRT0に追加するだけでデータベース41に対する更新処理を実行できる。更に、クエリに応じて実体データ群から実体データD41を削除しようとするときも、記憶領域D0から実体データD41を直ちに削除せずに、データ識別子VR41のみを識別子テーブルRT0から削除するだけでデータベース41に対する更新処理を実行できる。
このように置換、追加または削除などの更新のクエリに対するデータベース処理について高いリアルタイム性を確保することができる。データベース41に対する更新が頻繁に行われる場合でも、かかる更新を効率的かつ高速に実行することが可能である。
第2に、データベースの移植性が高いという効果が得られる。すなわち、データ識別子VR11〜VR43は、実体データD11〜D43をそれぞれ実質的に一意に表すので、データ識別子VR11〜VR43のハードウェア構成への依存性は低い。よって、第1の実施形態に係るデータベースを他のシステムへ容易に移植することができる。
第3に、データベース41の分散性が高いという効果が得られる。上述の通り、識別子テーブルRT0に割り当てられた記憶領域と実体データ群に割り当てられた記憶領域DA0とは別領域である。言い換えれば、識別子テーブルRT0と実体データ群とは完全に分離されている。このため、識別子テーブルRT0と実体データ群とを分散配置することが容易である。たとえば、LANなどのコンピュータネットワークを介して接続された2つのコンピュータシステムにそれぞれ識別子テーブルRT0と実体データ群とを分散配置することができる。
第4に、データベース41に対するアクセス速度の低下を防止できる。上述の通り、データ識別子VR11〜VR43が不連続な記憶領域に分散して記憶される現象(フラグメンテーション)が生じても、デフラグ処理部31は、データ識別子VR11〜VR43を連続的な記憶領域に書き換えることができるので、データベース41に対するアクセス速度の低下を防止することができる。
(第2の実施形態)
図7は、本発明の第2の実施形態に係るデータベース構造の一例を示す概略図である。図7に示されるように、このデータベース構造は、記憶装置40の記憶領域DA1に格納された実体データ群と、記憶領域DA1とは別の記憶領域に格納されたリンクテーブルLT1と、第1および第2のカラムテーブル(識別子テーブル)CT11,CT12とを有する。図3に示した参照テーブルRT0は、複数の属性フィールド(カラム)を有し、各カラムがデータ識別子を含むものである。本実施形態のカラムテーブルCT11,CT12の各々は、図3の参照テーブルRT0の各カラムに対応するデータ構造を有するものといえる。カラムテーブルCT11のデータ構造とカラムテーブルCT12のデータ構造とは、アドレスが連続しない記憶領域にそれぞれ記憶されてもよいし、アドレスが連続する記憶領域に記憶されてもよい。
第1のカラムテーブルCT11は、行方向に定義された複数のタプルと、列方向に定義された1つの属性フィールドValとを有し、この属性フィールドValは、4つのタプルに対応する領域にそれぞれ固定長のデータ識別子VR12,VR12,VR11,VR11を含む。一方、第2のカラムテーブルCT12は、行方向に定義された複数のタプルと、列方向に定義された1つの属性フィールドValとを有し、この属性フィールドValは、4つのタプルに対応する領域にそれぞれ固定長のデータ識別子VR23,VR24,VR22,VR21を含む。たとえば、カラムテーブルCT11の属性フィールドValの名称(属性名)として「顧客名」を設定し、カラムテーブルCT12の属性フィールドValの名称として「性別」を設定することができる。この場合、データ識別子VR12,VR11は、「山田太郎」や「佐藤花子」などの実体データD12,D11をそれぞれ一意に表す識別子とされ、データ識別子VR21〜VR24は、「男性」や「女性」などの実体データD21〜D24をそれぞれ一意に表す識別子とされる。
データ識別子VR11〜VR24は、記憶領域DA1の実体データD11〜D24をそれぞれ実質的に一意に表す値を有する。このため、トランザクション実行部23は、データ識別子VR11〜VR24を検索して、この検索結果を用いて可変長の実体データにアクセスすることができる。記憶領域DA1は、図5(A)および図5(B)に示す変換テーブルと同様の変換テーブルを有すればよく、あるいは、図6(A)および図6(B)に示す検索用データ識別子と同様の検索用データ識別子を有していてもよい。
カラムテーブルCT11,CT12の各々において、データ識別子は連続的な領域に記録されることが望ましい。これによりデータ識別子へのアクセスが高速化し、キャッシュヒット率も高くなるので、検索速度が向上する。データベース41に対する更新が頻繁に実行された場合でも、デフラグ処理部31は、所定のタイミングで、一群のデータ識別子を記憶領域から読み出し、読み出されたデータ識別子を連続領域に書き込むことにより、検索速度の低下を防止することができる。
リンクテーブルLT1は、第1のカラムテーブルCT11と第2のカラムテーブルCT12との間のタプルを関連付ける構造を有している。すなわち、リンクテーブルLT1は、行方向に定義された複数のタプルと、列方向に定義された2つの属性フィールドTID,OSTとを有しており、一方の属性フィールドTIDは、タプルを一意に表すタプル識別子R1,R2,R3,R4を含み、他方の属性フィールドOSTは、カラムテーブルCT11,CT12のタプルの記憶領域の相対的位置を指定するオフセットVo1,Vo2,Vo3,Vo4を含む。たとえば、オフセットVo1を所定の基準アドレスA0に加算することにより、データ識別子VR12の記憶領域の絶対的位置を指定する実効アドレスVo1+A0を求めることができる。
上記第1の実施形態と同様に、第1および第2のカラムテーブルCT11,CT12の各々に含まれるデータ識別子VR11〜VR24の値は、一方向性のハッシュ関数を用いて算出されればよい。トランザクション実行部23は、検索文字列をハッシュ値に変換し、このハッシュ値と一致する値を持つデータ識別子をカラムテーブルCT11,CT12から探し出し、探し出されたデータ識別子に対応する実体データを選択することができる。このとき、トランザクション実行部23は、固定長データ群のみからなるカラムテーブルCT11,CT12を検索するので、文字列を高速に探し出すことができる。
第2の実施形態のデータベースは、2列の表形式データを、第1のカラムテーブルCT11、第2のカラムテーブルCT12および実体データ群に分解したものとみなすことができる。それ故、列単位での検索処理を高速に実行することが可能である。
なお、第2の実施形態では、カラムテーブルCT11,CT12の各々の属性フィールドValの数を1つにしたが、これに限定されず、カラムテーブルCT11,CT12の各々について属性フィールドの数をたとえば2個以上に設定してもよい。また、カラムテーブルCT11,CT12の数も2個に限らず、3個以上にしてもよい。
上記第2の実施形態に係るデータベース構造を使用することによりデータベースシステム10が奏する効果は以下の通りである。
第1に、データベース41に対する更新処理を効率的かつ高速に実行することができる。すなわち、第2の実施形態に係るデータベースは、複数の実体データと、これら実体データをそれぞれ実質的に一意に表す複数のデータ識別子VR11〜VR24とを有する。このため、第1の実施形態の場合と同様に、実体データの更新、追加または削除などの更新のクエリに対するデータベース処理を効率良く実行することができ、高いリアルタイム性を確保することができる。よって、データベース41に対する更新が頻繁に行われる場合でも、かかる更新を効率的かつ高速に実行することが可能である。
第2に、データベースの分散性が高いという効果が得られる。カラムテーブルCT11,CT12と実体データ群とは完全に分離されている。このため、第1の実施形態と同様に、カラムテーブルCT11,CT12と実体データ群とを分散配置することが容易である。
第3に、カラムテーブルCT11,CT12間のタプル同士の論理的な接続形態を柔軟に決めることができる。たとえば、図7に示すように、タプル識別子R3に対応するオフセットVo3を用いて、カラムテーブルCT11の実効アドレスA0+Vo3以後に記録されているタプルと、カラムテーブルCT12の実効アドレスA1+Vo3以後に記録されているタプルとを論理的に接続することができる。同時に、タプル識別子R4に対応するオフセットVo4を用いて、カラムテーブルCT11の実効アドレスA0+Vo4以後に記録されているタプルと、カラムテーブルCT12の実効アドレスA1+Vo4以後に記録されているタプルとを論理的に接続することができる。
第4に、カラムテーブルCT11,CT12間は、リンクテーブルLT1の1つの属性フィールドOSTだけで論理的に接続されるので、リンクテーブルLT1のデータ容量を非常に小さくすることができる。
(第3の実施形態)
図8は、本発明の第3の実施形態に係るデータベース構造の一例を示す概略図である。図8に示されるように、このデータベース構造は、記憶装置40の記憶領域DA1に格納された実体データ群と、記憶領域DA1とは別の記憶領域に格納されたリンクテーブルLT2、第1および第2のカラムテーブル(識別子テーブル)CT11,CT12とを有する。
第3の実施形態に係るデータベース構造は、リンクテーブルLT2を除いて、第2の実施形態に係るデータベース構造と同じ構成を有している。
リンクテーブルLT2は、第1のカラムテーブルCT11と第2のカラムテーブルCT12との間のタプルを関連付ける構造を有している。すなわち、リンクテーブルLT2は、行方向に定義された複数のタプルと、列方向に定義された第1〜第3の属性フィールドTID,PT1,PT2とを有している。第1の属性フィールドTIDは、タプルを一意に表すタプル識別子R1,R2,R3,R4を含む。第2の属性フィールドPT1は、カラムテーブルCT11のタプルの記憶領域に割り当てられたアドレスを指すポインタVp11,Vp12,Vp13,Vp14を含む。そして、第3の属性フィールドPT2は、カラムテーブルCT12のタプルの記憶領域に割り当てられたアドレスを指すポインタVp21,Vp22,Vp23,Vp24を含む。
トランザクション実行部23は、リンクテーブルLT2を介して第1および第2のカラムテーブルCT11,CT12の中のデータ識別子VR11〜VR24を検索し、この検索結果を用いて実体データにアクセスすることができる。第3の実施形態のデータベースは、2列の表形式データを、第1のカラムテーブルCT11、第2のカラムテーブルCT12および実体データ群に分解したものとみなすことができる。それ故、列単位での検索処理を高速に実行することが可能である。
なお、第3の実施形態では、カラムテーブルCT11,CT12の数も2個に限らず、3個以上にしてもよい。この場合でも、リンクテーブルLT2は、複数のカラムテーブルにそれぞれ対応する属性フィールドを有している。
上記第3の実施形態に係るデータベース構造を使用することによりデータベースシステム10が奏する効果は以下の通りである。上記第2の実施形態の場合と同様に、第1に、データベース41に対する更新処理を効率的かつ高速に実行することができ、第2に、データベースの分散性が高いという効果が得られる。
第3に、カラムテーブルCT11,CT12間のタプル同士の論理的な接続形態を柔軟に決めることができる。すなわち、リンクテーブルLT2は、カラムテーブル毎に、ポインタを含む属性フィールドを有するので、第2の実施形態に係るデータベース構造よりも第3の実施形態に係るデータベース構造の方が、カラムテーブルCT11,CT12間のタプル同士の接続形態をより柔軟に決めることが可能である。たとえば、リンクテーブルLT2の属性フィールドPT2内のポインタVp21,Vp22,Vp23,Vp24のうちいずれかの値を変更するだけで、リンクテーブルLT2における、カラムテーブルCT12内のデータ識別子VR23,VR24,VR22,VR21,…の論理的な位置を変更できる。このとき、他方のカラムテーブルCT11に影響を与えずに済む。
また、図8に示した例では、カラムテーブルCT11は同一データ識別子VR12,VR12を重複して有しているが、リンクテーブルLT2の属性フィールドPT1のポインタを変更することで(たとえば、ポインタVp12をVp11に変更することで)、その重複を解消することができ、データ容量を圧縮することが可能である。
第4に、第1のカラムテーブルCT11と第2のカラムテーブルCT12とが論理的に分離されているので、トランザクション実行部23は、検索条件を指定するクエリに応じて、第1のカラムテーブルCT11に対する検索処理と第2のカラムテーブルCT12に対する検索処理とを同時並行に行うことができる。それ故、検索速度の向上が可能である。
(第4の実施形態)
図9は、本発明の第4の実施形態に係るデータベース構造の一例を示す概略図である。図9に示されるように、このデータベース構造は、記憶装置40の記憶領域DA2に格納された実体データ群と、記憶領域DA2とは別の記憶領域に格納されたリンクテーブルLT3、第1および第2のカラムテーブル(識別子テーブル)CT31,CT32とを有する。上述した通り、図3に示した参照テーブルRT0は、複数の属性フィールド(カラム)を有し、各カラムがデータ識別子を含むものである。本実施形態のカラムテーブルCT31,CT32の各々は、図3の参照テーブルRT0の各カラムに対応するデータ構造を有するものといえる。カラムテーブルCT31のデータ構造とカラムテーブルCT32のデータ構造とは、アドレスが連続しない記憶領域にそれぞれ構成されてもよいし、アドレスが連続する記憶領域に構成されてもよい。
第1のカラムテーブルCT31は、行方向に定義された4つのタプルと、列方向に定義された2つの属性フィールドCol1,Valとを有し、一方の属性フィールドCol1は、4つのタプルに対応する領域にそれぞれ固定長のタプル識別子CRV1,CRV2,CRV3,CRV4を含み、他方の属性フィールドValは、4つのタプルに対応する領域にそれぞれ固定長のデータ識別子VR12,VR12,VR11,VR11を含む。第1のカラムテーブルCT31のタプル識別子CRV1,CRV2,CRV3,CRV4は、それぞれ、当該第1のカラムテーブルCT31のタプルを一意に表す値を有する。
第2のカラムテーブルCT32は、行方向に定義された4つのタプルと、列方向に定義された2つの属性フィールドCol2,Valとを有し、一方の属性フィールドCol2は、4つのタプルに対応する領域にそれぞれ固定長のタプル識別子CRV1,CRV2,CRV3,CRV4を含み、他方の属性フィールドValは、4つのタプルに対応する領域にそれぞれ固定長のデータ識別子VR23,VR24,VR21,VR22を含む。第2のカラムテーブルCT32のタプル識別子CRV1,CRV2,CRV3,CRV4は、それぞれ、当該第2のカラムテーブルCT32のタプルを一意に表す値を有する。
データ識別子VR11〜VR24は、記憶領域DA2の実体データD11〜D24をそれぞれ実質的に一意に表す値を有する。このため、トランザクション実行部23は、データ識別子VR11〜VR24を検索して、この検索結果を用いて可変長の実体データにアクセスすることができる。記憶領域DA2は、図5(A)および図5(B)に示す変換テーブルと同様の変換テーブルを有すればよく、あるいは、図6(A)および図6(B)に示す検索用データ識別子と同様の検索用データ識別子を有していてもよい。
カラムテーブルCT31,CT32の各々において、データ識別子は連続的な領域に記録されることが望ましい。これによりデータ識別子へのアクセスが高速化し、キャッシュヒット率も高くなるので、検索速度が向上する。データベース41に対する更新が頻繁に実行された場合でも、デフラグ処理部31は、所定のタイミングで、一群のデータ識別子を記憶領域から読み出し、読み出されたデータ識別子を連続領域に書き込むことにより、検索速度の低下を防止することができる。
リンクテーブルLT3は、第1のカラムテーブルCT31と第2のカラムテーブルCT32との間のタプルを関連付ける構造を有している。すなわち、リンクテーブルLT3は、行方向に定義された4つのタプルと、列方向に定義された2つの属性フィールドTID,ColRefとを有しており、一方の属性フィールドTIDは、タプルを一意に表すタプル識別子R1,R2,R3,R4を含み、他方の属性フィールドColRefは、カラムテーブルCT31,CT32のタプル(外部タプル)を実質的に一意に表す外部タプル識別子CRV1,CRV2,CRV3,CRV4を含む。外部タプル識別子CRV1,CRV2,CRV3,CRV4は、それぞれ、第1のカラムテーブルCT31および第2のカラムテーブルCT32のタプル識別子CRV1,CRV2,CRV3,CRV4と同じ値を有するが、これに限定されるものではない。これらタプル識別子が、それぞれ、外部タプル識別子CRV1,CRV2,CRV3,CRV4に対応する値を有していてもよい。
上記第1の実施形態と同様に、第1および第2のカラムテーブルCT31,CT32の各々に含まれるデータ識別子VR11〜VR24の値は、一方向性のハッシュ関数を用いて算出されればよい。トランザクション実行部23は、検索文字列をハッシュ値に変換し、このハッシュ値と一致する値を持つデータ識別子をカラムテーブルCT31,CT32から探し出し、探し出されたデータ識別子に対応する実体データを選択することができる。このとき、トランザクション実行部23は、固定長データ群のみからなるカラムテーブルCT31,CT32を検索するので、文字列を高速に探し出すことができる。
また、第4の実施形態のデータベースは、2列の表形式データを、第1のカラムテーブルCT31、第2のカラムテーブルCT32および実体データ群に分解したものとみなすことができる。それ故、列単位での検索処理を高速に実行することが可能である。
なお、カラムテーブルCT31,CT32の各々の属性フィールドの数を2つにしたが、これに限定されず、カラムテーブルCT31,CT32の各々について属性フィールドの数をたとえば3個以上に設定してもよい。また、カラムテーブルCT31,CT32の数も2個に限らず、3個以上にしてもよい。
上記第4の実施形態に係るデータベース構造を使用することによりデータベースシステム10が奏する効果は以下の通りである。
上記第2の実施形態の場合と同様に、第1に、データベース41に対する更新処理を効率的かつ高速に実行することができ、第2に、データベースの分散性が高く、第3に、カラムテーブルCT31,CT32間のタプル同士の論理的な接続形態を柔軟に決めることができる。
第4に、データベースの移植性が高いという効果が得られる。すなわち、データ識別子VR11〜VR24は、実体データD11〜D24をそれぞれ実質的に一意に表すので、データ識別子VR11〜VR24のハードウェア構成への依存性は低い。タプル識別子CRV1〜CRV4および外部タプル識別子CRV1〜CRV4についても同様である。よって、第4の実施形態に係るデータベースを他のシステムへ容易に移植することができる。
(第5の実施形態)
図10は、本発明の第5の実施形態に係るデータベース構造の一例を示す概略図である。図10に示されるように、このデータベース構造は、記憶装置40の記憶領域DA3に格納された実体データ群と、記憶領域DA3とは別の記憶領域に格納された参照テーブルRT1および第1〜第3の中間識別子テーブルIT41,IT42,IT43とを有する。中間識別子テーブルIT41,IT42,IT43は、記憶領域DA3とは別の記憶領域に格納されたデータ構造とすることができる。この場合、中間識別子テーブルIT41,IT42,IT43の各データ構造は、アドレスが連続しない記憶領域にそれぞれ構成されてもよいし、アドレスが連続する記憶領域に構成されてもよい。
あるいは、中間識別子テーブルIT41,IT42,IT43は、記憶領域DA3内に格納されたデータ構造としてもよい。この場合、記憶領域DA3が図5のヘッダ領域と同様なヘッダ領域を有し、中間識別子テーブルIT41、IT42、IT43の各データ構造がそのヘッダ領域内に変換テーブルとともに格納されていればよい。
第1の中間識別子テーブルIT41は、行方向に定義された2つのタプルと、列方向に定義された2つの属性フィールドCol1,Valとを有する。一方の属性フィールドCol1は、2つのタプルに対応する領域にそれぞれ固定長のタプル識別子CRV11,CRV12を含む。他方の属性フィールドValは、2つのタプルに対応する領域にそれぞれ固定長のデータ識別子VR11,VR12を含んでいる。
第2の中間識別子テーブルIT42は、行方向に定義された4つのタプルと、列方向に定義された2つの属性フィールドCol2,Valとを有する。一方の属性フィールドCol2は、4つのタプルに対応する領域にそれぞれ固定長のタプル識別子CRV21,CRV22,CRV23,CRV24を含む。第2の中間識別子テーブルIT42の他方の属性フィールドValは、4つのタプルに対応する領域にそれぞれ固定長のデータ識別子VR21,VR22,VR23,VR24を含む。
そして、第3の中間識別子テーブルIT43は、行方向に定義された3つのタプルと、列方向に定義された2つの属性フィールドCol3,Valとを有する。一方の属性フィールドCol3は、3つのタプルに対応する領域にそれぞれ固定長のタプル識別子CRV31,CRV32,CRV33を含む。第3の中間識別子テーブルIT43の他方の属性フィールドValは、3つのタプルに対応する領域にそれぞれ固定長のデータ識別子VR31,VR32,VR33を含む。
第1〜第3の中間識別子テーブルIT41,IT42,IT43は、記憶領域DA3の実体データD11〜D33をそれぞれ実質的に一意に表すデータ識別子VR11〜VR33を有している。
一方、参照テーブルRT1は、第1〜第3の中間識別子テーブルIT41〜IT43内のデータ識別子VR11〜VR33をそれぞれ実質的に一意に表す参照識別子CRV11〜CRV33を有する。本実施形態では、参照識別子CRV11〜CRV33は、それぞれ、第1〜第3の中間識別子テーブルIT41〜IT43内のタプル識別子CRV11〜CRV33と同じ値を有しており、これにより、データ識別子VR11〜VR33をそれぞれ実質的に一意に表している。たとえば、参照識別子CRV11〜CRV33の値は、それぞれ、データ識別子VR11〜VR33を入力としたときのハッシュ関数の値とすることができる。
図10に示されるように、参照テーブルRT1は、行方向に定義された4つのタプルと、列方向に定義された第1〜第4の属性フィールドTID,Col1Ref,Col2Ref,Col3Refとを有している。第1の属性フィールドTIDは、タプルを一意に表すタプル識別子R1,R2,R3,R4を含む。第2の属性フィールドCol1Refは、第1の中間識別子テーブルIT41のデータ識別子VR11,VR12を実質的に一意に表す参照識別子CRV12,CRV12,CRV11,CRV11の集合を含み、第3の属性フィールドCol2Refは、第2の中間識別子テーブルIT42のデータ識別子VR21,VR22,VR23,VR24を実質的に一意に表す参照識別子CRV21,CRV22,CRV23,CRV24の集合を含み、第4の属性フィールドCol3Refは、第3の中間識別子テーブルIT43のデータ識別子VR31,VR32,VR33を実質的に一意に表す参照識別子CRV31,CRV32,CRV33の集合を含む。
たとえば、参照テーブルRT1の属性フィールドCol1Ref、Col2Ref、Col3Refの名称(属性名)として、それぞれ、「所在地」、「所属会社名」、「年齢層」を設定することができる。ここで、タプル識別子R1に対応するタプル(レコード)内のデータ識別子CRV12,CRV23,CRV32は、データ識別子VR12,VR23,V32をそれぞれ一意に表す識別子とされ、これらデータ識別子VR12,VR23,V32は、それぞれ、「品川」,「N社」,「20代」の実体データD12,D23,D32をそれぞれ一意に表す識別子とされる。同様に、タプル識別子R2に対応するタプル内のデータ識別子CRV12,CRV24,CRV33は、データ識別子VR12,VR24,VR33をそれぞれ一意に表す識別子とされ、これらデータ識別子VR12,VR24,VR33は、それぞれ、「田町」,「A社」,「30代」の実体データD12,D24,D33をそれぞれ一意に表す識別子とされる。また、タプル識別子R3に対応するタプル内のデータ識別子CRV11,CRV21,CRV33は、データ識別子VR11,VR21,VR33をそれぞれ一意に表す識別子とされ、これらデータ識別子VR11,VR21,VR33は、それぞれ、「田町」,「A社」,「30代」の実体データD11,D21,D33をそれぞれ一意に表す識別子とされる。そして、タプル識別子R4に対応するタプル内のデータ識別子CRV11,CRV22,CRV31は、データ識別子VR11,VR22,V31をそれぞれ一意に表す識別子とされ、これらデータ識別子VR11,VR22,V31は、それぞれ、「田町」,「S社」,「40代」の実体データD11,D22,D31をそれぞれ一意に表す識別子とされる。
上記第1の実施形態の場合と同様に、第1〜第3の中間識別子テーブルIT41,IT42,IT43の各々に含まれるデータ識別子VR11〜VR33の値は、一方向性のハッシュ関数を用いて算出すればよい。また、参照識別子CRV11〜CRV33の値も、ハッシュ関数を用いて算出することができる。たとえば、データ識別子VR11〜VR33の値を入力したときのハッシュ関数の出力値を参照識別子CRV11〜CRV33の値とすればよい。トランザクション実行部23は、検索文字列をハッシュ値に変換し、このハッシュ値と一致する値を持つ参照識別子を参照テーブルRT1から探し出し、探し出された参照識別子に対応する実体データにアクセスすることができる。このとき、トランザクション実行部23は、固定長データ群のみからなる参照テーブルRT1を検索するので、文字列を高速に探し出すことが可能である。
トランザクション実行部23は、参照識別子CRV11〜CRV33およびデータ識別子VR11〜VR33を検索し、この検索結果を用いて可変長の実体データにアクセスすることができる。記憶領域DA3は、図5(A)および図5(B)に示す変換テーブルと同様の変換テーブルを有すればよく、あるいは、図6(A)および図6(B)に示す検索用データ識別子と同様の検索用データ識別子を有していてもよい。
第1〜第3の中間識別子テーブルIT41,IT42,IT43の各々は、互いに重複した値を持つデータ識別子を排除しているので、冗長性を排除したデータ構造を有する。これにより、記憶領域の効率的な利用が可能となる。
第1〜第3の中間識別子テーブルIT41〜IT43の各々において、データ識別子は連続的な領域に記録されることが望ましい。参照テーブルRT1においても、参照識別子CRV11〜CRV33が連続的な領域に記録されることが望ましい。これによりデータ識別子および参照識別子へのアクセスが高速化し、キャッシュヒット率も高くなるので、検索速度が向上する。
データベース41に対する更新が頻繁に実行された場合でも、デフラグ処理部31は、所定のタイミングで、一群のデータ識別子または一群の参照識別子を記憶領域から読み出し、読み出されたデータ識別子または参照識別子を連続領域に書き込むことにより、検索速度の低下を防止することができる。
また、デフラグ処理部31は、第1〜第3の中間識別子テーブルIT41〜IT43の各々において、属性フィールドVal内の複数のデータ識別子を、当該データ識別子に対応する参照識別子の値の昇順あるいは降順に並べ替える機能を有する。これにより、検索処理を効率的に行うことが可能となる。
上記第5の実施形態に係るデータベース構造を使用することによりデータベースシステム10が奏する効果は以下の通りである。
第1に、データベース41に対する更新処理を効率的かつ高速に実行することができる。すなわち、第5の実施形態に係るデータベースは、複数の実体データと、これら実体データをそれぞれ実質的に一意に表す複数のデータ識別子VR11〜VR33とを有する。このため、レコードの更新、追加または削除に伴い、中間識別子テーブルIT41〜IT43だけでなく参照テーブルRT1も必要最小限に更新されるので、データベース41に対する更新が頻繁に行われる場合でも、かかる更新を効率的かつ高速に実行することが可能である。
たとえば、新たなレコードが追加(挿入)される場合、トランザクション実行部23は、当該レコードを参照識別子からなる参照レコードに変換し、この参照レコードをタプル識別子R5に対応付けて参照テーブルRT1に新たに追加する。次いで、トランザクション実行部23は、新たに追加された参照レコード内の参照識別子(新参照識別子)が、タプル識別子R1〜R4に対応する既存の参照レコード内に存在するか否かを判定する。新参照識別子が既存の参照レコード内に存在すると判定したとき、トランザクション実行部23は、データベース41に対する更新処理を終了する。他方、新参照識別子が既存の参照レコード内に存在しないと判定したとき、トランザクション実行部23は、新参照識別子に対応するデータ識別子を中間識別子テーブルIT41〜IT43のいずれかに追加するとともに、新参照識別子に対応する実体データを記憶領域DA3に追記する。
よって、新参照識別子が既存の参照レコード内に存在していた場合は、参照テーブルRT1のみが更新されるので、データベース41に対する更新処理を短時間で完了することができる。たとえば、新たに追加されるべき参照レコードが、参照テーブルRT1内に存在しない新参照識別子CRV13を含む場合、中間識別子テーブルIT41に、タプル識別子CRV13とデータ識別子VR13とが追加される。同時に、記憶領域DA3に実体データD13が追記される。一方、新たに追加されるべき参照レコードが、参照テーブルRT1内に既に存在する新参照識別子CRV11のみを含む場合は、中間識別子テーブルIT41〜IT43と実体データ群を更新せずに済む。
第2に、データベースの分散性が高いという効果が得られる。中間識別子テーブルIT41〜IT43と実体データ群とは完全に分離されている。このため、第1の実施形態と同様に、中間識別子テーブルIT41〜IT43と実体データ群とを分散配置することが容易である。また、中間識別子テーブルIT41〜IT43と参照テーブルRT1とを分散配置することも容易に可能である。
(第6の実施形態)
図11は、本発明の第6の実施形態に係るデータベース構造の一例を示す概略図である。図11に示されるように、このデータベース構造は、記憶装置40の記憶領域DA4に格納された実体データ群と、記憶領域DA4とは別の記憶領域に格納された参照テーブルRT1および第1〜第3の中間識別子テーブルIT41,IT42,IT43とを有する。
本実施形態では、実体データ群に割り当てられた記憶領域DA4が複数のパーティション領域PA1,PA2,PA3に分割されている。これらパーティション領域PA1,PA2,PA3は、それぞれ、実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている。たとえば、パーティション領域PA1には整数型の実体データのみが記憶され、パーティション領域PA2には文字列型の実体データのみが記憶され、パーティション領域PA3には日付型の実体データのみが記憶される。なお、本実施形態では、パーティション領域PA1,PA2,PA3の数は3つであるが、これに限定されるものではない。
このように実体データを当該実体データのデータ型に応じたパーティション領域に格納することで、記憶領域DA4を効率良く利用することができる。
(第7の実施形態)
図12(A)は、本発明の第7の実施形態に係るデータベース構造の一例を示す概略図である。図12(A)に示されるように、このデータベース構造は、記憶装置40の記憶領域DA5に格納された実体データ群と、記憶領域DA5とは別の記憶領域に格納された参照テーブルRT1および第1〜第3の中間識別子テーブルIT41,IT42,IT43とを有する。
本実施形態では、上記第5の実施形態の場合と同様に、第1〜第3の中間識別子テーブルIT41,IT42,IT43は、記憶領域DA5の実体データD11〜D33をそれぞれ実質的に一意に表すデータ識別子VR11〜VR33を有している。ただし、実体データD11〜D33は、それぞれ、結合データKD11〜KD33に含められている。第1〜第3の中間識別子テーブルIT41,IT42,IT43の各々においては、互いに重複した値を持つデータ識別子は排除されている。
図12(B)は、結合データKD12の構造を概略的に示す図である。結合データKD12は、実体データD12、第1のサブ実体データT12aおよび第2のサブ実体データT12bで構成されている。実体データD12、第1のサブ実体データT12aおよび第2のサブ実体データT12bは、連続的な記憶領域に記憶されている。
第1のサブ実体データT12aおよび第2のサブ実体データT12bは、実体データD12に関連した内容を有する。たとえば、実体データD12がバイナリデータの場合、第1のサブ実体データT12aをそのバイナリデータの内容を示すテキストデータとすることができる。また、実体データD12が文字列型の「11」の内容を表すデータの場合、第1のサブ実体データT12aは、整数型の「11」の内容を表し、第2のサブ実体データT12bは、浮動小数点型の「11.00」の内容を表してもよい。あるいは、実体データD12が日本語テキストの内容を表すデータの場合、第1のサブ実体データT12aは英語テキストの内容を表し、第2のサブ実体データT12bはロシア語テキストの内容を表してもよい。
トランザクション実行部23は、クエリの要求に応じて、参照テーブルRT1および中間識別子テーブルIT41〜IT43を検索して実体データD12を選択したとき、この実体データD12とともにサブ実体データT12a,T12bを読み出すことができる。あるいは、実体データD12の代わりにサブ実体データT12aまたはT12bを読み出してもよい。
第7の実施形態に係るデータベース構造を使用すれば、トランザクション実行部23は、クエリの要求に応じて、データベース41から読み出した実体データD12を第1のサブ実体データT12aや第2のサブ実体データT12bに変換せずに済むので、クエリに対する応答速度の向上が可能となる。
(第8の実施形態)
図13は、本発明の第8の実施形態に係るデータベース構造の一部を示す概略図である。図13に示されるように、このデータベース構造は、記憶装置40の記憶領域DA6に格納された実体データ群を有し、記憶領域DA6とは別の記憶領域に格納された参照テーブルRT1(図示せず)および第1〜第3の中間識別子テーブルIT41,IT42,IT43(図示せず)を有する。
本実施形態では、記憶領域DA6のパーティション領域QA1には、中間識別子テーブルIT41,IT42,IT43のデータ識別子VR11〜VR33にそれぞれ対応する実体データD11〜D33を含む結合データMD11〜MD33が記憶されている。また、記憶領域DA6のパーティション領域QA2には、実体データD11〜D33にそれぞれ関連した内容を有するサブ実体データT11a〜T33aを含む結合データMT11a〜MT33aが記憶されている。更に、記憶領域DA6のパーティション領域QA3には、実体データD11〜D33にそれぞれ関連した内容を有するサブ実体データT11b〜T33bを含む結合データMT11b〜MT33bが記憶されている。
図14に示されるように、結合データMD31を構成する実体データD31には、当該実体データD31に関連した内容を有するサブ実体データT31aの記憶領域の位置を示す位置データP31が付加されている。更に、サブ実体データT31aには、当該実体データD31に関連した内容を有するサブ実体データT31bの記憶領域の位置を示す位置データP31aが付加されている。
このように、本実施形態に係るデータベース構造は、実体データD31とサブ実体データT31a,T31bとが論理的に連結する構造を有している。ここで、位置データP31,P31aは、記憶領域の絶対的位置を指定するアドレス、記憶領域の相対的位置を指定するオフセット、あるいは、記憶領域に割り当てられたアドレスを指すポインタであればよい。他の実体データについても同様である。
トランザクション実行部23は、クエリの要求に応じて、参照テーブルRT1および中間識別子テーブルIT41〜IT43を検索して実体データD31を選択したとき、この実体データD31とともにサブ実体データT31a,T31bを読み出すことができる。あるいは、実体データD31の代わりにサブ実体データT31aまたはT31bを読み出すこともできる。
したがって、第8の実施形態に係るデータベース構造を使用すれば、トランザクション実行部23は、クエリの要求に応じて、データベース41から読み出した実体データD31を第1のサブ実体データT31aや第2のサブ実体データT31bに変換せずに済むので、クエリに対する応答速度の向上が可能となる。
(第9の実施形態)
図15は、本発明の第9の実施形態に係るデータベース構造の一例を示す概略図である。図15に示されるように、このデータベース構造は、記憶装置40の記憶領域DA7に格納された実体データ群と、記憶領域DA7とは別の記憶領域に格納された参照テーブルRT1および第1〜第3の中間識別子テーブルIT41a,IT42a,IT43aとを有する。
記憶領域DA7のパーティション領域RA1には、実体データD11〜D33が記憶されている。また、記憶領域DA7のパーティション領域RA2には、実体データD11〜D33にそれぞれ関連した内容を有するサブ実体データT11a〜T33aが記憶されている。
中間識別子テーブルIT41aは、上記中間識別子テーブルIT41(図10)の属性フィールドCol1,Valに加えて属性フィールドTRを有している。この属性フィールドTRは、属性フィールドVal内のデータ識別子VR11,VR12と一対一で対応し、かつサブ実体データT11a,T12aをそれぞれ実質的に一意に表すサブデータ識別子VT11,VT12を含む。同様に、中間識別子テーブルIT42aは、上記中間識別子テーブルIT42(図10)の属性フィールドCol2,Valに加えて属性フィールドTRを有しており、この属性フィールドTRは、属性フィールドVal内のデータ識別子VR21〜VR24と一対一で対応し、かつサブ実体データT21a〜T24aをそれぞれ実質的に一意に表すサブデータ識別子VT21〜VT24を含む。中間識別子テーブルIT43aは、上記中間識別子テーブルIT43(図10)の属性フィールドCol3,Valに加えて属性フィールドTRを有しており、この属性フィールドTRは、属性フィールドVal内のデータ識別子VR31〜VR33と一対一で対応し、かつサブ実体データT31a〜T33aをそれぞれ実質的に一意に表すサブデータ識別子VT31〜VT33を含む。サブデータ識別子VT11〜VT33の値は、サブ実体データの入力に対して固定長のビット列を出力するハッシュ関数を用いて算出すればよい。
トランザクション実行部23は、クエリの要求に応じて、参照テーブルRT1および中間識別子テーブルIT41a〜IT43aを検索して実体データ群の中から、たとえば実体データD12を選択したとき、当該選択された実体データD12に関連した内容を有するサブ実体データT12aをサブデータ識別子VT12を用いて読み出すことができる。あるいは、実体データD12の代わりにサブ実体データT12aを読み出すこともできる。
したがって、第9の実施形態に係るデータベース構造を使用すれば、トランザクション実行部23は、クエリの要求に応じて、データベース41から読み出した実体データD12をサブ実体データT12aに変換せずに済むので、クエリに対する応答速度の向上が可能となる。
(第10の実施形態)
図16は、本発明の第10の実施形態に係るデータベース構造の一例を示す概略図である。図16に示されるように、このデータベース構造は、記憶装置40の記憶領域DA8に格納された実体データ群と、記憶領域DA8とは別の記憶領域に格納された参照テーブルRT1および第1〜第3の中間識別子テーブルIT41,IT42,IT43とを有する。
本実施形態では、実体データ群に割り当てられた記憶領域DA8が複数のパーティション領域PAa,PAb,PAc,PAdに分割されている。これらパーティション領域PAa,PAb,PAc,PAdは、それぞれ、実体データ群のうち、データ型とデータ形式との互いに異なる組み合わせを持つ実体データを記憶する領域として割り当てられている。データ型としては、たとえば、整数型、文字列型および日付型が挙げられ、データ形式としては、たとえば日本語フォーマットや英語フォーマットが挙げられるが、これらに限定されるものではない。
図17は、データ型およびデータ形式の組み合わせと、パーティション領域との間の対応関係を示す図(変換テーブル)である。本実施形態のデータベース構造は図17の変換テーブルを含んでもよいし、あるいは、図17の変換テーブルは、データベース41に割り当てられた記憶領域とは別の記憶領域に記憶されていてもよい。図17の変換テーブルに示されるように、パーティション領域PAaには、データ形式1とデータ型1の組み合わせを持つ実体データ群のみが記憶され、パーティション領域PAbには、データ形式2とデータ型1の組み合わせを持つサブ実体データ群のみが記憶され、パーティション領域PAcには、データ形式1とデータ型2の組み合わせを持つサブ実体データ群のみが記憶され、パーティション領域PAdには、データ形式2とデータ型2の組み合わせを持つサブ実体データ群のみが記憶される。
トランザクション実行部23は、クエリの要求に応じて、図17の変換テーブルを参照してパーティション領域PAa〜PAdの中からいずれか1つの記憶領域を選択し、当該選択された記憶領域から実体データまたはサブ実体データを読み出すことができる。
したがって、第10の実施形態に係るデータベース構造を使用すれば、トランザクション実行部23は、クエリの要求に応じて、データベース41から読み出した実体データをサブ実体データに変換せずに済むので、クエリに対する応答速度の向上が可能となる。
以上、図面を参照して本発明の実施形態について述べたが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
また、上記実施形態は本発明の例示であり、上記以外の様々な構成を採用することもできる。たとえば、上記実施形態は、データベース41に対してトランザクションを実行するために適した処理を実行するが、これに限定されるものではない。上述の通り、トランザクションは、ACID特性を満たす処理であるが、本発明に係るデータベース構造は、これらACID特性のうちのいずれかの特性を満たさないデータ処理にも適用することが可能である。
上記実施形態では、クエリ受信部21は問い合わせ言語で記述されたクエリを受信し、解析部22はそのクエリを解析するが、これに限定されるものではない。たとえば、クエリが、問い合わせ言語で記述されておらず、単に、データベース用のAPI(Application Programming Interface)関数を呼び出すための値を含むものであってもよい。
上記第6〜第10の実施形態に係る記憶領域DA4,DA5,DA6,DA7またはDA8の構造を、上記第1〜第5の実施形態に係る記憶領域DA0,DA1,DA2またはDA3に代えて適用してもよい。
上記第2の実施形態または第3の実施形態に係るカラムテーブルCT11,CT12は、互いに離れた記憶領域に記憶されていてもよいし、あるいは、連続する記憶領域に記憶されていてもよい。これらカラムテーブルCT11,CT12が、実体データ群が格納されている記憶領域のヘッダ領域に組み込まれていてもよい。第4の実施形態に係るカラムテーブルCT31,CT32も、互いに離れた記憶領域に記憶されていてもよいし、連続する記憶領域に記憶されていてもよいし、あるいは、実体データ群が格納されている記憶領域のヘッダ領域に組み込まれていてもよい。同様に、第5〜第7、第10の実施形態の各実施形態に係る中間識別子テーブルIT41〜IT43も、互いに離れた記憶領域に記憶されていてもよいし、連続する記憶領域に記憶されていてもよいし、あるいは、実体データ群が格納されている記憶領域のヘッダ領域に組み込まれていてもよい。第9の実施形態の中間識別子テーブルIT41a〜IT43aについても同様である。
上記の通り、第2、第3および第4の実施形態のデータベースは、いずれも、N列(Nは2以上の整数)の表形式データを、1つのリンクテーブルとN個のカラムテーブルと実体データ群とに分解し得る構造を有する。それ故、列単位での検索処理を高速に実行することが可能である。一方、第1の実施形態のデータベースは、M行N列の(Mは2以上の整数)の表形式データを、M行N列の識別子テーブルと実体データ群とに分解し得る構造を有するので、第2、第3および第4のデータベースよりも、行単位での検索処理を高速に実行できる。よって、N列の表形式データの列数が一定数以上であれば、列単位での検索速度の向上を図るために、この表形式データを、第2、第3または第4の実施形態のN個のカラムテーブルとリンクテーブルと実体データ群とに分解することが好ましい。一方、N列の表形式データの列数が一定数以上であれば、行単位での検索速度の向上を図るために、この表形式データを、第1の実施形態のM行N列の識別子テーブルと実体データ群とに分解することが好ましい。
この出願は、日本国特許庁に出願された特願2008−143769号(出願日:2008年5月30日)および特願2008−249030号(出願日:2008年9月26日)の双方を基礎とする優先権を主張するものであり、その開示の全ては、本明細書の一部として援用(incorporation herein by reference)される。上記の各実施形態の一部又は全部は、以下の付記のようにも特定され得る。但し、各実施形態が以下の記載に限定されるものではない。
(付記1)
複数の実体データからなる実体データ群と複数の固定長データのみを有する少なくとも1つの識別子テーブルとを含むデータベースを格納する記憶部と、
クエリを受信し、当該受信されたクエリに基づいたデータ処理を前記データベースに対して実行するデータ処理部と、
を備え、
前記識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有する、データベースシステム。
(付記2)
付記1記載のデータベースシステムであって、前記識別子テーブルに割り当てられた記憶領域と前記実体データ群に割り当てられた記憶領域とが互いに異なる、データベースシステム。
(付記3)
付記1または2記載のデータベースシステムであって、前記データ識別子の値は、前記実体データの入力に対して固定長のビット列を出力するハッシュ関数の出力値である、データベースシステム。
(付記4)
付記1から3のうちのいずれか1つに記載のデータベースシステムであって、
前記データベースは、前記複数の実体データそれぞれの記憶領域を示す位置データと前記複数のデータ識別子との間の対応関係を表す変換テーブルを含み、
前記データ処理部は、前記変換テーブルを用いて前記実体データ群の中から実体データを選択し、この選択結果を用いて前記データ処理を実行する、データベースシステム。
(付記5)
付記4記載のデータベースシステムであって、前記位置データは、前記実体データの記憶領域の絶対的位置を指定するアドレスである、データベースシステム。
(付記6)
付記4記載のデータベースシステムであって、前記位置データは、前記実体データの記憶領域の相対的位置を指定するオフセットである、データベースシステム。
(付記7)
付記1から3のうちのいずれか1つに記載のデータベースシステムであって、
前記複数の実体データには、それぞれ、前記複数のデータ識別子と同じ値を持つ検索用データ識別子が付加されており、
前記データ処理部は、前記検索用データ識別子を検索し、この検索結果に基づいて前記実体データを選択し、この選択結果を用いて前記データ処理を実行する、データベースシステム。
(付記8)
付記1から7のうちのいずれか1つに記載のデータベースシステムであって、前記複数のデータ識別子が前記記憶部内の連続的な記憶領域に記録されている、データベースシステム。
(付記9)
付記1から7のうちのいずれか1つに記載のデータベースシステムであって、前記複数のデータ識別子が不連続な複数の記憶領域に分散して記憶されているとき、前記複数のデータ識別子を前記記憶部から読み出し、当該読み出されたデータ識別子を、前記識別子テーブルに割り当てられた連続的な記憶領域に書き込むデフラグ処理部を更に備えるデータベースシステム。
(付記10)
付記1から9のうちのいずれか1つに記載のデータベースシステムであって、前記複数の実体データは可変長データを含む、データベースシステム。
(付記11)
付記1から10のうちのいずれか1つに記載のデータベースシステムであって、
前記識別子テーブルは複数存在し、
前記データベースは、前記複数の識別子テーブル内の前記データ識別子をそれぞれ一意に表す参照識別子の集合を有する参照テーブルを更に含み、
前記データ処理部は、前記参照テーブルおよび前記識別子テーブルを用いて前記データ処理を実行する、データベースシステム。
(付記12)
付記11記載のデータベースシステムであって、
前記各識別子テーブルは、行方向に定義された少なくとも1つのタプルと、列方向に定義されかつタプル識別子を含む属性フィールドと、列方向に定義されかつ前記データ識別子を含む属性フィールドとを有しており、
前記参照テーブルは、行方向に定義された少なくとも1つのタプルと、列方向に定義されかつ前記参照識別子を含む少なくとも1つの属性フィールドとを有する、データベースシステム。
(付記13)
付記11または12記載のデータベースシステムであって、
前記実体データ群に割り当てられた記憶領域は、複数のパーティション領域に分割され、
前記複数のパーティション領域は、それぞれ、前記実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている、データベースシステム。
(付記14)
付記11または12記載のデータベースシステムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記実体データと当該実体データに関連した内容を有するサブ実体データとが連続的な記憶領域に記憶されており、
前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記データベースから読み出す、データベースシステム。
(付記15)
付記11または12記載のデータベースシステムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記各実体データには、当該各実体データに関連した内容を有する前記サブ実体データの記憶領域の位置を示す位置データが付加されており、
前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに付加された位置データで指定されるサブ実体データを前記データベースから読み出す、データベースシステム。
(付記16)
付記15記載のデータベースシステムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の絶対的位置を指定するアドレスである、データベースシステム。
(付記17)
付記15記載のデータベースシステムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の相対的位置を指定するオフセットである、データベースシステム。
(付記18)
付記11または12記載のデータベースシステムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記識別子テーブルは、前記データ識別子に一対一で対応しかつ前記サブ実体データを一意に表すサブデータ識別子を更に含み、
前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記サブデータ識別子を用いて前記データベースから読み出す、データベースシステム。
(付記19)
付記11または12記載のデータベースシステムであって、
前記データベースは、前記実体データ群に関連した内容を有する少なくとも1つのサブ実体データ群を含み、
前記記憶部は、前記実体データ群に割り当てられた第1の記憶領域と、前記サブ実体データ群に割り当てられた第2の記憶領域とを含み、
前記データ処理部は、当該受信されたクエリに基づいて、前記第1の記憶領域と前記第2の記憶領域とのいずれか一方を選択する、データベースシステム。
(付記20)
付記1から19のうちのいずれか1つに記載のデータベースシステムであって、
前記クエリは、問い合わせ言語で記述されており、
前記データ処理部は、前記クエリを解析し、その解析結果に基づいたトランザクションを前記データ処理として前記データベースに対して実行する、データベースシステム。
(付記21)
複数の実体データからなる実体データ群と複数の固定長データのみを有する少なくとも1つの識別子テーブルとを含むデータベースについてクエリを受信するステップと、
前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行するステップと、
を備え、
前記識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有する、データベース管理方法。
(付記22)
付記21記載のデータベース管理方法であって、前記識別子テーブルに割り当てられた記憶領域と前記実体データ群に割り当てられた記憶領域とが互いに異なる、データベース管理方法。
(付記23)
付記21または22記載のデータベース管理方法であって、前記データ識別子の値は、前記実体データの入力に対して固定長のビット列を出力するハッシュ関数の出力値である、データベース管理方法。
(付記24)
付記21から23のうちのいずれか1つに記載のデータベース管理方法であって、
前記データベースは、前記複数の実体データそれぞれの記憶領域を示す位置データと前記複数のデータ識別子との間の対応関係を表す変換テーブルを含み、
前記データ処理は、前記変換テーブルを用いて前記実体データ群の中から実体データを選択し、この選択結果を用いることによって実行される、データベース管理方法。
(付記25)
付記21から23のうちのいずれか1つに記載のデータベース管理方法であって、
前記複数の実体データには、それぞれ、前記複数のデータ識別子と同じ値を持つ検索用データ識別子が付加されており、
前記データ処理は、前記検索用データ識別子を検索し、この検索結果に基づいて前記実体データを選択し、この選択結果を用いることによって実行される、データベース管理方法。
(付記26)
付記21から25のうちのいずれか1つに記載のデータベース管理方法であって、前記複数のデータ識別子が不連続な複数の記憶領域に分散して記憶されているとき、前記複数のデータ識別子を記憶部から読み出し、当該読み出されたデータ識別子を、前記識別子テーブルに割り当てられた連続的な記憶領域に書き込むステップを更に備えるデータベース管理方法。
(付記27)
付記21から26のうちのいずれか1つに記載のデータベース管理方法であって、
前記識別子テーブルは複数存在し、
前記データベースは、前記複数の識別子テーブル内のデータ識別子をそれぞれ一意に表す参照識別子の集合を有する参照テーブルを更に含み、
前記データ処理は、前記参照テーブルおよび前記識別子テーブルを用いることによって実行される、データベース管理方法。
(付記28)
付記27記載のデータベース管理方法であって、
前記各識別子テーブルは、行方向に定義された少なくとも1つのタプルと、列方向に定義されかつタプル識別子を含む属性フィールドと、列方向に定義されかつ前記データ識別子を含む属性フィールドとを有しており、
前記参照テーブルは、行方向に定義された少なくとも1つのタプルと、列方向に定義されかつ前記参照識別子を含む少なくとも1つの属性フィールドとを有する、データベース管理方法。
(付記29)
付記27または28記載のデータベース管理方法であって、
前記実体データ群に割り当てられた記憶領域は、複数のパーティション領域に分割され、
前記複数のパーティション領域は、それぞれ、前記実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている、データベース管理方法。
(付記30)
付記27または28記載のデータベース管理方法であって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記実体データと当該実体データに関連した内容を有するサブ実体データとが連続的な記憶領域に記憶されており、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記データベースから読み出すことによって実行される、データベース管理方法。
(付記31)
付記27または28記載のデータベース管理方法であって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記各実体データには、当該各実体データに関連した内容を有する前記サブ実体データの記憶領域の位置を示す位置データが付加されており、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに付加された位置データで指定されるサブ実体データを前記データベースから読み出すことによって実行される、データベース管理方法。
(付記32)
付記31記載のデータベース管理方法であって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の絶対的位置を指定するアドレスである、データベース管理方法。
(付記33)
付記31記載のデータベース管理方法であって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の相対的位置を指定するオフセットである、データベース管理方法。
(付記34)
付記27または28記載のデータベース管理方法であって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記識別子テーブルは、前記データ識別子に一対一で対応しかつ前記サブ実体データの記憶領域に関連付けられたサブデータ識別子を更に含み、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記サブデータ識別子を用いて前記データベースから読み出すことによって実行される、データベース管理方法。
(付記35)
付記27または28記載のデータベース管理方法であって、
前記データベースは、前記実体データ群に関連した内容を有する少なくとも1つのサブ実体データ群を含み、
前記データ処理は、当該受信されたクエリに基づいて、前記実体データ群に割り当てられた第1の記憶領域と前記サブ実体データ群に割り当てられた第2の記憶領域とのいずれか一方を選択することによって実行される、データベース管理方法。
(付記36)
複数の実体データからなる実体データ群と、
複数の固定長データのみを有する少なくとも1つの識別子テーブルと、
を含み、
前記識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有する、データベース構造。
(付記37)
付記36記載のデータベース構造であって、前記識別子テーブルに割り当てられた記憶領域と前記実体データ群に割り当てられた記憶領域とが互いに異なる、データベース構造。
(付記38)
付記36または37記載のデータベース構造であって、前記データ識別子の値は、前記実体データの入力に対して固定長のビット列を出力するハッシュ関数の出力値である、データベース構造。
(付記39)
付記36から38のうちのいずれか1つに記載のデータベース構造であって、前記複数の実体データそれぞれの記憶領域を示す位置データと前記複数のデータ識別子との間の対応関係を表す変換テーブルを含むデータベース構造。
(付記40)
付記36から38のうちのいずれか1つに記載のデータベース構造であって、前記複数の実体データには、それぞれ、前記複数のデータ識別子と同じ値を持つ検索用データ識別子が付加されている、データベース構造。
(付記41)
付記36から40のうちのいずれか1つに記載のデータベース構造であって、前記複数の実体データは可変長データを含む、データベース構造。
(付記42)
付記36から41のうちのいずれか1つに記載のデータベース構造であって、複数の前記識別子テーブル内のデータ識別子をそれぞれ一意に表す参照識別子の集合を有する参照テーブルを更に含む、データベース構造。
(付記43)
付記42記載のデータベース構造であって、
前記各識別子テーブルは、行方向に定義された少なくとも1つのタプルと、列方向に定義されかつタプル識別子を含む属性フィールドと、列方向に定義されかつ前記データ識別子を含む属性フィールドとを有しており、
前記参照テーブルは、行方向に定義された少なくとも1つのタプルと、列方向に定義されかつ前記参照識別子を含む少なくとも1つの属性フィールドとを有する、データベース構造。
(付記44)
付記42または43記載のデータベース構造であって、
前記実体データ群に割り当てられた記憶領域は、複数のパーティション領域に分割され、
前記複数のパーティション領域は、それぞれ、前記実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている、データベース構造。
(付記45)
付記42または43記載のデータベース構造であって、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを更に含み、
前記実体データと当該実体データに関連した内容を有するサブ実体データとが連続的な記憶領域に記憶されている、データベース構造。
(付記46)
付記42または43記載のデータベース構造であって、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを更に含み、
前記各実体データには、当該各実体データに関連した内容を有する前記サブ実体データの記憶領域の位置を示す位置データが付加されている、データベース構造。
(付記47)
付記42または43記載のデータベース構造であって、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを更に含み、
前記識別子テーブルは、前記データ識別子に一対一で対応しかつ前記サブ実体データの記憶領域に関連付けられたサブデータ識別子を更に含む、データベース構造。
(付記48)
付記42または43記載のデータベース構造であって、前記実体データ群に関連した内容を有する少なくとも1つのサブ実体データ群を更に含み、
前記実体データ群は、第1の記憶領域に割り当てられ、前記サブ実体データ群は、前記第1の記憶領域とは異なる第2の記憶領域に割り当てられている、データベース構造。
(付記49)
データベース管理処理をコンピュータに実行させるコンピュータプログラムであって、
前記データベース管理処理は、
複数の実体データからなる実体データ群と複数の固定長データのみを有する少なくとも1つの識別子テーブルとを含むデータベースについてクエリを受信する処理と、
前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行する処理と、
を備え、
前記識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有する、コンピュータプログラム。
(付記50)
付記49記載のコンピュータプログラムであって、前記識別子テーブルに割り当てられた記憶領域と前記実体データ群に割り当てられた記憶領域とが互いに異なる、コンピュータプログラム。
(付記51)
付記49または50記載のコンピュータプログラムであって、前記データ識別子の値は、前記実体データの入力に対して固定長のビット列を出力するハッシュ関数の出力値である、コンピュータプログラム。
(付記52)
付記49から51のうちのいずれか1つに記載のコンピュータプログラムであって、
前記データベースは、前記複数の実体データそれぞれの記憶領域を示す位置データと前記複数のデータ識別子との間の対応関係を表す変換テーブルを含み、
前記データ処理は、前記変換テーブルを用いて前記実体データ群の中から実体データを選択し、この選択結果を用いることによって実行される、コンピュータプログラム。
(付記53)
付記49から51のうちのいずれか1つに記載のコンピュータプログラムであって、
前記複数の実体データには、それぞれ、前記複数のデータ識別子と同じ値を持つ検索用データ識別子が付加されており、
前記データ処理は、前記検索用データ識別子を検索し、この検索結果に基づいて前記実体データを選択し、この選択結果を用いることによって実行される、コンピュータプログラム。
(付記54)
付記49から53のうちのいずれか1つに記載のコンピュータプログラムであって、前記データベース管理処理は、前記複数のデータ識別子が不連続な複数の記憶領域に分散して記憶されているとき、前記複数のデータ識別子を記憶部から読み出し、当該読み出されたデータ識別子を、前記識別子テーブルに割り当てられた連続的な記憶領域に書き込むデフラグ処理を更に備える、コンピュータプログラム。
(付記55)
付記49から54のうちのいずれか1つに記載のコンピュータプログラムであって、
前記識別子テーブルは複数存在し、
前記データベースは、前記複数の識別子テーブル内の前記データ識別子をそれぞれ一意に表す参照識別子の集合を有する参照テーブルを更に含み、
前記データ処理は、前記参照テーブルおよび前記識別子テーブルを用いることによって実行される、コンピュータプログラム。
(付記56)
付記55記載のコンピュータプログラムであって、
前記各識別子テーブルは、行方向に定義された少なくとも1つのタプルと、列方向に定義されかつタプル識別子を含む属性フィールドと、列方向に定義されかつ前記データ識別子を含む属性フィールドとを有しており、
前記参照テーブルは、行方向に定義された少なくとも1つのタプルと、列方向に定義されかつ前記参照識別子を含む少なくとも1つの属性フィールドとを有する、コンピュータプログラム。
(付記57)
付記55または56記載のコンピュータプログラムであって、
前記実体データ群に割り当てられた記憶領域は、複数のパーティション領域に分割され、
前記複数のパーティション領域は、それぞれ、前記実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている、コンピュータプログラム。
(付記58)
付記55または56記載のコンピュータプログラムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記実体データと当該実体データに関連した内容を有するサブ実体データとが連続的な記憶領域に記憶されており、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記データベースから読み出すことによって実行される、コンピュータプログラム。
(付記59)
付記55または56記載のコンピュータプログラムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記各実体データには、当該各実体データに関連した内容を有する前記サブ実体データの記憶領域の位置を示す位置データが付加されており、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに付加された位置データで指定されるサブ実体データを前記データベースから読み出すことによって実行される、コンピュータプログラム。
(付記60)
付記59記載のコンピュータプログラムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の絶対的位置を指定するアドレスである、コンピュータプログラム。
(付記61)
付記59記載のコンピュータプログラムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の相対的位置を指定するオフセットである、コンピュータプログラム。
(付記62)
付記55または56記載のコンピュータプログラムであって、
前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
前記識別子テーブルは、前記データ識別子に一対一で対応しかつ前記サブ実体データの記憶領域に関連付けられたサブデータ識別子を更に含み、
前記データ処理は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記サブデータ識別子を用いて前記データベースから読み出すことによって実行される、コンピュータプログラム。
(付記63)
付記55または56記載のコンピュータプログラムであって、
前記データベースは、前記実体データ群に関連した内容を有する少なくとも1つのサブ実体データ群を含み、
前記データ処理は、当該受信されたクエリに基づいて、前記実体データ群に割り当てられた第1の記憶領域と前記サブ実体データ群に割り当てられた第2の記憶領域とのいずれか一方を選択することによって実行される、コンピュータプログラム。

Claims (22)

  1. 複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルと、複数の固定長データのみを有する参照テーブルとを含むデータベースを格納する記憶部と、
    クエリを受信し、前記参照テーブルおよび前記複数の識別子テーブルを用いて、当該受信されたクエリに基づいたデータ処理を前記データベースに対して実行するデータ処理部と、
    を備え、
    前記複数の識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有し、
    前記参照テーブルは、前記複数の識別子テーブル内の前記データ識別子をそれぞれ一意に表す参照識別子の集合を前記固定長データとして有する、
    データベースシステム。
  2. 請求項1記載のデータベースシステムであって、前記識別子テーブルに割り当てられた記憶領域と前記実体データ群に割り当てられた記憶領域とが互いに異なる、データベースシステム。
  3. 請求項1または2記載のデータベースシステムであって、前記データ識別子の値は、前記実体データの入力に対して固定長のビット列を出力するハッシュ関数の出力値である、データベースシステム。
  4. 請求項1から3のうちのいずれか1項に記載のデータベースシステムであって、
    前記データベースは、前記複数の実体データそれぞれの記憶領域を示す位置データと前記複数のデータ識別子との間の対応関係を表す変換テーブルを含み、
    前記データ処理部は、前記変換テーブルを用いて前記実体データ群の中から実体データを選択し、この選択結果を用いて前記データ処理を実行する、データベースシステム。
  5. 請求項4記載のデータベースシステムであって、前記位置データは、前記実体データの記憶領域の絶対的位置を指定するアドレスである、データベースシステム。
  6. 請求項4記載のデータベースシステムであって、前記位置データは、前記実体データの記憶領域の相対的位置を指定するオフセットである、データベースシステム。
  7. 請求項1から3のうちのいずれか1項に記載のデータベースシステムであって、
    前記複数の実体データには、それぞれ、前記複数のデータ識別子と同じ値を持つ検索用データ識別子が付加されており、
    前記データ処理部は、前記検索用データ識別子を検索し、この検索結果に基づいて前記実体データを選択し、この選択結果を用いて前記データ処理を実行する、データベースシステム。
  8. 請求項1から7のうちのいずれか1項に記載のデータベースシステムであって、前記複数のデータ識別子が前記記憶部内の連続的な記憶領域に記録されている、データベースシステム。
  9. 請求項1から7のうちのいずれか1項に記載のデータベースシステムであって、前記複数のデータ識別子が不連続な複数の記憶領域に分散して記憶されているとき、前記複数のデータ識別子を前記記憶部から読み出し、当該読み出されたデータ識別子を、前記識別子テーブルに割り当てられた連続的な記憶領域に書き込むデフラグ処理部を更に備えるデータベースシステム。
  10. 請求項1から9のうちのいずれか1項に記載のデータベースシステムであって、前記複数の実体データは可変長データを含む、データベースシステム。
  11. 請求項1から10のいずれか1項に記載のデータベースシステムであって、
    前記各識別子テーブルは、行方向に定義された少なくとも1つのタプルと、列方向に定義されかつタプル識別子を含む属性フィールドと、列方向に定義されかつ前記データ識別子を含む属性フィールドとを有しており、
    前記参照テーブルは、行方向に定義された少なくとも1つのタプルと、列方向に定義されかつ前記参照識別子を含む少なくとも1つの属性フィールドとを有する、データベースシステム。
  12. 請求項1から11のいずれか1項に記載のデータベースシステムであって、
    前記実体データ群に割り当てられた記憶領域は、複数のパーティション領域に分割され、
    前記複数のパーティション領域は、それぞれ、前記実体データ群のうち互いに異なるデータ型の実体データを記憶する領域として割り当てられている、データベースシステム。
  13. 請求項1から11のいずれか1項に記載のデータベースシステムであって、
    前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
    前記実体データと当該実体データに関連した内容を有するサブ実体データとが連続的な記憶領域に記憶されており、
    前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記データベースから読み出す、データベースシステム。
  14. 請求項1から11のいずれか1項に記載のデータベースシステムであって、
    前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
    前記各実体データには、当該各実体データに関連した内容を有する前記サブ実体データの記憶領域の位置を示す位置データが付加されており、
    前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに付加された位置データで指定されるサブ実体データを前記データベースから読み出す、データベースシステム。
  15. 請求項14記載のデータベースシステムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の絶対的位置を指定するアドレスである、データベースシステム。
  16. 請求項14記載のデータベースシステムであって、前記サブ実体データの記憶領域の位置を示す位置データは、前記サブ実体データの記憶領域の相対的位置を指定するオフセットである、データベースシステム。
  17. 請求項1から11のいずれか1項に記載のデータベースシステムであって、
    前記データベースは、前記複数の実体データにそれぞれ関連した内容を有する複数のサブ実体データを含み、
    前記識別子テーブルは、前記データ識別子に一対一で対応しかつ前記サブ実体データを一意に表すサブデータ識別子を更に含み、
    前記データ処理部は、前記識別子テーブルを検索して前記実体データ群の中から実体データを選択したとき、当該選択された実体データに関連した内容を有するサブ実体データを前記サブデータ識別子を用いて前記データベースから読み出す、データベースシステム。
  18. 請求項1から11のいずれか1項に記載のデータベースシステムであって、
    前記データベースは、前記実体データ群に関連した内容を有する少なくとも1つのサブ実体データ群を含み、
    前記記憶部は、前記実体データ群に割り当てられた第1の記憶領域と、前記サブ実体データ群に割り当てられた第2の記憶領域とを含み、
    前記データ処理部は、当該受信されたクエリに基づいて、前記第1の記憶領域と前記第2の記憶領域とのいずれか一方を選択する、データベースシステム。
  19. 請求項1から18のうちのいずれか1項に記載のデータベースシステムであって、
    前記クエリは、問い合わせ言語で記述されており、
    前記データ処理部は、前記クエリを解析し、その解析結果に基づいたトランザクションを前記データ処理として前記データベースに対して実行する、データベースシステム。
  20. 複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルと、複数の固定長データのみを有する参照テーブルとを含むデータベースについてクエリを受信するステップと、
    前記参照テーブルおよび前記複数の識別子テーブルを用いて、前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行するステップと、
    を備え、
    前記複数の識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有し、
    前記参照テーブルは、前記複数の識別子テーブル内の前記データ識別子をそれぞれ一意に表す参照識別子の集合を前記固定長データとして有する、
    データベース管理方法。
  21. 複数の実体データからなる実体データ群と、
    複数の固定長データのみを有する複数の識別子テーブルと、
    複数の固定長データのみを有する参照テーブルと、
    を含み、
    前記複数の識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有し、
    前記参照テーブルは、前記複数の識別子テーブル内の前記データ識別子をそれぞれ一意に表す参照識別子の集合を前記固定長データとして有し、
    コンピュータが、クエリを受信し、前記参照テーブルおよび前記複数の識別子テーブルを用いて、該受信されたクエリに基づいたデータ処理を前記データベースに対して実行する、
    データベース構造。
  22. データベース管理処理をコンピュータに実行させるコンピュータプログラムであって、
    前記データベース管理処理は、
    複数の実体データからなる実体データ群と複数の固定長データのみを有する複数の識別子テーブルと、複数の固定長データのみを有する参照テーブルとを含むデータベースについてクエリを受信する処理と、
    前記参照テーブルおよび前記複数の識別子テーブルを用いて、前記データベースに対して、当該受信されたクエリに基づいたデータ処理を実行する処理と、
    を備え、
    前記複数の識別子テーブルは、前記複数の実体データそのものをそれぞれ一意に表す複数のデータ識別子を前記固定長データとして有し、
    前記参照テーブルは、前記複数の識別子テーブル内の前記データ識別子をそれぞれ一意に表す参照識別子の集合を前記固定長データとして有する、
    コンピュータプログラム。
JP2010514374A 2008-05-30 2009-05-28 データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム Expired - Fee Related JP5392254B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010514374A JP5392254B2 (ja) 2008-05-30 2009-05-28 データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2008143769 2008-05-30
JP2008143769 2008-05-30
JP2008249030 2008-09-26
JP2008249030 2008-09-26
JP2010514374A JP5392254B2 (ja) 2008-05-30 2009-05-28 データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム
PCT/JP2009/002360 WO2009144942A1 (ja) 2008-05-30 2009-05-28 データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JPWO2009144942A1 JPWO2009144942A1 (ja) 2011-10-06
JP5392254B2 true JP5392254B2 (ja) 2014-01-22

Family

ID=41376832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010514374A Expired - Fee Related JP5392254B2 (ja) 2008-05-30 2009-05-28 データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム

Country Status (3)

Country Link
US (1) US9104711B2 (ja)
JP (1) JP5392254B2 (ja)
WO (1) WO2009144942A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332372B2 (en) * 2010-12-16 2012-12-11 International Business Machines Corporation Method and system for processing data
US9933978B2 (en) 2010-12-16 2018-04-03 International Business Machines Corporation Method and system for processing data
US9665643B2 (en) * 2011-12-30 2017-05-30 Microsoft Technology Licensing, Llc Knowledge-based entity detection and disambiguation
CN103970758A (zh) * 2013-01-29 2014-08-06 鸿富锦精密工业(深圳)有限公司 数据库访问***及方法
AU2016369586B2 (en) * 2015-12-19 2019-03-28 SWVL, Inc. Method and device for correlating multiple tables in a database environment
KR102071937B1 (ko) * 2017-04-27 2020-01-31 김태욱 식별키 생성장치 및 식별키 생성방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212528A (ja) * 1995-11-01 1997-08-15 Filetek Inc データベースを記憶する方法、データベースからレコードを検索する方法、および、データベース記憶/検索システム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305624B1 (en) * 1994-07-22 2007-12-04 Siegel Steven H Method for limiting Internet access
JP3510042B2 (ja) * 1996-04-26 2004-03-22 株式会社日立製作所 データベース管理方法及びシステム
US5745894A (en) * 1996-08-09 1998-04-28 Digital Equipment Corporation Method for generating and searching a range-based index of word-locations
JP3345628B2 (ja) * 1997-07-11 2002-11-18 アネックスシステムズ株式会社 データ格納及び検索方法
WO1999013419A1 (en) * 1997-09-09 1999-03-18 Matrixone, Inc. Method and system for managing information using a relational database
US6367063B1 (en) * 1998-02-05 2002-04-02 Hughes Electronics Corporation Method and apparatus for selectively performing a plurality of logic operations and memory functions
US7372976B2 (en) * 1998-04-16 2008-05-13 Digimarc Corporation Content indexing and searching using content identifiers and associated metadata
US6643644B1 (en) 1998-08-11 2003-11-04 Shinji Furusho Method and apparatus for retrieving accumulating and sorting table formatted data
JP4428488B2 (ja) 1999-05-31 2010-03-10 株式会社ターボデータラボラトリー 表形式データの結合方法、上記方法を実現するプログラムを記憶した記憶媒体、および、表形式データを結合する装置
US6658405B1 (en) * 2000-01-06 2003-12-02 Oracle International Corporation Indexing key ranges
US7024414B2 (en) * 2001-08-06 2006-04-04 Sensage, Inc. Storage of row-column data
JP4227033B2 (ja) 2004-01-20 2009-02-18 富士通株式会社 データベース統合参照装置、データベース統合参照方法およびデータベース統合参照プログラム
WO2005098655A2 (en) * 2004-02-21 2005-10-20 Datallegro, Inc. Ultra-shared-nothing parallel database
US8019799B1 (en) * 2004-04-12 2011-09-13 Symantec Operating Corporation Computer system operable to automatically reorganize files to avoid fragmentation
US20070174349A1 (en) * 2004-12-30 2007-07-26 Ncr Corporation Maintaining consistent state information among multiple active database systems
US8589574B1 (en) * 2005-12-29 2013-11-19 Amazon Technologies, Inc. Dynamic application instance discovery and state management within a distributed system
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US7454592B1 (en) * 2006-02-16 2008-11-18 Symantec Operating Corporation Block-level and hash-based single-instance storage
US7502778B2 (en) * 2006-12-21 2009-03-10 International Business Machines Corporation Apparatus, system, and method for efficient adaptive parallel data clustering for loading data into a table
US7792822B2 (en) * 2007-03-02 2010-09-07 Microsoft Corporation Systems and methods for modeling partitioned tables as logical indexes
US7769971B2 (en) * 2007-03-29 2010-08-03 Data Center Technologies Replication and restoration of single-instance storage pools
US7739312B2 (en) * 2007-04-27 2010-06-15 Network Appliance, Inc. Data containerization for reducing unused space in a file system
US7827201B1 (en) * 2007-04-27 2010-11-02 Network Appliance, Inc. Merging containers in a multi-container system
US9424315B2 (en) * 2007-08-27 2016-08-23 Teradata Us, Inc. Methods and systems for run-time scheduling database operations that are executed in hardware
US20090204636A1 (en) * 2008-02-11 2009-08-13 Microsoft Corporation Multimodal object de-duplication
US8229945B2 (en) * 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
WO2009144941A1 (ja) * 2008-05-30 2009-12-03 日本電気株式会社 データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム
US8032503B2 (en) * 2008-08-05 2011-10-04 Teradata Us, Inc. Deferred maintenance of sparse join indexes
WO2010084754A1 (ja) * 2009-01-26 2010-07-29 日本電気株式会社 データベースシステム、データベース管理方法、データベース構造および記憶媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212528A (ja) * 1995-11-01 1997-08-15 Filetek Inc データベースを記憶する方法、データベースからレコードを検索する方法、および、データベース記憶/検索システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200401528007; 高橋 秀和: 'ポストRDB' NIKKEI BYTE 第251号 , 20040322, p.38-43, 日経BP社 *
JPN6013026781; 高橋 秀和: 'ポストRDB' NIKKEI BYTE 第251号 , 20040322, p.38-43, 日経BP社 *

Also Published As

Publication number Publication date
JPWO2009144942A1 (ja) 2011-10-06
US9104711B2 (en) 2015-08-11
US20110087697A1 (en) 2011-04-14
WO2009144942A1 (ja) 2009-12-03

Similar Documents

Publication Publication Date Title
JP5392253B2 (ja) データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム
US11080277B2 (en) Data set compression within a database system
US11899641B2 (en) Trie-based indices for databases
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
US8700674B2 (en) Database storage architecture
CN107423422B (zh) 基于网格的空间数据分布式存储及检索方法和***
JP5392254B2 (ja) データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム
WO2010084754A1 (ja) データベースシステム、データベース管理方法、データベース構造および記憶媒体
US20160055191A1 (en) Executing constant time relational queries against structured and semi-structured data
US20160253382A1 (en) System and method for improving a query response rate by managing a column-based store in a row-based database
US6430565B1 (en) Path compression for records of multidimensional database
WO2019184618A1 (zh) 数据存储的方法、装置、服务器和存储介质
CA2841084A1 (en) Managing storage of data for range-based searching
US11487729B2 (en) Data management device, data management method, and non-transitory computer readable storage medium
US20130325901A1 (en) Intra-block partitioning for database management
US10289709B2 (en) Interleaved storage of dictionary blocks in a page chain
US20210326320A1 (en) Data segment storing in a database system
EP1967968B1 (en) Sharing of database objects
CN107273443B (zh) 一种基于大数据模型元数据的混合索引方法
Nørvåg The design, implementation, and performance of the V2 temporal document database system
KR100921683B1 (ko) 키-값 데이터 모델을 위한 메모리 페이지 내 데이터저장방법
JP4825504B2 (ja) データ登録・検索システムおよびデータ登録・検索方法
KR102177792B1 (ko) 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템
Dean xqerl_db: Database Layer in xqerl
CN117425886A (zh) 具有仅添加数据结构的基于列表的数据搜索

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120411

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130711

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130930

R150 Certificate of patent or registration of utility model

Ref document number: 5392254

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees