JP2016062522A - データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム - Google Patents

データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム Download PDF

Info

Publication number
JP2016062522A
JP2016062522A JP2014192126A JP2014192126A JP2016062522A JP 2016062522 A JP2016062522 A JP 2016062522A JP 2014192126 A JP2014192126 A JP 2014192126A JP 2014192126 A JP2014192126 A JP 2014192126A JP 2016062522 A JP2016062522 A JP 2016062522A
Authority
JP
Japan
Prior art keywords
data
sort
condition
database
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014192126A
Other languages
English (en)
Inventor
浩二 鶴間
Koji Tsuruma
浩二 鶴間
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 JP2014192126A priority Critical patent/JP2016062522A/ja
Publication of JP2016062522A publication Critical patent/JP2016062522A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】検索結果の再利用と共有とを行うことによって、データベースシステム全体のメモリ使用量を削減し、検索の性能を向上させるデータベース管理システムを提供する。【解決手段】データを格納するデータベースと、データベースを利用するアプリケーションから取得した検索内容を解析して検索条件およびソート条件を取り出し、実行する処理を判断する問い合わせ処理手段10と、問い合わせ処理手段10の判断に従って、データベースに格納されたデータによって構成される少なくとも一つの順序集合を作成するとともに、検索条件を満たすデータの集合間で重複するデータを共有化させて構成した部分集合と、ソート条件に従ったデータのソート順序とを順序集合に対応させて管理するデータ管理手段20とを備えるデータ管理装置と、がネットワークを介して接続されて構成される。【選択図】図1

Description

