Ubiquitous DeviceSQLに関するお問い合わせ
組込み向け高速データベース 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で検索をかけ、リアルタイムに必要なデータを抽出し、アプリケーションに引き渡したり、アラートやイベントとしてアプリケーションに通知し、プログラムを起動することが可能です。
また流れているデータに対して、そのまま検索をかけることができるため、余分なワークメモリも必要とせず、より少ないメモリで動作することが可能です。