Skip to content

The Road to Raima’s SQL

Randy talks about Raima’s part in creating the embedded database industry with the product, db_VISTA, and how its 25 year history has led to today’s success. Future plans for RDM Embedded database related to SQL are also discussed.

Raima’s first database management system (DBMS) product was released over 25 years ago under the name db_VISTA. Our first venture into the world of SQL came in the form of db_QUERY which was an SQL-like query and report writing tool for db_VISTA databases. In 1992, we introduced our client/server DBMS originally called Raima Database Server, shortly thereafter renamed Velocis and now called RDM Server. The client/server architecture was designed for resource-rich computers which allowed us to provide a full-featured SQL implementation.

Today, except perhaps for the smallest of embedded computing devices, most embedded computers have sufficient computing resources to support a healthy subset of SQL and as because of this Raima has decided to provide an SQL constructed on top of the RDM database engine.

Our Journey Continues

It’s no real secret that Raima is currently developing a brand new SQL for our RDM product that is scheduled to be released at the end of this quarter. I have been the principal architect of this new SQL and have been focused on building a new SQL that is designed specifically for the needs of the embedded systems software developer. This has been the overriding goal of this project. I will be presenting my paper on the new RDM Embedded SQL “Is Using SQL in an Embedded Computer Application Like Trying to Squeeze an Elephant into a Mini?” at this years Embedded World Conference in Nürnberg, Germany on March 3rd. If you’re planning to attend the event and would like to meet with me please let me know so that we can set up a meeting time.

Why not just implement SQL from RDM Server?

The native API for RDM Server SQL is based on our ODBC driver. However, ODBC is designed for a wide variety of SQL systems. Besides that, it is inconsistent and its specification is ambiguous in places. It also tends to be a moving target as changes continue to be made to it. Because of this, Raima decided that we would design our own native API for RDM Embedded SQL. It is not ODBC but it is similar enough so that an experienced ODBC programmer will have no difficulty using it. For example, function rsqlPrepare compiles as statement specified in a null terminated string as does SQLPrepare but without having to pass SQL_NTS. Data type codes are defined using an enum typedef instead of ODBC’s #define constants which are subject to change over time (e.g., SQL_DATE, etc.). This native API is more efficient in that it only needs to deal with the specific features provided in RDM Embedded SQL. And, because this API is not ODBC, the SQL runtime engine implementation is simpler. However, an ODBC API is also provided as a layer over the native API. So, if the use of ODBC is required it can be used either through a direct link with the RDM Embedded libraries and/or through client/server access to the RDM Embedded SQL database from a remote computer.

What else is planned for RDM Embedded?

Besides providing SQL, this upcoming release of RDM Embedded will also sport a new C++ API which will be discussed in an upcoming blog…

Raima and I are extremely excited about the new direction Raima has taken. We have launched many new initiatives based on customer feedback we have received over the last 2 years. Stay tuned for my next blog where I will describe more about what we will do with RDM Server products and customers. Our goal will continue to be to have highly satisfied customers and to enjoy the experience of making that happen together.

Also View:

What is an Embedded Database? Finally…A Basic Definition

Raima’s Sneak Preview of SQL for RDM Embedded