本発明は、データベースを管理するデータベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラムに関する。特に、カラムストア型データベースを管理するデータベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラムに関する。
これまで、データベース管理システムによって管理されるデータベースのデータ構造としては、複数のデータをテーブル形式で表現し、テーブルに格納されたデータを行単位で処理するリレーショナル型データベースが多く用いられてきた。リレーショナル型データベース(以下、RDB)では、特定の行に対する更新や削除といったトランザクション処理に優れているという特徴がある(RDB:Relational Database)。一方で、RDBは、特定の列に対して行う抽出や集計といった処理に不向きであるという問題点があった。
近年、列ごとの処理に向いているカラムストア型データベース(以下、カラムストアDB)が注目されている(DB:Database)。カラムストアDBでは、データを列ごとに分離して管理しているため、特定の列に対する処理を高速に行うことができる。一般的なカラムストアDBでは、ある条件で検索(抽出)やソートした結果を、順序集合と呼ばれるベクトル成分で管理する。順序集合は、検索やソートの処理ごとに作成されるものであり、同一あるいは類似する条件での検索やソートにおいても、その都度作り直される必要がある。また、一般的なカラムストアDBでは、検索を続けることによって、順序集合の管理領域が増加し続ける。
実際のデータベースシステム運用を鑑みると、データウェアハウスのような用途においては、検索条件となる値が過去のものと同一あるいは類似する場合が多い。カラムストアDBを適用するデータベースシステムでは、全ての状況で初めから検索を行うと、システム全体として処理が重複して無駄が発生することになる。また、全ての検索を行う度に順序集合を作成していくとなると、結果を管理するための記憶領域が大量に必要になってしまう。昨今、参照系のデータベースにおいても、要求されるデータ処理量や参照頻度が増加しつつあるため、カラムストアDBでもより効率的なデータ検索や結果管理方法が求めている。
特許文献1には、検索条件に該当するファイルを整理する検索フォルダの管理方法が開示されている。特許文献1の管理方法では、ファイルおよび検索フォルダを管理する機能と、ファイルの検索機能とを有するファイル管理システムに、整理処理実行部を設ける。整理処理実行部は、ユーザによって新たに検索条件が指定された場合に、指定された検索条件がいずれの既存の検索フォルダに係る検索条件とも一致しなければ、指定された検索条件を示す新たな検索フォルダを生成し、一致すれば検索フォルダを生成しない。その結果、フォルダの無駄な増加を抑えることができる。
特許文献2には、頻繁に問い合わせられる検索式に対する検索結果をユーザに速やかに提示するため、格納しておく検索結果キャッシュを応答性の高い場所として利用する情報検索装置について開示されている。特許文献2の情報検索装置は、条件式と転置リストからなるキャッシュを取得し、入力された検索式に包含されるキャッシュをキャッシュDBから検索するためのキャッシュ索引木を生成する。そして、ユーザから検索式を受け付けると、情報検索装置は、キャッシュ索引木を参照して、入力された検索式に包含されるキャッシュの格納位置をキャッシュDBから取得し、取得したキャッシュの最適な組み合わせを探索する。この際、情報検索装置は、キャッシュ組み合わせに対応する第1の転置リストを取得するとともに、キャッシュ組み合わせに対応しない第2の転置リストを取得し、取得した第1および第2の転置リストを統合して検索結果とする。
特許文献3には、データを分担して管理している複数のデータベースに対する横断的な検索を効率的に行う検索方法について開示されている。検索結果管理テーブルには、データベース別の検索条件の各々について、過去の検索において当該検索結果にヒットしたヒット件数と検索回数とが格納される。複数のデータベースは、ヒット件数が所定数以下のデータベースが先行検索データベース、それ以外が後続データベースに分類分けされる。特許文献3の検索方法によれば、先行検索データベースを先に検索して識別情報を絞り込んだ形で、後続検索データベースを検索できる。その結果、後続検索データベースの検索結果において、検索結果として提供されない無駄なデータの割合が少なくなり、各検索結果をマージする時間が短縮され、効率的に横断検索ができるようになる。
特開2009−187442号公報 特開2009−175896号公報 特開2010−218131号公報
特許文献1の管理方法によれば、検索フォルダが生成される条件を管理し、検索フォルダを構成するファイルが重複する場合には包含関係で検索フォルダを整理することができる。しかしながら、特許文献1の管理方法では、検索の実行処理と、検索フォルダの整理処理とが乖離しており、各処理を動的に実行することができないという問題点があった。
特許文献2の情報検索装置によれば、検索条件が完全一致しない場合においても、一部の条件による検索結果を利用して検索を高速化することはできる。しかしながら、特許文献2の情報検索装置は、キャッシュDBに格納されていない検索条件に基づく結果を保持する機構や、キャッシュDBに格納される値の共通部分を用いて管理する機構を有していない。そのため、キャッシュDBに格納されていない検索条件を用いる処理に関しては、検索を高速化できないという問題点があった。
特許文献3によれば、検索の対象データベースや順番の絞り込みに使用する情報を管理することはできる。しかしながら、検索結果を構成する要素の集合や集合間の関係を定義できないことに加えて、共通部分を排除することができないという問題点がある。
本発明の目的は、上述した課題を解決するため、データベースシステム全体のメモリ使用量を削減し、検索の性能を向上させるデータベース管理システムを提供することにある。
本発明のデータベース管理システムは、データベースを利用するアプリケーションから取得した検索内容を解析して検索条件およびソート条件を取り出して実行する処理を判断する問い合わせ処理手段と、問い合わせ処理手段の判断に従って、データベースに格納されたデータによって構成される少なくとも一つの順序集合を作成するとともに、検索条件を満たすデータの集合間で重複するデータを共有化させて構成した部分集合と、ソート条件に従ったデータのソート順序とを順序集合に対応させて管理するデータ管理手段とを備える。
本発明のデータベースシステムは、データを格納するデータベースと、データベースを利用するアプリケーションから取得した検索内容を解析して検索条件およびソート条件を取り出し、実行する処理を判断する問い合わせ処理手段と、問い合わせ処理手段の判断に従って、データベースに格納されたデータによって構成される少なくとも一つの順序集合を作成するとともに、検索条件を満たすデータの集合間で重複するデータを共有化させて構成した部分集合と、ソート条件に従ったデータのソート順序とを順序集合に対応させて管理するデータ管理手段とを備えるデータ管理装置とがネットワークを介して接続されて構成される。
本発明のデータベース管理方法においては、データベースを利用するアプリケーションから取得した検索内容を解析して検索条件およびソート条件を取り出して実行する処理を判断し、データベースに格納されたデータによって構成される少なくとも一つの順序集合を作成するとともに、検索条件を満たすデータの集合間で重複するデータを共有化させて構成した部分集合と、ソート条件に従ったデータのソート順序とを順序集合に対応させて管理する。
本発明のデータベース管理プログラムは、データベースを利用するアプリケーションから取得した検索内容を解析して検索条件およびソート条件を取り出して実行する処理を判断する処理と、データベースに格納されたデータによって構成される少なくとも一つの順序集合を作成するとともに、検索条件を満たすデータの集合間で重複するデータを共有化させて構成した部分集合と、ソート条件に従ったデータのソート順序とを順序集合に対応させて管理する処理とをコンピュータによって実行させる。
本発明のデータベース管理システムによれば、検索結果の再利用と共有とを行うことによって、データベースシステム全体のメモリ使用量を削減し、検索の性能を向上させることが可能になる。
本発明の第1の実施形態に係るデータベース管理システムの構成を示すブロック図である。 本発明の第1の実施形態に係るデータベース管理システムの機能構成を示すブロック図である。 カラムストアデータベースで扱うデータ構造(FAST構造)を説明するための概念図である。 一般的なカラムストアデータベースにおいてデータを格納する例について説明するための概念図である。 一般的なカラムストアデータベースにおいて用いられる順序集合の情報の一例である。 本発明の第1の実施形態に係るデータベース管理システムで扱う管理テーブルの一例である。 本発明の第1の実施形態に係るデータベース管理システムにおけるソート情報管理テーブル更新処理に関するフローチャートである。 本発明の第1の実施形態に係るデータベース管理システムにおけるソート情報管理テーブル更新処理の一例を示す概念図である。 本発明の第1の実施形態に係るデータベース管理システムにおける部分集合管理テーブル更新処理に関するフローチャートである。 本発明の第1の実施形態に係るデータベース管理システムにおける部分集合管理テーブル更新処理の一例を示す概念図である。 本発明の第1の実施形態に係るデータベース管理システムにおける部分集合管理テーブル更新処理の一例を示す概念図である。 本発明の第1の実施形態に係るデータベース管理システムにおける部分集合管理テーブル更新処理の一例を示す概念図である。 本発明の第1の実施形態に係るデータベース管理システムにおける管理テーブル参照処理に関するフローチャートである。 本発明の第1の実施形態に係るデータベース管理システムにおける管理テーブル参照処理の一例を示す概念図である。 本発明の第1の実施形態に係るデータベース管理システムにおける管理テーブル参照処理の一例を示す概念図である。 本発明の第1の実施形態に係るデータベース管理システムにおける検索結果取得処理に関するフローチャートである。 本発明の第1の実施形態に係るデータベース管理システムにおける検索結果取得処理の一例を示す概念図である。 本発明の第2の実施形態に係るデータベース管理システムの機能構成を示すブロック図である。 本発明の第3の実施形態に係るデータベース管理システムの管理テーブル格納手段の機能構成を示すブロック図である。 本発明の第4の実施形態に係るデータベースシステムの構成を示すブロック図である。
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
(第1の実施形態)
まず、図面を参照しながら、本発明の第1の実施形態に係るデータベース管理システムについて説明する。
(構成)
図1および図2は、本発明の第1の実施形態に係るデータベース管理システム1の構成を示すブロック図である。図1はデータベース管理システム1の全体構成を示し、図2はデータベース管理システム1の機能構成を示す。
本発明の第1の実施形態に係るデータベース管理システム1は、データベースを利用するアプリケーションから受け付けた問い合わせ要求を処理する問い合わせ処理手段10と、実データの検索や検索結果の格納を行うデータ管理手段20とを備える。データベースを利用するアプリケーションは、問い合わせ処理手段10を経由してデータ管理手段20にアクセスすることによってデータを参照する。
<データ構造>
ここで、本実施形態に係るデータベース管理システム1で扱うデータのデータ構造について、図3および図4の例を用いて説明する。なお、これ以降は、本実施形態に係るデータベース管理システム1では、カラムストアデータベース(以下、カラムストアDB)を用いることを前提として説明する(DB:Database)。
カラムストアDBにおけるデータ保持で用いられるデータ構造の一例としては、FAST構造が挙げられる(FAST:Filter Array Structure)。FAST構造では、データの基本形式をテーブルとし、3つの情報成分(表現、位置および値)に分解して保持する。FAST構造のデータを取り扱う際には、LFMなどの適当なアルゴリズムを用いることが好ましい(LFM:Linaer Filter Meathod)。
例えば、図3のテーブルD1においては、左から1列目が各データ(各行)の行番号(データ識別子とも呼ぶ)である。各データ(各行)は、各列のヘッダ行に示された属性に対する属性値を含む。なお、データがテーブルD1のようなテーブル形式になっていない場合は、各データに対応するデータ識別子を付与すればよい。
本実施形態に係るデータベース管理システムにおいては、図3のテーブルD1のように記録された各行のデータに関して、列ごとに「値リスト」、「値番号リスト」および「順序集合」の三つの情報成分に分解して表現する。
値リストは、各列のヘッダに対応する各データの値を重複排除してソート済みの形で格納する情報成分である。値リストに格納された各値は、ソートの規則に従って並べられる。ソートの規則に従って並べられた各値には、各値を特定するための固有の番号として値番号が付与される。
値番号リストは、値リストに記録された各値に対応する値番号を各データの行番号(データ識別子)に対応させる情報成分である。
順序集合は、検索条件を満たす値に対応する行番号(データ識別子)の集合となる情報成分である。
ここで、一般的なFAST構造のデータにおける検索例について説明する。図3は、5列×8行のテーブルD1(データ)を、FAST構造のデータ110に分解する例である。これ以降、図3のテーブルD1を具体例として説明をしていく。
図3のテーブルD1の一行目には、名前、性別、年齢および身長という四つの属性が記録されている。また、テーブルD1の一列目は各レコードの番号であり、二〜五列目のレコードには各属性に対応する値が記録されている。
図3のデータ110は、値番号リストと値リストとの対(ペアとも呼ぶ)を含む。値番号リストおよび値リストは、それぞれ2列からなるリスト形式をもつ。値番号リストにおいて、左側の列が行番号(データ識別子)であり、右側の列が各行番号に対応する値番号である。値リストにおいて、左側の列が値番号であり、左側の列が各値番号に対応する値である。以下に、各ペアについて個別に説明する。
ペアP1は、テーブルD1の「名前」の列の値を「あいうえお順」でソートした値リストと、対応する値番号リストとのペアである。ペアP2は、テーブルD1の「性別」の列の値を性別ごとにソートした値リストと、対応する値番号リストとのペアである。ペアP3は、テーブルD1の「年齢」の列の値を昇順にソートした値リストと、対応する値番号リストとのペアである。ペアP4は、テーブルD1の「身長」の列の値を昇順にソートした値リストと、対応する値番号リストとのペアである。
FAST構造のデータに関して、ある値で検索を行う際には、以下の順番に従って検索結果を表す順序集合が得られる。
第1に、値リストから検索したい値の値番号を取得する。
例えば、図3の例において、「いけだ」という値で検索する場合、ペアP1の値リストから「いけだ」の値番号である「1」が取得される。
第2に、値番号リストから値番号に対応する行番号を取得する。
例えば、図3の例においては、取得された「1」の値番号に対応する行番号である「3」が取得される。
すなわち、「いけだ」という値で検索すると、「3」が順序集合として取得されることになる。
また、複数の値で検索を行う場合は、前の検索で得られた順序集合に対して、第1および第2の処理を繰り返すことによって、最終的な結果を表す順序集合を得ることができる。
図4は、複数の値(「男」かつ「20代」)で検索を行う場合における検索結果を示す例である。図4の例において、まず、性別の値リストから「男」が検索されると、値リストの「男」の行番号に対応する「2」、「5」、「7」が順序集合として取得される。次に、年齢の値リストから「20代」が検索される。年齢のペアP3からは、値リストの「20代」の年齢に該当する行番号「2」、「3」、「4」に対応する「1」、「3」、「5」、「7」のうち、「男」で検索されなかった「1」と「3」を除く「5」と「7」が順序集合として取得される。すなわち、「男」かつ「20代」という検索によって、「5」と「7」が順序集合として得られる。
以上が、一般的なFAST構造のデータにおける検索例である。
本実施形態に係るデータベース管理システムでは、下記の二つの方法によって、値リストおよび値番号リストの参照回数と順序集合の作成回数を抑制し、検索性能の向上とメモリ使用量の削減とを図る。
一つ目の方法は、既存の検索やソートの結果データである既存順序集合を用いて検索やソートを行う方法を追加することである。二つ目の方法は、一つ目の方法に伴う順序集合の管理方法を改良することである。
以下に、上述の検索性能の向上とメモリ使用量の削減とを図る二つの方法について説明する。
(1)既存順序集合を用いて検索やソートを行う方法の追加
順序集合は、行番号を要素に持つ集合に、ソートした結果を組み合わせたものであるため、行番号の選択に対する操作と並び替えの操作に分けて、検索やソートを実施する。それに対し、順序を持たない行番号の集合である非順序集合では、和集合や差集合、共通部分を含む集合演算のみで複数の検索条件に該当する行番号の集合を作成する。
ソートでは、ルートセットから順序を並べ替えるための情報を作成する。そして、任意の行番号を持つ非順序集合と、作成したソート情報とを組み合わせることによって、求める順序集合を作成する。なお、ルートセットとは、全ての行番号を要素に持ち、1から昇順で並んだ状態の順序集合のことを示す。
(2)順序集合の管理方法の改良
作成された各順序集合は、それぞれが全ての行番号とその順番を保持するのではなく、非順序集合とソート情報とを用いても構成できるようにする。さらに、構成する非順序集合に共通の行番号が含まれる場合は、それぞれをいくつかの部分集合に分割し、共通の行番号を持つ部分集合を共有することによって、記憶域として必要となるメモリ使用量を削減する。
続いて、図2を用いて、本実施形態に係るデータベース管理システム1の詳細な構成について説明する。
(データ管理手段)
データ管理手段20は、管理テーブル格納処理手段31、順序集合作成手段32およびテーブル検索手段41を含む。また、データ管理手段20は、管理テーブルデータベース33(以下、管理テーブルDB33)、テーブルデータベース42(以下、テーブルDB42)を含む。なお、管理テーブル格納処理手段31、順序集合作成手段32、管理テーブルDB33およびテーブルDB42の一部(順序集合)は、順序集合管理手段30として機能する。順序集合管理手段30は、順序集合の格納・作成を管理する機能を有する。なお、管理テーブルDB33およびテーブルDB42は、データ管理手段20によって参照できさえすればよく、データ管理手段20の構成に含まれなくてもよい。
データ管理手段20は、実データをFAST構造で格納し、データを保持するテーブルごとに値番号と値リストを含む。値番号と値リストとは、一対一の組(ペア)を成す。
データ管理手段20は、検索処理の結果を格納する順序集合を含む。順序集合は、検索やソートの結果ごとに存在し、セットID(セット識別子とも呼ぶ)によって一意に管理される(ID:Identifier)。
図5は、一般的なFAST構造の管理方法によって管理される順序集合をまとめたテーブルの一例(順序集合情報340)である。一般的なFAST構造の管理方法では、順序集合ごとにセットIDを設定し、セットIDごとに複数の行番号を格納して管理する。一般的なFAST構造の管理方法では、全ての検索を行う度に順序集合を作成していくことになり、結果を管理するための大量の記憶領域が必要になる。
順序集合管理手段30は、順序集合管理テーブル331、部分集合管理テーブル332およびソート情報管理テーブル333を格納する管理テーブルDB33を参照する。なお、各管理テーブルは、それぞれ個別のデータベースとして分散させて構築されてもよいし、単一のデータベースとして構築されてもよい。また、順序集合管理手段30は、管理テーブルDB33を含んでいてもよい。
順序集合管理テーブル331は、順序集合の構成を管理するための管理テーブルである。部分集合管理テーブル332は、順序集合に含まれる行番号を検索条件に対応させて格納するテーブルである。ソート情報管理テーブル333は、ソート条件に従ったソート順序でソートされた行番号をソートIDに対応させて格納するテーブルである。
図6は、各管理テーブル、各管理テーブル同士の関係を説明するための一例である。なお、これ以降、図面中の各管理テーブルの値が変化した場合であっても、同じテーブルには同じ符号を付していく。
順序集合管理テーブル331には、順序集合を管理するためのセットIDとともに、各セットIDに対応させて、サブセットID(サブセット識別子とも呼ぶ)およびソートID(ソート識別子とも呼ぶ)が記録される。
サブセットIDは、部分集合管理テーブル332に格納されたサブセット(行)を一意に識別するための識別子である。なお、順序集合管理テーブル331にサブセットIDが記録されていないセットIDの順序集合には、全ての行番号が要素として含まれる。
図6の例では、順序集合管理テーブル331のセットIDが2〜4の順序集合が、部分集合管理テーブル332のサブセットIDが1〜3の部分集合にそれぞれ対応することを示す。また、順序集合管理テーブル331のセットIDが1および5の順序集合には、1〜7の全ての行番号が含まれる。
ソートIDは、ソート情報管理テーブル333に格納されたソート順序(行)を一意に識別するための識別子である。なお、順序集合管理テーブル331にソートIDが記録されていない場合は、行番号が昇順に並んでいることを示す。
図6の例では、順序集合管理テーブル331のセットIDが3および5の順序集合が、ソート情報管理テーブル333のソートIDが1および2のレコードにそれぞれ対応することを示す。また、ソートIDが記録されていない順序集合管理テーブル331の順序集合(セットIDが1、2および4)においては、行番号が昇順にソートされている。
また、順序集合管理手段30は、管理テーブル格納処理手段31と、順序集合作成手段32とを有する。
管理テーブル格納処理手段31は、各管理テーブルへ情報を格納する機能をもつ。管理テーブル格納処理手段31は、検索によって作成された順序集合の情報を、順序集合管理テーブル331、部分集合管理テーブル332またはソート情報管理テーブル333に分割して格納する。
順序集合作成手段32は、管理テーブルの情報から順序集合を作成する。順序集合作成手段32は、重複する条件の検索が行われた場合、順序集合管理テーブル331、部分集合管理テーブル332およびソート情報管理テーブル333の情報を組み合わせて検索結果である順序集合を作成する。
テーブル検索手段41は、テーブルDB42に格納された各テーブルを検索する手段である。
テーブルDB42は、値番号リスト、値リストおよび順序集合を格納するデータベースである。なお、テーブルDB42は、それぞれのテーブルごとに異なる媒体を割り当てるように構築されてもよいし、全てのテーブルを同一の媒体に割り当てるように構築されてもよい。
(問い合わせ処理手段)
問い合わせ処理手段10は、条件解析手段11と、結果取得判断手段12とを有する。
条件解析手段11は、アプリケーションから送信された検索内容を解析して検索条件またはソート条件を取得する。また、条件解析手段11は、結果取得判断手段12を介して、検索条件を満たすデータの検索をデータ管理手段20に要求する。さらに、条件解析手段11は、検索結果をアプリケーションに送信する機能も有する。条件解析手段11は、一般的なデータベースのパーサーと呼ばれる機能を有する。
結果取得判断手段12は、条件解析手段11の解析結果を踏まえ、データ管理手段20に処理を実行させる。このとき、結果取得判断手段12は、検索条件に従って、テーブルDB42に格納された値番号リストおよび値リストを基に順序集合を作成するか、順序集合管理手段30の持つ順序集合作成手段32を用いて順序集合を作成するかの判断を行う。すなわち、結果取得判断手段12は、検索条件に従って順序集合の作成主体を判断する。また、結果取得判断手段12は、ソート条件に従って、順序集合作成手段32にソートを実行させ、順序集合を作成させる。
以上が、本実施形態に係るデータベース管理システム1の構成についての説明である。
(動作)
続いて、本実施形態に係るデータベース管理システム1の動作について説明する。
ここでは、図3のようなFAST構造のデータに基づいて、順序集合管理手段30が有する各管理テーブルを用いてどのような処理が行われるかについて説明する。
(管理テーブル格納処理)
図7および図9は、管理テーブルDB33に管理テーブルを格納する処理(以下、管理テーブル格納処理)に関するフローチャートである。
管理テーブル格納処理においては、検索内容からソート条件と検索条件とを取り出し、それぞれの処理結果を別々に分けて格納する。図7および図9に示す管理テーブル格納処理は、システム運用上は一連の処理として実行できるが、以下の二つの処理内容に分解できる。なお、処理内容とは、アプリケーションから送信される検索内容のことを意味する。処理内容からソート条件や検索条件を取り出す処理は、一般的なデータベースにおいて、SQLから条件句(例えば、WHERE句やORDER BY句)の中身を取り出す処理に相当する。
一つ目は、処理内容からソート条件を取り出し、ソート条件に基づいた処理を行うことによってソート情報管理テーブル333を更新するソート情報管理テーブル更新処理である(図7)。
二つ目は、処理内容から検索条件を取り出し、検索条件に基づいた処理を行うことによって部分集合管理テーブル332を更新し、部分集合管理テーブル332において共通する行番号やサブセットを共有化する部分集合管理テーブル更新処理である(図9)。なお、管理テーブル格納処理手段31が順序集合の要素の共通部分と差集合とを集合演算処理によって求めることを「共通する行番号やサブセットを共有化する」と表現する。例えば、「性別=男」の順序集合をA、「年齢=20代」の順序集合をBとすると、共通部分は「AかつB」、差集合は「A−B」および「B−A」で表される。
以下においては、ソート情報管理テーブル更新処理(図7)と、部分集合管理テーブル更新処理(図9)とを別々に説明する。
<ソート情報管理テーブル更新処理>
図7は、ソート情報を更新するソート情報管理テーブル更新処理に関するフローチャートである。
図7において、まず、条件解析手段11は、処理内容からソート条件を取り出す(ステップS11)。
ここで、結果取得判断手段12は、取り出したソート条件がソート情報管理テーブル333にあるか否かによって、順序集合を作成する主体を判断する(ステップS12)。
取り出したソート条件がソート情報管理テーブル333にない場合(ステップS12でNo)、結果取得判断手段12は、順序集合作成手段32によってソートすべき対象のソートを実行させると判断する。順序集合作成手段32は、結果取得手段12の判断に従って順序集合Sを作成させる(ステップS13)。
次に、順序集合作成手段32は、以下の式1を用いて、順序集合Sを変換配列Tに変換する(ステップS14)。
T[S[i]]=i…(1)
なお、式1において、iは1〜nの自然数である(nは行番号の最大値)。つまり、変換配列Tは、順序集合Sの第一列目(第1の列)と第二列目(第2の列)とを入れ替えた配列に関して、入れ替えた後の第一列目(第2の列)の値で昇順にソートした配列となる。
そして、管理テーブル格納処理手段31は、変換配列Tの内容および条件をソート情報管理テーブル333に登録する(ステップS15)。ここで、図7の処理は終了とし、図9の処理に移行する。
ところで、ステップS12において、取り出したソート条件がソート情報管理テーブル333にある場合(ステップS12でYes)、図7の処理は終了とし、図9の処理に移行する。
以上が、ソート情報管理テーブル更新処理についての説明である。
ここで、図8を用いて、ソート情報管理テーブル更新処理の具体例について説明する。図8は、図3のデータに関して、「年齢」(ペアP3)をソートキーとして昇順で並べる例である。
「年齢」をソートキーとして昇順で並べる場合、順序集合作成手段32は、年齢データ(図3のペアP3)の値番号リストに関して、値番号(右側列)をキーとして昇順でソートすることによって行番号(左側列)を並び替える。その結果、順序集合作成手段32は、行番号(左側列)を並び替えた順序集合S=[4、1、7、3、5、6、2]を得る。なお、図8においては、順序集合Sを構成する行番号に対して番号(以下、変換番号)を付与している。
順序集合作成手段32は、得られた順序集合S(変換用順序集合とも呼ぶ)を、式1に従って変換配列Tに変換する。式1の変換により、変換配列T=[2、7、4、1、5、6、3]が得られる。なお、図8においては、変換配列Tを構成する変換番号に対して、ソート順序を示す番号(以下、ソート番号)を付与している。
管理テーブル格納処理手段31は、変換配列Tの内容をソート条件とともにソート情報管理テーブル333に登録する。
以上が、ソート情報管理テーブル更新処理の具体例についての説明である。
<部分集合管理テーブル更新処理>
図9は、検査条件を満たす行番号の部分集合(サブセットとも呼ぶ)を更新する部分集合管理テーブル更新処理に関するフローチャートである。
図9において、まず、条件解析手段11は、処理内容から検索条件を取り出す(ステップS201)。
ここで、結果取得判断手段12は、検索条件が複数個の組み合わせであるか否かを判断する(ステップS202)。
検索条件が複数個の組み合わせである場合(ステップS202でYes)、条件解析手段11は、検索条件の一部を取り出す(ステップS203)。
ここで、結果取得判断手段12は、取り出した条件が部分集合管理テーブル332にあるか否かを判断する(ステップS204)。
部分集合管理テーブル332に条件がある場合(ステップS204でYes)、ステップS208に進む。部分集合管理テーブル332に条件がない場合(ステップS204でNo)、ステップS202に戻る。
ところで、ステップS202において、検索条件が単一であった場合(ステップS202でNO)、結果取得判断手段12は、部分集合管理テーブル332に条件があるか否かを判断する(ステップS205)。
部分集合管理テーブル332に条件がある場合(ステップS205でYes)、ステップS208に進む。
一方、ステップS205において、取り出した条件が部分集合管理テーブル332にない場合(ステップS205でNo)、順序集合作成手段32は、検索を実行し、順序集合を作成する(ステップS206)。
そして、管理テーブル格納処理手段31は、作成した順序集合に対応する条件と、作成した順序集合とを部分集合管理テーブル332に登録する(ステップS207)。この後、ステップS208に進む。
ここで、結果取得判断手段12は、残りの検索条件があるか否かを判断する(ステップS208)。すなわち、結果取得判断手段12は、処理内容に他の検索内容が含まれているか否かを確認する。ステップS208において、残りの検索条件がある場合(ステップS208でYes)、ステップS203に戻る。
ステップS208において、部分集合管理テーブル332に残りの検索条件がない場合(ステップS208でNo)、管理テーブル格納処理手段31は、順序集合と、順序集合に対応する条件とを部分集合管理テーブル332に登録する(ステップS209)。
最後に、管理テーブル格納処理手段31は、共通の行番号やサブセットを共有化する(ステップS210)。
以上が、部分集合管理テーブル更新処理についての説明である。
ここで、図10〜図12を用いて、部分集合管理テーブル更新処理の具体例について説明する。図10〜図12は、「性別=男かつ年齢=20代」という条件を満たすレコードを抽出する例である。
図10において、「性別=男」を検索条件としてレコードを抽出する場合、値リストを参照すると、値が「男」である値番号は2である。ここで、値番号リストを参照すると、値番号が2となる行番号[2、5、7]が順序集合として得られる。管理テーブル格納処理手段31は、得られた行番号[2、5、7]を検索条件(性別=男)とともに、部分集合管理テーブル332へ登録する。
同様に、図11において、「年齢=20代」を検索条件としてレコードを抽出する場合、値リストを参照すると、値が「20代」である値番号は[2、3、4]である。ここで、値番号リストを参照すると、値番号が[2、3、4]である行番号[1、3、5、7]が順序集合として得られる。管理テーブル格納処理手段31は、得られた行番号[1、3、5、7]を検索条件(年齢=20代)とともに、部分集合管理テーブル332へ登録する。
このように、「性別=男」と「年齢=20代」とを値としてもつデータの行番号をそれぞれ得た後、図12のように、複数条件組合せの結果を集合演算により求める。
図12において、「性別=男」かつ「年齢=20代」は、[2、5、7]と[1、3、5、7]のAND演算により[5、7]と求められる。図12には、2つの順序集合([2、5、7]、[1、3、5、7])の共通部分として、[5、7]が得られる様子を示す。
さらに、部分集合管理テーブル332において、行番号の一部が共通するサブセットが存在する場合、管理テーブル格納処理手段31は、格納領域を縮小するために子サブセットを用いて行番号を共有化する。
図12では、AND演算で得られた共通部分[5、7]を子サブセットとして共有する。その結果、サブセットIDが1のレコードには、子サブセットID(子サブセット識別子とも呼ぶ)として3が付与され、順序集合[2、5、7]と共通部分[5、7]との差集合[2]が行番号として残る。すなわち、サブセットIDが1の行には、共有化された子サブセットID=3と、共有化されなかった行番号[2]が条件(性別=男)と共に記録される。
同様に、サブセットIDが2のレコードには、子サブセットIDとして3が付与され、順序集合[1、3、5、7]と共通部分[5、7]との差集合[1、3]が行番号として残る。すなわち、サブセットIDが2の行には、共有化された子サブセットID=3と、共有化されなかった行番号[1、3]が条件(年齢=20代)と共に記録される。
以上が、部分集合管理テーブル更新処理の具体例についての説明である。
(管理テーブル参照処理)
次に、管理テーブルを参照して検索結果となる順序集合を得る管理テーブル参照処理について説明する。管理テーブル参照処理では、検索内容から検索条件とソート条件を取り出し、それぞれの条件に該当する情報を管理テーブルから取り出し、取り出した結果を組み合わせることによって最終的な結果である順序集合を作成する。
図13は、管理テーブル参照処理に関する参照処理フローチャートである。
図13において、まず、順序集合作成手段32は、処理内容から検索条件を取り出す(ステップS31)。
順序集合作成手段32は、部分集合管理テーブル332から検索条件に該当するサブセットIDに含まれる行番号を取り出す(ステップS32)。
順序集合作成手段32は、取り出した行番号に関する集合演算を実行し、部分集合を作成する(ステップS33)。
順序集合作成手段32は、処理内容からソート条件を取り出す(ステップS34)。
順序集合作成手段32は、式1を用いて、ソート情報管理テーブル333からソート条件に該当する変換配列Tを取り出す(ステップS35)。
順序集合作成手段32は、以下の式2を用いて、変換配列Tから順序集合Uを作成する(ステップS36)。なお、式2において、iは部分集合の行番号である。
U[T[i]]=i・・・(2)
以上が、管理テーブル参照処理についての説明である。
ここで、管理テーブル参照処理の具体例について説明する。
図14は、部分集合管理テーブル332から、条件に該当するレコードを抽出する例である。
「性別=男かつ年齢=20代」(AND条件)を満たすレコードを抽出する場合、「性別=男」と「年齢=20代」とを満たす行番号をそれぞれ取り出し、取り出した行番号の共通部分を取ることによって検索対象のレコードが抽出される。
図14においては、「性別=男」の条件を満たす部分集合として、部分集合管理テーブル332のサブセットIDが1のレコードから、行番号[2、5、7]が抽出される。また、「性別=20代」の条件を満たす部分集合として、部分集合管理テーブル332のサブセットIDが2のレコードから、行番号[1、3、5、7]が抽出される。「性別=男かつ年齢=20代」(AND条件)を満たすレコードとしては、抽出された2つの部分集合の共通部分である[5、7]が抽出される。その結果として、図3のテーブルD1の5および7行目のレコードを含むAND条件検索結果テーブル301が得られる。
同様に、「性別=男または年齢=20代」(OR条件)を満たすレコードを抽出する場合、「性別=男」と「年齢=20代」とを満たすレコードの行番号をそれぞれ取り出し、取り出した行番号の和集合をとることによって検索対象のレコードが抽出される。
図14においては、「性別=男または年齢=20代」(OR条件)を満たすレコードとして、抽出された2つの部分集合([2、5、7]、[1、3、5、7])の和集合である[1、2、3、5、7]が抽出される。その結果、図3のテーブルD1の1〜3、5および7行目のレコードを含むOR条件検索結果テーブル302が得られる。
図15は、レコードの抽出とソートとを組み合わせる場合の例である。
「性別=男」を満たすレコードを「年齢」が昇順となるように取り出す場合、まず、検索条件として「性別=男」を満たす部分集合[2、5、7]を部分集合管理テーブル332から取り出す。
そして、年齢:昇順に該当するソート情報(変換配列T=[2、7、4、1、5、6、3])をソート情報管理テーブル333から取り出し、式2に従って順序集合Uに変換する。変換の結果は、順序集合U=[−、−、7、−、5、−、2]となる。ただし、「性別=男」を満たす部分集合[2、5、7]に含まれない要素には、NULL値(「−」:未設定)を対応させ、データ取り出しの対象外とする。
その結果、図3のテーブルD1の7、5および2行目のレコードが、年齢をキーとして昇順にソートされたテーブル303が得られる。
(検索結果取得処理)
図16は、結果取得判断手段12によって、与えられた検索条件から実際のデータを含む検索結果を取得する検索結果取得処理のフローチャートである。
図16において、まず、管理テーブル格納処理手段3によって、検索条件を満たす情報を管理テーブルに格納する(ステップS41)。
次に、順序集合作成手段32によって、検索結果となる順序集合Uを作成する(ステップS42)。
次に、テーブル検索手段41により、順序集合Uから、データを含む結果を取得する(ステップS43)。
最後に、項目ごとに、値番号VNoおよび値リストVLから、VL[VNo[U[i]]](i=1〜行番号の最大値、かつU[i]≠NULL)の値を求めることによって実際のデータを取得する(ステップS44)。テーブル検索手段41は、取得されたデータを統合し、統合した結果を検索結果として出力する。
ここで、図17を用いて、検索結果取得処理の具体例について説明する。図17の例では、順序集合U[7、5、2]が得られている。得られている順序集合U[7、5、2]のうち、「7」を値番号VNoとする値リストVLを各ペアから抽出すると、図3のテーブルD1の7行目のレコードが抽出される。同様に、順序集合U[7、5、2]に含まれる「5」および「2」についても、図3のテーブルD1の5行目および2行目のレコードが抽出される。その結果、図17のデータを含む検索結果として検索結果テーブル401が得られる。
(効果)
以上のように、本実施形態に係るデータベース管理システムは、検索結果である順序集合を構成する行番号とソート順序とを共有して管理することにより、多数の順序集合が存在する場合でも重複部分を排除される。そのため、本実施形態に係るデータベース管理システムによれば、検索結果を格納する領域として必要なメモリ量を削減することができるという効果が得られる。
また、本実施形態に係るデータベース管理システムでは、検索条件が過去の検索結果と完全一致、または部分的に一致する場合に、重複する検索内容に対しての再検索が不要となる。そのため、本実施形態に係るデータベース管理システムによれば、データベースシステム全体としての検索性能が向上するという効果が得られる。
(第2の実施形態)
第2の実施形態に係るデータベース管理システム2は、図2の第1の実施形態に係るデータベース管理システム1に、アプリケーション50を追加した構成をもつ(図18)。なお、第2の実施形態に係るデータベース管理システム2に関して、アプリケーション50以外は、第1の実施形態に係るデータベース管理システム1と同様の構成をもつ。
アプリケーション50は、データベース管理システム2によって管理されるデータベースを利用するアプリケーションである。アプリケーション50は、利用するデータベースにアクセスするための検索条件を問い合わせ手段10の条件解析手段11に送信する。また、アプリケーション50は、送信した検索結果に対する応答となる検索結果を条件解析手段11から取得する。
アプリケーション50は、検索が行われる前に、代表的な部分集合やソート情報をあらかじめ作成しておく。なお、代表的な部分集合とは、利用頻度が高い部分集合や、特定の優先度を持つ部分集合などを指す。一方、第1の実施形態においては、検索が行われたタイミングで管理テーブルの内容を更新していた。
そして、第2の実施形態に係るデータベース管理システムは、管理テーブル格納処理(図7、図9)や管理テーブル参照処理(図13)を実行する。
すなわち、第1の実施形態では管理テーブルDB33が空の状態で運用を開始するのに対し、第2の実施形態ではあらかじめアプリケーション50によっていくつかの検索を行っておく。その結果、管理テーブルDB33に情報を蓄積した状態で運用を開始することになるので、初期の検索性能を向上させることができる。
第2の実施形態に係るデータベース管理システムによれば、第1の実施形態と比較して、検索やソート処理の性能を向上させることが可能となる。
(第3の実施形態)
第3の実施形態に係るデータベース管理システムは、第1または第2の実施形態の管理テーブル格納処理手段31に包含関係確認機能311を追加した構成をもつ(図19)。なお、第3の実施形態は、管理テーブル格納処理手段31に包含関係確認機能311が含まれる点以外は、第1または第2の実施形態と同様の構成をもつ。
包含関係確認機能311に係るデータベース管理システムは、部分集合管理テーブル332に既に格納されている条件と、部分集合管理テーブル332に格納する条件と、の間の包含関係を確認する。すなわち、包含関係確認機能311は、管理テーブル格納処理手段31が部分集合管理テーブル332に条件を格納する際に、「格納する条件」と「既に格納されている条件」の包含関係を確認する。そして、「格納する条件」と「既に格納されている条件」とのどちらか一方が他方に包含されるようであれば、包含関係確認機能311は、その共通部分と差集合を求めて、部分集合管理テーブル332を更新する。
第3の実施形態によれば、部分集合管理テーブル332によって管理する検索の条件として、第1の実施形態における「性別=男」や「年齢=20代」のような固定条件に加えて、「年齢≦30」のような範囲条件を取り入れることができる。この場合、「年齢=20代」は「年齢≦30」の部分集合に該当するため、子サブセットによる表現が可能となり、部分集合管理テーブル332へ格納する行番号がより共有化しやすくなる。
すなわち、第3の実施形態によれば、第1または第2の実施形態と比較して、さらにメモリ使用量を削減することが可能となる。
(第4の実施形態)
図20は、第4の実施形態に係るデータベースシステム4の概念図である。本実施形態に係るデータベースシステム4は、第1の実施形態に係るデータベース管理システム1に含まれる問い合わせ手段10およびデータ管理手段20の内部構成に含まれる要素がネットワークを介して接続される構成をもつ。なお、データベースシステム4において、第1の実施形態に係るデータベース管理システム1として、第2または第3の実施形態に係るデータベース管理システムを適用することができる。
データベース管理装置100は、問い合わせ手段10、データ管理手段20に含まれる管理テーブル格納手段31、順序集合作成手段32およびテーブル検索手段41を含むように構成される。また、ストレージ装置200は、データベース管理システム1のデータ管理手段20に含まれる管理テーブルDB33と、テーブルDB42とを含むように構成される。なお、ストレージ装置200は、複数のストレージから構成されていてもよい。データベース管理装置100とストレージ装置200とは、ネットワーク300によって接続される。
データベース管理装置100は、例えば、一般的なコンピュータシステムやサーバシステムなどをハードウェアとしてもつ装置によって実現される。データベース管理装置100は、第1の実施形態に係るデータベース管理システム1におけるデータベース管理方法を用いて、ストレージ装置200内の各データベースをネットワーク300経由で管理する。
ストレージ装置200は、例えば、少なくとも一つのハードディスクドライブ(以下、HDD)を含む記憶装置によって実現される。ストレージ装置200に含まれるデータベースは、ネットワーク300を介してデータベース管理システム1によって管理される。また、データベースシステム4を利用するアプリケーションは、データベース管理装置100を介してストレージ装置200にアクセスする。
ネットワーク300は、データベース管理装置100とストレージ装置200とを接続するデータ通信網である。例えば、ネットワーク300は、インターネットやLAN、WANなどとして構築される(LAN:Local Area Network、WAN:Wide Area Network、)。また、ネットワーク300は、データベース管理装置100とストレージ装置200とが同一の装置内部に構成される場合、データベース管理装置100とストレージ装置200とを接続する装置内部のデータ伝送経路として実現してもよい。なお、ネットワーク300は、上述のデータ通信網以外の構成を利用してもよい。また、ネットワーク300は、本実施形態に係るデータベースシステム4に含まれていなくてもよい。
第4の実施形態に係るデータベースシステム4によれば、第1〜第3の実施形態に係るデータベース管理システムの構成を含むデータベースシステムをネットワークシステムとして構築することが可能となる。
以上が、第4の実施形態に係るデータベースシステムに関する説明である。
本発明の実施形態に係るデータベース管理システムは、パーソナルコンピュータやワークステーション、サーバシステムなどの情報処理装置によって実現される。本実施形態に係るデータベース管理システムを実現する情報処理装置は、例えば、中央演算処理装置や不揮発性メモリ、揮発性メモリ、補助記憶装置、入出力インターフェース、ネットワークインターフェースなどのハードウェアを含む構成とすることができる。また、本実施形態に係るデータベース管理システムを実現する情報処理装置には、ユーザの操作を受け付けるキーボードやタッチパネル、マウスなどの入力機器、操作画面を表示するためのディスプレイなどの表示機器といった周辺機器を接続できる。また、本実施形態に係るデータベース管理システムを実現する情報処理装置は、適切なオペレーティングシステムの制御によって動作する。
本発明の実施形態に係るデータベース管理方法をコンピュータに実行させるデータベース管理プログラムも本発明の範囲に含まれる。また、本発明の実施形態に係るデータベース管理プログラムを記録するプログラム記録媒体も本発明の範囲に含まれる。
本発明の実施形態に係る手法は、構成要素を一意に特定する番号の選択と並び替えにより結果を与える検索装置においても利用可能である。特に、本実施形態に係る手法は、多数のアプリケーションから類似する条件の検索が行われる場合、検索結果を構成するレコードの重複度が高い場合に有効である。
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1、2 データベース管理システム
4 データベースシステム
10 問い合わせ処理手段
11 条件解析手段
12 結果取得判断手段
20 データ管理手段
30 順序集合管理手段
31 管理テーブル格納処理手段
32 順序集合作成手段
33 管理テーブルデータベース
41 テーブル検索手段
42 テーブルデータベース
50 アプリケーション
100 データベース管理装置
200 ストレージ装置
300 ネットワーク
311 包含関係確認機能
331 順序集合管理テーブル
332 部分集合管理テーブル
333 ソート情報管理テーブル

