Enhanced SQL Support
Raima Database Manager is one of the very few embedded database systems that supports the INCITS/ISO/IEC 9075-2:2011  SQL standard. The feature-rich SQL component allows for very rapid and simple deployment of an SQL database system using RDM, while also allowing flexibility to later concurrently use the more optimized core cursor API with the same system. RDM’s SQL PL feature allows for a SQL developer to create more advanced logic within their SQL database system without having to learn a more complicated programming language like C/C++/C#/Java.
The SQL Procedural Language feature of the RDM database system allows for a SQL database developer to access full programming constructs purely in SQL. They can create conditional statements, for and while loops, declare and use variables, all while using only SQL. There is even error handling support for custom error situations. Additionally, these statements are compiled and executed on the server side, greatly improving the performance of the overall system.
SQL triggers are a form of SQL PL that lets the SQL developer create custom events to occur when certain conditions are met in a normal create/insert/update/delete SQL statement. They can be simple things like returning an error if an insert is out of the bounds of a column, or more complicated things, like updating a further table/row if certain conditions are satisfied.
RDM supports multiple different programming languages that interact with the SQL engine. For C#, Raima supports the ADO.NET interface. For Java, Raima supports JDBC. For C/C++, Raima has full ODBC support. RDM is designed so that whatever language the programmer is comfortable with, they can stay within that environment/IDE.
RDM SQL features for embedded systems
- Database schemas in pre-compiled C modules
- SQL stored procedures in pre-compiled C modules
- User defined SQL functions, written in C
- Virtual tables for accessing any kind of source data through SQL (e.g. real-time data fed from sensors)
- Limit the number of rows returned from select, by number or by time
- SQL applications don’t need to compile any SQL at runtime
- Rowid (i.e., database address) primary and foreign keys which will allow direct access to individual rows of a table without having to incur the overhead of an index.
- Updateable query optimization statistics
- Supports forward/backwards static scrollable cursors
RDM SQL features for distributed systems
- Connect to multiple servers
- Query distributed databases (scale-out)
- Database unions: (Results merged, as if one database)