Raima Technology

Raima Database Manager (RDM) is a high-performance database management system that is optimized for workgroup, real-time and embedded, and mobile operating systems. It is ideal for programming interoperating systems of networked and distributed applications and data such as those found in financial, telecom, industrial automation or medical systems. Multiple APIs and configurations provide developers a wide variety of powerful programming options and functionality.


RDM is a fast, small-footprint, inexpensive database engine, provided by Raima as an SDK for Windows, Linux or UNIX development environments. For embedded and mobile targets, RDM’s Windows or Linux SDKs will perform cross-platform development.

Configurations include standalone single-thread and single-database, all the way to networked multi-computer, multi-process, multi-thread, distributed-database. See how you can assemble your own solution.

Learn More

Programming Interfaces

RDM supports multiple programming interfaces to provide developers with the level of control they need for the task at hand. The programming interfaces include:

  • Navigational C API
  • Cursor C API
  • Custom C++ API
  • Standards Based ODBC C API
  • Objective C API

Learn More

Data Types

The Standard and Proprietary APIs share a common set of data types which may be stored or read using any API.

  • Integer—8, 16, 32, 64 bit, signed or unsigned.
  • Character—single or string, fixed length, variable or large variable
  • Wide Characters—single or string.
  • Double, float.
  • Date, Time, Timestamp.
  • BCD—precision 32, scale 16 digits.
  • GUID/UUID—128 bit representation.
  • Binary—array or blob.

Advanced Data Modeling

RDM gives the developer multiple options regarding how to model their data. The engine supports B+ Tree and hash indexing. In addition to the traditional relational index relationships RDM supports direct relationships through Network Model Sets. The combination of the relational indexing and network model sets allows for the development of highly efficient and powerful data models.

Learn More

Remote Data Access

RDM allows the developer to choose what type of access to the data is offered. The database can be configured to allow

  • Access to the data from only a single process
  • Access to the data to all processes on a machine (using a shared memory transport)
  • Access to the data from remote machines (using a TCP/IP transport)

Learn More

Replication and Mirroring

Many embedded applications have little to no tolerance for downtime. As a shared resource, a database has the potential of being a single point of failure for these systems. To support higher availability RDM provides both mirroring and replication as a way to maintain a standby database ready to become active if/when the primary needs to go down.

Learn more

Securing Stored Data

Developers of applications with regulatory or business requirements to secure data can utilize the RDM encryption layer. RDM provides an implementation of the AES/Rijndael encryption cipher with support for 128, 192, and 256 bit keys. Using RDM’s encryption functionality you can ensure that your data is only accessible to authorized agents.

Learn more

Relational Database

In the following article, we will describe the conventional SQL approach to maintaining relationships between tables, and examine how RDM’s core database engine has been utilized to optimize join processing.

Learn More

Pure and Hybrid In-Memory Database Operation

Configure your database to run completely on-disk, completely in-memory, or a hybrid of both; RDM combines the speed of an in-memory database and the stability of on-disk in a single system.

Learn More

Multi-Version Concurrency Control (MVCC)

RDM uses a form of MVCC to implement read-only transactions. Think of it as a virtual snapshot of your embedded database that remains unchanged while it is being concurrently updated. Between statements that begin and end a read-only transaction, the virtual snapshot may be read without locks. Lockless reading benefits reading processes and writing processes because they don’t interfere with each other.

Most database applications function completely correctly with reports based on a snapshot view.

High Throughput via Parallelism

The RDM architecture allows for configurations that support parallel operations to increase data throughput. Modern operating systems and hardware rely on multiple computing cores. The RDM database system can take advantage of these cores to increase data throughput.

Learn More

Query Across Multiple Databases

RDM allows the developer to open multiple identically structured databases and treat them as a single logical database. The developer can run queries across these unified databases without having to know or care which database is the origin for any particular result row. If a developer would like to know in which database instance a particular result row resides that information is readily available.

Learn More