This is our implementation for the course project of CSC3170, 2022 Fall, CUHK(SZ). For details of the project, you can refer to project-description.md. In this project, we will utilize what we learned in the lectures and tutorials in the course, and implement either one of the following major jobs:
- Application with Database System(s)
- Implementation of a Database System
Please refer to the report !!!
-
Our project report could be found here: REPORT.md.
-
How to run with VSCode configuration to test could be found here: RunTest.md.
-
Our main java codes could be found here: Source code.
Our team consists of the following members, listed in the table below:
Student ID | Student Name | GitHub Account (in Email) | GitHub Username |
---|---|---|---|
120090336 | 陈德坤 | [email protected] [email protected] |
@salixc |
120090747 | 陈清源 | [email protected] [email protected] |
@Christoph-UGameGerm |
120090675 | 黎鸣 | [email protected] | @Mo9L1 |
119010531 | Nasr Alae-eddine | [email protected] [email protected] |
@H4D32 |
120010027 | 张家宇 | [email protected] | @JJY-jy233 |
118010408 | 张昊旻 | [email protected] | @118010408 |
This project involves writing a miniature relational database management system (DBMS) that stores tables of data, where a table consists of some number of labeled columns of information. Our system will include a very simple query language for extracting information from these tables. For the purposes of this project, we will deal only with very small databases, and therefore will not consider speed and efficiency at all.
Basically, we will use the provided template implemented by Java. The overall implementation order is from part to whole, from simple to difficult, such as Row -> Table -> Database. The detailed implementation order is shown below as a checklist.
-
1. Complete the printing of prompts
-
2. Ran first Test
-
3. Implement the Row class (except for the Row(List columns, Row... rows) constructor)
-
4. Implement the parts of the Table class: Create a new Table, Add a Row to it, and Print an entire Table.
-
5. Implement the Database class.
-
6. Implement the Condition class.
-
7. Implement insert and load.
-
8. Implement the kind of select that takes a single table and has no conditions.
-
9. Implement the Row(List columns, Row... rows) constructor.
-
10. Get single-table select with conditions to work.
-
11. Work on the two-table variety of select.
-
12. Work on the multi table selection w/wo conditions.(optional)