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

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.

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.

[![C](https://img.shields.io/badge/C-99%20Standard-blue.svg)](https://en.wikipedia.org/wiki/C_(programming_language))
[![Makefile](https://img.shields.io/badge/Build-Makefile-brightgreen)](https://www.gnu.org/software/make/)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](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.

---