https://github.com/nikos25k/implementation-of-database-management-systems
This repository contains three projects exploring the core concepts of database systems: Heap File Management, B+ Tree Indexing, and External Merge Sort. Built in C, these assignments demonstrate block-level file management, indexing, and sorting algorithms, providing hands-on experience with database internals and performance optimization.
https://github.com/nikos25k/implementation-of-database-management-systems
b-plus-tree b-plus-tree-index block-file-functions c database-perfomance database-systems external-merge-sort external-sorting file-organization heap-file indexing sorting-algorithms
Last synced: 3 months ago
JSON representation
This repository contains three projects exploring the core concepts of database systems: Heap File Management, B+ Tree Indexing, and External Merge Sort. Built in C, these assignments demonstrate block-level file management, indexing, and sorting algorithms, providing hands-on experience with database internals and performance optimization.
- Host: GitHub
- URL: https://github.com/nikos25k/implementation-of-database-management-systems
- Owner: Nikos25K
- License: apache-2.0
- Created: 2025-02-27T15:52:34.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-02-27T16:55:15.000Z (3 months ago)
- Last Synced: 2025-02-27T23:43:48.355Z (3 months ago)
- Topics: b-plus-tree, b-plus-tree-index, block-file-functions, c, database-perfomance, database-systems, external-merge-sort, external-sorting, file-organization, heap-file, indexing, sorting-algorithms
- Language: C
- Homepage:
- Size: 363 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Implementation of Database Management Systems 🗃️
Welcome to this repository containing three core projects that explore the internal workings of database systems, from heap file management to indexing with B+ trees and external sorting algorithms. Built in **C** and leveraging block-level file management, these assignments demonstrate foundational database concepts.
[](https://en.wikipedia.org/wiki/C_(programming_language))
[](https://www.gnu.org/software/make/)
[](LICENSE)---
## 📚 Table of Contents
1. [Projects Overview](#projects-overview)
2. [Key Features](#key-features)
3. [Tech Stack](#tech-stack)---
## Projects Overview
### 1. **Heap File Management**
Implementation of a heap file structure to manage records at the block level.
- **Key Features**:
- Create, open, and close heap files.
- Insert, retrieve, and update records.
- Block-level memory management (pinning/unpinning, dirty flags).
- [Detailed README](Heap_file_management/README.md)### 2. **B+ Tree Indexing**
Efficient indexing using B+ trees for fast record retrieval.
- **Key Features**:
- Create and manage B+ tree files.
- Insert entries with primary key checks (no duplicates).
- Search for records by `id` with logarithmic complexity.
- [Detailed README](B+Tree/README.md)### 3. **External Merge Sort**
External sorting algorithm for large datasets using chunking and multi-way merging.
- **Key Features**:
- Split data into sorted chunks.
- Merge chunks iteratively (b-way merge).
- Optimized block I/O operations.
- [Detailed README](External_merge_sort/README.md)---
## Tech Stack
- **Language**: C (C99 standard)
- **Block Management**: Custom block-level library (`BF` for buffer management).
- **Tools**: GNU Make, Valgrind (for memory debugging).
- **Concepts**: File organization, indexing, sorting, memory optimization.---