製品情報

組込みデータベース DeviceSQL
世界最小、超高速の組込みデータベース

DeviceSQL4.3 アップデートのポイント
  • 【基本性能の向上】
  • DeviceSQL4.3では、検索、ソート機能の機能強化に加え、特にデータ挿入、データ更新、データ削除の大幅な性能向上がはかられており、従来版と比較して、データ挿入で約2倍、データ更新で約2倍、データ削除では約10倍近い処理速度の向上。
  • ・マルチカラムインデックスがサポートされ、データベース機能として重要な検索、ソートが機能強化
  • この機能により、例えば楽曲検索において、「ジャンル」と「歌手名」のインデックスキーを指定して、従来よりも高速かつ、効率の良い検索を行うことができるようになります。
  • ・データ挿入、データ更新、データ削除の大幅な性能向上

  • デジタルカメラ等の機器での組込みデータベースの採用が増え、高速連写された写真の撮影日時、各種撮影パラメータ、GPS等の位置情報等のメタ情報をいち早くデータベースに格納するデータ挿入時間や、大量の写真から選択されたメタ情報をいち早く削除するデータ削除時間が重要視されてきており、このようなマーケットからの要求に応えたものです。
  • 【DeviceSQLコンパイラ時間の短縮】
  • DeviceSQL4.3では、DeviceSQLコンパイラの構文解析エンジンを刷新し、Cソースコード生成時間を従来比約1/4に短縮しました。
  • 【トリガー機能のサポート】
  • DeviceSQL4.3では、トリガー機能がサポートされています。トリガー機能は、テーブルに何らかの操作が加えられた時にあらかじめ指定した処理を自動的に起動する機能で、一カ所で行われた変更を他のテーブル等に反映するといった処理が可能です。この機能を使用すると、エンタープライズ系のRDBMSからDeviceSQL DataSyncを経由して、DeviceSQL搭載機器のテーブルが更新された場合に、トリガー機能を使用してデータが更新されたことをアプリケーションに通知し、それに対応した適切な処理を行うことが可能となります。

  • なぜ今、組込みデータベースか?

    近年、組込みシステムの高機能化に伴い、組込みシステムで取り扱うデータの種類並びにデータ量が増加の一途を辿っています。プログラムが複雑化し、C言語だけによるデータ管理はすでに限界に来ており、品質を確保するのに多大な時間を要するなど、新たな課題となっています。この課題の解決策として組込み向けデータベースが注目されています。Ubiquitous DeviceSQL(以降、DeviceSQL)は、組込みシステムに特化し、ストリーム・ベースド・データ管理技術に基づくまったく新しいカテゴリーのデータ管理ソフトウェアとして2002年に登場し、携帯電話、車載機器、IP-STB、通信機器などでの採用実績を重ね、2010年5月現在、DeviceSQL Release 4.3がリリースされています。

    DeviceSQLは、他の組込みRDBMSではカバーできない、ローエンドからハイエンドまでのすべての製品ラインをカバーし、業界標準であるOracle PL/SQLに準拠し、SQL文を使用してデータを問い合わせるだけではなく、IF文、FOR文、LOOP文といった手続き型言語であるPL(Procedure Language)との組み合わせによって、簡単なコマンドでより複雑な処理を行うことが可能です。さらにDeviceSQLは、組込み用途向けにPL/SQLを機能拡張し、C言語へのエクスポート機能ならびにC言語へのインポート機能がサポートされています。これらにより、C言語のアプリケーションからDeviceSQLの関数の呼び出しや、反対にDeviceSQL言語内でC言語の関数を呼び出しが行え、このインポート関数機能を使用することにより、既に所有しているC言語のデータ管理用の資産を無駄にすることなく再利用できるように工夫されています。

    Ubiquitous DeviceSQL ユーザー様のお声はこちら

    DeviceSQLは、このようにデータベースへのアクセス(データベース機能)に加え、手続き言語およびインポート関数機能を組み合わせることにより、SQL文の前後でフィルタリング、フォーマット変換等のデータ処理(データ処理機能)を自由に行うことができる組込みシステム向けに特化した次世代のデータ管理フレームワークソフトウェア (Device Data Management) 製品です。

    DeviceSQL=データベース機能+データ処理機能

    また、DeviceSQLは、超高速、コンパクトなDBエンジンを内蔵し、組込みシステムで使用される様々なデータをその属性に応じてインメモリあるいはFlashROMやHDDなどの永続ストレージに最適に格納可能です。またDeviceSQL言語によりアプリケーションのコードとデータ管理のコードを完全に分離することができ、それぞれを並行開発でき、データの追加等の仕様変更にも柔軟に対応することが可能です。この製品はハードウェアやOSのプラットフォームを問わないことはもちろんのこと、お客様がすでに構築済みの膨大なソフトウェア資産を無駄にすることなく、最適で単純化されたシステムに移行することを可能にしています。

    製品の位置づけ

    製品の位置づけ

    データ管理ソリューションは、大別すると、エンタープライズ系のOracle、Sybase、IBM DB2に代表される汎用RDBMS、汎用RDBMSの機能をシュリンクし、組込み用途向けにダウンサイズした組込みRDBMSがあります。DeviceSQLは、組込みシステムでの使用を考慮し、必要とされる機能を厳選し、システムリソースが制約された組込みシステムからハイエンドのシステムでも動作するように設計されています。

    適用アプリケーション

    それぞれの機器の、どういった機能でDeviceSQLが利用されているか(利用することが可能か)をご紹介します。

    携帯電話
    • 電話帳
    • 構成情報管理
    • デジカメコンテンツ、着メロ等のデータ管理
    • 楽曲メタデータ管理
    携帯音楽プレーヤ
    • 楽曲メタデータ管理
    ホームAV機器
    • ・デジタルテレビ
    • ・DVD/HDDレコーダ
    • ・ホームオーディオ
    • EPG管理
    • コンテンツ管理
    • 楽曲メタデータ管理
    • データハンドラ
    車載機器
    • ・カーナビ
    • ・カーオディオ
    • ・ドライブレコーダ
    • 構成情報管理
    • 楽曲メタデータ管理
    • 各種センサデータ管理
    • 位置データ管理
    OA機器
    • ・プリンタ
    • ・複合機
    • プリント情報管理
    • 構成情報管理
    • ログ管理
    アミューズメント
    • ・カラオケシステム、情報端末
    • ・ゲーム
    • ・パチンコ、パチスロ
    • カラオケ楽曲管理
    • 楽曲検索
    • 構成情報管理、キャラクタ管理
    • 玉管理、課金管理、ログ管理
    ネットワーク機器
    • ・ルータ
    • ・スイッチ
    • ・SIPサーバ
    • ・IP-PBX
    • 構成情報管理
    • ルーティング情報管理
    • スイッチ情報管理
    • ログ管理
    • データハンドラ
    計測機器
    • 計測データ管理
    • 構成情報管理
    • ログ管理
    FA機器
    • 構成情報管理
    • 金型、工具管理
    • 生産計画管理、実績管理、課金管理
    • データハンドラ
    • ログ管理
    医療機器
    • 構成情報管理
    • 計測データ管理
    • ログ管理

    DeviceSQLは、今までにない新しいテクノロジーにより、組込みシステムに対して、データ管理という側面から、パフォーマンスの向上、操作性の向上、さらにインテリジェンスを向上させ、組込みシステムに新たな付加価値を生み出すフレームワークを提供します。また同時に開発の生産性、品質の向上をもたらします。

    開発環境
    フレームワークとして提供
    • 組込みシステム毎に最適なデータ管理システムの実装が可能
    DeviceSQL→Cの先進的なアプローチ
    • DeviceSQL高級言語による生産性の高いプログラミングが可能
    • プログラム制御とテーブル/データ操作を完全に分離
    • ランタイムのコードサイズを低減

    DeviceSQLでは、DeviceSQL言語でデータロジックを記述し、コンパイラを用いてCコードに変換する方式を採用しています。これにより、他の組込みRDBMSが通常ランタイム環境で行うSQL文の解釈、構文チェック、エラーチェック等の処理をプリコンパイル時に行うことで、メモリフットプリントの極小化とパフォーマンスの高速化を実現しています。またDeviceSQLプログラム内でCの関数ならびにDeviceSQL関数をインポート/エクスポートすることができるため、きめ細かなデータ操作を行うことができ、アプリケーションとデータ操作のコードを完全に分離することが可能です。

    プログラム制御とテーブル/データ操作の分離
    プログラム制御とテーブル/データ操作の分離


    データ操作ツールSQLProbeの提供
    • データベースファイルに対してインタラクティブにSQLコマンドを発行可能
    • CSVファイルへのインポート・エクスポート機能をサポート
    プラットフォーム環境 (ランタイム環境)
    超高速、超極小なデータベース
    • 世界最小DBエンジン (最小時24KB、一般的な使用の場合50-80KB)
    • マルチプロセス、マルチスレッド対応
    • 他の一般的な組込みRDBMSに比べ、15倍から50倍も高速に実行可能
    • データ数によらず安定した応答時間
    • ロールバック、クラッシュリカバリを備えた完全なACIDトランザクションをサポート
    • 各種ストリームデータをレコードとしてデータ処理可能
      例: センサー、ネットワーク、ファイルなど
    • 長時間処理のタイムアウト、インタラプト機能をサポート
    データの最適配置
    • インメモリと各種永続ストレージ(FlashROM, HDD, MMC/SD)双方を利用し、データを最適配置
    • パフォーマンスの最適化および消費電力の低減に貢献
    • リモートデータアクセス(共有)をサポート

    他の組込みRDBMSは、インメモリあるいは、永続ストレージどちらか一方をサポートしているのに対して、DeviceSQLは、次の図に示すストリーム、インメモリ、メモリマップドストレージ、デバイスダイレクトストレージ(ページストレージ)の4つのデータ参照(格納)方式をサポートしています。

    データの最適配置

    これにより、データ属性、量に応じて、これらのストレージから組み合わせて使用することが可能です。パフォーマンスが要求されるデータ、一時的なテーブルは、インメモリに、そして、数GBを超える大量データの場合には、HDD等の永続ストレージに格納するなど自由度が広がります。ストレージは、アプリケーションから抽象化されており、格納先を変えるのも、パラメタを変更することで簡単に行えます。
    またDeviceSQLが実装されたリモート機器とTCP/IPネットワークを介したデータ共有もサポートしていますので、様々なシーンに応じて、幅広いデータアクセスが可能です。

    あらゆるCPU、OSをサポートするポータビリティ
    • ローエンドからハイエンドまですべての製品ラインのサポートが可能
    • 各種OSをサポート
      例: uITRON、Linux、Windows CE、VxWorks、Symbian、QNX、ThreadX他 In-House OS、None-OS環境にも対応

    DeviceSQLは、ローエンドからハイエンドまでの全製品ラインのサポートを設計目標に置き、16bit、32bit、64bitの主要なCPUをサポートし、OSも選びません。In-House OSや、OSが載っていないNone-OS環境もサポートしています。
    今までリソースの制限で使用をあきらめていたローエンドの組込みシステム環境下でも、データベースを使用したデータ管理を行うことが可能になります。これにより、RFIDなどのようなプリミティブなデバイスから、携帯電話、デジタルTV、DVD/HDDレコーダのような主要な組込みシステム、さらに複合機や医療機器、POSといったクロック1GHzを超えるCPUが搭載されたハイエンドのシステムすべてにおいて共通プラットフォームとして使用することが可能です。

    ローエンドからハイエンドまで幅広い組込みシステムに搭載可能
    ローエンドからハイエンドまで幅広い組込みシステムに搭載可能

    データベースファイルのダイナミックなOPEN/CLOSE

    DeviceSQLでは、アプリケーションが任意のタイミングでデータベースファイルをダイナミックにOPEN/CLOSEすることが可能です。この機能により、アプリケーションで多言語サポートが必要な場合、言語毎にメッセージデータを異なったデータベースファイルとして格納して、アプリケーションの制御で、日本語メッセージから英語メッセージへの切り替え等が簡単に行うことが可能です。また組込みシステムで使用可能なメモリが制約されている場合に、一時的にデータベースファイルをCLOSEすることによって、他のアプリケーションにメモリリソースを開放することによりシステム全体でのメモリの有効な利用を可能にします。

    次のような場合に有効です。

    • 多国語対応の表示メッセージをDBファイル化
    • 一定期間ごと、あるいはデータ量ごとにファイルを切り替えてログデータを保存したい
    • DBファイルを細分化し使用メモリを低減
    • 必要な時のみデータをメモリに展開することで使用メモリ量を削減

    データベースファイルのダイナミックなOPEN/CLOSE

    リアルタイム処理に最適、データストリームのサポート

    DeviceSQLは開発当初から、組込みRDBMSがテーブルに対して適用してきたデータ管理機能を、センサー出力、ネットワーク上のデータソース、関数の演算結果など、任意のデータソースに対しても適用できるように考慮して設計されました。これに対して、他の組込みRDBMSの演算子は、テーブル・データソースだけしか操作できません。
    組込みRDBMSの場合、ストリームデータを取り扱う場合、入力されたすべてのストリームデータを一旦、テーブルに格納します。その後、テーブルを検索し、必要なデータを抽出し、アプリケーションに引き渡します。テーブルに一旦格納した後、検索をかけるため、リアルタイム性が失われるのと、データを格納するためのワークメモリが余分に必要になります。

    リアルタイム処理に最適、データストリームのサポート

    一方DeviceSQLは、ストリームデータをサポートしているので、入力されたストリームデータをレコードとしてとらえ、直にSQLで検索をかけ、リアルタイムに必要なデータを抽出し、アプリケーションに引き渡すことが可能です。また流れているデータに対して、そのまま検索をかけることができるため、余分なワークメモリも必要とせず、より少ないメモリで動作することが可能です。

    エンタープライズ系RDBMSとの連携
    • DeviceSQL DataSync(オプションとして提供)によりエンタープライズ系RDBMSとDeviceSQL間でデータ同期が可能

    DeviceSQLは、今までにない新しいテクノロジーにより、組込みシステムに対して、データ管理という側面から、パフォーマンスの向上、操作性の向上、さらにインテリジェンスを向上させ、組込みシステムに新たな付加価値を生み出すフレームワークを提供します。また同時に開発の生産性、品質の向上をもたらします。

    お問い合わせフォームはこちら

    DeviceSQLは、Framework(ライブラリ)として提供され、アプリケーションに組み込んで使用します。 DeviceSQL は、大別すると、開発ホスト上にインストールするDeviceSQL開発環境(SDK)とターゲット上で動作するDeviceSQLランタイムサービスから構成されています。またエンタープライズ系のRDBMSとDeviceSQLが搭載された機器間でのデータ同期を行うためのDeviceSQL DataSync がオプション製品として用意されています。

    DeviceSQL開発環境(SDK) DeviceSQLランタイムサービス DeviceSQL DataSync 構成図


    DeviceSQL開発環境(SDK) DeviceSQLランタイムサービス DeviceSQL DataSync 構成図

    DeviceSQL開発環境(SDK)には、次のコンポーネントが含まれています。

    • DeviceSQL Compiler は、DeviceSQL言語で記述されたプログラムロジックとデータ定義を自動的に解析し、最適化されたアプリケーションコードをANSI Cコードで生成します。
    • Starter Samples は、DeviceSQLの各種機能を使用したサンプルプログラムが含まれています。

    SQL Probeは、高度なデータベース操作ツールで、コンソールより、インタラクティブにデータベースとやりとりが可能です。またCSVファイルとのインポート/エクスポート機能を備えています。
    DeviceSQL ランタイムサービスは、 組込みシステム向けに最適化された、高性能のデータベースエンジンを含むサービスライブラリで、次に示す各種サービスから構成されています。

    DeviceSQL R4.2で提供されるサービス 概要
    基本サービス DeviceSQLメモリサービス メモリ獲得/解放ルーチンの登録
    DeviceSQLデータベースハンドルサービス 複数のDBインスタンスをサポートし、同一メモリ空間内でも複数の独立したDB環境を構築可能
    DeviceSQLストレージサービス Memory Mapped型サービスを提供
    DeviceSQLページサービス Paged Storage型サービスを提供
    DeviceSQLインデックスサービス 各種インデックスサービスを提供
    DeviceSQL Callback On Eventサービス DMLのキャンセル、エラーハンドリング等
    DeviceSQL Dynamic C APIサービス C言語のみ、あるいはDevcieSQL言語との組み合わせて動的なDBアプリケーションの構築が可能
    DeviceSQL Interpreted SQL SQL文字列を使用したプログラミングが可能
    拡張サービス* DeviceSQL Shared Accessサービス 複数プロセス間でPaged Storageを共有
    通信サービス(Data Streams API) BSD Socket I/Fを介して、リモートノードとのDB共有のためのフレームワークを提供
    DeviceSQLスレッドセーフティサービス テーブル操作の排他制御、アクセス制御を提供

    * 拡張サービスは、OSプラットフォームの提供する機能に依存しており、実装できない場合があります。

    開発フロー

    次図は、DeviceSQLを使用したアプリケーションの開発フローをまとめたものです。

    開発フロー

    1.データロジックの記述
    • ・データ定義
    • ・データに対する操作の定義
    • ・データの格納場所、ソースの定義
    • ・インターフェイス定義
    2.Cコードの生成とテスト
    • ・Cコードの生成(DeviceSQL Compiler)
    3.コンパイルおよびリンク
    • ・アプリケーションのコード
    • ・生成されたCコード
    • ・DeviceSQL Runtime Services

    データロジックの記述は、テキストエディタを使用してプログラミングします。

    DeviceSQLは、高機能でタイプ付けされた手続き型言語であるDeviceSQL言語によりSQLを拡張しています。この言語は業界標準であるOracle PL/SQLをベースにしており、コードはDeviceSQL CompilerによりANSI Cコードに変換されます。この言語で設計者はデータ管理機能を実現するためにアプリケーションに特化したAPIを自由に定義することができます。

    DeviceSQLプログラムのサンプルを次に示します。

    DeviceSQLプログラムサンプル

    DeviceSQLでは、PL/SQL言語仕様に準拠し、SQL文の実行に加え、IF THEN ELSE等の条件分岐、 FOR、WHILEのループ等の手続き処理が可能になっています。またDeviceSQLでは、組込み用途向けに外部関数のインポート/エクスポート機能を追加して、より柔軟なプログラミングが可能になっています。
    ユーザは、この手続き言語と問い合わせ言語であるSQLを組み合わせて、データ処理部とデータベース機能部をDeviceSQL言語でプログラミングします。これにより、複雑なデータ処理を含むデータロジックの記述を簡単なコマンドを組み合わせることによって実現することが可能になります。

    ユーザアプリケーション(ビジネスロジックプログラム)からは、ユーザが定義したエクスポート関数(API)を呼び出して使用します。

    構成図

    お問い合わせフォームはこちら
    開発環境
    開発言語
    • DeviceSQL(業界標準Oracle PL/SQL準拠)
    • C/C++ (Dynamic SQL API)
    • C/C++ (Native API)
    ツール
    • DeviceSQL Compiler
    • Sample Applications
    • DeviceSQL SQLProbe
    開発ホストOS
    • Windows 2000/XP/Vista
    • Linux
    • Solaris/SPARC
    ターゲット環境(ランタイム)
    フットプリント
    • 最小24KB 一般的な使用の場合50-80KB
    実装方式
    • ライブラリ型
    データモデル
    • リレーショナル
    • データストリーム
    最大データベースサイズ
    • 4TB (4096GB)
    最大テーブル数/データベース
    • 2048
    最大レコード/テーブル
    • 無制限 (メモリ等のリソース空きサイズに依存)
    データフォーマット&エンコード
    • Unicode UTF-8, UTF-16, ASCII
    • “Instant-On” paged index/storageフォーマット
    データタイプ INT, INTEGER, CINT, CLONG, LONG, SHORT, CSHORT,DOUBLE, CDOUBLE, VARCHAR, VARCHAR2 ,NVARCHAR, TIMESTAMP, DATE, BINARY, BIT8, BIT16, BIT32, POINTER, PHONECHAR, RECORD, STREAM, TABLE
    インデックスサービス
    • Hash, Double Hash, MP-AVL Index, MPHash Lite
    • B-Tree
    ストレージサポート
    • ストリーム
    • インメモリ
    • マップドストレージ(Mapped Storage)
      FlashROM, HDD, SD/MMC etc.
    • デバイスダイレクトストレージ(Paged Storage)
      FlashROM, HDD, SD/MMC etc.
    データ共有
    • マルチプロセス (Paged Storage)
    • マルチスレッド
    リモートアクセス リモートのDeviceSQL DBファイルへのアクセス
    (*プラットフォームに依存)
    RDBMSとのデータ同期 DeviceSQL DataSyncによりサポート
    • Oralceデータベース(Oralce 10g, 11g)
    サポートCPU 16bits, 32bits, 64bits各種CPUに対応
    サポートOS uITRON, Linux, Windows CE, Symbian, VxWorks, QNX, ThreadX, In house OS他、None-OSにも対応
    お問い合わせフォームはこちら