Wiktionary.com gives the following definition of the word, embedded: “Part of; firmly, or securely surrounded; lodged solidly into; deep-rooted.” What do we mean by “embedded DBMS” and “embedded systems?” Even though the same word is used, the two usages actually refer different kinds of “embedded.” We understand that this is confusing primary because one of the important uses of an embedded DBMS is in an embedded system. So, the purpose of this short article is simply to clarify the similarities and differences in these two uses of “embedded.”
Embedded DBMS
An “embedded DBMS” (Figure 1) refers to a particular kind of database management system that is “lodged solidly into” a software application. As such, the user of the software application is not necessarily aware that there is an underlying DBMS involved. Moreover, any needed database administration or maintenance is under the control of the software application and no independent database administrator is needed.
By contrast, an “enterprise DBMS” (Figure 2) is one that is designed to be used by many different software applications and, thus, necessarily runs independently of the applications that use them. Administration of the databases managed by such systems is a complex task for which trained administrators are needed.
All of RaimaDB products are designed to be embedded database management systems. However, one of the products, RDM Server, has some enterprise-like capabilities that allow it to be used to support separate applications should that be needed.
Embedded Systems
An embedded system is a system that is “lodged solidly into” a larger system and which performs some specific operation or class of operations integral to the larger system. Usually this involves some kind of system control. Virtually all embedded systems today use computers in some form. The software that runs on those computers is referred to as “embedded software.” Embedded systems are used in many different kinds of applications today including automobile control and entertainment systems, aerospace, industrial automation, robotics, even some household appliances. Embedded systems often have important real-time requirements (e.g., flight control systems) and utilize operating systems specifically designed to support real-time operations. Wind River’s VxWorks, Green Hills Integrity, and QNX are examples of embedded operating systems designed for real-time, embedded systems software applications.
Embedded systems designers are increasingly recognizing the benefits of using database management technology to facilitate data sharing among the components of the system and to provide status and control outside the embedded system to the enterprise. Many of the computational components are physically small and resource constrained so that even given the vast increases in memory and storage available in today’s modern computers, these systems still need tools that can operate effectively in those systems where memory and storage are limited.
RDM Embedded is well-suited as an embedded DBMS for embedded systems software use. It provides a rich set of data management capabilities in a small footprint package. Moreover, it is available on the most important real-time operating system platforms. It also provides data structuring and organization capabilities that can be used to produce high performance embedded database applications.