RexDB

RexDB is an integrated registry data management platform created by Prometheus Research, LLC, aiming to facilitate data management for a wide range of research in autism and associated disorder. The platform is composed of three core component: RexPlatform, RexAcquire and RexMart. RexDB is a wrapper of PostgreSQL, utilizing most of its features while adapting it to its domain-specific purposes. RexAcquire component applies Extract, Transform and Load (ETL) mechanism. It separates data acquisition from the transactional system. It captures data from electronic data capture systems. RexMart separates ad hoc querying from the transactional system.

History

In 2005, RexDB was first released for Small Research Groups at Yale University. In 2007, RexDB was used for Simons Simplex Collection. In 2011, Prometheus Research decided to open source the RexDB platform. In 2012, RexDB was released open source under AGLv3 as "RexDB 3.0." In 2013, RexDB was adapted to support disease and procedure specific registries.

Concurrency Control

Multi-version Concurrency Control (MVCC)

Same as ( [PostgreSQL](https://dbdb.io/db/postgresql) )

Foreign Keys

Supported

RexDB does support the concept of foreign key constraints, shown in REX.Deploy, which is the database schema management system of RexDB. The deployment only occurs when table id a foreign key constraint are present. If they are not, then they are created. The FOREIGN KEY constraint is also created with ON DELETE SET DEFAULT if the link is not a part of the table identity, otherwise it is created with ON DELETE CASCADE.

Indexes

B+Tree Hash Table Inverted Index (Full Text)

Based on the implementation of rex.db - the database configuration and setting component of Rex.DB, it's up to the admin and user to determine what type of database server they want to use. Therefore the indexing method is determined case by case. According to the documentation, Rex.DB supports sqlite, mysql and pgsql so far. Since these databases use B+Tree, Hash Table and Inverted Index, Rex.DB also supports them.

Joins

Nested Loop Join Hash Join Sort-Merge Join

Rex.deploy wraps a number of PostgreSQL functions, and join is one of them. Since PostgreSQL supports Hash Join, Nested Loop Join and Sort-Merge Join, RexDB also utilizes those three types of join. The threshold and other configurations in RexDB's join are consistent with those in PostgreSQL.

Logging

Physical Logging

Same as ( [PostgreSQL](https://dbdb.io/db/postgresql) )

Parallel Execution

Intra-Operator (Horizontal)

Same as ( [PostgreSQL](https://dbdb.io/db/postgresql) )

Query Compilation

Not Supported

Same as ( [PostgreSQL](https://dbdb.io/db/postgresql) )

Query Execution

Tuple-at-a-Time Model

Same as ( [PostgreSQL](https://dbdb.io/db/postgresql) )

Query Interface

Custom API SQL PL/SQL

RexDB supports database access based on HTSQL. Meanwhile it also supports JSON datatype and SQL functions. Since some math functions provided by PostgreSQL are exposed to HTSQL, they are also supported.

Storage Model

N-ary Storage Model (Row/Record)

The storage model of RexD can be analyzed through rex.deploy component - the database schema management system. It utilizes PostgreSQL's storage model.

Stored Procedures

Supported

Same as ( [PostgreSQL](https://dbdb.io/db/postgresql) )

System Architecture

Shared-Everything

Same as ( [PostgreSQL](https://dbdb.io/db/postgresql) )

Views

Virtual Views Materialized Views

Same as ( [PostgreSQL](https://dbdb.io/db/postgresql) )

People Also Viewed

RexDB Logo
Website

http://www.rexdb.org/

Source Code

https://bitbucket.org/rexdb/

Tech Docs

https://www.rexdb.org/documentation.html

Developer

Prometheus Research, LLC

Country of Origin

US

Start Year

2006

Acquired By

Prometheus Research, LLC

Project Type

Open Source

Written in

JavaScript, Python

Supported languages

PL/SQL, Python, SQL

Derived From

PostgreSQL

Compatible With

SQLite

Operating Systems

Linux, OS X

Licenses

AGPL v3

People Also Viewed