RDM Embedded

Infobox_Software
name = RDM Embedded

caption =
developer = Birdstep Technology, Inc
latest_release_version = 8.1
operating_system = Cross-platform
genre = DBMS
license = Commercial license
website = [http://www.raima.com/ Raima Database Manager]
RDM Embedded is a high performing ACID-compliant embedded database management library designed for both disk based and in-memory embedded systems and applications. RDM Embedded can run purely in main memory (also known as an in-memory database, or IMDB), purely on disk, or in mixed mode storing parts of the dataset in-memory and parts on-disk. RDM Embedded has a proven track record first released in 1984 counting over 25 000 000 installations in all kinds of embedded systems and applications.

History

Raima Corporation, established in Washington USA in 1982, saw a need for a high performance, zero administration embedded database and started working on the db_Vista product. db_Vista was first released in1984, and as of 1988 db_Vista had made its third major release. db_Vista was later renamed to Raima Database Manager or RDM for short. As the product grew in popularity so did the client server architecture which Raima answered with the release of Velocis, a Client/Server version of RDM, in 1993. Velocis was later renamed RDM Server. As Raima grew in popularity they saw themselves acquired by Centura Software Corporation in 1999. Centura software drove the decision of launching an open source version of the RDM Embedded, called db.*, in 2000. Under Linux the db.* product got named db.linux. In 2001 Birdstep Technology ASA, a Norwegian based company, acquired the Raima assets and has since made 4 major releases of RDM Embedded.

Uses

RDM Embedded is used in all kinds of embedded systems and applications. The product is used in aerospace and defense applications such as military flight simulators, flight planning, and airborne warning systems; in telematics and automotive application like in-car navigation systems and infotainment systems; in banking and financial applications for real-time stock trading systems; in business automation systems for computer backup systems and sources control systems; in consumer electronics applications like mobile handsets, set-top boxes, and personal navigation devices; in datacom and telecommunication applications such as network routers and switches and base-stations; in government systems for firefighting and traffic control applications; in industrial automation applications like power management, and steel mill production facilities; in medical devices such as blood and chemical analyzing equipment and patient management applications; and in security systems such as key pads and key management products.

Product Features

Data Models

Network Data Model

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 making it perfect to structuring complex data relationships. If you think of a hierarchical structure with parent-child relationships, the network model allows for the same structure except there is no limitation on the number of parents a child has nor how many children a certain parent has between objects. This allows for extremely efficient modeling of data graphs and data hierarchies.

Relational Data Model

The relational data model manages relationships between data objects through value matching, and usually primary key/foreign keys. Relationships are limited to include two record types compared to the network model where no limitation is imposed.

Mixed Mode Operation

RDM Embedded allows for mixing both the network model and relational model in the same database definition giving the application vendor full flexibility.

Disk Based Storage

RDM Embedded provides access to database structured defined as being disk resident. All access to disk resident structures, this being data or data index information, will be accessed through an in-memory data cache maintained separately for each connection to the database. The data caches are then synchronized through the lock manager, discussed in the Multi-User Support section, to propagate any data changes to other caches.

In-Memory Storage

RDM Embedded in-memory capability allows the application to define database as main memory resident only, for diskless applications.

Mixed Disk Based and In-Memory Storage

An application can define a database with mixed disk based or main memory resident data structures. The RDM Embedded engine’s data definition language supports mixing and matching any two of the storage devices for any of it’s data structures creating an extremely flexible and high performing database.

Transactions

For data integrity, RDM Embedded supports the ACID transaction model ensuring a set of data changes either being executed or non being executed resulting in a database always being in a consistent state. The ACID properties also protect from any software or hardware failure making sure the database image is always in a readable and non-corrupt state. In addition RDM Embedded let’s the application control this property, allowing the application to relax some of the properties to increase performance. One such property is letting the application decide if the transaction happens in-memory or is disk resident. In-memory will be faster, but has the drawback of being lost if one encounters a failure.

Multi-User Support

RDM Embedded can have multiple threads and processes attached to a single database locally or over a network. The access to the database is serialized, through what we call our lock manager, that is either a shared memory segment or an external process accessible through TCP/IP. The lock manager not only controls the access to data objects in the database but is also responsible for notifying connections to ensure synchronization of any cached database objects that may have changed.

APIs

Native C API

RDM Embedded’s native C API comprises over 150 library functions for all database operations. Timestamps, concurrence control, transaction control, database configuration, data navigation, and data changes are all supported through this API.

Native Java API

RDM Embedded’s native Java API comprises 10 Java classes wrapping the underlying Native C API to Java through JNI technology.

XML API

An XML import/export API is made available to import and export both data and schema information to and from RDM Embedded databases. The API is made public to facilitate data interoperability towards other technology based on industry standards.

Mirroring API

RDM Embedded defines both C and Java API’s facilitating asynchronous and synchronous database mirroring. Fault tolerant applications that require High- Availability use this API to ensure an identical slave copy of the database for application failover.

Replication API

RDM Embedded defines a C replication API to setup of asynchronous replication over a TCP/IP based network for master slave replication. Single master/multi slave replication of both in-memory and disk based databases is supported.

SQL API

RDM Embedded supports a subset of the SQL-89 standard over a SAG CLI C API.

Development Tools

Language Support

RDM Embedded has support for C and C++ application in addition to Java and XML applications based on the above described API’s.

Indexes

RDM Embedded supports both sparse and regular B-tree based indexes. The index’s can contain a single or multiple segments. In addition RDM Embedded support for optional indexes where the application controls the index population.

Data Types

RDM Embedded has support for the following native data types:
*signed and unsigned int16
*signed and unsigned int32
*signed and unsigned int64
*char
*w_char_t (Unicode)
*varchar (Variable Length)
*varwchar (Variable Length)
*float
*double
*DB_ADDR (Internal database address)
*BLOB (binary large objects)In addition the RDM Embedded has native support for struct’s and multi-dimensional arrays based on the above list of base types.

SDK Utilities

RDM Embedded comes with a complete set of SDK utilities:

  • dal - Database Access Language
    This utility is used for interactive or batch manipulation of an RDM Embedded database.
  • datdump - Dump Data File
    The datdump utility produces a formatted dump of the contents of an RDM Embedded data file. In addition to the data field contents, datdump also displays all of the information in the record header, including the record ID, database address, record lock bit setting, stored optional keys, timestamp values, set pointers and member pointers.
  • dbcheck - Database Consistency Check
    This utility checks the consistency of all database files in a RDM Embedded database.
  • dbclrlb - Lock Bit Clear
    The utility clears any set lock bits in the specified RDM Embedded data files.
  • dbedit - Database Editor
    Low-level database editor, to change and/or repair any RDM Embedded database.
  • dbexp - Database Export
    To export a RDM Database in CSV or XML file.
  • dbimp - Database Import
    To import data from a CSV or XML file to a RDM Database.
  • dbrev - Database Revise Tool
    To migrate an existing database to a new schema.
  • dchain - Delete Chain Sort
    The utility sorts the deleted record slots on the delete chains of the listed data files.
  • ddlp - Database Definition Language Processor
    Compiles a Native RDM Embedded database schema.
  • initdb - Database Initialization Utility
    Initializes data and key files associated with a RDM Embedded database.
  • instlm - Install Lock Manager
    Install the lock manager.
  • keybuild - Key File Build
    Rebuilds all keys for a RDM Embedded Database.
  • keydump - Key File Dump
    Displays a formatted dump of kay files in a RDM Embedded database.
  • keypack - Key File Packing
    Re-organizes the RDM Embedded key’s to reduce B-Tree overhead.
  • lm - Lock Manager
    The external TCP/IP based RDM Embedded lock manager.
  • lmclear - Clear Lock Manager Session
    Shutdown, clear locks, or get status in the RDM Embedded lock manager.
  • lmping - Lock Manager Ping
    Pings to see if the RDM Embedded lock manager is running.
  • lsql - Interactive SQL Command Executor
    Allows user to interactively execute RDM Embedded SQL statements
  • prdbd - Dictionary Print Utility
    Displays the content of a RDM Embedded dictionary file.
  • sddlp - SQL Database Definition Language Processor
    Compiles a RDM Embedded SQL database schema.
  • console - Lock Manager Remote Console
    Monitores the functioning of a RDM Embedded lock manager.
  • ida - Interactive Database Access Utility
    Menu driver application to retrieve, enter, modify, or delete any information or set relationships stored in an RDM Embedded database

High Availability

For applications that require high availability RDM Embedded is designed with two replication capabilities to ensure an identical slave copy of a master database for application failover.

Data Replication

RDM Embedded implements an asynchronous single master multi slave replication API for TCP/IP (or other transport) based replication.

Data Mirroring

RDM Embedded implements a synchronous or asynchronous single master multi slave data mirroring API for local data replication.

Transaction Logging

RDM Embedded implements a fully ACID compliant transaction logging system with automatic recovery capability. Transaction can be configured by the application to run on-disk or in-memory and has other ACID property relaxing functionality to increase performance.

Supported Platforms

RDM Embedded is highly portable and available both on object code and source code format. RDM Embedded is currently supported on all major 32- and 64- bit enterprise and RTOS operating systems.

RDM Embedded Applications

A few RDM Embedded Application. Please visit Birdstep’s customer list for additional information.
*Boeing - AWACS
*General Dynamics – MHP (Marine Helicopter Project)
*Hertz - Neverlost
*IBM – Rational ClearCase
*Xerox - DocuPrint
*Symatec - Backup EXEC
*Sun - SyMON
*DirectTV – Advanced Program Guide on Set-top boxes.
*Magellan – MapSend, all handheld and marine navigation systems.
*Cisco – Cisco Network Registrar (CNR)
*Alcatel-Lucent – Lambda Extreme & Wavestar
*Nortel Networks - SS7
*3Com – NBX
*Juniper Networks – JUNOS
*Wonderware – InBatch
*Beckman Coulter – UniCel DxC 600 & DxC 800 Synchron Clinical

External links

* [http://www.raima.com/ Raima Database Managers]
* [http://www.raima.com/products/rdm-embedded/ RDM Embedded Product Page]

Articles

* [http://www.embedded-computing.com/articles/id/?2569 Why not to use the relational data model]


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Embedded database — An embedded database system is a DBMS that is tightly integrated with an application that requires access to stored data, such that the database system is “hidden” from the application’s end user and requires little or no ongoing maintenance. It… …   Wikipedia

  • RDM Server — Infobox Software name = RDM Server caption = developer = Birdstep Technology, Inc latest release version = 8.1 operating system = Cross platform genre = DBMS license = Commercial license website = [http://www.raima.com Raima Database Manager] RDM …   Wikipedia

  • Comparison of relational database management systems — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Raima — Infobox Company name = Raima Corporation type = Public foundation = 1982 location city = Seattle, Washington location country = U.S. location = industry = Database products = *RDM Embedded *RDM Server * [http://www.raima.com/products/rdm mobile/… …   Wikipedia

  • In-memory database — An in memory database (IMDB; also main memory database system or MMDB) is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems which employ a disk storage… …   Wikipedia

  • Multiversion concurrency control — (abbreviated MCC or MVCC), in the database field of computer science, is a concurrency control method commonly used by database management systems to provide concurrent access to the database and in programming languages to implement… …   Wikipedia

  • Network model — For computer network models, see network topology, packet generation model and channel model. The network model is a database model conceived as a flexible way of representing objects and their relationships. Its distinguishing feature is that… …   Wikipedia

  • Список СУБД —   Это служебный список статей, созданный для координации работ по развитию темы.   Данное предупреждение не устанавливается на информационные списки и глоссарии …   Википедия

  • List of software products — This is a list of software by genre, operating system, and type of licensing. Contents 1 Office 1.1 Office suites 1.2 Word processors 1.3 Database management systems …   Wikipedia

  • Встраиваемая СУБД — Встраиваемая система управления базами данных  архитектура систем управления базами данных, когда СУБД тесно связана с прикладной программой и работает на том же компьютере, не требуя профессионального администрирования. Встраиваемые СУБД… …   Википедия


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.