(57)【要約】【課題】表データおよびインデックスデータを含むデータベースを用いた検索、集計等の処理に利用可能なメモリ領域が予め決められ、そのメモリ領域にデータベースの表データおよびインデックスデータを読み込んで処理を行う場合において、処理時間を短縮する。【解決手段】データベースのインデックスデータおよび表データの合計のデータ量が、ＨＳＱＬＤＢエンジン１２が使用可能な仮想メモリ１４上のメモリ領域１４２に一度に読み込み可能なデータ量を超える場合、ＨＳＱＬＤＢエンジン１２は、データベースを分割して、それぞれがインデックスデータおよび表データを含む複数の分割データベース１５−１〜１５−ｎを生成し、それぞれの分割データベース１５−１〜１５−ｎのインデックスデータおよび表データの合計のデータ量が、メモリ領域１４２に一度に読み込み可能なデータ量以下となるようにする。【選択図】図２
2011227538.tif 000002
【特許請求の範囲】
【請求項１】
表データと、この表データのデータ量に応じてそのデータ量が変化するインデックスデータとを含むデータベースを格納する記憶部と、
前記データベースを制御するデータベースエンジンと、
前記データベースエンジンによる前記データベースを用いた処理に利用される予め決められたメモリ領域を有するメモリとを備え、
前記データベースエンジンにより前記処理を行う際、前記データベースのインデックスデータおよび表データを前記メモリ領域に読み込んで前記処理を行うデータベース処理装置であって、
前記データベースのインデックスデータおよび表データの合計のデータ量が、前記メモリ領域に一度に読み込み可能なデータ量を超える場合、前記データベースエンジンは、前記データベースを分割して、それぞれがインデックスデータおよび表データを含む複数の分割データベースを生成し、それぞれの分割データベースのインデックスデータおよび表データの合計のデータ量が、前記メモリ領域に一度に読み込み可能なデータ量以下となるようにすることを特徴とするデータベース処理装置。
【請求項２】
前記データベースエンジンは、すべての分割データベースのインデックスデータおよび表データを前記メモリ領域に順次読み込んで前記処理を行うときに必要な合計の処理時間が、データベースの分割数を変化させたときのそれぞれの分割数に対応する前記処理時間のなかで最短となる分割数に基づいて、データベースの分割を行うことを特徴とする請求項１に記載のデータベース処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースを用いた検索等の各種の処理を行うデータベース処理装置に関する。
【背景技術】
【０００２】
従来、データベースエンジンの１つとして、Ｊａｖａ（登録商標）言語で作成されたオープンソースのリレーショナルデータベースエンジンであるＨＳＱＬＤＢが知られている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】[online]、[平成２２年２月１５日検索]、インターネット〈URL:http://www.hsqldb.org/〉
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＨＳＱＬＤＢには、いろいろなアプリケーションのパターンに合うように、複数の動作モードが用意されている。その動作モードの１つであるスタンドアロンモードは、Ｊａｖａ仮想マシン（ＪＶＭ）上で動作するＪａｖａアプリケーション内でＨＳＱＬＤＢエンジンが動作してデータベースを直接アクセスするモードである。
【０００５】
スタンドアロンモードで動作されたＨＳＱＬＤＢは、ＪＶＭとメモリ（物理メモリ）を共有するため、ＨＳＱＬＤＢエンジンが使用できるメモリ量（仮想メモリ量）の最大サイズが定義される必要がある。これより、検索、集計等の処理を行う際にＨＳＱＬＤＢエンジンが使用できるメモリ量（仮想メモリ量）は予め決められたものとなる。このメモリ量には、例えば、インデックスデータが含まれ、表データとして使用可能なメモリ量は、上記メモリ量からインデックスデータ量分だけ差し引いた量となる。
【０００６】
上記インデックスデータは、表データにおけるキーと行数との関係や各行のポインタ情報など、検索時に必要となるデータが格納されたものであり、表データのデータ量の大きさに比例してインデックスデータも大きくなる。
【０００７】
１つのデータベースに多くのレコードを格納して、そのデータベースにおける表データおよびインデックスデータが大きくなると、検索、集計等の処理を行う際、ＨＳＱＬＤＢエンジンが使用できるメモリ領域に大きなインデックスデータが格納されてしまい、表データは、一度にロードできず、想定していないロードできなかった部分に関する処理に時間がかかっていた。
【０００８】
本発明は上記に鑑みてなされたもので、表データおよびインデックスデータを含むデータベースを用いた検索、集計等の処理に利用可能なメモリ領域が予め決められ、そのメモリ領域にデータベースの表データおよびインデックスデータを読み込んで処理を行う場合において、処理時間を短縮することができるデータベース処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明に係るデータベース処理装置の第１の特徴は、表データと、この表データのデータ量に応じてそのデータ量が変化するインデックスデータとを含むデータベースを格納する記憶部と、前記データベースを制御するデータベースエンジンと、前記データベースエンジンによる前記データベースを用いた処理に利用される予め決められたメモリ領域を有するメモリとを備え、前記データベースエンジンにより前記処理を行う際、前記データベースのインデックスデータおよび表データを前記メモリ領域に読み込んで前記処理を行うデータベース処理装置であって、前記データベースのインデックスデータおよび表データの合計のデータ量が、前記メモリ領域に一度に読み込み可能なデータ量を超える場合、前記データベースエンジンは、前記データベースを分割して、それぞれがインデックスデータおよび表データを含む複数の分割データベースを生成し、それぞれの分割データベースのインデックスデータおよび表データの合計のデータ量が、前記メモリ領域に一度に読み込み可能なデータ量以下となるようにすることにある。
【００１０】
本発明に係るデータベース処理装置の第２の特徴は、前記データベースエンジンは、すべての分割データベースのインデックスデータおよび表データを前記メモリ領域に順次読み込んで前記処理を行うときに必要な合計の処理時間が、データベースの分割数を変化させたときのそれぞれの分割数に対応する前記処理時間のなかで最短となる分割数に基づいて、データベースの分割を行うことにある。
【発明の効果】
【００１１】
本発明に係るデータベース処理装置の第１の特徴によれば、データベースのインデックスデータおよび表データの合計のデータ量が、予め決められたメモリ領域に一度に読み込み可能なデータ量を超える場合、データベースを分割して、それぞれの分割データベースのインデックスデータおよび表データの合計のデータ量が、予め決められたメモリ領域に一度に読み込み可能なデータ量以下となるようにすることで、データベースを用いた処理を行う際の処理時間を短縮することができる。
【００１２】
本発明に係るデータベース処理装置の第２の特徴によれば、すべての分割データベースのインデックスデータおよび表データを予め決められたメモリ領域に順次読み込んで処理を行うときに必要な合計の処理時間が、データベースの分割数を変化させたときのそれぞれの分割数に対応する処理時間のなかで最短となる分割数に基づいて、データベースの分割を行うことで、装置の性能に応じた適切な分割数を用いて、処理時間の短縮を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係るデータベース処理装置のハードウェア構成の一例を示す図である。
【図２】本発明の実施の形態に係るデータベース処理装置の機能構成図である。
【図３】本発明の実施の形態に係るデータベース処理装置におけるデータベース作成の手順の一例を示すフローチャートである。
【図４】１つのデータベースとそれを分割した場合のデータベースを用いた処理に要する時間の比較を示す図である。
【図５】データベースの分割数と合計処理時間との関係を示す図である。
【図６】データベースの分割数と合計処理時間との関係を示す図である。
【図７】管理データベースとサブデータベースの説明図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１５】
図１は、本発明の実施の形態に係るデータベース処理装置１のハードウェア構成の一例を示す図である。
【００１６】
図１において、ＣＰＵ２は、データベース処理装置１全体を総括的に制御する中央演算処理装置である。
【００１７】
メモリ３は、一時的なデータの保存や、ＣＰＵ２の作業領域等として使用されるものである。
【００１８】
記憶装置４は、ハードディスク等の不揮発性の記憶媒体を有する。データベース処理装置１には、オペレーティングシステム（ＯＳ）、Ｊａｖａ仮想マシン（ＪＶＭ）、ＨＳＱＬＤＢ、およびアプリケーションがインストールされており、記憶装置４は、これらのプログラムを格納する。また、記憶装置４は、ＨＳＱＬＤＢで作成されたデータベースを格納し、本発明の記憶部に該当する。
【００１９】
入力装置５は、キーボードやマウス等からなり、操作者による入力操作を受け付ける装置である。
【００２０】
表示装置６は、液晶ディスプレイ等からなり、例えばＣＰＵ２の処理結果等を表示する装置である。
【００２１】
図２は、本実施の形態に係るデータベース処理装置１の機能構成図である。データベース処理装置１にインストールされたＯＳ、ＪＶＭ、ＨＳＱＬＤＢ、アプリケーションのプログラムをＣＰＵ２が読み込んで実行することで、ＣＰＵ２、実メモリ（メモリ３）等を利用して、ＯＳ１０、ＪＶＭ１１、ＨＳＱＬＤＢエンジン１２、アプリケーション１３、仮想メモリ１４が構築される。なお、本実施の形態では、ＨＳＱＬＤＢのスタンドアロンモードを用いる。
【００２２】
アプリケーション１３は、そのプログラムがＪａｖａ言語で作成されＪＶＭ１１上で実行可能な中間コードの形で形成されたものであり、例えば、データベースを用いた検索や集計等に関するアプリケーションである。
【００２３】
ＨＳＱＬＤＢエンジン１２は、実メモリ（記憶装置４）上にデータベース（ＤＢ）を生成して制御する。データベースには、表データおよびインデックスデータが含まれる。ＨＳＱＬＤＢエンジン１２は、データベースを用いた検索、集計等の処理を行う際、ＪＶＭ１１、ＯＳ１０を介して実メモリ（記憶装置４）上のデータベースにアクセスして表データおよびインデックスデータを取得し、これらを仮想メモリ１４にロードする。
【００２４】
ＨＳＱＬＤＢのスタンドアロンモードでは、前述したように、ＨＳＱＬＤＢエンジン１２が使用できるメモリ量（仮想メモリ量）は予め決められたものとなっている。つまり、図２に示すように、仮想メモリ１４のメモリ領域１４１のうち、ＨＳＱＬＤＢエンジン１２が使用可能な領域としてメモリ領域１４２が決められている。ＨＳＱＬＤＢエンジン１２は、検索、集計等の処理を行う際、データベースのインデックスデータおよび表データを仮想メモリ１４のメモリ領域１４２にロードして処理を行う。
【００２５】
ＨＳＱＬＤＢエンジン１２は、後述するように、インデックスデータおよび表データの合計のデータ量がメモリ領域１４２に一度に読み込み可能なデータ量を超えるデータベースは、複数に分割する。図２は、複数の分割データベース１５−１，１５−２，…，１５−ｎを生成した場合を示している。分割データベース１５−１〜１５−ｎは、それぞれが、インデックスデータおよび表データを有する。それぞれの分割データベース１５−１〜１５−ｎにおいて、インデックスデータおよび表データの合計のデータ量は、メモリ領域１４２に一度に読み込み可能なデータ量以下となっている。
【００２６】
次に、本実施の形態に係るデータベース処理装置１の動作について説明する。
【００２７】
図３は、データベース処理装置１におけるデータベース作成の手順の一例を示すフローチャートである。
【００２８】
アプリケーション１３上で、操作者の操作によりデータベースの作成指示がなされ、データベース作成対象のデータが入力されると、図３のステップＳ１０において、ＨＳＱＬＤＢエンジン１２は、データベース作成対象のデータを登録した表データ、およびインデックスデータを含むデータベースを記憶装置４に生成する。なお、データベース作成対象のデータ入力方法としては、例えば、通信Ｉ／Ｆ（図示せず）を介した外部からの入力データファイルの一括ダウンロードを行う方法がある。
【００２９】
次いで、ステップＳ２０において、ＨＳＱＬＤＢエンジン１２は、ステップＳ１０で生成した１つのデータベースの表データおよびインデックスデータの合計のデータ量を求め、そのデータ量が、使用可能なメモリ領域１４２に一度にロード（読み込み）できるデータ量であるか否かを判断する。一度にロードできるデータ量である場合（ステップＳ２０：ＹＥＳ）、そのまま処理を終了し、一度にロードできるデータ量でない場合（ステップＳ２０：ＮＯ）、ステップＳ３０に進む。
【００３０】
前述のように、検索、集計等の処理を行う際、ＨＳＱＬＤＢエンジン１２は、データベースのインデックスデータおよび表データをメモリ領域１４２にロードして処理を行う。ここで、インデックスデータおよび表データの合計のデータ量が大きく、メモリ領域１４２に一度にロードできない場合は、表データを分割することになるが、インデックスデータはそのままであるので、分割後の表データをロードしたとき、分割前の表データをポイント等で参照することがあり、そのような場合は処理が遅くなってしまう。
【００３１】
このため、データベースのインデックスデータおよび表データの合計のデータ量は、メモリ領域１４２に一度にロードできるデータ量であることが望ましい。そこで、本実施の形態では、図３のステップＳ３０において、ＨＳＱＬＤＢエンジン１２が、ステップＳ１０で生成したデータベースを複数に分割し、それぞれの分割データベース１５−１〜１５−ｎのそれぞれにおけるインデックスデータおよび表データの合計のデータ量が、メモリ領域１４２に一度にロード可能なデータ量以下となるようにする。分割数ｎの決め方については後述する。
【００３２】
データベース処理装置１において、分割データベース１５−１〜１５−ｎを用いてデータ集計処理を行う場合には、ＨＳＱＬＤＢエンジン１２は、分割データベース１５−１のインデックスデータおよび表データをメモリ領域１４２にロードして必要なデータを取得し、取得し終わったら分割データベース１５−１をクローズする。以降、分割データベース１５−２〜１５−ｎについて順次同様の処理を行うことにより、所望の集計結果を得る。
【００３３】
また、分割データベース１５−１〜１５−ｎを用いて検索処理を行う場合は、ＨＳＱＬＤＢエンジン１２は、例えば、まず分割データベース１５−１のインデックスデータおよび表データをメモリ領域１４２にロードし、インデックスを用いて検索要求に応じた目的のデータをキー項目に基づいて検索処理をして表データから探し、目的のデータが見つかれば分割データベース１５−１をクローズして検索処理を終了する。目的のデータが分割データベース１５−１に見つからなければ、目的のデータが見つかるまで、分割データベース１５−２，１５−３，…について順次同様の処理を行う。
【００３４】
集計や検索等の処理結果は、仮想メモリ１４上の所定領域に書き込まれる。ここで、ＨＳＱＬＤＢエンジン１２は、使用可能なメモリ領域１４２に処理結果を書き込める場合には、メモリ領域１４２に処理結果を書き込み、書き込めない場合は他の領域に処理結果を書き込む。処理結果は、必要に応じて表示装置６に表示される。
【００３５】
上述したように、１つのデータベースのインデックスデータおよび表データの合計のデータ量がメモリ領域１４２に一度にロードできるデータ量を超える場合、そのデータベースを用いた検索、集計等の処理には長時間を要する。これに対して、インデックスデータおよび表データがメモリ領域１４２に一度にロードできるデータベースでは、処理時間が大きく短縮される。
【００３６】
例えば、ＨＳＱＬＤＢエンジン１２がデータベースを用いた処理を行う場合、インデックスデータおよび表データの合計のデータ量がメモリ領域１４２に一度にロードできるデータ量を超える１つのデータベースを用いて処理を行う場合の処理時間Ｔ０よりも、そのデータベースを分割した分割データベース１５−１〜１５−ｎのそれぞれに対する処理時間Ｔ１〜Ｔｎの合計時間ＴＡのほうが小さくなる。つまり、以下の式（１）が成り立つ。
【数１】
2011227538.tif 000003
【００３７】
一方、分割データベースの切り替え（ロード）にはある程度の時間を要する。このため、分割データベース１５−１〜１５−ｎを用いて処理を行う場合、分割データベース１５−１〜１５−ｎそれぞれに対する処理時間Ｔ１〜Ｔｎに、分割データベースの切り替えに要する時間を合算した時間が、全体の処理時間ＴＢとなる。分割データベースの切り替え時間（ロード時間）は、各分割データベースのサイズが同程度であればどの分割データベース間でも同程度であるため、その切り替え時間ｔとすると、以下の式（２）が成り立つ。
【００３８】
ＴＢ＝ＴＡ＋（ｎ−１）ｔ    …式（２）
ここで、通常、切り替え時間ｔは、処理時間Ｔ１，Ｔ２，…等に比べて小さく、ＴＢ＜Ｔ０となる。この様子を図４に示す。
【００３９】
図４において、処理時間Ｔ０は、インデックスデータおよび表データをメモリ領域１４２に一度にロードできないサイズの１つのデータベースを用いて処理を行った場合の処理時間であり、処理時間Ｔ１〜Ｔｎは、このデータベースを分割した分割データベース１５−１〜１５−ｎを用いて処理を行った場合の各分割データベース１５−１〜１５−ｎそれぞれに対する処理時間である。合計処理時間ＴＢは、切り替え時間ｔを含めた分割データベース１５−１〜１５−ｎに対する処理の合計の処理時間であって上記式（２）を満たすものである。
【００４０】
なお、ＣＰＵ２がデータベースを検索する速度自体が、使用可能なメモリ領域１４２のメモリ量やデータベースの大きさに応じて変化することはない。
【００４１】
合計処理時間ＴＢは、分割数ｎによって変わる。分割数ｎが大きいと、各分割データベース１５−１〜１５−ｎのインデックスデータおよび表データが小さくなり、それぞれの処理時間Ｔ１〜Ｔｎは小さくなる。その一方で、分割数ｎが大きすぎると、分割データベースの切り替え回数が多くなって、合計処理時間ＴＢが逆に長くなるおそれがある。このため、合計処理時間ＴＢをできるだけ短くするためには、分割数ｎは適切に決める必要がある。
【００４２】
分割数ｎについて説明する。発明者らは、ＨＳＱＬＤＢのスタンドアロンモードにおいて、インデックスデータおよび表データの合計のデータ量がある値Ｃである１つのデータベースをｎ個の分割データベースに分割し、全分割データベースを用いた処理に要する合計処理時間ＴＢを測定する実験を、さまざまなｎの値に対して行った。これにより、図５に示すような結果が得られた。
【００４３】
図５は、分割数ｎと合計処理時間ＴＢとの関係を示す図である。図５に示すように、分割数ｎが大きくなるほど、合計処理時間ＴＢは短くなる。この理由は以下のとおりである。分割数ｎが大きいほど、つまり、分割データベースのインデックスデータおよび表データのデータ量が小さいほど、ＨＳＱＬＤＢエンジン１２が使用可能なメモリ領域１４２に格納されるインデックスデータが小さく、表データの処理に使用できるメモリ量が大きくなる。このため、例えば、分割データベースの処理の途中結果の一時的な記憶や、ポインタで一時的に参照するレコードの記憶など、上記処理に必要なデータを適時記憶できるので、個々の分割データベースに対する処理時間が短くなるからである。
【００４４】
一方、分割数ｎがある程度以上に大きい場合では、分割数ｎが大きくなるほど合計処理時間ＴＢが長くなる傾向がある。これは、前述のように、分割数ｎが大きくなると分割データベースの切り替えを行う回数が多くなり、切り替え時間ｔの影響が大きくなることが要因となっている。このため、図５に示すように、合計処理時間ＴＢは、分割数ｎがある値ｎ０のときに最小値をとる。
【００４５】
また、分割前のデータベースのインデックスデータおよび表データの合計のデータ量Ｃの値が変われば、合計処理時間ＴＢが最小になるときの分割数ｎも変わる。例えば、図６に示すように、分割前のデータベースのインデックスデータおよび表データの合計のデータ量がＣ１の場合は分割数ｎ１、分割前のデータベースのインデックスデータおよび表データの合計のデータ量がＣ２の場合は分割数ｎ２の場合に、それぞれ合計処理時間ＴＢが最小になる。
【００４６】
そこで、本実施の形態では、分割前のデータベースのインデックスデータおよび表データの合計のデータ量と、合計処理時間が最小なる分割数との関係を、上記のような実験により予め求めて、この関係を示すテーブルを記憶装置４等に記憶しておく。
【００４７】
例えば、インデックスデータおよび表データの合計のデータ量がＸ１〜Ｘ２（ＭＢ）の場合は分割数Ｎ１、データ量がＸ２〜Ｘ３（ＭＢ）の場合は分割数Ｎ２、といったような関係を示すテーブルを記憶しておく。そして、前述した図３のステップＳ３０において、ＨＳＱＬＤＢエンジン１２は、ステップＳ１０で生成したデータベースにおけるインデックスデータおよび表データの合計のデータ量から、上記テーブルを参照して、最適な分割数ｎを求めて、分割を行えばよい。
【００４８】
例えば、ＣＰＵの性能等、検索時間、データベースの切り替え時間は、装置の機種等に応じて異なるので、上記のように実験的に得た分割数を用いることで、装置の性能に応じた適切な分割数を用いて、処理時間の短縮を図ることができる。
【００４９】
ところで、インデックスデータおよび表データがメモリ領域１４２に一度にロード可能であるデータベース（分割により生成されたデータベースも含む）に、レコードが追加登録されることにより、インデックスデータおよび表データが大きくなり、それらがメモリ領域１４２に一度にロードできないデータ量になることがある。この場合、その時点でデータベースを分割すればよい。
【００５０】
なお、本実施の形態において、複数のデータベースを管理するための情報を格納する管理データベースを設けるようにしてもよい。この場合、ＨＳＱＬＤＢエンジン１２は、例えば、図７に示すように、管理データベース１６、および第１〜第ｎサブデータベース１７−１〜１７−ｎを生成する。第１〜第ｎサブデータベース１７−１〜１７−ｎは、上述したデータベースの分割により生成されたものである。
【００５１】
管理データベース１６には、第１〜第ｎサブデータベース１７−１〜１７−ｎに共通する情報等を含む共有データＡと、第１〜第ｎサブデータベース１７−１〜１７−ｎを識別するための情報等を含む第１〜第ｎサブデータベース情報Ｂ１〜Ｂｎとが格納される。
【００５２】
例えば、検索要求を受け付けた場合、ＨＳＱＬＤＢエンジン１２は、検索要求の内容に応じて管理データベース１６内の情報から検索範囲としてのサブデータベースを決定し、そのサブデータベースに対して検索を行うことができる。このように、第１〜第ｎサブデータベース１７−１〜１７−ｎを管理するための管理データベース１６を設けることで、データ処理を効率化することができる。
【００５３】
例えば、アプリケーション１３が印刷装置を管理するためのジョブアカウントに関するプログラムである場合、管理データベース１６の共有データＡに含まれるデータとしては、例えば、管理対象の印刷装置のプリンタ名、ＩＰアドレス等のプリンタ情報や、印刷装置におけるユーザ番号、ユーザ名等のユーザ情報等がある。また、第１〜第ｎサブデータベース情報Ｂ１〜Ｂｎに含まれるデータとしては、サブデータベース１７−１〜１７−ｎの名前等の、サブデータベース１７−１〜１７−ｎに関する情報がある。
【００５４】
第１〜第ｎサブデータベース１７−１〜１７−ｎには、管理対象の印刷装置から取得した印刷ジョブのデータが格納される。各サブデータベース１７−１〜１７−ｎには、例えば、印刷装置ごと、月単位、といった属性をキー項目としてデータを登録するようにしてもよい。このようにすることで、印刷装置のジョブアカウントを効率的に実行することができる。
【００５５】
以上説明したように本実施の形態によれば、ＨＳＱＬＤＢエンジン１２が使用可能なメモリ領域１４２にデータベースのインデックスデータおよび表データを一度にロードできない場合、そのデータベースを分割し、それぞれの分割データベースのインデックスデータおよび表データの合計のデータ量が、メモリ領域１４２に一度に読み込み可能なデータ量以下となるようにすることで、データベースを用いた処理を行う際の処理時間を短縮することができる。
【００５６】
なお、本発明は、上記に限られず、仮想マシンを用いない場合であっても適用可能であるし、ＨＳＱＬＤＢエンジン以外のデータベースエンジンであっても適用可能である。
【符号の説明】
【００５７】
１  データベース処理装置
２  ＣＰＵ
３  メモリ
４  記憶装置
５  入力装置
６  表示装置
１０  ＯＳ
１１  Ｊａｖａ仮想マシン（ＪＶＭ）
１２  ＨＳＱＬＤＢエンジン
１３  アプリケーション
１４  仮想メモリ
１５−１〜１５−ｎ  分割データベース
１６  管理データベース
１７−１〜１７−ｎ  第１〜第ｎサブデータベース
１４１，１４２  メモリ領域
【図１】
2011227538.tif 000004
【図２】
2011227538.tif 000005
【図３】
2011227538.tif 000006
【図４】
2011227538.tif 000007
【図５】
2011227538.tif 000008
【図６】
2011227538.tif 000009
【図７】
2011227538.tif 000010