Saturday, December 31, 2011

The State of Data Modeling Tools (MySQL Workbench)

I have only begun using MySQL and trying out the WorkBench tools from Oracle was the next logical step. This product was originally DBDesigner 4 from before it's developer was hired by MySQL AB to create a new set of MySQL GUI tools. This application has grown from a physical database designer for MySQL to include additional query and managment features. It is much closer to SQL Server Management Studio than it is to ERwin.

I was using a relatively small (< 50 table) model to work with and the system would crash after about on hour of use. The crashing was more frequent on the Mac side of things than it was when running on the PC but neither were very stable.

MySQL Workbench: ~$00.00

Common Checklist

  • Logic Modeling: No
  • Physical Modeling: Yes
  • Reverse Engineering: Yes
  • Forward Engineering: Yes *
    • * Note: Does NOT compare to existing schema. It will make fresh. new objects!
  • Sub Models: No
The auto-arrange does a terrible job distributing the tables, many were overlapping. The relationship lines are not adjustable, they go where the app assigns them to be.

The GUI makes me think of Eclipse, which is clearly not native on any platform and it generally works as expected.  The notation can be changed to fit your conventions and the automatic screen refreshing worked flawlessly (not something to take for granted after using ERwin).

This is a very good tool for visually showing developers how a few objects are related to each other and firmly belongs in the MySQL suite of tools.

Unfortunately, this application is just a bit too primitive to use for anything other than the most basic data modeling. The lack of a Logical Model is less than ideal, but not a deal breaker. I did find the crashing, lack of sub-models, minimal control of the relationship lines and the poor forward engineering very frustrating. I recommend using a piece of graph paper instead.

Friday, December 30, 2011

The State of Data Modeling Tools

Lately have had a chance to do some data modeling for a MySQL project and I thought I'd do a series of posts with a brief review the tools for making ERDs.

Data Modeling Tools
 Evaluation Criteria
  • Stability
  • Price
  • Features
ERwin Review
I have been using ERwin for a few years now so I am pretty familiar with this tool. Like it or not it has been around for ages (Logic Works, who originally made ERwin started in 1988) and is the benchmark all other system have to be measured against.

The most recent version has not been entirely stable, I cannot make it crash on demand but it will occasionally lock up.

ERwin Data Modeler Std Edt + 1 yr Maint: ~$3,900

Common Checklist
  • Logic Modeling: Yes
  • Physical Modeling: Yes
  • Reverse Engineering: Yes
  • Forward Engineering: Yes
  • Sub Models: Yes
Now having used it for a while I know a number of ERwin's quirks but stepping back and looking at it with a fresh eye, it is dated. The GUI looks like it is still built on an ancient toolkit which is likely why the work area screens require manual refreshes to clean up visual artifacts.

ERwin has the core features I'd like, but it's not entirely stable, the GUI is quirky and the product is expensive. For the price I would expect CA to be rolling updates more frequently to address these issues but ERwin has had minimal updates these last few years.

Sunday, January 30, 2011

NoSQL Summary

The best short description of when not to use NoSQL that I've ever seen is from a reddit comment by bucknuggets


  • a key-value pair data store isn't optimal storage in the perfect world since data quality is very difficult to manage, reporting is a nightmare, and since most data doesn't map elegantly to key-values app complexity grows.
  • but it may be a very effective storage solution at certain scalability thresholds

Then for sites below those thresholds it is premature optimization - that adds unnecessary risk to the project.