Ubiquitous DeviceSQL
Compact and High-Speed database for embedded devices

Ubiquitous DeviceSQL (hereinafter referred to as “DeviceSQL”) appeared in 2002 as a totally new category of data management software specialized for embedded systems and based on stream-based data management technologies. It has been used in cellular phones, onboard equipment, IP set-top boxes, communication equipment and so forth, and the latest release available as of June 2012 was DeviceSQL Release 5.1.

DeviceSQL covers all products, ranging from low-end ones to high-end ones, which cannot be covered by other embedded RDBMSs, and conforms to the Oracle PL/SQL industry-standard programming language. DeviceSQL is capable not only of making inquiries into data using an SQL statement but also of combining an SQL statement with a PL (Procedure Language) procedural language, such as an IF, FOR or LOOP statement, and thereby performing more complicated processing with a simple command.

DeviceSQL is a next-generation data management framework software (device data management) product specialized for embedded systems that offers the functionality of accessing a database (database functionality) as well as the functionality of combining an SQL statement with procedural language / import function functionality and thereby freely performing data processing (data processing functionality), such as filtering and format conversion, before and after an SQL statement.

Development environment
Provided as a framework
  • DeviceSQL makes it possible to implement the optimum data management system for each embedded system.
Advanced approach from the DeviceSQL Language to the C language
  • Enables programming of high productivity through the use of the DeviceSQL high-level language
  • Completely separates program control from table handling/data manipulation
  • Reduces runtime code size.

Flexibility is at the core of DeviceSQL, with three different programming interfaces supported. Developers have their choice of a Native C API, an Intrepreted SQL API which can produce SQL queries from text strings and the DeviceSQL Language which has a syntax similar to Oracle's PL/SQL.Unique to DeviceSQL, the DeviceSQL Language is a very powerful feature of DeviceSQL. DeviceSQL Language allows developers to rapidly develop small footprint, high performance applications in a high level language. EPL is compiled into ANSI compliant C code by the DeviceSQL compiler, which is then compiled and linked directly into the target application. This allows for queries and logic to be performed natively and does not incur the overhead of query parsing that other RDBMS suffer from.

Separation of program control from table handling/data manipulatio
Separation of program control from table handling/data manipulation

Platform environment (runtime environment)
An ultrahigh-speed, ultra compact database
  • Is the world’s most compact DB engine (a footprint of 24 KB with the minimum configuration and 50 to 80 KB for general use).
  • Supports multi-processes and multi-threading.
  • Can perform processing at speeds 15 to 50 times higher compared to other ordinary embedded RDBMSs.
  • Achieves a stable response time which does not depend on the number of data.
  • Supports perfect ACID transactions provided with rollback and crash recovery functionalities.
  • Can process various stream data as records.
  • Examples of stream data: sensor data, network data, file data
  • Supports timeout/interrupt functionalities to be performed in lengthy processing.
Achieving optimal data placement
  • Places data at optimal locations by using its in-memory and various permanent storage media (FlashROM, HDD, MMC/SD).
  • Contributes to the optimization of performance and reduced power consumption.
  • Supports remote data access (share).

Whereas other embedded RDBMSs support either in-memories or permanent storage media, as shown in the following figure DeviceSQL supports four data reference (store) modes: namely, streaming, in-memory, memory-mapped storage and device direct storage (paged storage) modes.

Optimal placement of data

Dynamic opening/closing of database files

DeviceSQL allows applications to dynamically open/close a database file at any time. This functionality makes it possible to store message data on a language-by-language basis when an application requires multi-language support and easily switch, for example, from a Japanese message to an English one during the control of the application. In addition, this functionality also makes it possible to temporarily close the database file and free memory resources to make them available to other applications when there are any constraints on memory available in an embedded system and thereby enable the entire system to effectively use that memory.

Release 5.0 New features
Spacial Search

Spacial Search has been added for DeviceSQL 5.0. This is made possible by the new R*-Tree index, which enables quick searches in both two (x,y) and three (x,y,z) dimensions. This exciting new feature opens up a range of possibilities for embedded applications, such as “find all the convenience stores within a 2km radius” or “display all Post Offices on my current map”.

Spacial Search

Full text search

A Full Text Search engine supporting the N-gram algorithm has been added to DeviceSQL. The N-gram algorithm allows rapid searching of two or more tokens at a time.
FTS features include:

  • 1. N-gram algorithm support
  • 2. Text Normalization based on:
  •  (a) Case insensitivity            i.e. "A" and "a"
  •  (b) Kanji orthographic variants       i.e. "沢" and "澤"
  •  (c) Katakana orthographic variants    i.e. "A" and "A"
  •  (d) Kana based Diphthongs         i.e. "バ" and "ヴァ"
  •  (e) Unicode Equivalence           i.e. "ユ" and "ュ"
  •  (f) Numerical Equivalence          i.e. "three" and "3"
  • 3. Token Mapping (MAPTABLE)
  • Different variations of tokens are able to be mapped to a canonical form.
  • Ex:"Mag", "Zine" and "Newsmagazine" can all be mapped to "Magazine".
Support for data streams, ideal for real-time processing

DeviceSQL was designed from the beginning of its development with consideration given to making the data management functionalities that are applied by embedded RDBMSs to tables also available to any data source, such as sensor outputs, data sources on a network, or the results of an operation performed by a function.
DeviceSQL can perceive input stream data as records, immediately perform a search in SQL, extract the necessary data in real time and transfer it to an application. In addition, DeviceSQL can perform a search for streaming data without change, and therefore can operate with a smaller amount of memory, without needing any redundant working memory.

Interconnection with enterprise-oriented RDBMSs
  • DeviceSQL DataSync (available as an option) enables data synchronization between enterprise-oriented RDBMSs and DeviceSQL.

DeviceSQL uses new, unprecedented, technologies to provide a framework to improve the performance, operability and intelligence of embedded systems from the aspect of data management as well as to allow embedded systems to create new added value. At the same time, it also makes it possible to achieve higher development productivity and higher quality.