Original link: https://blog.lss233.com/minidb-kai-fa-shou-zha-1-jia-gou/
This semester, a course called “Application Software Development” requires us to implement a database system, which requires functions such as indexing, sustainability, multi-table connection query, and remote access.
After a brief thought, I think this database should be divided into the following parts:
It seems to be a very complicated project, but it must be successful if it is implemented slowly.
system structure
For the part of network communication, because I always wanted to try the Netty network framework, but I felt that Java was boring, so I chose Kotlin as the programming language for the back-end server, and learn how to use it by the way.
SQL parsing can be implemented using ANTRL, and there is a lot of information on GitHub, so it shouldn’t be a big problem.
I hope this database can be used not only as a distributed database server like MySQL, but also as an embedded database like SQLite, so I also prepared a way to package the database driver and server code together and call it directly, but This can be discussed later.
The database engine should be the most technical part of the entire system. Since I have not systematically learned any database engine implementation, I have no clue about this part at all – let’s put it later!
In addition, this system will be completed by me and another teammate, in order to ensure that we can implement some fancy functions on the premise of completing the course requirements, we intend to start with simple functions and then gradually make it more complex.
I think the process of implementing this database is also very interesting, so I plan to write a series of development notes and record this process, hoping to help others to write similar projects.
Finally, attach our project address:
This article is reprinted from: https://blog.lss233.com/minidb-kai-fa-shou-zha-1-jia-gou/
This site is for inclusion only, and the copyright belongs to the original author.