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.
Same as (PostgreSQL)
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.
The storage model of RexD can be analyzed through rex.deploy component - the database schema management system. It utilizes PostgreSQL's storage model.
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's storage units are file based.
Same as ([PostgreSQL])(https://dbdb.io/db/postgresql))
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.
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.
Prometheus Research, LLC
Prometheus Research, LLC