Skip to content

This project implements a custom database management system using a doubly linked list structure. It features SQL-like query parsing, supports basic database operations, and employs efficient index management.

Notifications You must be signed in to change notification settings

kngsoomin/database-with-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Database Management Program with C

Version 1.0

🎥 Demo

Project Demo

🌄 Objectives

The aim of this project is to develop a database management program in C that is capable of:

🦔 Features

1. Separation of Concerns


The Node structure handles the linked list functionality, while the USERDATA structure contains the actual data. This approach enhances modularity and makes the code easier to maintain.

2. SQL-Like Query Parsing

The system can parse and execute SQL-like queries. This allows for a familiar and intuitive interface for database operations.

3. Comprehensive Database Operations

Supported operations include:
  • < SELECT >
  • < WHERE >
  • < ORDER BY >
  • < INSERT >
  • < DELETE >

These operations are efficiently handled within the doubly linked list structure.

4. Optimized Index Management

The index field is separated from the main data structures. This design choice allows for:
  • Efficient range searches on integer fields
  • Avoiding the need to sort the entire data structure for searches
  • Generating and sorting an array of indices for optimized operations

5. Modular Code Design

The codebase is organized with a clear separation between linked list operations and user interface code.

6. File vs Memory Data Management

The system operates primarily on in-memory data, but interacts with files in the following ways:
  • Loads the initial database from a file into memory
  • Allows users to make changes to the in-memory database
  • Gives users the option to save their changes back to the file

🚀 Future Improvements

  • Implement data caching for improved efficiency with large datasets, allowing for partial loading and updates, modifying only changed portions of the file
  • Add roll-back functionality for operations, allowing users to undo recent changes
  • Enhance input validation and error handling to implement more thorough checks for user input
  • Upgrade to a more robust data structure such as tree structure instead of a doubly linked list
  • Implementation of more complex SQL operations (e.g., JOINs, GROUP BY)

About

This project implements a custom database management system using a doubly linked list structure. It features SQL-like query parsing, supports basic database operations, and employs efficient index management.

Topics

Resources

Stars

Watchers

Forks

Languages