DAVILA makes it easy for database developers to create visually appealing and semantically rich interactive diagrams to document their relational data structures. Ideally, an instance of DAVILA should make the design and purpose of the database clear to non-technical users (or other members of the design team who are unfamiliar with database structure). It loads (and parses) the schema file of your database plus a CSV file containing a series of customization options.
There are quite a few schema visualization programs out there, both proprietary and open source, but they all generate generic diagrams with
With DAVILA you fill out a CSV file to label your diagram with basic information about the program (project name, URL, developer names) and license the diagram under the copyright or copyleft of your choice. You can then group your entities into modules, color code those modules, indicate which entity is central to each module, and provide annotation text for every entity in the database.
Once DAVILA is running, users can click and drag the entities into different positions, expand an individual module for more information, or hide the non-central entities in a module to focus on another part of your schema. All in a fun, force-directed environment courtesy of the toxiclibs physics library. Pressing the space bar saves a snapshot of the window as a timestamped, vector-scaled pdf.
DAVILA allows you your users, clients, or fellow development team members to literally play with your schema until they understand it better.
But don't take my word for it. Click on an example from the sidebar and see for yourself.
Version 0.2 is released with 2 parsers. The default parser can extract the necessary information from a SQL file created by the Django "manage.py sql" command. The other parser can extract the necessary information from a Rails 2.x schema that uses SQL92 inserts to create foreign key constraints.
Overtime I hope to increase the parser library. However, since SQL is a non-orthogonal language (and therefore every developer seems to have her/his favorite way of writing SQL Schemas), I will be relying on the user base to help improve the parser library.
See the README file included with the source code for information on how to create a parser that fits your schema. I've tried to make it relatively easy.
DAVILA stands for many things: communication, understanding, community building, and the like, but it is not an acronym. There are far too many acronyms running around the web these days, IMHO.
DAVILA is named after John Adams' 1790 treatise on political philosophy, Discourses on Davila: a series of papers on political history, an extensive commentary of the Italian historian and diplomat Enrico Caterino Davila's 1630 Istoria delle guerre civili di Francia.
Yes. I am a historian. Any other questions?
Code available on github:
Depending on the height of your screen, you may need to scroll down for the instructions
The web demo is still an applet, I am in trying to port DAVILA to processing.js, but have hit a few snags.
To see my blog posts about DAVILA for digital humanists click here.
Thanks also go to: