VisualSQL

Datenbank-Programmierung ist für den Novizen, den Studenten und auch den Programmierer oft ein Buch mit sieben Siegeln, sobald die Programmieraufgabe etwas komplexer wird.

Der Grund liegt auf der Hand:
Es ist unmenschlich, eine oder auch mehrere Seiten Code zu lesen, diesen zu verstehen, in Details eine Verknüpfung herzustellen und auch in allen Facetten zu erfassen. Meist sind viele kleinere Nebenbedingungen mit zu erfassen bzw. im Auge zu behalten. Oft erschweren Unzulänglichkeiten von SQL auch die Formulierung.


Abbildung 1: VisualSQL Beispiel

Außerdem werden SQL-Anfragen nach einer gewissen Zeit modifiziert, weiterverwendet und weiterentwickelt. Damit entsteht oft SQL-»Spaghetti«, der eine Wartung eines System unmöglich macht. Da Datenbank-Management-Systeme sich weiter entwickeln oder auch oft in der Praxis eine Anwendung teilweise oder als Ganzes auf eine andere Plattform migriert werden muss, ist ein Verstehen und Erfassen der SQL-Anfragen eine Voraussetzung für das Überleben der Datenbanken in neuen Umgebungen.
Anfragen können in Visual SQL anstelle der üblichen SQL-Programmierung von Datenbankanwendungen in einer einfachen und zugleich verständlichen Form angegeben werden. Selbst komplizierte Anfragen, die auch für erfahrene SQL-Programmierer eine Herausforderung darstellen, können in einer einfachen und überschaubaren Form erstellt, erweitert, verändert werden.
Mit Hilfe des Java-basierten Software-Werkzeugs lassen sich die Anfragen in Visual SQL erstellen und modifizieren. Darüber hinaus besteht die Möglichkeit, Visual SQL Anfragen in SQL-Anfragen zu transformieren.

Übersetzung von Visual SQL in SQL

Vollständige Übersetzung: Alle in Visual SQL formulierten Anfragen können direkt in SQL übertragen werden.

 

Übersetzung von SQL in Visual SQL in SQL

Auch für Geübte ist es oft problematisch, größere SQL-Anfragen zu verstehen. Vor allem dann, wenn sie die Anfragen nicht selbst erstellt haben oder das Datum der Erstellung weit zurück liegt. Eine grafische Aufbereitung bestehender Anfragen bietet dabei das Potential, den Prozess des Verstehens zu beschleunigen. Darüber hinaus eignet sich die grafische Darstellung von SQL-Anfragen auch, um Dokumentationen anzureichern bzw. diese einer größeren Zielgruppe zugänglich zu machen. Im Falle von Mengenvergleichen ist die VisualSQL Darstellung nicht nur einfacher überschaubar, sondern auch von wesentlich geringerem Umfang als das SQL-Code Pendant.

Aus diesem Grund können zusätzlich bestehende SQL-Anfragen in die VisualSQL Darstellung transformiert werden. Diese Möglichkeit erleichtert somit die Migration, existierender Anfragen hin zur VisualSQL Darstellung, deutlich.

Integration mit Werkzeugen

XML-Schnittstelle: Das Werkzeug hat eine standardisierte XML-Schnittstelle für Entity-Relationship-Schemata und für Visual SQL Anfragen.

Direkte Integration: Für einige Werkzeuge, die in der Datenbankentwicklung benutzt werden, wird eine direkte Schnittstelle angeboten.

 

Ein kleines Beispiel:

Gesucht sind alle Studentenpaare, die nur alle Vorlesungen gemeinsam besuchen!

Für den Ausschnitt eines erweiterten ER-Schemas (siehe Abb. 2) erhalten wir die einfache Visual SQL Anfrage (siehe Abb. 1).

 

ER-Schema: Person Student belegt Kurs

Abbildung 2: ER-Schema Student belegt Vorlesung

Sie führt zur folgenden SQL Anfrage:

 

SELECT S1.MatrNr, S1.Name, S2.MatrNr, S2.Name
FROM Student S1, Student S2, Belegt E1, Belegt E2
WHERE S1.MatrNr = E1.MatrNr
 AND S2.MatrNr = E2.MatrNr
 AND S1.MatrNr < S2.MatrNr
 AND NOT EXISTS
  (SELECT * FROM Belegt E3
    WHERE E3.KursNr || E3.Semester NOT IN
     (SELECT E4.KursNr || E4.Semester
       FROM Belegt E4
       WHERE E4.MatrNr = E2.MatrNr)
  AND E1.MatrNr = E3.MatrNr)
 AND NOT EXISTS
  (SELECT * FROM Belegt E5
    WHERE E5.KursNr || E5.Semester NOT IN
     (SELECT E6.KursNr || E6.Semester
       FROM Belegt E6
       WHERE E6.MatrNr = E1.MatrNr)
     AND E2.MatrNr = E5.MatrNr);