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, each having a different functionality. RexDB is a wrapper of PostgreSQL, utilizing most of its features while adapting it to its domain-specific purposes.

RexPlatform (also addressed as RexApplication) is a toolkit that enables installation of necessary components needed for manipulating a RexDB instance.

RexAcquire applies Extract, Transform and Load (ETL) mechanism. It separates data acquisition from the transactional system. It captures data from three electronic data capture systems: RexEntry, RexSurvey and RexMobile.

RexMart allows users to manipulate data sets from central database so that users are able to understand their research data. It 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, in order to benefit the scientific community, Prometheus Research decided to open source the RexDB platform, marking the beginning of the open source initiative. 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.

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.

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.

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.

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.

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.

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