What is DAVILA?

DAVILA is an open source relational database schema visualization and annotation tool. It is written in Processing using the toxiclibs physics library and released under the GPLv3.

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.

Why use DAVILA?

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.

Which schemas can DAVILA parse?

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.

What does DAVILA stand for?

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?