High-concurrency Custom-build Relational Database System's design and SQL parser design based on Turing-complete automata

08/11/2020
by   Wanhong Huang, et al.
0

Database system is an indispensable part of software projects. It plays an important role in data organization and storage. Its performance and efficiency are directly related to the performance of software. Nowadays, we have many general relational database systems that can be used in our projects, such as SQL Server, MySQL, Oracle, etc. It is undeniable that in most cases, we can easily use these database systems to complete our projects, but considering the generality, the general database systems often can't play the ultimate speed and fully adapt to our projects. In very few projects, we will need to design a database system that fully adapt to our projects and have a high efficiency and concurrency. Therefore, it is very important to consider a feasible solution of designing a database system (We only consider the relational database system here). Meanwhile, for a database system, SQL interpretation and execution module is necessary. According to the theory of formal language and automata, the realization of this module can be completed by automata. In our experiment, we made the following contributions: 1) We designed a small relational database, and used the database to complete a highly concurrent student course selection system. 2) We design a general automaton module, which can complete the operation from parsing to execution. The using of strategy model and event driven design scheme is used and some improvement on general automata, for example a memory like structure is added to automata to make it better to store context. All these make the automata model can be used in a variety of occasions, not only the parsing and execution of SQL statements.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset