- ๐ CodingRaptors
- ๐ config
- ๐ data
- ๐ docs
- ๐ src
- Metadata about each table [Table name, Column names, Column Types, Clustering Key, Indexed Columns] are saved in the
metadata.csv file
. - Data for each table are inserted into serialized pages in the
data/ folder
which can store a pre-defined number of tuple according to theDBApp.properties
file. - Data for each table is sorted by the clustering key.
- BPTree created on a table column saves the
values
for this column in its leaves. - The BPTree and nodes [Non-leaf, Leaf] are serialized in the
data/ folder
. - Duplicates for a certain value are stored in overflow pages which are also serialized in the
data/ folder
.
- RTree created on a table column saves the
areas
for this column polygons in its leaves.- However, in update and delete methods, the search is done using the coordinates as well as the area.
- The RTree and nodes [Non-leaf, Leaf] are serialized in the
data/ folder
. - Duplicates for a certain value are stored in overflow pages which are also serialized in the
data/ folder
.
- Any tuple is inserted in its correct place according to the ordering of the clustering key.
- Lazy shifting is utilized, where any empty space in prior pages is used so that tuples can be shifted upwards between several pages if there is no space in the current page.
- Binary search is used.
- The WHERE clause contains a condition for the clustering key only.
- If the clustering key is indexed, its index is used for faster search for the tuples to be updated.
- If the clustering key is not indexed,
binary search
is used.
- The WHERE clause contains a condition for any column.
- If any of those columns are indexed, its index is used for faster search for the tuples to be deleted.
- No shifting is done between pages.
- If no column is indexed,
linear search
is used.
- No joins are supported.
- The filtering of tuples to be selected is optimized.