I have been looking for a tool to help me visualize the relationships between the various entries in the database I’ve been working on.
The first tool I found was Dia, a drawing tool designed to allow the drawing of network and graph relationships by hand, with lots of flexibility as far as icons, arrows, etc. The drawings that you can construct in Dia are exactly what I was looking for, but not easily programmatically defined. Constructing and maintaining a structure of the size I’m interested in is obviously not feasible using just a drawing program.
Then I found Graphviz. The beautiful thing about it is that you define your relationships in a text file, and then it calculates optimal positioning for each of the nodes and connections. If you want to add a bunch of new nodes in an area that was formerly full, no problem. No need to manually re-arrange things, it figures out the new layout and connections automatically. The optimization algorithm seems pretty good — the layouts for my test files are certainly better than I can do by hand.
Below are some output samples.


You can see many more examples at the gallery.

Comments
What language and Database system are you developing for? VS2005 for .Net applications has base level relationship graphs depending on the view you choose when looking at a data source.
Posted 27 Mar 2008 at 10:49 AM ¶I’ve been using MySQL and PHP for this project. It’s a piece of work, designing for a graph system that fits nicely into SQL. I really should have spent more time looking at triple stores, honestly, since they are far closer to what I actually want.
Posted 27 Mar 2008 at 11:03 AM ¶Post a Comment