aSVERD |
||
Download from SourceForge | View an example SVG diagram |
[2006-01-11] There are problems using the first beta with FireFox, fixes for this will be release shortly.
This is a Scalable Vector Graphics Entity Relationship Diagram generator. It is a tool that should be seen as part of a tool chain rather than a complete solution. What it does is read tables and relationships from a database and generate an SVG file containing the tables and links.
The motivation for creating this was than I have worked in many organisations that have databases with no ERDs and no tools for creating them. I finally got so fed up that I decided to do something about it and this is the result.
The way it is intended to work is that you point SVERD at your database and it creates an SVG file containing all tables and links between them. It DOES NOT attempt to create a fancy layout. it just puts the tables on the diagram in a grid. This can be viewed in a web browser (may need an SVG plug-in). You then use an SVG editor, such as GLIPSGraffiti to lay ou the tables. If you re-run SVERD on an exisitng output file it will not move the tables, therefore the diagram can be updated with out loosing your edits.
NOTE: the links between the tables are rendered using JavaScript, so that if you move the tables around in an editor, the links stay with them. The disadvantage of this is that the editor may not show the links while you are editing (this is the case with GLIPS).
If the table references are not defined in the database they can be supplied in a text file.
java -jar asverd.jar
PropertiesFile
Or
java -jar asverd.jar -d driver -c connectionString -u user -p password [-o outputFile] [-q tableQuery] [-s schema]
[-c catalog] [-r refs.txt]
e.g. sverd.TableLister -d com.mysql.jdbc.Driver -c jdbc:mysql://168.0.0.200:3306/DataBase1 -u fred -p secret
The properties file should contain
sverd.driver=databaseDriver
sverd.url=connectionString
sverd.user=username
sverd.password=password
sverd.outputFile=outputFile (optional - STDOUT used if not present)
sverd.tableQuery=query for table name - e.g. INV% (optional - all tables returned if not present)
sverd.schema=database schema (optional - leave out for DBs that do not use)
sverd.catalog=database catalog (optional - leave out for DBs that do not use)
sverd.references=refs.txt (optional - a file containing referecnes if
these are not defined in the database. This file should be of the format
TABLE [tablename] [foriegnKeyColName] REFERENCES [tablename] [primaryKeyColName]
- I know flat text files are not trendy but this format is relatively easy
to generate from either XML or SQL (via AWK, SED, PERL, etc)