CW-Leser testen: Squirrel SQL

20.04.2007
Frank Pientka arbeitet als Principal Software Architect bei der MATERNA GmbH. Als Software Architect sorgt er für mehr Qualität in der Software und kümmert sich, als Gründungsmitglied des iSAQB, um eine verbesserte Ausbildung und Zertifizierung von Architekten.
Seit mehr als zwei Jahrzehnten unterstützt er Firmen bei der Umsetzung  und Modernisierung ihrer Software-Architekturen. Dabei führt er externe Reviews und Architekturbewertungen als Gutachter durch.
Dazu hat er auch schon mehrere Bücher, Fachartikel veröffentlicht und Vorträge gehalten.
Die Open-Source-Software bietet bequemen Zugriff auf zahlreiche Datenbanksysteme.

Für die Arbeit mit Datenbanken existiert als einfachster Zugang eine Kommandozeilenschnittstelle. Einige Datenbankhersteller bieten für diesen Zweck grafische Werkzeuge an. Oft besitzen diese Programme jedoch eine eigenwillige und funktionsüberladene Oberfläche, was es dem Bediener schwer macht, auf Datenbanksysteme unterschiedlicher Anbieter zuzugreifen. Genau das verspricht das unter LGPL (Lesser General Public License) verfügbare Open-Source-Programm Squirrel, dessen Name sich vom englischen Wort für Eichhörnchen ableitet. Der leistungsfähige und flexible SQL-Editor gestattet es, mit verschiedenen relationalen Datenbanken wie Oracle, DB2, Derby, PostgreSQL und MySQL auf einheitliche Weise zu arbeiten. Voraussetzung ist ein JDBC-2.0-Treiber. Über geeignete Treiber wie xlSQL und csvjdbc können mit Squirrel auch Dateien in den Formaten Excel, CSV und XML verarbeitet werden. Dies macht es für den Anwender erheblich leichter, komplexe SQL-Anweisungen zu erzeugen sowie sich in die Struktur einer Datenbank einzuarbeiten.

Da Squirrel nur eine Java-Runtime-Umgebung benötigt, läuft es auf vielen Plattformen, wobei die unterstützte Java-Version von der verwendeten Programmversion abhängt. Für Release 2.5 ist JDK 5.0 erforderlich. Welche Funktionen und Eigenschafen vom jeweiligen JDBC-Treiber unterstützt werden, zeigt Squirrel im "Metadata"-Reiter zur verbundenen Datenbank recht übersichtlich an.

Die Installation erfolgt entweder durch Auspacken der Archivdatei oder über ein grafisches Installationsprogramm. Letzteres gestattet es, die über die Standardinstallation hinaus benötigten Plug-ins gezielter auszuwählen und sich dafür ein Installationsskript erstellen zu lassen.

Navigation durch Datenbankobjekte

Anwender können durch Datenbankobjekte navigieren, diese anzeigen und darauf SQL-Befehle absetzen. Die Oberfläche teilt sich übersichtlich in Menüs, Icons und die Arbeitsbereiche Verbindungen, Treiber, Datenbank-Objekt-Browser und SQL-Editor auf. Damit hat man die Informationen zu einer Datenbank stets im Griff. Professionelle Icons, Layouts und Skins wirken sehr ansprechend.

Außerdem kann das Werkzeug über Plug-ins erweitert werden, um die Spezialitäten einzelner Datenbanken besser zu unterstützten. Hervorzuheben sind hier die bereits mit ausgelieferten Plug-Ins fürs Kopieren einer Datenbank ("DBCopy"), das Ändern von Datenbankstrukturen ("Refactoring") sowie die Validierung und die Syntax-Hervorhebung von SQL. Ferner gibt es Erweiterungen, um Data Objects anzulegen, Tabellenbeziehungen grafisch darzustellen und SQL-Befehle wie Lesezeichen zu speichern.

Steht eine Verbindung zur Datenbank, kann der Nutzer im Objekt-Browser die Datenbankobjekte Tabelle, Views, benutzerdefinierte Datentypen (UDTs) und gespeicherte Prozeduren (Stored Procedures) betrachten. Im Objekt-Browser wird neben den Spalten- und Zeilenzahl auch der Inhalt der Tabelle mit Schlüsseln und Fremdschlüsseln angezeigt. Um das Arbeiten zu beschleunigen und zu vereinfachen, können Eigenschaften generell oder pro Sitzung angepasst werden.

