NimbusDB is a lightweight, educational database system designed to provide a hands-on experience in understanding and building database systems. Inspired by the concepts in CSCI 3357: Database System Implementation.
If I don’t finish it this semester, I’ll be a loser!!!
NimbusDB is built with a focus on simplicity and educational value. It supports the following core features:
-
1. Storage Management
-
NimbusDB manages data storage at the block level, simulating how an operating system handles physical data storage. Data is addressed in blocks, and read/write operations are managed by FileMgr, with data transferred through Pages. Each Page supports various data types, including strings (charset=US_ASCII), as well as primitive types like short, int, long, float, and double.
-
2. Transaction Management
- NimbusDB includes basic support for transactions, ensuring that operations on the database are executed in a way that maintains data consistency. It handles commit and rollback mechanisms.
-
3. Indexing
- The database includes simple indexing mechanisms to help speed up query operations. It supports basic index structures, such as B+ trees, to demonstrate how indexing can optimize data retrieval and enhance performance in database systems.
-
4. Basic Querying
- NimbusDB allows users to perform basic querying operations, such as retrieving data from tables, based on simple conditions. This enables users to understand how queries are processed and executed within a database system.
-
5. SQL-like Operations
- While NimbusDB is not a full-fledged SQL database, it supports a subset of SQL-like operations, including:
- Insertions: Adding new records to tables.
- Deletions: Removing records from tables.
- Updates: Modifying existing records in tables.
- Select Queries: Retrieving data based on specific conditions.
- While NimbusDB is not a full-fledged SQL database, it supports a subset of SQL-like operations, including:
-
6. Transaction Logs
- NimbusDB implements transaction logging to ensure durability and recoverability. Every transaction is logged, which enables the system to recover to a consistent state in the event of a failure.
- Basic indexing to improve query performance.
- Transactional support with commit and rollback.
- Lightweight and easy-to-understand architecture.
- Simple API to interact with the database for educational purposes.
- Focus on understanding the inner workings of database management systems.
- CS186 Berkeley - Notes on Database Systems Read more
Clone this repository to your local machine:
git clone https://github.com/gchape/nimbusdb.git