-
Notifications
You must be signed in to change notification settings - Fork 3
Description
REX was made with the idea of a website where students can go to find multiple tools that help in assisting with the learning of topics in the Database Systems class of RPI. These tools should help with the visualization of some of the more abstract parts of the class to help with understanding them.
All the features and tools should be available within one website. The website should be easy to be maintain, preferrably made using React due to its flexibility and use within many RPI classes. Since it is still just a planning phase, any additional tools or ideas for the website are encouraged! It should be to the view of new RCOS contributors and the current needs of the class. There are however some models and tools that can be started as a proof of concept for the project:
Relational Algebra Calculator:
What originally started this project, the relational algebra calculator would be similar to already existing ones such as RelaX. Features that would be useful for this tool would be:
- Being able to load relations from uploaded files, or a catalog of relations relevant and updated with the class
- Having a simple interface to write relational queries in text form, unique to the syntax of the class), with buttons to input algebra symbols if desired
- Be able to do multi-line relational algebra expressions that save resulting relations from expressions for continuing use in next lines
- Visualization of the relational algebra expression in the form of a tree, being able to see the resulting relation created from each operation
This calculator should help students understand each operation and their effects, plus check the result of their queries with actual tables to verify solutions for problems.
Chase Algorithm Calculator:
The algorithm follows simple steps to see if split relations when joined together can form the original relation. It's mainly done using a single table that gets transformed, so it should be one of the easier tools to make a page for. It should allow:
- Users to easily input the original relation, split relations, plus its functional dependencies
- Run the chase algorithm and determine whether it is a lossy decompostion or lossless
- Most importantly, visualize each step of the chase algorithm used in order to determine the results.
This calculator does not seem to be made yet, and would be a simple yet uninhabited niche that REX could fill. There is already a printing option in the model that allows for a draft idea of how the visualization should occur on the website. Be sure to make the argument printing=true in the full_chase function and run it locally.
Both of these tools would be a great start to REX that could make a significant impact in the learning experience of the class.