組込み向け高速データベース Ubiquitous DeviceSQL ストリームベースの世界最小クラスのデータベースエンジン

開発環境

フレームワークとして提供

  • 高速データベースとリアルタイム・イベント処理を活用することで、組込みシステム毎に最適なデータ管理システム構築が可能

DeviceSQL → C の先進的なアプローチ

  • DeviceSQL 高級言語による生産性の高いプログラミングが可能
  • プログラム制御とテーブル/データ操作を完全に分離
  • ランタイムのコードサイズを低減

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

データ操作ツール SQLProbe の提供

  • データベースファイルに対してインタラクティブに SQL コマンドを発行可能
  • CSV ファイルへのインポート・エクスポート機能をサポート

プラットフォーム環境 (ランタイム環境)

超高速、超極小なデータベース

  • 世界最小 DB エンジン (50KB~。コンフィグレーション、コンパイラの種類に依存します。)
  • マルチプロセス、マルチスレッド対応
  • 他の一般的な組込み RDBMS に比べ、15倍から 50倍も高速に実行可能
  • データ数によらず安定した応答時間
  • ロールバック、クラッシュリカバリを備えた完全な ACID トランザクションをサポート
  • 各種ストリームデータをレコードとしてデータ処理可能
     例:センサー、ネットワーク、ファイルなど
  • 長時間処理のタイムアウト、インタラプト機能をサポート

データの最適配置

  • インメモリと各種永続ストレージ (FlashROM, HDD, MMC / SD) 双方を利用し、データを最適配置
  • パフォーマンスの最適化および消費電力の低減に貢献
  • リモートデータアクセス (共有) をサポート

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

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

あらゆる CPU、OS をサポートするポータビリティ

  • ローエンドからハイエンドまですべての製品ラインのサポートが可能
  • 各種 OS をサポート
    例:μITRON (TOPPERS-PRO、eForce 社 μC3 等)、Linux、Windows CE、VxWorks、Symbian、QNX、ThreadX 他 In-House OS、None-OS 環境にも対応

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

IoT におけるリアルタイム・イベント処理に最適、データストリームのサポート

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

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