|
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.