Claims (10)

  1. データベースを利用するアプリケーションから取得した検索内容を解析して検索条件およびソート条件を取り出して実行する処理を判断する問い合わせ処理手段と、
    前記問い合わせ処理手段の判断に従って、前記データベースに格納されたデータによって構成される順序集合を作成するとともに、前記検索条件を満たす前記データの集合間で重複する前記データを共有化させて構成した部分集合と、前記ソート条件に従った前記データのソート順序とを前記順序集合に対応させて管理するデータ管理手段とを備えるデータベース管理システム。
  2. 前記問い合わせ処理手段は、
    前記検索内容を解析することによって前記検索条件および前記ソート条件を取り出す条件解析手段と、
    前記条件解析手段による解析結果に従って前記データ管理手段に実行させる処理を判断する結果取得判断手段とを含み、
    前記データ管理手段は、
    前記検索条件または前記ソート条件に従って前記データによって構成される前記順序集合を作成する順序集合作成手段と、
    前記順序集合作成手段によって作成された前記順序集合を管理する管理テーブルを更新する管理テーブル格納手段と、
    前記データベースから検索対象の前記データを検索するテーブル検索手段とを含む請求項1に記載のデータベース管理システム。
  3. 前記データ管理手段は、
    前記データの値を重複排除してソート済みの形で値番号を付与して格納する値リストと、前記値番号を前記データの値に付与されたデータ識別子に対応させて格納する値番号リストと、前記データ識別子の集合である順序集合とによって構成される情報成分に分割して前記データを格納するテーブルデータベースと、
    前記検索条件を満たす前記データの値に対応する前記データ識別子が重複して含まれないように構成された前記部分集合を前記検索条件ごとにサブセット識別子を付与して管理する部分集合管理テーブルと、前記データのソート順序を前記ソート条件ごとにソート識別子を付与して管理するソート情報管理テーブルと、それぞれの前記順序集合に対応する前記サブセット識別子および前記ソート識別子を前記順序集合に関連付けて管理する順序集合管理テーブルとを格納する管理テーブルデータベースとを参照して前記データを管理する請求項2に記載のデータベース管理システム。
  4. 前記条件解析手段によって前記検索内容から前記検索条件および前記ソート条件が取り出されると、
    前記結果取得判断手段は、
    前記検索条件に従って前記ソート条件管理テーブルを検証した結果、前記ソート条件管理テーブルに前記ソート条件が含まれていない場合、前記ソート情報管理テーブルを更新する処理を前記データ管理手段に実行させると判断し、
    前記順序集合作成手段は、
    前記結果取得判断手段の判断に応じて、前記順序集合作成手段によって、ソート対象の前記データの前記値番号リストに関して前記値番号をキーとしてソートすることによって並び替えた前記データ識別子に変換番号を付与した変換用順序集合を作成し、作成した前記変換用順序集合に関して前記データ識別子をキーとしてソートすることによって並び替えた配列に前記ソート順序を示すソート番号を付与した変換配列を作成し、
    前記管理テーブル格納手段によって、前記順序集合作成手段によって作成された前記変換配列を構成する前記変換番号を前記ソート条件に対応させた前記ソート順序で並べて前記ソート情報管理テーブルに登録する請求項3に記載のデータベース管理システム。
  5. 前記条件解析手段によって前記検索内容から取り出された前記ソート条件の全てが前記ソート条件管理テーブルに格納されると、
    前記結果取得判断手段は、
    前記検索条件に含まれる条件に従って、前記部分集合管理テーブルを更新する処理を前記データ管理手段に実行させることを判断し、
    前記データ管理手段は、
    取り出された前記検索条件に含まれる条件のうち前記部分集合管理テーブルに登録されていない条件を前記部分集合管理テーブルに部分集合として登録し、前記部分集合管理テーブルに登録された異なる前記部分集合同士が共通の前記データ識別子を含む場合は、前記共通する識別子を含む部分集合を抽出し、抽出された前記共通する識別子からなる部分集合に付与された前記サブセット識別子を前記共通のデータ識別子を含んでいた前記部分集合に子サブセット識別子として登録することによって、前記共通のデータ識別子を含んでいた前記部分集合に登録されていた前記共通のデータ識別子が重複しないように前記部分集合管理テーブルを更新する請求項4に記載のデータベース管理システム。
  6. 前記順序集合作成手段は、
    前記検索内容から取り出した前記検索条件に該当する前記部分集合に含まれる前記データ識別子を前記部分集合管理テーブルから取り出し、前記検索条件に従った集合演算を実行することによって前記検索条件に対応する部分集合を作成し、
    前記検索内容から取り出した前記ソート条件に該当する前記変換配列を前記ソート情報管理テーブルに含まれる前記ソート順序を基に取り出し、取り出した前記変換配列を前記変換番号によってソートし、前記検索条件に対応する部分集合に含まれる前記データ識別子に対応する前記変換番号をデータ識別子とする順序集合を作成し、
    前記テーブル検索手段は、
    前記テーブルデータベースから、前記変換番号をデータ識別子とする順序集合に含まれる前記データ識別子が付与された前記データを取得して統合した結果を検索結果として出力する請求項5に記載のデータベース管理システム。
  7. 前記部分集合管理テーブルに含まれる部分集合の少なくとも一部と、前記ソート情報管理テーブルに含まれるソート情報とをあらかじめ作成するアプリケーションを含む請求項2乃至5のいずれか一項に記載のデータベース管理システム。
  8. データを格納するデータベースと、
    前記データベースを利用するアプリケーションから取得した検索内容を解析して検索条件およびソート条件を取り出し、実行する処理を判断する問い合わせ処理手段と、前記問い合わせ処理手段の判断に従って、前記データベースに格納されたデータによって構成される少なくとも一つの順序集合を作成するとともに、前記検索条件を満たす前記データの集合間で重複する前記データを共有化させて構成した部分集合と、前記ソート条件に従った前記データのソート順序とを前記順序集合に対応させて管理するデータ管理手段とを備えるデータ管理装置とがネットワークを介して接続されて構成されるデータベースシステム。
  9. データベースを利用するアプリケーションから取得した検索内容を解析して検索条件およびソート条件を取り出して実行する処理を判断し、
    前記データベースに格納されたデータによって構成される順序集合を作成するとともに、前記検索条件を満たす前記データの集合間で重複する前記データを共有化させて構成した部分集合と、前記ソート条件に従った前記データのソート順序とを前記順序集合に対応させて管理するデータベース管理方法。
  10. データベースを利用するアプリケーションから取得した検索内容を解析して検索条件およびソート条件を取り出して実行する処理を判断する処理と、
    前記データベースに格納されたデータによって構成される順序集合を作成するとともに、前記検索条件を満たす前記データの集合間で重複する前記データを共有化させて構成した部分集合と、前記ソート条件に従った前記データのソート順序とを前記順序集合に対応させて管理する処理とをコンピュータによって実行させるデータベース管理プログラム。
