Database schema visualization is an essential process during the initial project design phase. Also, it can be useful when you need to reverse engineer a big schema and need to understand the various relationships between different tables. Below are given various database diagramming and visualization tools that will help you make sense of your complex database designs.
SchemaSpy is a Java-based tool (requires Java 5 or higher) that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format. It lets you click through the hierarchy of database tables via child and parent table relationships as represented by both HTML links and entity-relationship diagrams.
SchemaSpy uses Graphviz, specially the dot program to generate graphical representations of the table/view relationships. SchemaSpy is a command line tool. If you’re more comfortable with the GUI approach then try out Joachim Uhl’s SchemaSpyGUI.
2. MySQL Workbench
MySQL Workbench simplifies database design and maintenance and improves communication among DBA and developer teams. It has a nice schema visualization tool that also enables you do design with ER diagrams.
Many database features are supported, such as keys, foreign key constraints, comments and indexes. You can either save your design (for further loading & modifications), print it or export as SQL script. It is possible to retrieve (import) schema from existing database.
Like Schemaspy, SchemaCrawler generates database diagrams using Graphviz. You can easily filter out tables, views, columns, stored procedure and functions based on regular expressions, using the grep functionality.
Schemaball is an SQL database schema viewer. It however requires Perl and a few modules, such as GD and optionally Math::Bezier and SQL::Translator. Schemaball creates flexible visualizations of database schemas. Schemas may be read from an SQL schema dump, flat file or a live database.
Shemaball was originally designed for MySQL and works with MySQL out of the box. While InnoDB tables support foreign keys (as of Mysql 3.23.44), MyISAM tables do not (as of 4.0). Therefore, Schemaball can identify foreign keys using CONSTRAINT table options, by regular expressions applied to participating tables, or by reading constraints from a file.
Besides the above mentioned tools, a recent one I discovered is Lucid Charts. It is a web based diagramming tool offering various flowcharts, er diagrams and more in a cloud environment. Because Lucid Chart runs in your browser, it doesn’t matter which kind of computer you use. It works for Mac, PC, and Linux! You can also import Visio files (.vdx, .vsd, or .vsdx).
Lucid charts also enables one to import database schema or create one in the browser. Because it is cloud based, you can edit the charts in real-time collaboration with others, add comments do documents and track document revisions.
Lucidchart’s database import and export feature makes it easy to move your work to and from MySQL, Oracle, PostgreSQL and SQL Server. After importing, just drag your custom tables onto the canvas document and voila, the relationships will appear automatically. When you’re finished you can generate SQL code for a seamless transition.