0

Is there a tool which I can use to inspect and visualize my SQL database? I'm using MySQL and MySQL Workbench. MySQL Workbench is fine, but I would like to be able to see my db as a graph of objects. For example, if I have schools, professors and students, the tool would have to figure out the relations and to give me a tree structure (or a forest) of schools that have professors as children and students would be the leafs of the tree. In general case it would be a graph.

It looks to me as a common problem, but I could not find any good tool for this.

It does not have to be specifically for MySQL, any other SQL db would be good for me.

  • This is generally something you would have to write yourself in order to get exactly what you want. A good graphing library will do most of the work for you. – Jordan Bentley Aug 13 '14 at 16:01

1 Answers1

0

If I get it right you want to navigate the data and its relationships of your (relational) data source.

This is not exactly what Relational really perform so well: in particular JOINs are the issue in this kind of task.

The more JOIN the slower the query will be. And usually you have to use a lot of JOINs to navigate your data.

Said that, I've tried to give an JS panorama for this kind of tools on this answer: Big data visualization using "search, show context, and expand on demand" concept

More, the developers in my company just released a new blog post about visualizing networks from different data sources on our blog: while the post talks about KeyLines the process it pretty much the same for every JS framework out there, the complexity will change mostly when you have to implement the visualization itself.

Disclaimer: 'm part of the the Keylines dev team.

Community
  • 1
  • 1
MarcoL
  • 9,829
  • 3
  • 37
  • 50
  • Navigating the relationships between data is exactly what relational databases do well. If you have your database set up correctly with indexes joins are incredibly fast. – Jordan Bentley Aug 13 '14 at 15:58
  • It depends if what you want to see is a 1:1 mapping of your database or not. In case it's this it can works fast - depending on the size of the tables - , otherwise it will take a very long time. – MarcoL Aug 13 '14 at 16:32
  • Have a look at this article about JOINs performances: http://codeidol.com/sql/sql-performance-tuning/Joins/Avoid-the-Join-Strategies/ – MarcoL Aug 13 '14 at 16:33
  • first of all, if he has a small enough data set that he can visualize it, he isn't going to have a performance problem. Second, that article confirms my point: "When a join index is on the two tables, it's a trivial job for the DBMS to execute this statement." – Jordan Bentley Aug 13 '14 at 17:30
  • I cannot see that he wrote that his dataset is small, so the answer has to be generic. More, if you want to explore an object you have to do multiple JOINs in order to have all the related objects: given N related tables you have to do N JOINs. – MarcoL Aug 14 '14 at 08:24