JP2014192126A 2014-09-22 2014-09-22 データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム Pending JP2016062522A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014192126A JP2016062522A (ja) 2014-09-22 2014-09-22 データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014192126A JP2016062522A (ja) 2014-09-22 2014-09-22 データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム

Publications (1)

Publication Number Publication Date
JP2016062522A true JP2016062522A (ja) 2016-04-25

Family

ID=55797927

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014192126A Pending JP2016062522A (ja) 2014-09-22 2014-09-22 データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム

Country Status (1)

Country Link
JP (1) JP2016062522A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018045380A (ja) * 2016-09-13 2018-03-22 日本電気株式会社 データベース管理装置、データベース管理システム、データベース管理方法、および、データベース管理プログラム
CN115017136A (zh) * 2022-06-29 2022-09-06 江苏重行信息科技有限公司 一种基于大数据应用的监控数据分析存储管理系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018045380A (ja) * 2016-09-13 2018-03-22 日本電気株式会社 データベース管理装置、データベース管理システム、データベース管理方法、および、データベース管理プログラム
CN115017136A (zh) * 2022-06-29 2022-09-06 江苏重行信息科技有限公司 一种基于大数据应用的监控数据分析存储管理系统
CN115017136B (zh) * 2022-06-29 2024-02-13 广州市橙鑫网络有限公司 一种基于大数据应用的监控数据分析存储管理系统

