近年、組み込み分野でもデータベースの導入が本格化している。その中で特に規模の大きい携帯電話を例に組み込みDBの基礎を解説する
「組み込みデータベース(以下、組み込みDB)」というジャンルが認知されてきたのはここ1、2年のことです。しかし、データベース(以下、DB)自体は組み込みシステムにおいてまったく新しいものではありません。その管理規模に大小があるものの、多くの組み込みシステムは何らかのDB的なデータ処理プログラムを持っていると考えてよいでしょう。
その中で、最も規模が大きい組み込みシステムのうちの1つが“携帯電話”です。そこで、本記事では身近な携帯電話を例に、組み込みDBについて解説していきます。
「組み込みDB」とは、何でしょうか?
一言でいうと、組み込みシステムに特有の制約・設計思想に基づいたデータベース管理システム(DBMS)のことです。一般的には、厳しいリソース制約上での稼働、ゼロアドミニストレーション、高い信頼性、リアルタイム性などが特長として挙げられます。
「組み込みシステム」という言葉が生活家電から制御系システム、情報家電、PC規模の情報処理システムまで幅広い規模のシステムを表すように、「組み込みDB」もサイズが数十kbytesクラスの小型DBからDBMSとして遜色(そんしょく)のない機能を備えた数MbytesクラスのDBまで幅広い規模の製品が存在しています。
組み込みDBはデータ管理ミドルウェアとして、これまでアプリケーションが自前で賄っていたデータ処理機能を提供します。機能はDB製品によって異なりますが、以下に代表的な組み込みDBの機能を示します。
これらの機能をDBに任せてしまえば、アプリケーション開発とデータ処理層は分離され、それまでアプリケーションによるデータ処理に費やしていた開発負荷を大きく軽減できます。
「では、具体的にどのくらい向上できるのか?」と思われることでしょう。
そこで、アプリケーションプログラムのステップ数を比較し、実際の効果を数値で見てみましょう(表1)。
実現する機能 | フラットファイル | RDBMS |
---|---|---|
データの新規登録 新規登録画面で入力した電話帳データ1件を登録する |
11.9 | 0.21 |
データの削除 レコード一覧で選択したデータ1件を削除する |
20.0 | 0.02 |
キーワードを用いたあいまい検索 名前に「一郎」を含むデータを検索し表示する(部分一致検索) |
19.1 | 0.11 |
データ項目の修正 電話帳レコード1件のメールアドレスを変更する |
20.8 | 0.10 |
よく使う検索のインデックス作成 名前を条件にした検索を高速化するためインデックスを作成する |
10.7 | 0.02 |
合計 | 82.5 | 0.46 |
表1 アプリケーションプログラムのステップ数比較 フラットファイル管理 vs. DB管理 フラットファイルを使用するように構築された携帯電話用 電話帳アプリケーションをRDBMSを使用するように変更した場合、開発工数がどの程度削減されるのかをプログラムのステップ数から測定したもの(開発言語:C言語) ※電話帳アプリケーションプログラムの開発工数比較 ※データアクセスプログラムのステップ数(行数)を計測 (単位:kステップ) ※ブライセン調べ |
高機能化の進むデジタル家電製品において、ソフトウェアのソースコードのステップ数は一般に数十万から百万行程度といわれています。その中でもソフトウェアの規模が突出して大きい製品が携帯電話で、その総ステップ数は200〜300万行に及びます。
図1の測定結果が示すとおり、それまでDBをまったく使用していなかったアプリケーションがDBを使用することで、データ処理に関するプログラムに限っていえば、そのステップ数は50〜200分の1に縮小されます。1万行のプログラムが、たったの50〜200行になってしまうのです。
DBによりデータ処理の開発を効率化できれば、他社との差別化を図るためのアプリケーション機能の開発に専念できるようになります。また、近年組み込み機器の内蔵メモリに保存できるデータ量が増えたことでレコードの検索や並べ替えといった、DBならではの便利な機能の実装も容易に行えるようになってきました。
では、組み込みDBソフトウェアにはどのような種類や特長があるのでしょうか?
現在、エンタープライズ系のDBMSでは“リレーショナルデータベース(RDB)”が主流となっていますが、その流れは組み込みDBにも当てはまります。つまり、多くの組み込みデータベースはRDBであり、DBへの問い合わせ言語として多くの組み込みDBがSQLに対応しています。
組み込みDBは、しばしばその仕組みから大きく2つの種類に分類されます。1つは「インプロセス型(またはライブラリ型)DB」、もう1つは「クライアント・サーバ(C/S)型DB」です。
以下にそれぞれの特長を紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.