<p>I have been looking for a tool that will graphically and programmatically track identifiers as they pass through systems. I could have done this in Inkscape after following the excellent tutorials on <a href="https://screencasters.heathenx.org/" target="_blank">https://screencasters.heathenx.org/</a>, however I also wanted to be able to describe the relationships programmatically.</p>
<p>This got me to thinking about <em>graphical query builders</em> for databases. The idea is to show each system as a table block and then draw lines between them to show how "Field_X" in "System_A" will map to "Field_Y" in "System_B". Many of the proprietary and some free database solutions allow this type of view. However I also want to easily package the entire thing up, so that someone else could access it without needing to pay for or install any specialized software. That limited the choice of database to <a href="https://www.sqlite.org/" target="_blank">SQLite</a>, which is small, supported on many platforms and is released into the Public Domain.
<blockquote>SQLite is an in-process library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. The code for SQLite is in the public domain and is thus free for use for any purpose, commercial or private. SQLite is the most widely deployed database in the world with more applications than we can count, including several high-profile projects.</blockquote>
Please follow the instructions on the SQLite site for information on how you can install it on your system. For me on Fedora it's simple to install via dnf/yum. You might also want to install some GUI managers if that's your thing.
<pre>dnf install sqlite sqlitebrowser sqliteman
</pre>
I created a small database for demonstration purposes, consisting of two tables and one field in each.</p>
<p>Next step is to download <a href="https://sqleo.sourceforge.net/index.html" target="_blank">SQLeo Visual Query Builder</a> which has support for a graphical query builder.
<blockquote>A powerful SQL tool to transform or reverse complex queries (generated by OBIEE, Microstrategy, Cognos, Hyperion, Pentaho ...) into diagrams to ease visualization and analysis. A graphical query builder that permits to create complex SQL queries easily. The GUI with multi-connections supports virtually all JDBC drivers, including ODBC bridge, Oracle, MySQL, PostgreSQL, Firebird, HSQLDB, H2, CsvJdbc, SQLite. And top of that, everything is open-source!</blockquote>
SQLeo is a Java Tool and there is a limited version available on the web site which is limited to 3 tables per graph and 100 rows. Now as the program is released under the GPLv2.0, you could download the code and remove the restrictions. You can also support the project to the tune of <a href="https://sqleo.sourceforge.net/support.htm" target="_blank">€10</a> and you will get the full version ready to rock.</p>
<p>Unzip the file and enter the newly created directory, and run the program as follows:
<pre>java -Dfile.encoding=UTF-8 -jar SQLeoVQB.jar
</pre>
One slightly confusing thing, and the reason for this post, is that I could not find support for SQLite listed in the list of databases to connect to. A quick search on the support forum and I found the question "<a href="https://sourceforge.net/p/sqleo/discussion/general/thread/462168e0/" target="_blank">Connection to SQLite DB</a>". I found the answer a bit cryptic until I read the manual related to <a href="https://sqleo.sourceforge.net/guide/index.html#_Toc327875410" target="_blank">JDBC Drivers</a>, which told me how to add the sqlite library.</p>
<p>SQLeo uses a standard Java sqlite library that is released under the Apache Software License, Version 2.0. You can download it from the <a href="https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc" target="_blank">SQLite JDBC MVNRepository</a> and save it into the same directory as SQLeo.</p>
<p>Right Click in the Metadata explorer window and select <em>new driver.</em></p>
<p>For step by step instructions please see <a href="https://hackerpublicradio.org/eps/hpr1965.html">https://hackerpublicradio.org/eps/hpr1965.html</a></p>
