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.
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.
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.