RDM Server
Encyclopedia
RDM Server is an embeddable, heterogeneous, client/server database management system supporting both C
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 NLM
NLM
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 (RPC
Remote 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 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...

, 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 C
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....

 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 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 recovery capability. This facility is also used for asynchronous replication.

Indexes

RDM Server supports regular B-tree
B-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), BLOB
Blob
- 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 model
Data 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 SQL
SQL
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 replication
Replication (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).

Hot Online Backup

Administrative functions allow RDM Server to be placed into a hot backup mode so that database files can be safely copied to another permanent media. The functions can enumerate the files to be backed up and allow individual files to be "released" by the backup utility, permitting them to be written to again by the server.

Supported Platforms

The product is available both as object code and as source code, and currently supports the following target platforms: AIX, FreeBSD, HPUX, Linux (Red Hat Enterprise, and Ubuntu), MAC OS, QNX Neutrino, Solaris and Windows.

Examples of Applications

RDM Server is today used in a wide range of applications for business critical data transactions, flight control systems, medical equipment, network management systems and more.

External links


Articles

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK