RA: A Relational Algebra Interpreter

RA is a relational algebra interpreter interface to SQL-based database systems, ideal for teaching and learning.

The latest version of RA, called radb, is based on Python 3. You will be automatically redirected to it website at http://www.cs.duke.edu/~junyang/radb/ in 15 seconds.

The earlier, Java-based version of RA, called ra, can still be accessed at http://www.cs.duke.edu/~junyang/ra2/.

A note on what has (not) changed besides moving from Java to Python:

  1. The new radb is more user-friendly and has much better error reporting than the old ra.
  2. The new radb doesn't have some of the old ra's limitations. For example, users don't need write permission on a database to query, so it is easy to set up exercises for multiple students using a single shared database.
  3. The new radb's relational algebra syntax is backward-compatible with the old ra, but it also has new features such as saving/restoring work to/from files, and defining views (which allows complex queries to be written in multiple steps).

Maintained by Jun Yang