Alle Konfigurationseinstellungen speichert die Software standardmäßig im Benutzer-Home-Verzeichnis unter .squirrel-sql. Sie lassen sich anderen Benutzern einfach zur Verfügung stellen. Das erleichtert auch eine Migration auf eine neue Squirrel-Version, da die bereits gemachten Konfigurationseinstellungen nicht verloren gehen.

Arbeiten mit SQL einfach gemacht

Standardmäßig werden die Inhalte von Tabellen nur zum Lesen angezeigt, um sie vor Veränderung zu schützen. Nachdem diese Eigenschaft geändert wurde, können sehr einfach Zeilen in die Tabelle eingeführt werden oder Inhalte angepasst werden.

Der SQL-Editor basiert auf dem "Netbeans"-Editor. Er verfügt über nützliche Shortcuts wie etwa Ctrl-J für Bookmarks und Ctrl-Space für Autovervollständigung von SQL-Befehlen. Mit Ctrl-T erscheint ein Auswahlmenü, das Funktionen zum Auskommentieren von Befehlen oder zur Erstellung von Escape-Sequenzen für DATE/TIME-Werte anbietet.

Er bietet SQL-Code-Vervollständigung und eine automatische Syntax-Überprüfung. Die SQL-Abfragen kann man abspeichern oder in den verschiedenen Formaten (HTML, CSV, Excel) exportieren beziehungsweise kopieren. Für eine Tabelle lassen sich Daten-, Lösch- und Abfrage-Scripts erstellen.

Gerade die Erstellung eines Daten-Script mit fertigen INSERT-Anweisungen erleichtert eine Migration von kleinen Datenmengen zwischen verschiedenen Datenbankprodukten ohne den Weg über produktspezifische EXPORT-/IMPORT-Anweisungen zu gehen.

Ebenso sind Anwender in der Lage, ein komplettes DDL-Skript für eine oder mehrere Tabellen zu erzeugen, wahlweise mit Indizes und Constraint-Bedingungen.

Somit eignet sich Squirrel nicht nur für die SQL-Entwicklung, sondern auch für die Migration zwischen verschiedenen Datenbanken. Besonders komfortabel, wenn auch nicht für alle Datenbankprodukte verfügbar, ist das erwähnte DBCopy-Plug-in, was eine komplette Tabelle mit Inhalt kopiert.

Die Verwendung mehrerer Datenbanken wird dadurch vereinfacht, weil man SQL-Statements einheitlich erstellen und ausführen kann. Syntaxfehler erkennt und markiert das Werkzeug schon vor der Ausführung. Außerdem lässt sich das passende SQL-Grundgerüst für ein Datenobjekt per Copy and Paste zusammenstellen, das nur noch an die speziellen Bedürfnisse anzupassen ist.

Oft wird für die Arbeit mit SQL eine überschaubare Anzahl von fertigen Anweisungen benötigt, diese werden in der Befehlshistorie aufgehoben und können von dort wieder ausgeführt werden. Alternativ kann man die SQL-Befehle in einer Bookmark-Sammlung oder in einer eigenen Datei für eine spätere Ausführung aufheben. Dadurch wird die tägliche, fehlerträchtige Arbeit mit SQL, auch ohne eine SQL-Referenz, erheblich vereinfacht und beschleunigt.

Um das passende SQL generieren zu können, ist genaues Wissen über die in einem Datenmodell dargestellten Beziehungen zwischen den Tabellen nützlich. Gerade eine grafische Darstellung bietet hier entscheidende Vorteile, um sich einen Überblick zu verschaffen. Dabei geht die Darstellung über die einfache Anzeige hinaus. Die Tabellen können mit den Constraint-Namen auf einer Blattseite platziert werden, so dass auch viele Tabellen ohne hässliche Seitenumbrüche ausdruckbar sind. Außerdem gibt es eine Zoomfunktion, um auch bei einer großen Anzahl von Tabellen nicht den Überblick zu verlieren.

Fazit

Squirrel SQL ist, was die Unterstützung vieler Datenbanken betrifft, sehr kontaktfreudig. Es bietet durch die einheitliche und flexible Oberfläche eine universelle und überzeugende Alternative zu kommerziellen beziehungsweise datenbankspezifischen SQL-Werkzeugen, falls man auf erweiterte Datenbankadministrationsfunktionen verzichten möchte.

Es bleibt zu hoffen, dass fehlende Funktionen wie etwa für den Vergleich von Datenbankobjekten über zusätzliche Plug-ins in späteren Versionen nachgeliefert werden, die das Eichhörnchen dann in seine Plug-in-Sammlung aufnimmt. Bisher ist es eifrig dabei tätig gewesen.