Browsing the web I came acros a new open source modelling tool called Power*Architect. This java application is a cross-platform, open-source data modeling tool with a GUI and an embeddable API. The source is released under GPLv3 and the source is maintained in google code. The latest version 0.9.11 can be downloaded here.
After unpacking the tool you simply have to run the jar file to start the application. The application starts with an empty canvas, an object browser and a menu bar. The first thing we have to do is add some connections.
Power*Architect comes with 4 standard JDBC already built in (MySQL, Postgres, MS SQL, and HSQLDB). The second tab has some built in support for a Kettle repository. After saving the connection you can add the source connection to the project by clicking it in the menu item connections. For some reason all the database catalog appear in the object pane (left). Clicking a catalog will sometimes result in an error… but most times it works and shows the last level of the tabel properties.
Table creation is simple by clicking “insert table”. Columns are added by right-clicking on the table and select new column (or type ‘C’). Adding many tables can be a long process because PA misses the function to edit all columns without selecting one by one…
Relationships are simply added by selecting identifying or not identifying relationship from the right sidebar. Identifying the source table and point to the destination simply adds the relationship. The properties can be changed in a separate window.
After dragging a database to the canvas all tables appears on the canvas. There is an automatic layout button, which works pretty good.
Forward engineering can be done by the forward engineering menu item. It can be done for the supported databases. The forward engineering generates the target DLL in SQL with tables and constraints. Errors are captured by a rudimentary error handling without any feedback.
Power*Architect has a simple profiling tool. Each table or all objects can be selected to be profiled. Th profiler starts with a profiling process overview window. This windows show the progress made and after clicking “view selected”. The profile details window shows some basic profiling results like row count, min/max length, % unique values per table column.The result can be exported to HTML, csv or pdf.
Other function included:
- Comparison of data models
- SQL runner (execute in database)
- Copy table data
- Some ETL functions… (needs further investigation)
I think Power*Architect is usable for small database design jobs. It has potential to be an indispensable tool for the database designer. I don’t like the strange errors when adding a database connection. Furthermore it misses a way to make submodel, because the model tend to become invissible when zooming out. What I like is the clear design of the application and some function like table data and shema comparison, although I didn’t test that all the way. I am going to use this in future open source projects.
- strange errors
- single column adding
- Multi platform
- Clear table and relationship design
- Forward and reverse ingeneering
- Profiling function
- JDBC drivers included
- It works