加藤大受(かとう だいじゅ)

 日立製作所ソフトウェア事業部勤務。データベースの奥深さに興味を持ち,個人活動ではオープンソースのRDBMSのプロジェクトにて日本語化や記事執筆などを行っている。仕事では,組み込みDBである「Entier」のエバンジャリストとして組み込み開発者にDBの重要性を理解してもらうための活動を積極的に推進中。

 前回は,オープンソースの組み込みデータベースとしてSQLiteを使った非常に簡単なプログラムを作成しました。今回は,前回と同じ郵便番号データを利用したコンソールベースのプログラムを,商用の組み込みデータベースを利用して作ってみたいと思います。

オープンソース製品との違い

 ここ最近は,オープンソース・データベース製品の機能強化のペースが早いため,商用製品との違いは少なくなってきています。非常に大規模,データウエアハウスでの利用,様々なマルチメディア・データを利用する,といったケースでない限り,オープンソースのデータベース製品でもエンタープライズ分野で利用できるようになっています。

 しかし,組み込み分野においては,オープンソース製品と商用製品との差はまだ大きな隔たりがあります。個人的な見解ではありますが,この理由について筆者は次のように思います。

  • オープンソース製品の利用が少ない
  • データベース製品の利用が始まったばかり
  • オープンソース製品の開発者は非常に少ない。また敷居が高い
  • サポート・サービスを提供する企業が少ない

 組み込み分野でのオープンソース製品の活用は,OSを除いて,まだ始まったばかりだと思います。実際に,sourceforge.netなどのサイトをのぞいてみても,組み込み分野のプロジェクトは非常にわずかです。組み込み分野ではターゲットとなるプロセサが数多く存在しており,プロセサのアーキテクチャごとにコンパイラが異なるため,オープンソース製品の開発がしづらいという面もあります。

 μITRON準拠のオープンソースのOSであるTOPPERSや,マルチプラットフォーム開発を実現する統合開発環境であるWideStudioのように,国内にも非常に優れたオープンソース製品が存在しています。しかし,一般の組み込み開発者にとっては,これらのプロジェクトに参加して協同で製品を作り上げていくには敷居が高く感じられるようです。

 もう一つ,サポート面でも課題があります。組み込み分野でオープンソース製品を利用した開発を請け負う会社は多いですが,サポート・サービスを提供する企業はほんのわずかです。

 こうした状況から言っても,当分の間はオープンソースの組み込みデータベースが積極的に使われることはないのではないかと感じています。

 一方,商用の組み込みデータベース製品は,第2回で紹介したように,SQLをデータ処理に使えるライブラリなどを含めると,すでに数十種類の製品が存在します。各製品ともしのぎを削って機能性,信頼性,省メモリー性などをアピールしています。ちょうど1980年代の後半に様々なエンタープライズ分野のデータベースが登場してきたころに似ており,これからどの製品がデファクトになっていくかの競争が始まっているとも言えるでしょう。

 第2回で説明したように,商用の組み込みデータベースのアーキテクチャは,クライアント・サーバー型のもの,エンタープライズのデータベースとの連携を売りにしているもの,インメモリー・データベースで動作するものなど様々です。この連載では今後,それぞれのアーキテクチャを持つ製品を紹介していきたいと思います。今回は,商用の組み込みデータベース製品の例として,日立製作所が開発・販売している「Entier」を取り上げたいと思います。

国産組み込みデータベース「Entier」

 Entierは,組み込みに特化したデータベースです。商用の組み込みデータベースは,もともと米Intelのx86アーキテクチャで動作するエンタープライズ用に開発されたものを組み込み向けに改良した製品が多いのですが,Entierは組み込み向けに一から開発された製品です。そのため,最初のバージョンがリリース(2006年1月)されてからまだ1年数カ月という新しい製品です。現在(原稿執筆時点)のバージョンは,2007年3月にリリースされたEntier V2です。

 Entierの主な特徴や機能を簡単に説明すると,次のようになります。

  • 組み込み機器で利用できるリレーショナル・データベース
  • SQL92準拠
  • 地図検索に適用できる空間検索機能
  • インクリメンタルサーチ機能
  • 日本語全文検索機能
  • データベース・ファイルの容量削減
  • メモリーの効率的利用
  • ターゲットシステム用ディクショナリ
  • 開発環境としてWindowsとLinux,ターゲット環境としてWindows Embedded CE,Windows Mobile,T-Kernel,ITRON,VxWorksなどをサポート

 Entierは,組み込み分野で利用できるリレーショナル・データベースです。問い合わせ言語としてSQLを利用することが可能です。カーナビゲーションなどでの利用を考慮した強力な空間検索機能,部分一致での高速な検索を実現する全文検索機能,組み込み機器での利用に適した使用メモリー上限指定機能,ディクショナリからSQLの実行に必要な情報だけを抽出してメモリー上に保持しておき,前処理の動作を高速に行えるターゲットシステム用ディクショナリなどを備えています。また,主要なRTOSをターゲットシステムとしてサポートしています。

 Entierの詳細な機能については,日立製作所のEntierのWebサイトを参照してください。

 Entierを使った開発を行う場合は,WindowsまたはLinuxを開発環境として利用し,C/C++またはJavaを利用して開発を行います。C/C++の場合はECLI関数と呼ばれるEntierのAPIを利用し,Javaの場合は製品付属のタイプ2のJDBCドライバを利用して開発することになります。

 データベースについてもまずは開発環境で作成し,ターゲットシステム用に移行します。開発環境とターゲットシステムのシステム構成は図1のようになります。開発環境ではOSのファイルシステム,例えば,WindowsならNTFSまたはFAT32,Linuxならext2またはext3などを利用します。一方,ターゲットシステムではEntier付属のEntierファイルシステムを利用します。

図1●システム構成
図1●システム構成