Similar Documents

Publication Publication Date Title
US8442982B2 (en) Extended database search
US8914414B2 (en) Integrated repository of structured and unstructured data
US10180992B2 (en) Atomic updating of graph database index structures
US9672241B2 (en) Representing an outlier value in a non-nullable column as null in metadata
US9639542B2 (en) Dynamic mapping of extensible datasets to relational database schemas
WO2017170459A1 (ja) 異種データソース混在環境におけるフィールド間の関係性の自動的発見のための方法、プログラム、および、システム
CN103631842B (zh) 用于检测多列复合键列集合的方法和系统
US20150242452A1 (en) Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps
US11216516B2 (en) Method and system for scalable search using microservice and cloud based search with records indexes
US10565201B2 (en) Query processing management in a database management system
US20180144061A1 (en) Edge store designs for graph databases
US20170255708A1 (en) Index structures for graph databases
Rozsnyai et al. Large-scale distributed storage system for business provenance
US10380115B2 (en) Cross column searching a relational database table
JP6159908B1 (ja) 異種データソース混在環境におけるフィールド間の関係性の自動的発見のための方法、プログラム、および、システム
US10445370B2 (en) Compound indexes for graph databases
Yafooz et al. Managing unstructured data in relational databases
JPWO2010084754A1 (ja) データベースシステム、データベース管理方法、及びデータベース構造
JPWO2017170459A6 (ja) 異種データソース混在環境におけるフィールド間の関係性の自動的発見のための方法、プログラム、および、システム
Karras et al. Query optimization in NoSQL databases using an enhanced localized R-tree index
US11520763B2 (en) Automated optimization for in-memory data structures of column store databases
US20180144060A1 (en) Processing deleted edges in graph databases
JP2016062522A (ja) データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム
JP2015176407A (ja) 検索装置、検索方法、検索用プログラムおよび検索用データ構造
JP2007048318A (ja) リレーショナルデータベースの処理方法およびリレーショナルデータベース処理装置