An open API service indexing awesome lists of open source software.

https://github.com/kngsoomin/database-with-c

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.
https://github.com/kngsoomin/database-with-c

c data-structure database-management-system doubly-linked-list index-management string-parsing toy-project

Last synced: about 1 month ago
JSON representation

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.

Awesome Lists containing this project

README

          

# Database Management System with C
### Overview
This project implements a lightweight database management system written in C.
It focuses on core database concepts such as **data structure design, indexing, and SQL-like query parsing**, providing a minimal yet educational implementation of a relational data engine.

### 🎥 Demo
![Project Demo](/static/demo.gif)

### Key Features
**1. Structured and Modular Design**

- Separation between data (USERDATA) and linked list nodes (Node)

- Independent layers for data storage, index management, and UI interaction

- Improves modularity and maintainability of the codebase

**2. SQL-Like Query Engine**

- Supports simplified SQL syntax:
- `SELECT`, `WHERE`, `ORDER BY`, `INSERT`, `DELETE`

- Queries are parsed and executed against in-memory data

- Designed for intuitive command-line interaction

- *SELECT*:

- *WHERE*:

- *ORDER BY*:

- *INSERT*:

- *DELETE*:

**3. Doubly Linked List–Based Storage**

- Core database operations are executed on a doubly linked list

- Enables efficient traversal and manipulation of records

- Demonstrates understanding of dynamic memory management in C

**4. Indexing for Optimized Search**

- Index fields are maintained separately from main data structures

- Enables efficient range and key-based lookups without sorting the entire dataset

- Provides a simple index mechanism for faster query execution

**5. File and Memory Management**

- Database is loaded from file into memory at startup

- Users can modify in-memory data and selectively save changes back to disk

- Demonstrates separation between persistent and transient data layers