[ < ALL PROJECTS ]
DATABASES

Relational Database System

This project implements a lightweight relational database engine in Python without external database libraries. Data is stored in CSV files and loaded into column-oriented tables. The system supports core relational operations—selection, projection, join, and group-by—along with row-level insert and delete. An interactive menu drives fourteen business queries, from listing customer records by town to finding the most valuable order, customers who ordered a product in a given month, and customers with no orders in a year. Built as a databases coursework project, it demonstrates how relational concepts map to real query logic over structured files.

FEATURES

  • CSV-Backed Tables

    Load and persist four related tables—products, customers, orders, and order details—from CSV files with automatic type parsing for numeric fields.

  • Relational Algebra Operations

    Perform selection, projection, join, and group-by over in-memory tables using a custom Table and DataBaseFile abstraction.

  • Interactive Query Menu

    Run fifteen menu-driven operations including file browsing, customer lookups, monthly order reports, and aggregate analytics from the terminal.

  • Row-Level Data Management

    Insert and delete individual rows in any table with changes written back to the corresponding CSV file.

  • Business Analytics Queries

    Answer questions such as best order value for a product, last-k orders placed, product customer counts by month, and customers with repeated same-day orders.

TECH STACK

PythonCSVRelational AlgebraCLI

SCREENSHOTS