Relational Algebra Engine
Loading...
Searching...
No Matches
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.

Project Structure

  • src/ — C source files implementing the engine
  • include/ — Header files for public APIs
  • docs/ — Documentation and images
  • Makefile — Build and formatting commands
  • Doxyfile — Doxygen configuration for code documentation

To build the documentation locally:

doxygen Doxyfile

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.

Usage

Compile and run the engine:

make

Format the source code:

make format

Contributing

Pull requests and issues are welcome! Please format code with clang-format before submitting.

License

This project is licensed under the APACHE 2.0 License. See the LICENSE file for details.