In this blog post, Randy Merilatt talks about the development of SQL for RDM Embedded database. He also discusses Open Database Connectivity’s (ODBC) relationship with SQL and RDMe and the relationship of Raima’s first product, DB_VISTA, and SQL.
It is not really any secret that we currently have under development a brand new SQL for our RDM Embedded (RDMe) product that is due out around the end of the first quarter this year. I have been the principal architect for the new SQL and that should be my final project as a software developer here at Raima. I am of course excited about taking on the role of CTO but at the same time, I am enjoying the building a new SQL system that is designed for the needs of the embedded systems software developer. I will be presenting the “Elephant” paper on the new RDMe SQL (“Is Using SQL in an Embedded Computer Application Like Trying to Squeeze an Elephant into a Mini?”) at the Embedded World Conference in Nürnberg, Germany on March 3rd. If you’re planning to attend, please let me know so we can set up a time to meet.
Raima’s first DBMS product, released over 25 years ago, was called 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 (RDMs), shortly thereafter renamed Velocis and now called RDM Server. The client/server architecture was designed for resource-rich computers allowing us to provide a full-featured SQL implementation. Today, except perhaps for the smallest of embedded computing devices, most computers have sufficient computing resources to support a healthy subset of SQL and so we will soon be providing an SQL constructed on top of the RDMe database engine.
The native API for RDMs SQL is based on ODBC. 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, we decided that we would design our own native API for RDMe SQL. It is not ODBC but it is similar enough so that an experienced ODBC programmer will have no difficulty in learning 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 a 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 RDMe SQL. And, because this API is not ODBC, the SQL runtime engine implementation is simpler.
An ODBC API is also provided as a layer over the native API. So, if use of ODBC is required it can be used either through direct link with the RDMe libraries and/or through client/server access to the RDMe SQL database from a remote computer.
Besides providing SQL, this upcoming release of RDM Embedded will also sport a new C++ API which will be discussed in an upcoming blog.
I am excited about the new Raima. While we are grateful for the support received from Birdstep over the last decade but because we are now independent we have a steadfast commitment only to the database products and our customers. We have the freedom to dream and to execute on those dreams. We have a wonderful spirit of unity and commitment among all of the management and employees here at Raima. Our goal is to have highly satisfied customers and to enjoy the experience of making that happen together.