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.