少メモリ容量動作，プロファイル，トランザクションの機能章
4
第組み込みデータベースのアーキテクチャ
David Zhang
組み込みデータベースには，一般的なデータベースのもっているデータベースの生成や更新，削除以外にも，さまざまな機能が要求される．たとえば，少メモリ容量の動作や電源断対応などである．ここでは，こうした組み込みデータベースに要求される機能の詳細について解説を行う．
（編集部）

1

フェースを経由し，ブラウザを通してデータを参照できます．

データベース・エンジンの構造

また，データベース・エンジンが動作するとき，アプリケーションと同じバイナリに組み込まれて動作するか，別のマシン

組み込みデータベースのエンジンをユーザの側から見た場合，上で動作するかなど，さまざまな構造が考えられます．市販のデータベースを呼び出す側の言語や API（Application Program

組み込みデータベースは，これらの構造のうちの一つ，あるいming Interface）によって，いろいろな形態があります．ここでは複数に対応しています．

は Empress Software 社のデータベース・エンジンを例に，組以下，構造ごとの特徴について解説します．

み込みデータベースのアーキテクチャについて説明していきま● インプロセス（内蔵）データベース・エンジン

す．図 1 はデータベース・エンジンの構成例です．

図 2 のようにデータベース・エンジンがアプリケーションとこのデータベース・エンジンの場合，Microsoft 社の ODBCリンクし，同一のバイナリ内で動作する方式を「インプロセス・（Open Database Connectivity）を標準インターフェースとしてデータベース・エンジン」と呼びます．たとえば Empress 社の採用しています．これにより Windows を搭載したパソコンか組み込みデータベース・エンジンの場合，ユーザに対して二つら Linux が動くパソコン上のデータベースへアクセスしたり，のレベルのインターフェースを提供しています．

逆に Linux マシンから Windows マシンのデータベースへアク

一つ目は，独自の組み込み高速インターフェース MR，二つセスしたりできます．つまり，ネットワーク上の異なる OS の目は SQL です．MR は C 言語による API で，オーバヘッドがアプリケーションであっても，ODBC を経由して内部のデータ発生せず，高速にデータベースへアクセスできることを目ざしベースへアクセスできるということです．て開発されました．SQL は，その名のとおりデータベース問い

この組み込みデータベース・サーバは，PHP や JSP といった合わせ言語 SQL を使ってアクセスするものです．二つのインスクリプトに対応しています．ネットワークにつながる，あるターフェースはライブラリ形式でアプリケーションと直接リンク

システムの中のデータベースは，Apache や Web インターしており，アプリケーションと同じアドレス空間で動作します．
アプリケーション（PHP，C/C++，VB，ASP，Perl，…）

アプリケーションODBCインターフェース

コマンド・ランゲージ・インターフェース

静的SQL

動的SQL

接続サーバ

アプリケーション（Java，JSP，Servlets）

JDBCインターフェース

対話的SQL

ユーティリティカーネル・レベル・インターフェース "MR" レイヤ API
Empress RDBMS 共通カーネル

図1
データベース・エンジンの構成例

74

OS

KEYWORD ―― インプロセス・データベース・エンジン，プロファイル・ベース，トランザクション・ロック，電源断

Dec. 2006

組み込みデータベースのアーキテクチャ

データベース・アプリケーション

データベース・アプリケーション

SQL

ネットワーク

データベース・クライアント

4

データベース・サーバ
データベース・エンジン

データベースMR
データベース・エンジン

データベース

図 2 インプロセス・データベース・エンジン
図 3 クライアント-サーバ方式のデータベース・エンジン

このしくみでは，データベース・エンジンがライブラリとしない」と設定できます．この設定値より現在の空きメモリ容量てアプリケーションとリンクします．これにより，従来のサーが多い場合にはメモリを展開してソートし，空きメモリ容量がバ経由のアクセス時間や通信時間のロスを減らせます．しかも，少ない場合はほかのアルゴリズムを使ってソートします．

システム全体を統一的に管理でき，高可用性（システム・ダウEmpress 社の組み込みデータベースの場合は，「エンジンのンを起こさず，連続稼働する機能）を実現しやすくなります．

プロファイル」と「データベースのプロファイル」が用意されて● クライアント - サーバ方式のデータベース・エンジン

います．

図 3 のように，ユーザのアプリケーションとデータベース本エンジンのプロファイルは，エンジンの動作の変更に利用し体が別々のプロセス（またはタスク）として動作する方式を「クます．これはデータベースがアプリケーションごとにエンジン

ライアント- サーバ方式」と呼びます．アプリケーション側には，と直接リンクしており，同じマシン内の複数のアプリケーショデータベース・サーバを呼び出すためのクライアント用ライブンが，優先順位により異なるプロファイルを設定するというもラリがリンクされます．クライアントとサーバは別々のプロセのです．
データベースのプロファイルは，データベースの動作の変更

スですが，同一のマシン上で動作します．

● ネットワーク・ベースのデータベース・エンジンに利用します．同じアプリケーションでは，複数のデータベー

図 4 のようにネットワーク上のクライアントからネットワー

スを異なるプロファイルによって制御し，プロファイル・パラも図 3 と同じようにクライアント- サーバ型ですが，データベー

このようにして，ユーザのアプリケーションに適したデータベースを実現するわけです．

スそのものはネットワークにつながるサーバ・マシン上に構築します．

4
5

トランザクションとロックは，通常のデータベースにある機

データベースによっては，数多くの環境変数（プロファイル

能で，データベース内のデータの整合性を確保するために用意変数）を持っており，そのデータの値によってデータベース・されています．組み込みデータベースの中にも同じような機能エンジンの動作を変えられるものがあります（図 4）．たとえば，を備えているものがあります．

データのソートを行う際に，「これ以下のメモリ容量しか使わデータベース・アプリケーション

データベース・アプリケーション

データベース・アプリケーション

データベース・エンジン

データベース・エンジン

データベース・エンジン

エンジン・
プロファイル

データベース
データベース・プロファイル68● データの整合性を保持するために必要● プロファイルによって動作を変更できる

Dec. 2006

37

3 トランザクションとロックとは

2 プロファイル・ベースのエンジン図4
ネットワーク・ベースのデータ
ベース・エンジン

2

メータを修正して，データベースの動作を変更します．

クを通じてデータベースにアクセスする方式もあります．これエンジン・
プロファイル

1

エンジン・
プロファイル

データベース
データベース・プロファイル

New Products ―― プロトン，Mac OS X と Windows の同時使用を可能にする仮想化ソフトウェアを発売
プロトンは，Parallels 社と日本における総代理店契約を結んだ．Intel 社の Core 2 Duo プロセッサを内蔵する Macintosh のうえで
Mac OS X と Windows の同時使用を可能にする仮想化ソフトウェア「Parallels Desktop for Mac」を，2006 年 11 月から出荷する．

75