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 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.
As a result, depending on the data attribute and amount, it is possible to use a combination of these storages. Data that requires performance and temporary tables can be stored in-memory, and in the case of large amounts of data exceeding several GB, it can be stored in persistent storage such as HDDs.
Storage is abstracted from the application, and the storage location can be changed easily by changing the parameters.
It also supports data sharing via TCP / IP network with remote devices equipped with DeviceSQL, allowing a wide range of data access according to various scenes.
Portability to support any CPU and OS
- Support for all product lines from low end to high end
- Various OS support examples: μITRON (TOPPERS-PRO and eForce μC3 etc.), Linux, Windows CE, VxWorks, Symbian, QNX, ThreadX, etc. In-House OS, None-OS environment
DeviceSQL has a design goal of supporting all product lines from low end to high end, supports 32-bit and 64-bit CPUs, and does not choose an OS. It supports In-House OS and None-OS environment without OS.
Data management using a database becomes possible even in a low-end embedded system environment that has been given up due to resource limitations. As a result, from primitive devices
such as RFID to major embedded systems such as mobile phones, digital TVs, DVD / HDD recorders, and high-ends equipped with CPUs with clocks exceeding 1 GHz such as multifunction devices, medical devices, and POS. It can be used as a common platform for all systems.
Ideal for real-time event processing in IoT, data stream support
From the beginning of development, DeviceSQL was designed considering the data management function that the embedded RDBMS has applied to the table can be applied to any data source such as sensor output, data source on the network, operation result of function
In the case of embedded RDBMS, when handling stream data, all input stream data is temporarily stored in a table. It then searches the table, extracts the necessary data, and passes it to the application. Once stored in the table, then the search is performed, so the real-time performance is lost and extra work memory is required to store the data.
On the other hand, DeviceSQL supports stream data, so it takes the input stream data as a record, searches directly with SQL, extracts the necessary data in real time, passes it to the application, and uses it as an alert or event. It is possible to notify and start the program.
In addition, since the data can be searched as it is, it does not require extra work memory and can operate with less memory.