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.


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


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.

Foreign Keys


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.


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.


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.

RexDB Logo

Source Code

Tech Docs


Prometheus Research, LLC

Country of Origin


Start Year


Acquired By

Prometheus Research, LLC

Project Type

Open Source

Written in

JavaScript, Python

Supported languages

PL/SQL, Python, SQL

Derived From


Compatible With


Operating Systems

Linux, OS X