This is pretty cool -- one thing I think you may want to highlight more is the SQL analysis.
In your demo video, when you run the following statement:
update payroll
set payroll_status = = 'X'
where ...
In the simulation DB schema, it picks up the FK from (payroll.employee_id <-> employee.id) and creates the employee table + inserts the related employee records for the affected payroll records in the parent statement.That's pretty nifty.
---
On an unrelated note, I think that creating an open-source version of this on the JVM using tools like jOOQ, SchemaCrawler, and Apache Calcite could be a fun weekend project.