The goal of this project is to implement a (very) rudimentary database engine that is based on a simplified file-per-table variation on the SQLite file format, which we call DavisBase. Your implementation should operate entirely from the command line and possibly API calls (no GUI).
Abstract:
- Data is encoded in two different kinds of database files—tables files and index files.
- Each database file is stored as a single file in the underlying OS.
- Each DB file is comprised of one or more pages (a virtual subdivision of the file).
- All pages of a file are the same size.
- For example, if the page size is set to 1024 bytes (1kb), then each DB file size is some multiple of 1024 bytes.
- Each page in a Table file (interior or leaf) is a node in a B+1 tree.
- Each page in a Table file (interior or leaf) is a node in a B tree.
-
show tables
-
create table
-
drop table
-
create index
-
Insert
-
Update
-
Delete
-
Where
- JDK 8
Download all the project files:
Note: Make sure all files are in the same dir
After installing all the dependencies run in CMD
java Davisbase
This will run the database engine
Note: all the file tables and indexes will be created in your current project directory.