Inspiration

Modern applications require various types of complex data to be stored and current database management solutions lack the flexibility to keep up. We created DBMDBMS as a tool for developers to create and test applications quickly that allows for scaling database requirements and efficiently handles exponentially increasing data complexity.

What it does

DBMDBMS is a new type of database management system. It consists of just two endpoints but allows developers to work from plain english to deployed databases in just seconds. DBMDBMS efficiently creates and manages databases to handle queries on any type of database you can think of all within one dbms. DBMDBMS leverages the database knowledge of OpenAi’s newest models to intelligently create new virtual machines containing databases as the first queries are made.

How we built it

We utilized Chat-GPT’s knowledge of databases to automatically create ansible scripts and python bindings. The ansible scripts are used for vm initialization and population and the python bindings are used to communicate with the database. We created a java spring backend which contains our two endpoints. The first one executes queries on databases and orchestrates vm creation and database initialization using Chat-GPT generated scripts when new database types are requested. The other endpoint is used for generating properly formatted queries for the target database from plain english. We created a sample react GUI to interface with our API which uses bootstrap components for styling.

Challenges we ran into

One of our main goals with this project was infinite scalability which turned out to be a large challenge with such a large number of databases supported. We solved some of this problem easily with GPT-4’s knowledge of databases but this wasn’t enough. We decided to use Proxmox which allows for near infinite scaling via creating new virtual machines in this solution. One of the first challenges we ran into while creating this tool is that since it can interface with any type of database, how do we accept any format of data? We solved this problem by accepting pre-encoded data and generating python bindings for the databases to decode the data and format it correctly for the database. Another big challenge we ran into was how to create and maintain any number of any type of database. To solve this challenge we used the Proxmox api to create VMs as new database types are required. With this in place we then used the newest GPT-4-turbo preview to generate ansible scripts which can configure a virtual machine with any database known to the model.

Accomplishments that we're proud of

We came a long way from our initial concept of what our project would be. Initially, the project was sort of a novelty that wasn’t really useful in a real world scenario, but now it has become a tool that would be useful in a real world development environment. We’re also proud of how much work we have put into this project. We all stayed up all night developing, researching, and fixing bugs just to get the MVP working.

What we learned

Working on DBMDBMS was a great opportunity to learn how to integrate an LLM into a project. From working on it, we learned that it is helpful to narrow the purpose the LLM provides in order to mitigate issues stemming from it, and to keep the project as efficient as possible. Many of our team members had never worked with proxmox or working with an enterprise grade server so we had to learn quickly to keep up.

What's next for DBMDBMS

Cloud! This whole project was designed to be infinitely scalable and hosted on a cloud platform so our next big step would be to move the whole project to a cloud platform such as azure. Once this project is on the cloud we can begin infinite scaling with as many users as we would like and it would solve our issues of virtual machines taking too long to boot. We would also like to add functionality to analyze problems with queries that fail then suggest a working version of the query to the user. In the long long run we would love to train our own machine learning model for classification of data to databases. This would allow us to speed up the process of creating ansible scripts and assigning static IPs to VM instances and we would be able to avoid relying so much on OpenAi.

Built With

Share this project:

Updates