Relational Algebra Engine
|
The Relational Algebra Engine implements relational algebra in its strict, theoretical form, adhering rigorously to the principles of relational theory as articulated by E. F. Codd.
A relation is modeled as a set of tuples, each tuple being a set of attributes. Each attribute is a pairing of a name with a value drawn from a domain. All operations are defined on entire relations as sets, with no recourse to the compromises typical of SQL or other practical implementations.
The engine is intended as a study in correctness: each operation, from projection to join, is executed in a manner consistent with the classical definition of relational algebra. It is a platform for exploring the consequences of relational theory in a low-level programming context, providing both a tool for experimentation and a concrete realization of the abstract model.
src/
— C source files implementing the engineinclude/
— Header files for public APIsdocs/
— Documentation and imagesMakefile
— Build and formatting commandsDoxyfile
— Doxygen configuration for code documentationTo build the documentation locally:
The HTML output will be in docs/doxygen/html/
. GitHub Actions will auto-deploy docs from the docs/doxygen/html
directory to the gh-pages
branch.
Compile and run the engine:
Format the source code:
Pull requests and issues are welcome! Please format code with clang-format before submitting.
This project is licensed under the APACHE 2.0 License. See the LICENSE file for details.