Skip to content

A fully functional Database Management System implemented entirely in Bash shell scripting, created in February 2025 as part of the Information Technology Institute (ITI) Intensive Training Program (ITP).

Notifications You must be signed in to change notification settings

NourElDin023/ITI_Bash_DBMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Bash DBMS

Bash DBMS combines the power of the terminal with a user-friendly graphical interface, built using Bash and KDialog. Launched from the command line, it offers a complete menu-driven database management system.

Authors

Demonstration

demonstration.mp4

Features

Database Management

  • Create new databases
  • List existing databases
  • Connect to databases
  • Drop (delete) databases

Table Management

  • Create tables with custom columns and data types
  • Define primary key constraints
  • List tables in a database
  • Drop tables

Data Operations

  • Insert: Add new records to tables with data validation
  • Select: Query data with options to:
    • View all records
    • Search for specific values
  • Update: Modify existing records with validation
  • Delete: Remove records by:
    • Primary key
    • Search value

Data Types & Validation

  • Integer data type with validation
  • String data type with validation
  • Primary key constraints (uniqueness)
  • NULL value handling

Technical Implementation

  • Data Storage: All data is stored on disk in plain text files
  • Database Structure:
    • Databases are represented as directories
    • Tables are stored as .table files (data) and .meta files (structure)
    • Table metadata includes column names, data types, and primary key information
  • User Interface: Implemented using KDialog for a user-friendly graphical menu-driven experience
  • Data Validation: Type checking and constraints are enforced during data operations

Project Structure

  • mainMenu.sh - Entry point and database management functions
  • tableMenu.sh - Table management and data operation functions
  • README.md - Documentation

Usage

Prerequisites

  • Bash shell
  • KDialog

Install KDialog

For Debian/Ubuntu-based systems:

sudo apt-get update
sudo apt-get install kdialog

For Fedora/RHEL-based systems:

sudo dnf install kdialog

For Arch Linux:

sudo pacman -S kdialog

Running the Application

  1. Clone the repository:

    git clone https://github.com/NourElDin023/ITI_Bash_DBMS.git
    cd ITI_Bash_DBMS
    
  2. Make the scripts executable:

    chmod +x mainMenu.sh tableMenu.sh
    
  3. Launch the application:

    ./mainMenu.sh
    

Learning Outcomes

This project demonstrates:

  • Advanced Bash scripting techniques
  • File system manipulation for data storage
  • Command-line interface design
  • Data validation and error handling in shell scripts
  • Menu-driven application development

About

A fully functional Database Management System implemented entirely in Bash shell scripting, created in February 2025 as part of the Information Technology Institute (ITI) Intensive Training Program (ITP).

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages