RDM Server
Encyclopedia
RDM Server is an embeddable, heterogeneous, client/server database management system supporting both C
/C++ and SQL
APIs for programming flexibility. The databases can be disk resident and/or memory resident. RDM Server implements multi-user locking, hot database backup, and a fully ACID
compliant transaction logging system with automatic crash recovery. It is currently supported on many 32- and 64-bit enterprise and embedded operating systems. The database library can optionally be run in-process with the application, eliminating client/server remote procedure calls.
for the Netware platform under the name RDS (Raima Database Server). It was derived from its predecessor RDM Embedded
, and subsequently renamed Velocis. The database is currently is known by the name RDM Server, and is currently offered as version 8.3.
) to a server on the same computer or a computer which is visible across a network. Data is converted from the native server host's format to the native client host's format when in heterogeneous environments.
Since its first release in 1993, RDM Server has allowed user-defined code to be loaded dynamically into the server process as a DLL
or shared library. This technology was termed extension modules and was also used as the mechanism for advanced functional modules such as Raima's SQL.
, which had been released 9 years earlier. As a derivative product, the native API is a low-level C/C++ API.
API is an extensive library functions for all database operations. Timestamps, concurrency control, transaction control, database configuration, data navigation, and data changes are supported.
compliant transaction logging system with automatic recovery capability. This facility is also used for asynchronous replication.
based indexes. An index can contain a single or multiple segments. In addition, it supports optional indexes where the application controls the index population.
s (binary large objects), BCD
(Binary Coded Decimal), date, time and timestamp. In addition it has native support for struct
s and multi-dimensional arrays based on the above list of base types.
s. The network data model manages relationships between data objects through list of pointers called sets. The network model is defined to allow very flexible relationships between objects. A hierarchical structure has parent-child relationships; the network model allows for the same structure except there is no limitation on the number of parents a child has. The relational data model manages relationships between data objects through value matching, and usually primary key/foreign keys. RDM Server allows for mixing both the network model and relational model in the same database definition giving the application developer additional flexibility.
based on the 1989 and 1992 standards. It supports the following SQL data types: char, varchar, long varchar, smallint, integer, bigint, wchar (Unicode), wvarchar, long wvarchar, float, double, real, decimal/numeric, date, time, timestamp, rowid, binary, varbianary, long varbinary, and c_data (read access to native array and struct data types).
The SQL API is implemented as a SAG CLI interface giving access to the supported SQL92 standard. RDM Server has full support for ODBC v3.51, JDBC v3 and v4 through a Java type 4 implementation, ADO.Net and even PHP.
is also available, maintaining an identical copy of a master database for application failover. The sub-system implements an asynchronous
single master multi slave replication engine based on its supporting client–server transports (including TCP/IP).
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
/C++ and SQL
SQL
SQL is a programming language designed for managing data in relational database management systems ....
APIs for programming flexibility. The databases can be disk resident and/or memory resident. RDM Server implements multi-user locking, hot database backup, and a fully ACID
ACID
In computer science, ACID is a set of properties that guarantee database transactions are processed reliably. In the context of databases, a single logical operation on the data is called a transaction...
compliant transaction logging system with automatic crash recovery. It is currently supported on many 32- and 64-bit enterprise and embedded operating systems. The database library can optionally be run in-process with the application, eliminating client/server remote procedure calls.
History
RDM Server was first released in 1993 as as an NLMNLM
NLM may stand for:* National Liberation Movement* NetWare Loadable Module, an add-in that can be downloaded with a network protocol* Network Lock Manager, a computer communications protocol used with the NFS...
for the Netware platform under the name RDS (Raima Database Server). It was derived from its predecessor RDM Embedded
RDM Embedded
RDM Embedded is a high performance, ACID-compliant embedded database management system designed to be linked into C/C++ application programs. RDM Embedded has been designed to utilize multi-core computers, networking , and in-memory or on-disk storage. It provides a low-level C API and a higher...
, and subsequently renamed Velocis. The database is currently is known by the name RDM Server, and is currently offered as version 8.3.
Architecture
RDM Server is a client/server database engine with an optional configuration to execute the engine in-process with the application. When in a client/server configuration, clients perform remote procedure calls (RPCRemote procedure call
In computer science, a remote procedure call is an inter-process communication that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction...
) to a server on the same computer or a computer which is visible across a network. Data is converted from the native server host's format to the native client host's format when in heterogeneous environments.
Since its first release in 1993, RDM Server has allowed user-defined code to be loaded dynamically into the server process as a DLL
DLL
DLL may refer to:* Data link layer, a layer in the OSI network architecture model* Delay-locked loop, a device to reduce clock skew in digital circuits* Doubly linked list, a data structure in computer programming...
or shared library. This technology was termed extension modules and was also used as the mechanism for advanced functional modules such as Raima's SQL.
Core Database Engine
The RDM Server core engine is a derivative of RDM EmbeddedRDM Embedded
RDM Embedded is a high performance, ACID-compliant embedded database management system designed to be linked into C/C++ application programs. RDM Embedded has been designed to utilize multi-core computers, networking , and in-memory or on-disk storage. It provides a low-level C API and a higher...
, which had been released 9 years earlier. As a derivative product, the native API is a low-level C/C++ API.
C API
The native CC (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
API is an extensive library functions for all database operations. Timestamps, concurrency control, transaction control, database configuration, data navigation, and data changes are supported.
Instance Level Locking
Record instances and set instances may be locked for reading or writing. A set lock controls the ability to navigate or update the connections between owner and member records in a set instance.Transaction Logging
The product implements a fully ACIDACID
In computer science, ACID is a set of properties that guarantee database transactions are processed reliably. In the context of databases, a single logical operation on the data is called a transaction...
compliant transaction logging system with automatic recovery capability. This facility is also used for asynchronous replication.
Indexes
RDM Server supports regular B-treeB-tree
In computer science, a B-tree is a tree data structure that keeps data sorted and allows searches, sequential access, insertions, and deletions in logarithmic time. The B-tree is a generalization of a binary search tree in that a node can have more than two children...
based indexes. An index can contain a single or multiple segments. In addition, it supports optional indexes where the application controls the index population.
Data Storage
Databases can be disk resident, memory resident or a hybrid. In the first case, all access to disk resident structures (both data or data index information), happens through an in-memory data cache maintained by the database server sub-system. Alternatively, the application can define database structures to reside in-memory. An application can also define a database with mixed disk based or memory resident data structures. The data definition language of the engine supports mixing different storage types for any data structure.Data Types
RDM Server supports for the following native data types: signed and unsigned 8, 16, 32 and 64 bit integers, UTF-8 and Unicode characters, floating point (32 and 64 bit), BLOBBlob
- In biology :* Blob , sections of the visual cortex where groups of color-sensitive neurons assemble* Globster, an unidentified organic mass that washes up on the shoreline of an ocean or other body of water...
s (binary large objects), BCD
Binary-coded decimal
In computing and electronic systems, binary-coded decimal is a digital encoding method for numbers using decimal notation, with each decimal digit represented by its own binary sequence. In BCD, a numeral is usually represented by four bits which, in general, represent the decimal range 0 through 9...
(Binary Coded Decimal), date, time and timestamp. In addition it has native support for struct
Struct
struct is a computer science term for a record that is used to store more than one value.struct is used in the following programming languages:* struct * struct vs. C++ classes...
s and multi-dimensional arrays based on the above list of base types.
Data Models
The product offers two data modelData model
A data model in software engineering is an abstract model, that documents and organizes the business data for communication between team members and is used as a plan for developing applications, specifically how data is stored and accessed....
s. The network data model manages relationships between data objects through list of pointers called sets. The network model is defined to allow very flexible relationships between objects. A hierarchical structure has parent-child relationships; the network model allows for the same structure except there is no limitation on the number of parents a child has. The relational data model manages relationships between data objects through value matching, and usually primary key/foreign keys. RDM Server allows for mixing both the network model and relational model in the same database definition giving the application developer additional flexibility.
Standard Extensions
Extension modules that are automatically available in RDM Server include:SQL
Raima's SQL is an extension that implements ANSI SQLSQL
SQL is a programming language designed for managing data in relational database management systems ....
based on the 1989 and 1992 standards. It supports the following SQL data types: char, varchar, long varchar, smallint, integer, bigint, wchar (Unicode), wvarchar, long wvarchar, float, double, real, decimal/numeric, date, time, timestamp, rowid, binary, varbianary, long varbinary, and c_data (read access to native array and struct data types).
The SQL API is implemented as a SAG CLI interface giving access to the supported SQL92 standard. RDM Server has full support for ODBC v3.51, JDBC v3 and v4 through a Java type 4 implementation, ADO.Net and even PHP.
Administrative Functions
Administrative functions that allow programmatic control over users, databases, and devices, as well as administrative procedures such as backup, defragmentation and consistency checks.Replication
Active and passive replicationReplication (computer science)
Replication is the process of sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility. It could be data replication if the same data is stored on multiple storage devices, or...
is also available, maintaining an identical copy of a master database for application failover. The sub-system implements an asynchronous
Asynchronous I/O
Asynchronous I/O, or non-blocking I/O, is a form of input/output processing that permits other processing to continue before the transmission has finished....
single master multi slave replication engine based on its supporting client–server transports (including TCP/IP).