jocDBInsight Handbuch 1.10

jocDBInsight Handbuch 1.10

jocDBInsight

Benutzerhandbuch

für Version 1.10

Autor: Jochen Riekhof / jocWARE

Web: http://www.jocware.de

Letzte Bearbeitung: 2. Dezember 2008 16:53

- 1 -

Inhaltsverzeichnis

Einführung ...................................................................................

5

Das Problem .............................................................................

5

Die Lösung ...............................................................................

5

Über dieses Handbuch .............................................................

6

Installation ...................................................................................

7

Systemvoraussetzungen ..........................................................

7

Installationsvorgang .................................................................

7

Lizensierung .............................................................................

8

„Stickware”, „Portable Software” ..............................................

9

Grundsätzliches .......................................................................

10

Titelzeile, Menü- und Werkzeugleiste ....................................

10

Die Standardmenüs ...............................................................

11

Der Arbeitsbereich ..................................................................

12

Die Statusleiste ......................................................................

13

Datenbanken öffnen .................................................................

14

Sonderfall Microsoft Access ...................................................

17

Strukturelemente ......................................................................

18

Datenbank .............................................................................

18

Schema .................................................................................

19

Tabelle ...................................................................................

19

- 2 -

Tabellenspalte .......................................................................

20

Index ......................................................................................

22

Fremdschlüssel .....................................................................

22

Spaltenkorrelation .................................................................

24

Sicht ......................................................................................

25

Sichtspalte .............................................................................

26

Gespeicherte Prozedur .........................................................

26

Abhängigkeiten .........................................................................

27

Der Strukturbrowser .................................................................

29

Einführung ..............................................................................

29

Das aktuelle Segment ............................................................

31

Die aktuelle Auswahl ..............................................................

31

Weitere Funktionen ................................................................

31

Die Detailansichten ...................................................................

34

Diagram (Diagramm) ..............................................................

34

Info .........................................................................................

35

Metrics (Metriken) ..................................................................

46

Data (Daten) ..........................................................................

55

Source (Quelltext) ..................................................................

62

Notes (Notizen) ......................................................................

63

Spaltenkorrelationen ................................................................

64

Das Problem ..........................................................................

64

Die Lösung .............................................................................

64

- 3 -

Automatisches Generieren von Spaltenkorrelationen ............

64

Manuelles Anlegen von Spaltenkorrelationen ........................

65

Operationen auf Spaltenkorrelationen ...................................

67

DBI-Dateien ...............................................................................

69

Tips und Tricks .........................................................................

71

Danksagung ..............................................................................

74

- 4 -

Einführung

Das Problem

In meiner Laufbahn als freier Softwareentwickler komme ich häufig mit bestehenden relationalen Datenbanken meiner Kunden in Kontakt. Idealerweise hat eine solche Datenbank sinnvolle Tabellen- und Spaltennamen, jede Tabelle einen Primärschlüssel und zwischen den Tabellen bestehen Fremdschlüsselbeziehungen, um nur einige Kriterien zu nennen. Die Wirklichkeit sah und sieht leider oft ganz anders aus. Schon bei der Benennung findet man sich oft schwer zurecht, und während Primärschlüssel noch recht häufig anzutreffen sind, fehlen Fremdschlüssel meist völlig. Da bleibt einem dann nichts übrig als in längeren Sitzungen

Daten und Datenzugriffscode zu sichten und sich so langsam ein

Verständnis der Datenbankstruktur zu erarbeiten. Ist dies bei kleinen

Datenbanken mit einer Handvoll Tabellen noch recht schnell möglich, so wird dieser Vorgang bei oft Dutzenden von Tabellen sehr zeit- und damit kostenaufwändig.

Die Lösung

Als Softwareentwickler machte ich mir natürlich irgendwann Gedanken wie ich diesen Vorgang durch geschickte Programmierung unterstützen könnte. Das Ergebnis meiner Bemühungen können Sie nun unter dem

Produktnamen jocDBInsight bewundern.

Natürlich wurde dieses Programm während der gesamten Entwicklung von mir genutzt und ständig getestet und weiterentwickelt. Es ist mittlerweile ein aus meiner täglichen Arbeit nicht mehr wegzudenkendes

Werkzeug.

Folgende Schwerpunkte sind in dieser ersten Version integriert:

• Automatisch erzeugtes Datenbank-Diagramm

• Speziell konzipierter Strukturbrowser

• Metriken für Tabellen, Spalten, Fremdschlüssel und Spaltenkorrelationen

• Fähigkeit auch komplexe Datenabfragen einfach mit der Maus zusammenzustellen

• Ausdrucksstarke Symbole zeigen den Status vieler Strukturelemente

- 5 -

• Spaltenkorrelationen als Ersatz für fehlende Fremdschlüssel

• Automatische Generierung von Spaltenkorrelationen aus Sichten-

Quellcode

• Gesamte Datenbank-Struktur speicherbar und auch ohne Datenbankverbindung ladbar

Alle diese Funktionen werden auf den folgenden Seiten ausführlich beschrieben.

Über dieses Handbuch

Dieses Handbuch ist so aufgebaut, dass Sie es als neuer Benutzer von vorn nach hinten durchlesen können und dabei alle wesentlichen Funktionen von jocDBInsight kennenlernen. Es ist dabei von grossem Vorteil wenn Sie dabei jocDBInsight installiert sowie wenigstens eine Beispieldatenbank lokal oder in ihrem Netzwerk verfügbar haben welche Sie für

Übungszwecke benutzen können.

Windows ist ein eingetragenes Warenzeichen der Microsoft Corporation.

Alle weiteren eingetragenen Waren- und Dienstleistungszeichen sind

Eigentum ihrer jeweiligen Inhaber.

- 6 -

Installation

Systemvoraussetzungen

Unterstützte Betriebssysteme für jocDBInsight sind alle 32-Bit-Versionen von Windows XP und Windows Vista. Sehr wahrscheinlich läuft jocDBInsight auch unter den 64-Bit-Versionen der genannten Betriebssysteme problemlos, diese Systeme wurden aber nicht getestet.

Zwingend benötigt wird eine möglichst neue Version der win32 Microsoft

„ActiveX Data Objects“ (ADO), mindestens Version 2.6 ist erforderlich.

Diese Bibliothek ist Bestandteil des Paketes „Microsoft Data Access

Components“ (MDAC). Da der gesamte Datenbankzugriff von jocDBInsight auf dieser API aufbaut ist ein Betrieb ohne diese Bibliothek nicht möglich. Die ADO-Bibliotheken sind auf der Microsoft Website unentgeltlich herunterladbar. Die ADO .NET Versionen werden von jocDBInsight nicht unterstützt oder benötigt, lassen sich bei Bedarf aber problemlos parallel zu den win32 APIs installieren.

Für die anzusprechenden Datenbanken müssen darüber hinaus passende ODBC oder OLE-DB-Treiber installiert werden. Bei Datenbanksystemen von Microsoft sind die Treiber Bestandteil der Datenbankinstallation und auch für MySQL gibt es ODBC Treiber vom Hersteller.

Installationsvorgang

Nachdem Sie das Installationsprogramm jocDBInsightSetup.exe heruntergeladen haben starten Sie es bitte um den Installationsprozess zu starten. Es ist immer eine gute Idee alle anderen Applikationen während einer Software- Installation zu beenden. Klicken Sie „Weiter“ im erscheinenden Willkommens-Bildschirm. Beachten Sie bitte dass Sie während der Installation jederzeit durch Anwahl der „Cancel“-Schaltfläche die Installation ohne Änderungen an Ihrem System abbrechen können. Sie können auch die „Back“-Schaltfläche benutzen um Änderungen an den

Einstellungen vorhergehender Arbeitsschritte vorzunehmen.

Als nächstes sehen Sie die Lizenzvereinbarungen zur Benutzung von jocDBInsight. Wenn Sie den Bedingungen zustimmen und dies mit dem

Wahlschalter unter dem Text bestätigen können Sie die „Next“-Schaltfläche anwählen um mit der Installation fortzufahren.

- 7 -

Nun können Sie das Zielverzeichnis für Ihre jocDBInsight-Installation auswählen. Voreingestellt ist der Windows-Standardordner 'Programme'

(der Name kann je nach Betriebssystemsprache variieren) der in den meisten Fällen in Ordnung sein sollte. Nachdem Sie ein weiteres mal

„Next“ angewählt haben kennen Sie den Namen des Startmenü-Ordners angeben; auch hier sollte der vorgegebene Wert in den meisten Fällen in Ordnung sein. Bitte wählen Sie nochmals „Next” um fortzufahren.

Im Arbeitsschritt „Additional Tasks” können Sie wählen ob SIe Ihre jocD-

BInsight-Benutzerdaten auf dem lokalen System unterhalb des Home-

Verzeichnisses des aktuellen Benutzers oder innerhalb des jocDBInsight-Programmordners speichern wollen. Letzteres ist nur empfehlenswert wenn Sie jocDBInsight auf einer externen Festplatte oder einem externen USB-Laufwerk installieren, da jocDBInsight im Standard-Installationsordner (unter dem Windows „Programme" Ordner) zur Laufzeit keine Schreibrechte hat und daher nicht richtig funktionieren wird wenn

Sie diese Option wählen und der aktive Benutzer keine Administrator-

Rechte hat.

Nachdem Sie ein weiteres mal „Next” angewählt haben sehen Sie den

„Summary“ Bildschirm mit einer Übersicht über die von Ihnen gewählten

Optionen. Wenn alles in Ordnung ist wählen Sie nun die „Install”-Schaltfläche um die Installation zu starten. Sie können auch die Schaltfläche

„Back” benutzen um Optionen in einem beliebigen Arbeitsschritt zu ändern.

Lizensierung

Wenn jocDBInsight ohne gültige Lizenz gestartet wird so erscheint ein

Dialog Auswahlmöglichkeiten zum Registrieren des Programms („Register”), zum Verwenden von jocDBInsight im Demo-Modus („Demo”) oder zum sofortigen Beenden („Quit”). Wenn Sie über die Webseite www.jocware.de

eine Webseite erworben haben so wählen Sie bitte die

„Register...”-Schaltfläche und geben Sie exakt (!) den Namen im Eingabefeld „Name“ ein den Sie beim Kauf der Lizenz benutzt haben und den gelieferten Lizenzschlüssel im Eingabefeld „License Number”. Wählen

Sie „OK” um die Lizenzdaten zu sichern. Von jetzt an wird jocDBInsight ohne vorherige Anzeige des Registrationsdialoges starten und uneingeschränkt funktionsfähig sein.

- 8 -

„Stickware”, „Portable Software”

„Stickware“ oder „Portable Software” bezeichnet Programme die nicht auf dem Zielsystem installiert werden müssen sondern einfach als Ordner kopiert werden können. Solche Applikationen können für gewöhnlich direkt von einem mobilen Gerät wie z.B. einem USB Speicherstick gestartet werden. Daher auch der Name „Stickware“. Da es oft praktisch ist jocDBInsight an verschiedensten Arbeitsplätzen verfügbar zu haben ist die Verwendung von jocDBInsight als „Stickware“ ohne Einschränkungen möglich. Noch nicht einmal U3-Funktionalität ist dafür nötig.

- 9 -

Grundsätzliches

Jede Programminstanz von jocDBInsight besitzt genau ein Hauptfenster, welches beim Programmstart automatisch geöffnet wird. Dieses gliedert sich wie bei Windows-Programmen üblich in eine Titelzeile ganz oben,

Menüleiste und Werkzeugleiste direkt darunter und eine Statusleiste ganz unten. Den größten Bereich des Fensters nimmt der Arbeitsbereich zwischen Werkzeug- und Statusleiste ein.

Titelzeile, Menü- und Werkzeugleiste

In der Titelzeile wird neben dem Programmtitel und der Programmversion der Name der gerade geöffneten Datenbank angezeigt. Ein kleiner

Stern vor dem Titeltext zeigt Ihnen, das noch ungesicherte Änderungen vorliegen.

Titelzeile, Menü- und Werkzeugleiste (MySQL Beispieldatenbank „Sakila“)

Die Menüleiste von jocDBInsight enthält die Standard-Menüs „Edit“,

„Windows“ und „Help“. welche Ihnen sicher aus vielen anderen

Windows-Programmen bekannt sind . Weiterhin finden Sie die für jocDBInsight spezifischen Menüs „File“, „Database“, „Browser“ und „Column Correlation“. Alle Menüeinträge werden an passender Stelle in diesem Handbuch ausführlich beschrieben. Beachten Sie bitte auch die bei vielen Befehlen angegebenen Informationen über mögliche Tastaturkürzel.

Die Werkzeugleiste enthält Symbole, über die Sie als Alternative zu Menü- und Tastaturbefehlen auf wichtige Operationen zugreifen können.

Durch kurzes Verweilen mit dem Mauszeiger über einem Symbol erhalten Sie einen Hilfetext zur Bedeutung. Die Funktion der Symbole wird zusammen mit den korrespondierenden in diesem Handbuch beschrieben.

- 10 -

Die Standardmenüs

Die Menüs „Edit“ und „Help“ finden Sie in fast allen Windows-konformen

Applikationen an derselben Stelle.

„Edit“-Menü

Das „Edit“ Menü enthält die bekannten Befehle „Copy“ zum Kopieren,

„Paste“ zum Einfügen und „Delete“ zum Löschen von Daten. Weiterhin finden Sie den Befehl „Rename“ zum Umbenennen des ausgewählten

Elementes. Dieser arbeitet nur wenn genau ein Element ausgewählt ist.

Zur Zeit können nur Spaltenkorrelationen umbenannt werden.

In der zur Zeit aktiven Listenansicht können mit den Befehlen „Select

All...“ alle oder mit „Select None...“ kein Element ausgewählt werden.

Mit dem Befehl „Find...“ rufen Sie den Dialog zur Textsuche auf und mit dem Befehl „Find Next“ können Sie eine vormalige Suche wiederholen um weitere passende Textstellen zu finden.

„Find“-Dialog

Beide Befehle stehen nur zur Verfügung wenn ein Textfeld wie zum Beispiel die Quellcode-Detailansicht aktiv ist.

- 11 -

Das „Windows“-Menü ermöglicht Ihnen das Öffnen des Fehler-Log-

Fensters.

„Windows“-Menü

Das Fehler-Log-Fenster können Sie nach Belieben jederzeit öffnen oder schliessen ohne das die Fehlerausgaben davon beeinflusst werden.

„Error-Log“-Fenster

Mit Schaltflächen unten im Fenster können Sie alte Log-Ausgaben löschen sowie das automatische anzeigen der neuesten Meldungen aktivieren. Mit dem Kontrollkästchen „Word Wrap“ können Sie weiterhin das

Umbrechen des Meldungstextes auf die Breite des Ausgabebereichs aus- oder einschalten.

„Help”-Menü

Das Hilfe-Menü enthält Befehle zum Aufrufen der Programmhilfe sowie zur Anzeige der allgemeinen Programminformationen und des registrierten Lizenznehmers von jocDBInsight.

Der Arbeitsbereich

Beim Arbeitsbereich von jocDBInsight lässt sich ein oberer und unterer

Bereich unterscheiden. Die Trennlinie zwischen diesen ist dabei nicht fest, sondern kann bei Bedarf mit der Maus vertikal verschoben werden.

- 12 -

In der oberen Hälfte des Arbeitsbereiches befindet sich der speziell für jocDBInsight konzipierte Strukturbrowser. Dieser ermöglicht die einfache

Auswahl und Darstellung direkt abhängiger Strukturelemente Ihrer Datenbank in jeder von Ihnen gewünschten Reihenfolge. Als Strukturelemente werden in diesem Handbuch die Datenbankbestandteile wie zum

Beispiel Tabellen, Tabellenspalten, Indizes, Fremdschlüssel, Sichten usw. bezeichnet.

jocDBInsight Hauptfenster (MySQL Beispieldatenbank „Sakila“)

In der unteren Hälfte des Arbeitsbereiches befinden sich eine Reihe von

Detailansichten, welche verschiedene Aspekte der im Strukturbrowser gewählten Elemente anzeigen. Diese Detailansichten sind in so genannten Tabs organisiert. Durch einfaches Klicken auf einen der Reiter können sie einfach zur gewünschten Detailansichten wechseln.

Die Statusleiste

Ganz unten im Hauptfenster befindet sich die Statusleiste, in welcher verschiedenste Meldungen vom Hinweis bis zur Fehlermeldung dargestellt werden. Die Art der Meldung können Sie am dargestellten Symbol neben dem Text der Nachricht erkennen. Falls bei bestimmten Operationen mehrere Fehlermeldungen aufgetreten sind, werden Sie hier gebeten, für detaillierte Informationen das Fehler-Log zu öffnen. Dieses erreichen Sie einfach über den Menüeintrag „Windows/Show Error log...“.

- 13 -

Datenbanken öffnen

jocDBInsight benutzt die von Microsoft entwickelten „ActiveX Data Objects“ (ADO) um auf Datenbanken zuzugreifen. Die eigentliche Verbindung zur Datenbank kann sowohl über das bejahrte ODBC als auch über das modernere OLEDB erfolgen. jocDBInsight benötigt sehr viele so genannte Meta-Informationen, z.B. über die Schemata, Tabellen, Spalten und vieles andere. ADO selbst stellt nicht alle für jocDBInsight nötigen Funktionen bereit, und leider werden die vorhandenen nur von wenigen Datenbanktreibern auch ausreichend unterstützt. Auch das IN-

FORMATION_SCHEMA, ein SQL Standardschema zum Auslesen von

Meta-Informationen über die aktuelle Datenbank, wird oft nur unvollständig abgebildet. Aus diesen Gründen gibt es speziell angepassten

Code für die unterstützten Datenbanken, um optimale Ergebnisse zu erzielen. Unterstützte Datenbanken sind zur Zeit Microsoft Access 97 und

2000, Microsoft SQL Server 2000 und 2005 sowie MySQL 5.

Geöffnet wird eine Datenbank über die Anwahl eines der „Open (xxx)...“

-Befehle im Menü namens „Database“.

„Database“-Menü

Hier gibt es diverse Möglichkeiten die im Anschluss beschrieben werden. Generell werden nach jeder erfolgreich aufgebauten Verbindung die Verbindungsdaten gespeichert. Sie können diese im Weiteren dann einfach über das Untermenü „Reopen Database“ wieder auswählen.

Maximal 10 Verbindungszeichenketten werden so gesichert.

Die Verbindungsdaten werden im „Reopen“-Menü zusammengefasst dargestellt um die Übersicht zu erhöhen. Die Darstellung zeigt einen eventuellen DSN-Namen in Hochkommata, danach falls verfügbar durch ein Leerzeichen getrennt den Namen der Datenbank, durch ein @-Zei-

- 14 -

chen getrennt den Servernamen und zum Schluss in eckigen Klammern den Benutzernamen an. Die Datenbank „Northwind“ auf dem lokalen

Rechner mit Benutzernamen „sa“ wird also z.B. als „[email protected][sa]“ dargestellt. Falls sie lieber die vollständigen Verbindungszeichenketten angezeigt bekommen möchten so halten Sie einfach die

Shift-Taste gedrückt wenn Sie das „Reopen“-Menü öffnen.

Passworte werden in letzterer Darstellung sowie auch überall sonst in jocDBInsight maskiert dargestellt. Die zugehörigen Dateien in Ihrem

Dateisystem sind darüber hinaus durch einen einfachen Algorithmus verschlüsselt und damit nicht ohne weiteres lesbar.

Falls sie sich bei sicherheitskritischen Datenbanken dennoch unsicher sind so geben Sie bitte kein Passwort an! Damit stellen Sie sicher das dieses weder mit den übrigen Verbindungsdaten gespeichert wird noch bei der Anzeige der Verbindungsparameter dargestellt wird. Bei fehlendem Passwort fragt jocDBInsight dieses automatisch über einen Passwortdialog ab.

Falls benötigt können sie den Inhalt der „Reopen“-Menüs auch durch

Anwahl von „Clear List“ ganz unten im jeweiligen Menü vollständig löschen. Hierbei wird auch der Inhalt der zugehörigen Dateien gelöscht.

Folgende Menüeinträge stehen für das Öffnen von Datenbanken zur

Verfügung:

• „Open (Connection String)...“

Falls Ihnen schon eine gültige Verbindungszeichenkette bekannt ist können Sie diese nach Anwahl dieses Menüeintrages einfach in das erscheinende Textfeld einfügen oder eintragen und dann mit der Return-Taste oder Mausklick auf die Schaltfläche „Ok“ bestätigen. Mit der

Schaltfläche „Cancel“ brechen Sie den Vorgang folgenfrei ab.

• Open (ODBC)...

Wenn Ihre Datenbank über eine ODBC-Datenquelle erreichbar ist so können Sie diese nach Anwahl dieses Menüeintrages im standardisierten Windows-ODBC-Auswahldialog auswählen.

• „Open (OLEDB)...“

Wählen Sie diesen Menüeintrag zum Öffnen Ihrer Datenbank über einen OLEDB-Treiber. Im standardisierten Windows-OLEDB-Dialog können Sie den gewünschten Treiber sowie benötigte Verbindungsparameter einstellen.

- 15 -

• „Open (UDL file)...“

Unter Windows können Datenbankverbindungsdaten in einer Datei mit der Erweiterung „UDL“ (Universal Data Link) gespeichert werden.

Nach Anwahl dieses Menüeintrages können Sie in einem Dateiauswahldialog die gewünschte UDL-Datei auswählen.

Sollte zum Zeitpunkt des Öffnens einer neuen Datenbank bereits eine

Datenbank in jocDBInsight geöffnet sein, so haben Sie in einem Auswahldialog die Möglichkeit durch Anwahl der Schalfläche „Ja“ die bestehende Datenbank zu verwerfen und die neue im selben Fenster zu öffnen, mit „Nein“ die neue Datenbank in einem neuen Fenster zu öffnen oder mit „Abbruch“ die Operation folgenfrei abbrechen.

Dialog beim Öffnen einer weiteren Datenbank

Beim gegebenenfalls geöffneten neuen Fenster handelt es sich übrigens um einen eigenständigen und völlig unabhängigen Windows-Prozess von jocDBInsight. Jede Instanz von jocDBInsight hat immer nur ein einziges Hauptfenster.

Einige weitere nützliche Befehle sind in diesem Menü enthalten. Durch

Anwahl des Eintrags „Connection Properties...“ öffnen Sie einen kleinen

Dialog welcher die Eigenschaften der Datenverbindungszeichenkette als leicht zu lesende Schlüssel-Wert-Paare anzeigt. Wenn Sie stattdessen

„Connection properties.. anwählen so wird ein ähnlicher Dialog geöffnet, diesmal werden allerdings die ADO Verbindungseigenschaften der aktuell verwendeten Datenbankverbindung angezeigt.

Wenn Ihnen bekannt ist, dass zur Zeit keine Verbindung zur aktuell ge-

öffneten Datenbank möglich ist sollten sie den Eintrag „Offline mode“ aktivieren. Falls dieser Eintrag aktiv ist so werden keinerlei Versuche unternommen, Abfragen in der Daten-Detailansicht auszuführen und beim

Versuch Metriken zu berechnen werden Sie informiert.

- 16 -

Sonderfall Microsoft Access

Ein besonderer Fall ist Microsoft Access. Während je nach verwendetem

Treiber die meisten der von jocDBInsight benötigten Metadaten zugreifbar sind, ist insbesondere der Quellcode der Abfragen nur mit einiger

Mühe aus internen Systemtabellen zu rekonstruieren. Da diese Systemtabellen dazu noch geschützt sind, muss man noch weitere Vorkehrungen treffen.

Bei Microsoft Access wird die Zugriffskontrolle über eine externe Datei mit der Erweiterung „SDW“ oder, bei Access 2.0, „MDA“ erledigt. Für den vollständigen Zugriff auf die Metadaten ist wichtig, das eine solche

Datei, typischerweise heisst diese „SYSTEM.MDW“, mit Admin-Rechten für den für das Öffnen mit jocDBInsight verwendeten Benutzer als Systemdatenbank angegeben wird.

Falls Sie eine solche Datei noch nie genutzt haben, fragen Sie sich nun wahrscheinlich, woher Sie eine bekommen können. Praktischer Weise wird beim Installieren von Microsoft Access eine solche Datei mit installiert, meist liegt sie im Ordner „C:\Programme\Microsoft Office\Office“,.

Geben Sie diese Datei als Systemdatenbank sowie „Admin“ als Benutzernamen und ein leeres Passwort an.

Bei ODBC Datenquellen können Sie diese Systemdatenbank im unteren

Bereich des ODBC-Dialoges auswählen. Beim Zugriff über OLEDB (hier verwenden Sie den Microsoft Jet OLEDB Provider in der höchsten verfügbaren Version) steht der Parameter „Jet OLEDB System Database“ unter dem Reiter „Alle“ zur Verfügung. Dieser muss auf den absoluten

Pfad Ihrer Systemdatenbank gesetzt werden. Für den vollständigen Zugriff auf alle benötigten Metadaten sollte wenn irgend möglich immer der

Microsoft.Jet.OLEDB.4.0-Treiber benutzt werden.

- 17 -

Strukturelemente

Als Strukturelemente werden in diesem Handbuch die strukturbildenden

Datenbankbestandteile wie zum Beispiel Tabellen, Tabellenspalten, Indizes, Fremdschlüssel, Sichten usw. bezeichnet, also eigentlich alles ausser den enthaltenen Daten. Alle Strukturelemente einer Datenbank bekommen in jocDBInsight individuell nach Typ unterschiedliche Symbole zugewiesen. Die in einem Symbol verwendeten Farben enthalten schon auf den ersten Blick sichtbare, wichtige Informationen:

Tabellen

Primärschlüssel

Indizes

Fremdschlüssel

Quellcode-Elemente

Von jocDBInsight verwaltete / erzeugte Elemente / Daten grün rot gelb grau orange blau

Datenbanken und Schemata haben eigenständige, von den obigen Regeln unabhängige Symbole.

Darüber hinaus variieren die Symbole vieler Strukturelemente gemäss ihrer individuellen Elementeigenschaften. Haben Sie übrigens keine

Sorge, das Sie einige der Elementeigenschaften wegen der Kleinheit der Symbole nicht richtig erkennen können. Alle dargestellten Informationen stehen in den Detailansichten noch einmal zur Verfügung. Nach kurzer Eingewöhnungszeit werden Sie sicher die praktische Symbolkodierung schätzen lernen die Ihnen viele wertvolle Informationen schon auf den ersten Blick zeigt.

Es folgt eine Beschreibung aller Strukturelement-Typen.

Datenbank

Datenbanken haben ein einfaches Datenbank-Symbol.

- 18 -

Schema

Schemata werden als Ordnersymbol mit enthaltenen Strukturelementen dargestellt.

Tabelle

Tabellensymbole haben als Grundfarbe grün. Die Variationen dieses

Symbols stellen den Status der repräsentierten Tabelle im Fremdschlüssel-Zusammenhang dar. Ein blauer Punkt in der oberen rechten Ecke des Symbols zeigt Ihnen, das Metriken vorhanden sind. Es werden folgende Zustände unterschieden:

Allgemeines Tabellensymbol erscheint so nur als allgemeines Tabellensymbol in Bedienelementen

Wurzeltabelle

• keine eigenen Fremdschlüssel

• Fremdschlüssel anderer Tabellen referenzieren diese Tabelle

Zentraltabelle

• eigene Fremdschlüssel

• Fremdschlüssel anderer Tabellen referenzieren diese Tabelle

Endständige Tabelle

• ein oder mehr als zwei eigene Fremdschlüssel

• keine Fremdschlüssel anderer Tabellen referenzieren diese

Tabelle

- 19 -

Endständige NM Tabelle

• genau zwei eigene Fremdschlüssel

• keine Fremdschlüssel anderer Tabellen referenzieren diese

Tabelle

Tabelle mit komplexen Beziehungen

• eigene Fremdschlüssel

• mindestens einer der Tabellen, die von eigenen Fremdschlüsseln referenziert werden, referenziert diese Tabelle

Freistehende Tabelle

• keine eigenen Fremdschlüssel

• keine Fremdschlüssel anderer Tabellen referenzieren diese

Tabelle

Tabellenspalte

Auf die Symbole von Tabellenspalten wurde in jocDBInsight größte

Sorgfalt verwendet, weil Tabellenspalten die direkten Repräsentanten der enthaltenen Daten sind und damit die oft wertvollsten Informationen geben können. Viele der Symbolvariationen beziehen sich auf die Werteverteilung der Daten der jeweiligen Tabellenspalte, daher sind zur Darstellung berechnete Metriken nötig. Ein blauer Punkt in der oberen rechten Ecke des Symbols zeigt Ihnen, das Metriken vorhanden sind. Nur die grundsätzlichen Symbolvariationen werden in der folgenden Tabelle aufgeführt. Kombinationen sind natürlich möglich.

Einfache Spalte keine besonderen Merkmale bekannt (eventuell wegen fehlender Metriken)

Primärschlüssel

Primärschlüssel der Tabelle bestehend aus dieser einen Spalte

- 20 -

Kandidat-Schlüssel möglicher Primärschlüssel, da sowohl „Eindeutig“ als auch

„Nicht NULL“ Beschränkungen existieren

Teil eines zusammengesetzten Primärschlüssels der blassrote Schatten zeigt die Primärschlüssel-Beteiligung

Indizierte Spalte der gelbe Schatten weist auf einen Index nur für dieser Spalte hin

Spalte ist Teil eines Index der blassgelbe Schatten weist auf einen zusammengesetzten

Index mit Beteiligung dieser Spalte hin

Eindeutige Spalte diese Spalte hat eine „Eindeutig“-Beschränkung

„Nicht NULL“ Spalte diese Spalte hat eine „Nicht NULL“-Beschränkung

Kandidat-Schlüssel datenbasiert möglicher Primärschlüssel zum Zeitpunkt der Metriken-Berechnung, da die Spaltendaten hier sowohl eindeutig als auch nicht NULL waren

Eindeutige Spalte datenbasiert eindeutige Spalte zum Zeitpunkt der Metriken-Berechnung, da die Spaltendaten hier eindeutig waren

„Nicht NULL“ Spalte datenbasiert

„Nicht NULL“-Spalte zum Zeitpunkt der Metriken-Berechnung, da die Spaltendaten hier keine NULL-Werte enthielten

- 21 -

Index

Auch bei den Index-Symbolen gibt es einige Varianten. Das „Eindeutig“-

Kennzeichen kann in Kombination mit den übrigen Symbolen auftreten.

Index auf einer einzigen Spalte der gelbe Pfeil weist auf einen Index auf eine einzige Spalte hin

Index auf mehreren Spalten der blassgelbe Pfeil weist auf einen Index auf mehrere Spalten hin

Primärschlüssel-Index auf einer einzigen Spalte der rote Pfeil weist auf einen Primärschlüssel-Index auf eine einzige Spalte hin

Primärschlüssel-Index auf mehreren Spalten der blassrote Pfeil weist auf einen Primärschlüssel-Index auf mehrere Spalten hin

Eindeutiger Index das kleine U unten links (für englisch „Unique“) zeigt, dass dieser Index eindeutige Werte garantiert

Fremdschlüssel

In der folgenden Tabelle finden Sie die möglichen Varianten der Fremdschlüssel-Symbole. Auch hier sind einige Kombinationen möglich. Ein blauer Punkt in der oberen rechten Ecke des Symbols zeigt Ihnen, das

Metriken vorhanden sind.

- 22 -

Allgemeiner Fremdschlüssel auf einem Spaltenpaar erscheint so nur als allgemeines Fremdschlüssel-Symbol in

Bedienelementen sowie in Kombination wie unten angegeben

Allgemeiner Fremdschlüssel auf mehreren Spaltenpaaren erscheint nur in Kombination wie unten angegeben

1:1 Fremdschlüssel

Die Linie unten links weist auf einen 1:1-Fremdschlüssel hin.

Dies entsteht wenn die Fremdschlüssel-Spalte(n) eine „Eindeutig“-Beschränkung hat

1:n Fremdschlüssel

Der sich nach rechts verdickende Keil unten links weist auf einen 1:n-Fremdschlüssel hin. Diese Art Fremdschlüssel ist am häufigsten n:1 Fremdschlüssel

In korrekt implementierten Datenbanksystemen ist diese Art von Schlüssel nicht möglich.

n:m Fremdschlüssel

In korrekt implementierten Datenbanksystemen ist diese Art von Schlüssel nicht möglich.

Die letzten beiden beschriebenen Symbole werden Sie wahrscheinlich nie zu Gesicht bekommen, da Sie in korrekt implementierten Datenbanksystemen verboten sind. Die von einem Fremdschlüssel referenzierte(n) Spalte(n) müssen laut Definition immer eindeutig sein. Da es aber möglicherweise fehlerhaft implementierte Datenbanksysteme gibt wurden diese Möglichkeiten der Vollständigkeit halber mit aufgenommen.

- 23 -

Spaltenkorrelation

Wie schon erwähnt war einer der Gründe für die Entwicklung von jocDBInsight das häufige Fehlen von Fremdschlüssel-Beziehungen in relationalen Datenbanken. Spaltenkorrelationen sind in jocDBInsight der

Ersatz für fehlende Fremdschlüssel. Detaillierte Informationen zu Spaltenkorrelationen finden Sie in einem der folgenden Kapitel.

Spaltenkorrelationen können „Stark“ oder „Schwach“ sein, Im Diagramm werden „Starke“ Spaltenkorrelationen wie Fremdschlüssel behandelt während „schwache“ gar nicht angezeigt werden.

Für einige Datenbanktypen analysiert jocDBInsight sogar den Quellcode der Sichten und generiert Spaltenkorrelationen aus den gefundenen

JOINs. Natürlich können Sie Spaltenkorrelationen auch manuell erstellen. Viele weitere Informationen zu Spaltenkorrelationen finden Sie im gleichnamigen Kapitel dieses Handbuchs.

Wie bei vielen anderen Symbolen in jocDBInsight können auch hier die

Basissymbole in Kombination auftreten. Die blaue Grundfärbung weist auf von jocDBInsight verwaltete Strukturelemente hin. Ein blauer Punkt in der oberen rechten Ecke des Symbols zeigt Ihnen, das Metriken vorhanden sind. Hier die möglichen Basissymbole für Spaltenkorrelationen:

Spaltenkorrelation auf einem Spaltenpaar erscheint so nur als allgemeines Spaltenkorrelation-Symbol in

Bedienelementen sowie in Kombination wie unten angegeben

Spaltenkorrelation auf mehreren Spaltenpaaren erscheint nur in Kombination wie unten angegeben

Generierte Spaltenkorrelation das hervorschauende orangefarbene Zahnrad weist auf den

Ursprung im Quellcode hin

- 24 -

„Schwache“ Spaltenkorrelation

Die hellblaue Farbe zeigt eine „schwache“ Spaltenkorrelation an. Alle anderen Symbole dieser Tabelle zeigen „starke“ Spaltenkorrelation.

1:1 Spaltenkorrelation

Die Linie unten links weist auf eine 1:1-Spaltenkorrelation hin.

Diese entsteht wenn die Spalte(n) beider Seiten der Spaltenkorrelation eine „Eindeutig“-Beschränkung haben

1:n Spaltenkorrelation

Der sich nach rechts verdickende Keil unten links weist auf eine 1:n-Spaltenkorrelation hin. Diese entsteht wenn die Spalte(n) der linken Seite der Spaltenkorrelation eine „Eindeutig“-

Beschränkung haben n:1 Spaltenkorrelation

Der sich nach rechts verjüngende Keil unten links weist auf eine n:1-Spaltenkorrelation hin. Diese entsteht wenn die Spalte(n) der rechten Seite der Spaltenkorrelation eine „Eindeutig“-

Beschränkung haben. Meist ist es sinnvoll die Seiten einer solche Spaltenkorrelation zu tauschen um eine Fremdschlüsselkonforme Darstellung zu bekommen n:m Spaltenkorrelation

Die gebrochene Linie unten links weist auf eine n:m - Spaltenkorrelation hin. Diese entsteht wenn weder die Spalte(n) der linken noch der rechten Seite der Spaltenkorrelation eine „Eindeutig“-Beschränkung haben

Sicht

Sichten werden ähnlich dem einfachen Symbol für Tabellen dargestellt, enthalten aber die Farbe Orange, welche auf ein Quellcode-Strukturelement hinweist.

- 25 -

Sichtspalte

Sichtspalten werden ähnlich dem einfachen Symbol für Tabellenspalten dargestellt, enthalten aber die Farbe Orange, welche auf ein Quellcode-

Strukturelement hinweist.

Gespeicherte Prozedur

Das Symbol für Gespeicherte Prozeduren enthält die Farbe Orange, welche auf ein Quellcode-Strukturelement hinweist.

- 26 -

Abhängigkeiten

Die Strukturelemente einer relationalen Datenbank stehen in einem komplexen Abhängigkeitsverhältnis zueinander. Die Möglichkeit, diese

Abhängigkeiten in einem Programm zu sehen und für die Navigation zu nutzen ist für das Verständnis einer konkreten Datenbankdesigns von entscheidender Wichtigkeit.

Das folgende Diagramm zeigt die von jocDBInsight verwendete Möglichkeit, diese Abhängigkeiten zu definieren.

Datenbank

Schema

enthält referenziert nutzt definiert

Fremdschlüssel

Tabelle Sicht

Spalte Prozedur

Index Trigger

Spaltenkorrelation Beschränkung

Die in der Darstellung grau dargestellten Strukturelemente und Verbindungen werden in dieser ersten Version von jocDBInsight noch nicht unterstützt.

Wie man sieht sind die Abhängigkeitsbeziehungen recht vielfältig und komplex. Daher verfügt jocDBInsight über ein neuartiges und speziell für diese Aufgabe konzipiertes Bedienelement, welches dieser Komplexität

- 27 -

Rechnung trägt und eine intuitive Darstellung und Navigation aller Abhängigkeiten ermöglicht. Mit nur wenigen Mausklicks ist es sogar möglich indirekte Abhängigkeiten darzustellen, also z.B. die in JOINS benutzten Spalten einer Sicht. Dieses neue und vielseitige Bedienelement namens Strukturbrowser wird im folgenden Kapitel beschrieben.

- 28 -

Der Strukturbrowser

Einführung

Der Strukturbrowser in jocDBInsight dient zum einen der einfachen

Auswahl eines oder mehrerer Strukturelemente des gleichen Typs, also zum Beispiel die Tabellen eines Schemas oder die Spalten einer Tabelle. Weiterhin erlaubt der Strukturbrowser die Darstellung der von der aktuellen Auswahl direkt abhängigen Strukturelemente.

Als direkt abhängige Strukturelemente gelten dabei auch solche, die von einem über ein oder mehrere „enthält“-Verbindungen mit dem gewählten

Element verbundenen Element abhängen. Ein Schema zeigt als direkt abhängige Strukturelemente zum Beispiel alle Indizes aller Tabellen dieses Schemas.

Darüber hinaus können durch Anwählen von Elementen in der Liste der abhängigen Elemente die wiederum von diesen abhängigen Elemente dargestellt werden. So können Sie nach Belieben auch mehrfach indirekt abhängige Elemente sichten.

Als weitere, fortgeschrittene Funktion können mit diesem Bedienelement auf einfache Weise Datenabfragen, auch über mehrere Tabellen hinweg, zusammengestellt werden. Eine detaillierte Beschreibung hierzu finden

Sie im Kapitel Detailansichten im Abschnitt Daten.

Strukturbrowser (MySQL Beispieldatenbank „Sakila“)

In der obigen Abbildung sehen sie den Strukturbrowser mit der Darstellung einer zweistufigen Kette von Abhängigkeiten. Falls Ihnen dieses

Bild zunächst kompliziert vorkommt, so lassen Sie sich von diesem ersten Eindruck bitte nicht abschrecken. Eigentlich ist das Ganze recht einfach. Der Strukturbrowser ist im Wesentlichen eine von links nach rechts verlaufende Kette von Segmenten, welche prinzipiell beliebig lang wer-

- 29 -

den kann. Der Inhalt jedes Segmentes ausser dem ersten sind die von der Auswahl des vorhergehenden Segmentes direkt abhängigen Strukturelemente. Der angezeigte Elementtyp kann von Ihnen, dem Benutzer, für jedes Segment frei gewählt werden. Betrachten wir zunächst ein einzelnes Segment.

Ein einzelnes Segment des Strukturbrowsers (MySQL Beispieldatenbank „Sakila“)

Jedes Segment besteht aus einer Typauswahlleiste auf der linken und einer Liste von Strukturelementen auf der rechten Seite wobei letztere am oberen Rand eine kleine Werkzeugleiste besitzt. Die in zwei Spalten angeordneten Symbole der Typauswahlleiste links zeigen alle möglichen

Typen von Strukturelementen. Genau eines dieser Symbole ist stets angewählt und bestimmt, welcher Typ von Strukturelementen in der Liste des jeweiligen Segmentes dargestellt wird. Alle diese Symbole wurden bereits weiter oben im Kapitel „Strukturelemente“ beschrieben. Falls Sie sich nicht sicher sind, für welchen Typ ein Symbol steht, so belassen Sie einfach den Mauszeiger für ein bis zwei Sekunden über dem fraglichen

Symbol um die Kurzinfo zu aktivieren.

Bei dem in der Abbildung oben gezeigten Segment können Sie links sehen, dass Strukturelemente vom Typ Tabellen zur Anzeige in der Liste ausgewählt wurden. In der Liste auf der rechten Seite des Segments werden daher die Tabellen der aktuell geöffneten Datenbank dargestellt.

Im gezeigten Bild wurde die Tabelle „customer“ in dieser Liste ausgewählt.

Nun können wir uns noch einmal der Abbildung des Strukturbrowsers am Anfang dieses Kapitels zuwenden. Sie können nun leicht die angezeigten drei Segmente erkennen. Im ersten Segment ganz links sind als

Typ Tabellen und als Tabelle „customer“ ausgewählt. Im zweiten Seg-

- 30 -

ment ist als Typ Tabellenspalten ausgewählt, daher sehen Sie hier alle

Tabellenspalten der im ersten Segment ausgewählten Tabelle „customer“. Da schliesslich im zweiten Segment die Tabellenspalte „customer_id“ und im dritten Segment als Typ Indizes ausgewählt ist, werden hier alle vorhandenen Indizes auf dieser Tabellenspalte angezeigt, Da es sich bei der Tabellenspalte „customer_id“ um den Primärschlüssel der Tabelle „customer“ handelt, sehen Sie den im Symbol rot gekennzeichneten Primärschlüsselindex namens „PRIMARY“ in der Liste.

Das aktuelle Segment

Das aktuelle Segment bezeichnet in jocDBInsight das letzte, d.h. am weitesten rechts stehende Segment mit ausgewählten Strukturelementen. Im Beispiel oben ist dies das zweite Segment von links mit dem Anzeigetyp Tabellenspalten.

Die aktuelle Auswahl

Die Auswahl des aktuellen Segments ist die aktuelle Auswahl, welche für Dialoge und in den Detailansichten berücksichtigt wird, im obigen

Beispiel also die Tabellenspalte „customer_id“. Falls jedoch in einer der

Strukturelement-Tabellenansichten der Detailansichten „Info“ und „Metrics“ Elemente ausgewählt sind, so gilt diese Auswahl als die aktuelle.

Sie können sich diese Tabellen der Detailansichten als „Verlängerung“ der Browsersegmente vorstellen. Über Kontextmenüs dieser Tabellen können Sie übrigens die Auswahl des aktuellen Segmentes anpassen.

Näheres dazu finden Sie im Kapitel Detailansichten bei den jeweiligen

Abschnitten.

Weitere Funktionen

Bei der Auswahl von Strukturelementen ist der Strukturbrowser nicht auf die Auswahl eines Einzelnen Elementes beschränkt. Mit den unter

Windows üblichen Erweiterungen durch die Umschalt- und Steuerungstasten können beliebige Mehrfachauswahlen zusammengestellt werden.

Auch die weit verbreiteten Operationen „Select All“ für die Auswahl und

„Select None“ für die Abwahl aller Elemente stehen über das Edit-Menü und als Tastenkürzel („Strg+A“ bzw. „Strg+Umschalt+A“) zur Verfügung.

Das nachfolgende Segment zeigt in diesem Fall die abhängigen Elemente aller ausgewählten Elemente des aktuellen Segmentes an. So

- 31 -

können Sie beispielsweise einfach im ersten Segment alle Indizes selektieren und dann im zweiten Segment den Typ Tabellenspalten wählen um alle indizierten Tabellenspalten der aktuellen Datenbank zu sehen.

Sehr nützlich ist auch die Möglichkeit, durch Doppelklick auf einen Listeneintrag oder ein Symbol in der Typauswahlleiste alle abhängigen Elemente auszuwählen. Sie können diese Funktion auch bei Mehrfachauswahl in der Elementliste mittels Strg-Taste durch Doppelklick auf das letzte gewünschte Objekt nutzen.

„Browser“-Menü

Sicher möchten Sie oft zu einer vormals gewählten Auswahl des Strukturbrowsers zurückkehren. Zu diesem Zweck können Sie wie in Ihrem

Webbrowser durch Anklicken der Pfeilsymbole im Browser-Menü oder in der Haupt-Werkzeugleiste beliebig zu vorherigen Auswahlen in der

Auswahl-Historie zurück oder wieder vor blättern. Die gleiche Funktionalität steht ihnen auch über die Tastenkürzel „Strg+Umschalt+F“ für vorwärts (englisch „Forward“) bzw. „Strg+Umschalt+B“ für rückwärts (engisch „backward“) zur Verfügung.

Browserbezogene Symbole in der Haupt-Werkzeugleiste

Ab und zu ist es nützlich, sich die Richtung der Abhängigkeiten der gerade im Strukturbrowser angezeigten Strukturelemente anzusehen.

Deshalb können Sie die in abhängigen Segmenten dargestellten Symbole über das Doppelpfeil-Symbol in der Haupt-Werkzeugleiste, über den Eintrag „Toggle dependency direction display“ im „Browser“-Menü oder das Tastaturkürzel „Strg-Umschalt+D“ zwischen Richtungspfeilen und den normalen Strukturelement-Symbolen umschalten.

Wie schon weiter oben kurz erwähnt hat sogar jedes Segment des

Strukturbrowsers eine eigene Werkzeugleiste. Die über eine solche lokale Leiste ausgeführten Operationen arbeiten daher auch nur auf dem zugehörigen Segment.

- 32 -

Segment-Werkzeugleiste

Mit dem linken Symbol können Sie jedes Segment zum ersten Segment machen. Das ist nützlich wenn die Menge an Segmenten unhandlich geworden ist. Bitte beachten Sie, dass dabei die Filterfunktion des vorhergehenden Segments wegfällt, so dass nach dieser Operation wieder alle Elemente der Datenbank vom gewählten Typ dargestellt werden.

Die aktuelle Auswahl bleibt aber natürlich erhalten.

Die nächsten beiden Symbole erlauben die Auswahl aller bzw. keines

Strukturelementes im jeweiligen Segment. Während die oben beschriebenen gleichnamigen Funktionen des „Edit“-Menüs immer auf dem aktuellen Segment arbeiten, können Sie über die Symbolleiste der Segmente diese Operationen auf einem beliebigen Segment ausführen.

Das nächste Symbol erlaubt es, die Textdarstellung der Elemente in der

Liste des jeweiligen Segmentes zwischen einfachen und vollständigen

Namen umzuschalten. Der vollständige Name besteht aus den durch

Punkte verketteten Namen aller übergeordneten Datenbankstrukturen, bei Tabellenspalten z.B. Schema.Tabelle.Spalte.

Das ganz rechte Symbol schliesslich ermöglicht es, die Sortierung der dargestellten Elementnamen zwischen natürlich auf alphabetisch umzuschalten. Die natürliche Sortierung benutzt zunächst die Ordnungsnummer von Spaltenelementen und dann erst den dargestellten Namen zur Sortierung, was bei Tabellen-oder Sichtspalten oft sinnvoller ist.

- 33 -

Die Detailansichten

die Detailansichten zeigen verschiedene Detailaspekte der in der aktuellen Auswahl des Strukturbrowsers befindlichen Strukturelemente. Über die Reiter oben können Sie zwischen den die verschiedenen Detailansichten wechseln.

Diagram (Diagramm)

Das Diagramm zeigt stets alle Tabellen der Datenbank mit allen Fremdschlüsseln und darüber hinaus auch alle „starken“ Spaltenkorrelationen.

Damit kein zeitraubendes Anordnen der Tabellen von Hand nötig ist verfügt jocDBInsight über einen neu entwickelten, leistungsfähigen Layout-

Algorithmus. Dadurch ist bei Änderungen, zum Beispiel dem Hinzufügen einer Spaltenkorrelation, ein sofortiges Neu-Layout möglich.

„Diagramm“-Detailansicht (MySQL Beispieldatenbank „Sakila“)

Der Layout-Algorithmus benutzt folgende einfache Regeln zum Anordnen der Tabellen:

• Tabellen werden gemäss den verbindenden „1:n“-Beziehungen in

Spalten von links nach rechts angeordnet

• je mehr Verbindungen eine Tabelle hat, um so größer wird sie dargestellt.

• die verbindungslosen Seiten einer Tabelle werden mit gerundeten Ecken gezeichnet

• freistehende Tabellen werden in einer eigenen Spalte ganz rechts dargestellt.

Das aus diesen Regeln resultierende Diagramm ermöglicht es, auf einen Blick die Tabellen in zentrale, endständige, „n:m“ usw. einzuteilen.

- 34 -

Schon nach kurzer Eingewöhnungszeit werden Sie diese Art des Diagrammlayouts nicht mehr missen wollen.

Die Strukturelemente der aktuellen Auswahl werden im Diagramm hervorgehoben dargestellt. Natürlich können Sie die aktuelle Auswahl auch per Mausklick im Diagramm selbst vornehmen. Durch Halten der Strg-

Taste können auch, wie unter Windows üblich, mehrere Strukturelemente vom gleichen Typ ausgewählt werden. Abweichend vom Windows-

Standard wurde darauf verzichtet, durch Klicken auf den freien Hintergrund des Diagramms alle Elemente abzuwählen, da dies dann sehr leicht unabsichtlich geschehen kann.

Die Auswahl wird dabei immer im am weitesten rechts stehenden Segment mit passenden Elementtyp vorgenommen. Nur falls dies nicht möglich ist wird das erste Segment auf den passenden Typ umgeschaltet. Falls Sie einmal eine Auswahl versehentlich verändert haben, nutzen Sie einfach die Auswahl-Historie um den ursprünglichen Zustand wieder herzustellen.

Wenn Sie das dargestellte Diagramm gern in ein anderes Programm übernehmen möchten, so können Sie dies über den Eintrag „Copy Diagram as BMP“ im Kontextmenü leicht tun. Klicken Sie hierzu mit der rechten Maustaste irgendwo in das Diagramm um das Kontextmenü zu

öffnen. Klicken Sie dann auf den genannten Eintrag um das aktuelle Diagramm als Windows-Bitmap in die Zwischenablage zu kopieren. Im gewünschten Zielprogramm können Sie dieses Bild dann einfach an der gewünschten Position einfügen.

Info

In dieser Tabellenansicht werden detaillierte Informationen über die im aktuellen Segment des Strukturbrowsers ausgewählten Strukturelemente dargestellt. Die Art der dargestellten Informationen passt sich dabei automatisch dem Typ der in der Auswahl befindlichen Strukturelemente an. Durch Linksklick mit der Maus auf einen der‚ Spaltenköpfe der Kopfzeile kann die Tabelle nach den angezeigten Daten der angeklickten

Spalte auf- oder, durch nochmaliges Klicken, absteigend sortiert werden.

Weiterhin können Sie durch Anklicken und Ziehen der Spaltenköpfe in die gewünschte Position die Reihenfolge der Spalten temporär anpassen.

- 35 -

„Info“-Detailansicht auf Tabellenspalten (Microsoft SQL Server 2000 Beispieldatenbank „Sakila“)

Wenn Sie in der Tabelle dieser Detailansicht eine Auswahl vornehmen, so wird diese zur aktuellen Auswahl. Eine Mehrfachauswahl ist natürlich auch möglich.

Über ein Kontextmenü besteht darüber hinaus die Möglichkeit, mit den in dieser Tabelle ausgewählten Elementen die Auswahl des aktuellen

Segments im Strukturbrowser (und damit die in dieser Tabelle angezeigten Elemente) zu verändern. Das ist nützlich wenn Sie einmal Elemente hinsichtlich bestimmter Eigenschaften wie zum Beispiel Datentyp oder

„NICHT NULL“ auswählen möchten. Klicken Sie hierzu mit der rechten

Maustaste irgendwo in die bestehende Auswahl der Info-Tabelle um das

Kontextmenü zu öffnen. Nun können Sie entweder durch Anwahl von

„Use Selection“ die in der Tabelle gewählten Elemente direkt im aktuellen Segment des Strukturbrowser auswählen oder durch Anwahl von

„Remove Selection“ diese aus dessen Auswahl entfernen. Da der Inhalt der Tabelle stets die im aktuellen Segment des Strukturbrowsers ausgewählten Strukturelemente umfasst, wird durch eine dieser Operationen natürlich auch der Tabelleninhalt anpasst.

Es folgt eine Übersicht über die für die jeweiligen Strukturelement-Typen angezeigten Eigenschaften.

Datenbank

Von links nach rechts werden folgende Attribute angezeigt:

Database Der Name der Datenbank

- 36 -

#Schemas

#Tables

#Views

#Procs

#Columns

#FKs

#CCs

Die Anzahl der enthaltenen Schemata

Die Anzahl der enthaltenen Tabellen

Die Anzahl der enthaltenen Sichten

Die Anzahl der enthaltenen Gespeicherten Prozeduren

Die Anzahl der enthaltenen Tabellenspalten

Die Anzahl der enthaltenen Fremdschlüssel

Die Anzahl der enthaltenen Spaltenkorrelationen

#Indices

Created

Last Modified

Last Saved

Die Anzahl der enthaltenen Indizes

Der Zeitpunkt des ersten Zugriffs auf die Datenbank

Der Zeitpunkt der letzten Änderung, z.B. durch aktualisieren der Metriken

Der Zeitpunkt der letzten Speicherung in eine

DBI-Datei

Connection String Der verwendete Datenbank-Verbindungszeichenkette, Passworte werden maskiert dargestellt.

Schema

Von links nach rechts werden folgende Attribute angezeigt:

Schema

#Tables

#Views

#Procs

#Columns

Der Name des Schemas

Die Anzahl der enthaltenen Tabellen

Die Anzahl der enthaltenen Sichten

Die Anzahl der enthaltenen Gespeicherten Prozeduren

Die Anzahl der enthaltenen Tabellenspalten

- 37 -

#FKs

#CCs

#Indices

Die Anzahl der enthaltenen Fremdschlüssel

Die Anzahl der enthaltenen Spaltenkorrelationen

Die Anzahl der enthaltenen Indizes

Tabelle

Von links nach rechts werden folgende Attribute angezeigt:

Table

Schema

#Columns

#PK Columns

#Indices

Der Name der Tabelle

Der Name des Schemas, in dem die Tabelle definiert ist

Die Anzahl der enthaltenen Tabellenspalten

Die Anzahl der Tabellenspalten des Primärschlüssels

Die Anzahl der Indizes auf Spalten dieser Tabelle

Tabellenspalte

Von links nach rechts werden folgende Attribute angezeigt:

Column

Table

Schema

Type

Size

#

Der Name der Tabellenspalte

Der Name der Tabelle, in der die Spalte enthalten ist

Der Name des Schemas, in dem die Tabelle der

Spalte enthalten ist

Der Datentyp der Tabellenspalte, z.T. mit Angabe der Genauigkeit

Die maximal belegte Speicher eines Eintrags der

Tabellenspalte

Die Ordinalnummer der Tabellenspalte, also die

Position innerhalb der Tabelle

- 38 -

LOB

U

NN

Ix

INFO Kurzinfos über Eigenschaften der Spalte wie z.B.

PK (Primärschlüssel), NN (NICHT NULL), U (Eindeutig) , UNN (NICHT NULL und Eindeutig). Nützlich z.B. zum Finden von Primärschlüsselspalten oder dem Sortieren nach kombinierten Spalteneigenschaften

„Y“, wenn die Spalte als „LARGE OBJECT“ definiert ist

„Y“, wenn die Spalte auf eindeutige Werte eingeschränkt ist

„Y“, wenn die Spalte auf „NICHT NULL“ Werte eingeschränkt ist

„Y“, wenn die Spalte in einem Index enthalten ist

Index

Von links nach rechts werden folgende Attribute angezeigt:

Index

#Columns

PK

Unique

Table

Columns

Der Name des Index

Die Anzahl der Spalten, auf denen der Index angelegt ist

„Y“, wenn der Index ein Primärschlüsselindex ist

„Y“, wenn der Index eindeutig ist

Der Name der Tabelle, auf deren Spalten der Index angelegt ist

Komma-separierte Liste der Tabellenspalten, auf denen der Index angelegt ist

Fremdschlüssel

Von links nach rechts werden folgende Attribute angezeigt:

- 39 -

Foreign Key

Schema

Left Schema

Left Table

Left Columns

Right Schema

Right Table

Right Columns

#Columns

Type

Der Name des Fremdschlüssels

Der Name des Schemas, in dem der Fremdschlüssel definiert ist

Der Name des Schemas, in dem die referenzierte

Tabelle des Fremdschlüssels definiert ist („1“-Seite einer „1:n“-Beziehung)

Der Name der referenzierten Tabelle des Fremdschlüssels („1“-Seite einer „1:n“-Beziehung)

Komma-separierte Liste der Namen der referenzierten Tabellenspalten des Fremdschlüssels („1“-

Seite einer „1:n“-Beziehung)

Der Name des Schemas, in dem die Tabelle definiert ist, auf der dieser Fremdschlüssel definiert ist („n“-Seite einer „1:n“-Beziehung)

Der Name der Tabelle, auf der der Fremdschlüssel definiert ist („n“-Seite einer „1:n“-Beziehung)

Komma-separierte Liste der Namen der Tabellenspalten, auf denen der Fremdschlüssel definiert ist („n“-Seite einer „1:n“-Beziehung)

Die Anzahl der Tabellenspalten, auf denen der

Fremdschlüssel definiert ist

Der Typ des Fremdschlüssels, mögliche Werte sind „1:n“ und „1:1“.

- 40 -

Column Type Incompatibility

Zeigt die Datentyp-Inkompatibilität des am schlechtesten passenden Spaltenpaares. Mögliche Werte sind:

= Exakt gleiche Datentypen und Datengrössen

~ Exakt gleiche Datentypen aber

unterschiedliche Datengrössen

? Verwandte Datentypen, z.B. beide numerisch

oder beide alphanumerisch

! Nicht verwandte Datentypen, z.B. links

numerisch und rechts alphanumerisch

- 41 -

Update Rule Regel bei Aktualisierung von Daten der referenzierten Spalten. Mögliche Werte sind:

CASCADE

SET NULL die korrespondierenden

Spaltenwerte ebenfalls aktualisieren setze den Wert NULL in den korrespondierenden Spalten

SET DEFAULT setze Standardwerte in den

NO ACTION korrespondierenden Spalten

Keine Aktion. In der Praxis schlägt die Aktualisierung fehl wenn korrespondierende

Zeilen existieren

- 42 -

Delete Rule Regel beim Löschen von Zeilen der referenzierten

Tabelle. Mögliche Werte sind:

CASCADE

SET NULL die korrespondierenden

Zeilen ebenfalls löschen setze den Wert NULL in den korrespondierenden Spalten

SET DEFAULT setze Standardwerte in den korrespondierenden Spalten

NO ACTION Keine Aktion. In der Praxis schlägt das Löschen fehl wenn korrespondierende

Zeilen existieren

Spaltenkorrelation

Die Definition der beiden Seiten einer Spaltenkorrelationen erfolgt analog zu denen von Fremdschlüsseln. Von links nach rechts werden folgende Attribute angezeigt:

Column Correlation

Der Name der Spaltenkorrelation

#Columns

Type

Die Anzahl der Tabellenspalten, auf denen die

Spaltenkorrelation definiert ist

Der Typ der Spaltenkorrelation, mögliche Werte sind „1:n“, „n:1“, „1:1“ und „n:m“.

- 43 -

Column Type Incompatibility

Zeigt die Datentyp-Inkompatibilität des am schlechtesten passenden Spaltenpaares. Mögliche Werte sind:

Strong

Generated

= Exakt gleiche Datentypen und Datengrössen

~ Exakt gleiche Datentypen aber

unterschiedliche Datengrössen

? Verwandte Datentypen, z.B. beide numerisch

oder beide alphanumerisch

! Nicht verwandte Datentypen, z.B. links

numerisch und rechts alphanumerisch

„Y“, wenn die Spaltenkorrelation das Attribut

„stark“ besitzt

Zeigt die Art der Erzeugung der Spaltenkorrelation. Mögliche Werte sind:

Schema 1

Table 1

Column 1

I Intern generierte Spaltenkorrelation

E Extern generierte Spaltenkorrelation

M Manuell erzeugte Spaltenkorrelation

Das Schema, in dem die referenzierte Tabelle der

Spaltenkorrelation definiert ist („1“-Seite einer

„1:n“-Beziehung)

Der Name der referenzierten Tabelle der Spaltenkorrelation („1“-Seite einer „1:n“-Beziehung)

Komma-separierte Liste der Namen der referenzierten Tabellenspalten der Spaltenkorrelation

(„1“-Seite einer „1:n“-Beziehung)

- 44 -

Schema 2

Table 2

Column 2

Der Name des Schemas, in dem die Tabelle definiert ist, auf der diese Spaltenkorrelation definiert ist („n“-Seite einer „1:n“-Beziehung)

Der Name der Tabelle, auf der die Spaltenkorrelation definiert ist („n“-Seite einer „1:n“-Beziehung)

Komma-separierte Liste der Namen der Tabellenspalten, auf denen die Spaltenkorrelation definiert ist („n“-Seite einer „1:n“-Beziehung)

Sicht

Von links nach rechts werden folgende Attribute angezeigt:

View

Schema

#Columns

Der Name der Sicht

Der Name des Schemas, in dem die Sicht definiert ist

Die Anzahl der enthaltenen Sichtspalten

Sichtspalte

Von links nach rechts werden folgende Attribute angezeigt:

View Column

View

Schema

Type

Size

Der Name der Sichtspalte

Der Name der Sicht, in dem die Spalte enthalten ist

Der Name des Schemas, in dem die Sicht der

Spalte enthalten ist

Der Datentyp der Sichtspalte, z.T. mit Angabe der

Genauigkeit

Die maximal belegte Speicher eines Eintrags der

Sichtspalte

- 45 -

#

LOB

Die Ordinalnummer dieser Spalte, also die Position innerhalb der Sicht

„Y“, wenn die Spalte als „LARGE OBJECT“ definiert ist

Gespeicherte Prozedur

Von links nach rechts werden folgende Attribute angezeigt:

Procedure

Schema

Function

Der Name der Gespeicherten Prozedur

Der Name des Schemas, in dem die Gespeicherte Prozedur enthalten ist

„Y“, wenn die Gespeicherte Prozedur laut ADO als Funktion definiert ist.

Metrics (Metriken)

In dieser tabellarischen Detailansicht werden neben einigen grundsätzlichen Eigenschaften die Metriken der im aktuellen Segment des Strukturbrowsers ausgewählten Strukturelemente dargestellt. Die Art der dargestellten Informationen passt sich dabei automatisch dem Typ der in der Auswahl befindlichen Strukturelemente an. Durch Linksklick mit der

Maus auf die Spaltenköpfe der Kopfzeile kann die Tabelle nach den angezeigten Daten der angeklickten Spalte auf- oder, durch nochmaliges

Klicken, absteigend sortiert werden. Weiterhin können Sie durch Anklicken und Ziehen der Spaltenköpfe in die gewünschte Position die Reihenfolge der Spalten temporär anpassen.

- 46 -

„Metrics“ Detailansicht (MySQL Beispieldatenbank „Sakila“)

Wenn Sie in der Tabelle dieser Detailansicht eine Auswahl vornehmen, so wird diese zur aktuellen Auswahl. Eine Mehrfachauswahl ist natürlich auch möglich.

Über die Werkzeugleiste der Detailansicht haben Sie die Möglichkeit, durch Anwahl der Schaltfläche „All“ bzw. „None“ alle Tabellenelemente aus- bzw. abzuwählen. Darüber hinaus können Sie hier für die in der

Tabelle ausgewählten Elemente durch Anwahl der Schaltfläche „Update“

Metriken berechnen oder aktualisieren lassen oder durch Anwahl der

Schaltfläche „Flush“ deren Metriken wieder löschen.

Fortschrittsanzeige bei der Metrikenberechnung (MySQL Kundendatenbank)

Das Berechnen der Metriken kann je nach Elementtyp und Datenumfang einige Zeit in Anspruch nehmen. Daher erscheint beim Berechnen der Metriken eine Fortschrittsanzeige mit Abbruchmöglichkeit durch

Mausklick auf die Schaltfläche „Cancel“. Ausserdem werden die berech-

- 47 -

neten Metriken schon während der laufenden Berechnung unmittelbar in der Tabelle aktualisiert.

Über ein Kontextmenü besteht die Möglichkeit, mit den in dieser Tabelle ausgewählten Elementen die Auswahl des aktuellen Segments im Strukturbrowser (und damit die in dieser Tabelle angezeigten Elemente) zu verändern. Das ist oft nützlich, wenn Sie einmal Elemente hinsichtlich bestimmter Metriken auswählen möchten. Klicken Sie hierzu mit der rechten Maustaste irgendwo in die bestehende Auswahl der Tabelle um das Kontextmenü zu öffnen. Nun können Sie entweder durch Anwahl von „Use Selection“ die in der Tabelle gewählten Elemente direkt im aktuellen Segment des Strukturbrowser setzen oder durch Anwahl von

„Remove Selection“ diese aus dessen Auswahl entfernen. Da der Inhalt der Metriken-Tabelle stets die im aktuellen Segment des Strukturbrowsers ausgewählten Strukturelemente umfasst, wird durch eine dieser Operationen natürlich auch der Tabelleninhalt anpasst.

Für die Strukturelement-Typen bei denen Metriken möglich sind folgt eine Übersicht über die jeweils angezeigten Metriken und Eigenschaften.

Tabelle

Von links nach rechts werden folgende Attribute angezeigt:

Table

Schema

Der Name der Tabelle

Der Name des Schemas, in dem die Tabelle enthalten ist

#Rows Die Anzahl der Datensätze in der Tabelle, falls

Metriken für die Tabelle oder mindestens eine der enthaltenen Spalten berechnet sind

Column Metrics

Status

Anzahl der in der Tabelle enthaltenen Spalten, für die Metriken berechnet sind im Bezug zur Gesamtzahl der Spalten der Tabelle

Tabellenspalte

Von links nach rechts werden folgende Attribute angezeigt:

- 48 -

Column

Table

Schema

Der Name der Tabellenspalte

Der Name der Tabelle, in der die Spalte enthalten ist

Der Name des Schemas, in dem die Tabelle der

Spalte enthalten ist

Type

Size

#

INFO

Der Datentyp der Tabellenspalte, z.T. mit Angabe der Genauigkeit

Die maximal belegte Speicher eines Eintrags der

Tabellenspalte

Die Ordinalnummer der Tabellenspalte, also die

Position innerhalb der Tabelle

Kurzinfos wie PK, NN, U, UNN über Eigenschaften der Spalte. Nützlich z.B. zum Finden von Primärschlüsseln und Sortieren nach kombinierten

Spalteneigenschaften

Die Gesamtzahl der Datensätze

Die Anzahl der NULL-Werte in der Spalte

Count

Nulls

Distinct

Multiples

Die Anzahl unterschiedlicher Datenwerte in der

Spalte

Die Anzahl der Datenwerte der Spalte, die nicht einmalig sind. Die Darstellung erfolgt sowohl in absoluter Anzahl als auch in Prozent.

#Mult. groups Die Anzahl der mehrfach vorhandenen Werte in der Spalte

Max. mult. group size

Die Größe der grössten Gruppe mehrfach vorhandener Werte oder leer, falls alle Werte eindeutig sind.

Max. mult. group value

Der Wert der grössten Gruppe mehrfach vorhandener Werte oder leer, falls alle Werte eindeutig sind.

- 49 -

Min.

Max.

Mean

Stdev

Der kleinste Wert der Spalte oder leer, falls alle

Werte NULL sind

Der grösste Wert der Spalte oder leer, falls alle

Werte NULL sind

Der Mittelwert aller Werte in der Spalte oder leer, falls alle Werte NULL sind oder der Datentyp keine Berechnung des Mittelwertes zulässt

Die Standardabweichung aller Werte in der Spalte oder leer, falls alle Werte NULL sind oder der Datentyp keine Berechnung der Standardabweichung zulässt

Fremdschlüssel

Von links nach rechts werden folgende Attribute angezeigt:

Foreign Key

Schema

Left Schema

Left Table

Left Columns

Right Schema

Right Table

Der Name des Fremdschlüssels

Der Name des Schemas, in dem der Fremdschlüssel definiert ist

Der Name des Schemas, in dem die referenzierte

Tabelle des Fremdschlüssels definiert ist („1“-Seite einer „1:n“-Beziehung)

Der Name der referenzierten Tabelle des Fremdschlüssels („1“-Seite einer „1:n“-Beziehung)

Komma-separierte Liste der Namen der referenzierten Tabellenspalten des Fremdschlüssels („1“-

Seite einer „1:n“-Beziehung)

Der Name des Schemas, in dem die Tabelle definiert ist, auf der dieser Fremdschlüssel definiert ist („n“-Seite einer „1:n“-Beziehung)

Der Name der Tabelle, auf der der Fremdschlüssel definiert ist („n“-Seite einer „1:n“-Beziehung)

- 50 -

Right Columns Komma-separierte Liste der Namen der Tabellenspalten, auf denen der Fremdschlüssel definiert ist („n“-Seite einer „1:n“-Beziehung)

Column Type Incompatibility

Zeigt die Datentyp-Inkompatibilität des am schlechtesten passenden Spaltenpaares. Mögliche Werte sind:

= Exakt gleiche Datentypen und Datengrössen

~ Exakt gleiche Datentypen aber

unterschiedliche Datengrössen

? Verwandte Datentypen, z.B. beide numerisch

oder beide alphanumerisch

! Nicht verwandte Datentypen, z.B. links

Left-only rows

numerisch und rechts alphanumerisch

Die Anzahl der Zeilen in der linken Tabelle, für die keine übereinstimmenden Fremdschlüsselwerte in der rechten Tabelle vorkommen

Right-only rows Die Anzahl der Zeilen in der rechten Tabelle, für die keine übereinstimmenden Fremdschlüsselwerte in der linken Tabelle vorkommen. Hier dürfen bei regelrecht definierten Datenbanksystemen nur dann Werte größer als 0 erscheinen, wenn

Spalten der rechten Seite NULL-Werte erlauben.

Left-only values Die Anzahl der Werte in der linken Tabelle, für die keine übereinstimmenden Fremdschlüsselwerte in der rechten Tabelle vorkommen

- 51 -

Right-only values Die Anzahl der Werte in der rechten Tabelle, für die keine übereinstimmenden Fremdschlüsselwerte in der linken Tabelle vorkommen. Hier darf bei regelrecht definierten Datenbanksystemen nur

0 oder, falls Spalten der rechten Seite NULL-Werte erlauben, maximal deren Anzahl erscheinen.

Joined values Die Anzahl der Fremdschlüsselwerte, die in beiden Tabellen vorkommen

Joined left rows Die Anzahl der Zeilen in der linken Tabelle, für die

übereinstimmende Fremdschlüsselwerte in der rechten Tabelle vorkommen

Min left rows/join Für die Zeile in der rechten Tabelle, welche die kleinste von 0 verschiedene Anzahl von Zeilen mit

übereinstimmenden Fremdschlüsselwerten in der linken Tabelle hat, diese Anzahl. Bei regelrecht definierten Datenbanksystemen darf hier nur der

Wert 1 oder gar kein Wert stehen

Max left rows/join Für die Zeile in der rechten Tabelle, welche die grösste von 0 verschiedene Anzahl von Zeilen mit

übereinstimmenden Fremdschlüsselwerten in der linken Tabelle hat, diese Anzahl. Bei regelrecht definierten Datenbanksystemen darf hier nur der

Wert 1 oder gar kein Wert stehen

Joined right rows Die Anzahl der Zeilen in der rechten Tabelle, für die übereinstimmende Fremdschlüsselwerte in der linken Tabelle vorkommen

Min right rows/ join

Für die Zeile in der linken Tabelle, welche die kleinste von 0 verschiedene Anzahl von Zeilen mit

übereinstimmenden Fremdschlüsselwerten in der rechten Tabelle hat, diese Anzahl

Max right rows/ join

Für die Zeile in der linken Tabelle, welche die grösste von 0 verschiedene Anzahl von Zeilen mit

übereinstimmenden Fremdschlüsselwerten in der rechten Tabelle hat, diese Anzahl

- 52 -

Spaltenkorrelation

Von links nach rechts werden folgende Attribute angezeigt:

Column Correlation

Der Name der Spaltenkorrelation

Left Schema Der Name des Schemas, in dem die referenzierte

Tabelle der Spaltenkorrelation definiert ist („1“-

Seite einer „1:n“-Beziehung)

Left Table

Left Columns

Right Schema

Right Table

Right Columns

Der Name der referenzierten Tabelle der Spaltenkorrelation („1“-Seite einer „1:n“-Beziehung)

Komma-separierte Liste der Namen der referenzierten Tabellenspalten der Spaltenkorrelation

(„1“-Seite einer „1:n“-Beziehung)

Der Name des Schemas, in dem die Tabelle definiert ist, auf der diese Spaltenkorrelation definiert ist („n“-Seite einer „1:n“-Beziehung)

Der Name der Tabelle, auf der die Spaltenkorrelation definiert ist („n“-Seite einer „1:n“-Beziehung)

Komma-separierte Liste der Namen der Tabellenspalten, auf denen die Spaltenkorrelation definiert ist („n“-Seite einer „1:n“-Beziehung)

- 53 -

Column Type Incompatibility

Zeigt die Datentyp-Inkompatibilität des am schlechtesten passenden Spaltenpaares. Mögliche Werte sind:

= Exakt gleiche Datentypen und Datengrössen

~ Exakt gleiche Datentypen aber

unterschiedliche Datengrössen

? Verwandte Datentypen, z.B. beide numerisch

oder beide alphanumerisch

! Nicht verwandte Datentypen, z.B. links

numerisch und rechts alphanumerisch

Left-only rows Die Anzahl der Zeilen in der linken Tabelle, für die keine übereinstimmenden Spaltenwerte in der rechten Tabelle vorkommen

Right-only rows Die Anzahl der Zeilen in der rechten Tabelle, für die keine übereinstimmenden Spaltenwerte in der linken Tabelle vorkommen. Hier dürfen für die korrekte Definition eines Fremdschlüssels nur dann

Werte größer als 0 erscheinen, wenn Spalten der rechten Seite NULL-Werte erlauben.

Left-only values Die Anzahl der Werte in der linken Tabelle, für die keine übereinstimmenden Spaltenwerte in der rechten Tabelle vorkommen

Right-only values Die Anzahl der Werte in der rechten Tabelle, für die keine übereinstimmenden Spaltenwerte in der linken Tabelle vorkommen. Hier dürfen für die korrekte Definition eines Fremdschlüssels nur 0 oder, falls Spalten der rechten Seite NULL-Werte erlauben, maximal deren Anzahl erscheinen.

- 54 -

Joined values Die Anzahl der Spaltenwerte, die in beiden Tabellen vorkommen

Joined left rows Die Anzahl der Zeilen in der linken Tabelle, für die

übereinstimmende Spaltenwerte in der rechten

Tabelle vorkommen

Min left rows/join Für die Zeile in der rechten Tabelle, welche die kleinste von 0 verschiedene Anzahl von Zeilen mit

übereinstimmenden Spaltenwerten in der linken

Tabelle hat, diese Anzahl

Max left rows/join Für die Zeile in der rechten Tabelle, welche die grösste von 0 verschiedene Anzahl von Zeilen mit

übereinstimmenden Spaltenwerten in der linken

Tabelle hat, diese Anzahl.

Joined right rows Die Anzahl der Zeilen in der rechten Tabelle, für die übereinstimmende Spaltenwerte in der linken

Tabelle vorkommen

Min right rows/ join

Für die Zeile in der linken Tabelle, welche die kleinste von 0 verschiedene Anzahl von Zeilen mit

übereinstimmenden Spaltenwerten in der rechten

Tabelle hat, diese Anzahl

Max right rows/ join

Für die Zeile in der linken Tabelle, welche die grösste von 0 verschiedene Anzahl von Zeilen mit

übereinstimmenden Spaltenwerten in der rechten

Tabelle hat, diese Anzahl

Data (Daten)

Für die Sichtung der eigentlichen Datenbankdaten steht zwar nur diese eine Detailansicht zur Verfügung, sie ist jedoch einer der aufwändigsten

Bereiche von jocDBInsight. Die Hauptgesichtspunkte beim Design der

Daten-Detailansicht war zum Einen die Fähigkeit, auch komplexe Abfragen ausschliesslich durch Bedienung mit der Maus zusammenstellen zu können, zum Anderen grösstmögliche Verarbeitungsgeschwindigkeit.

Je nach der Art der Abfrage erfolgt die Ausgabe entweder in eine einzige oder in einen linke und rechten Ausgabebereich. Jeder Ausgabebereich

- 55 -

besteht aus einer Kopfzeile, einer zentralen tabellarischen Liste sowie einer Filterzeile ganz unten.

In der Kopfleiste können Sie den Namen der angezeigten Tabelle oder

Sicht und die Anzahl der aktuell dargestellten Datensätze ablesen. Letztere ist statt in schwarz in dunkelgrau dargestellt, solange die Anfrage noch nicht abgeschlossen ist.

Kopfzeile eines Daten-Ausgabebereiches (MySQL Beispieldatenbank „Sakila“)

Weiterhin können Sie durch Anwählen der Schaltfläche ganz links die

Daten des Ausgabebereichs jederzeit aktualisieren. Um die maximale

Ausgabegeschwindigkeit zu erzielen werden die Daten grosser Textfelder (CLOBs) zwar übertragen aber in der Ausgabe wird zunächst nur der jeweils benötigte Speicherplatz dargestellt. Durch Anwahl des Kontrollkästchens „Show CLOBs“ können sie die Anzeige dieser Daten jederzeit zu- und wieder abschalten ohne eine erneute Abfrage auszulösen. Daten von Binärfeldern werden aus dem selben Grund sowie zur

Speicherplatzersparnis gar nicht übertragen, auch hier wird aber der jeweils benötigte Speicherplatz dargestellt.

Die Daten-Detailansicht unterstützt neben Abfragen aller Daten einer

Tabelle oder Sicht auch die Abfrage der Daten einer oder mehrerer

Sicht- oder Tabellenspalten, hier mit einer zusätzlichen Spalte zur Darstellung der Anzahl gleicher Datensätze. Bei Spaltenabfragen können darüber hinaus die zugehörigen kompletten Datensätze der Tabelle oder

Sicht durch Auswahl der interessierenden Spalten-Datensatzes im Detail-Ausgabebereich angezeigt werden. Weiterhin können Master-Detail-

Abfragen über eine beliebige Anzahl von durch Fremdschlüssel oder

Spaltenkorrelationen verbundenen Tabellen ausgeführt werden.

Zum Zusammenstellen all dieser Abfragen benutzen Sie einfach den

Strukturbrowser. Die passende Abfrage wird ausgeführt sobald die Daten-Detailansicht aktiv ist und eine sinnvolle Auswahl im Strukturbrowser vorgenommen wird. Bei jeder Änderung der aktuellen Auswahl wird automatisch eine neue Abfrage ausgeführt. Eine eventuell noch laufende

Abfrage wird bei in diesem Fall sofort automatisch abgebrochen.

Einfache Abfragen

- 56 -

Für einfache Abfrage von Tabellen- oder Sichtdaten wählen Sie einfach die gewünschte Tabelle oder Sicht im aktuellen Segment des Strukturbrowsers aus.

Abfrage auf Tabelle „actor“ (MySQL Beispieldatenbank „Sakila“)

Sie können weiterhin eine oder mehrere Tabellen- oder Sichtspalten im aktuellen Segment des Strukturbrowsers auswählen, um nur die Daten dieser Elemente darzustellen. Hierbei wird eine Master-Detail-Anzeige aufgebaut. Im linken Ausgabebereich werden gleiche Datensätze nur einmal dargestellt, dafür wird jedem Datensatz ein Element mit der Gesamtzahl gleicher Datensätze angehängt. Diese Spalte ist in der Datenansicht zur Kennzeichnung grau hinterlegt. In der Detail-Ansicht auf der rechten Seite sehen Sie nach Auswahl einer Zeile in der Master-Ansicht alle zugehörigen vollständigen Datensätze der Tabelle oder Sicht.

Einige Datentypen, insbesondere Large Objects (LOBs), eignen sich nicht als Auswahlkriterien, daher bleibt in diesem Fall der Detail-Ausgabebereich leer und in der Statuszeile wird ein Fehler angezeigt.

- 57 -

Abfrage auf Tabellenspalte „actor.first_name“ (MySQL Beispieldatenbank „Sakila“)

Durch Auswahl eines Fremdschlüssels oder einer Spaltenkorrelation im aktuellen Segment werden die Daten der Tabelle auf der linken Seite der

Beziehung (die „1“-Seite einer „1:n“-Beziehung) im Master-Ausgabebereich dargestellt. Nach Auswahl eines Datensatzes im Master-Ausgabebereich werden die mit diesem Datensatz korrespondierenden Daten der rechten Tabelle der Beziehung (die „n“-Seite einer „1:n“-Beziehung) im Detail-Ausgabebereich angezeigt.

- 58 -

Abfrage auf Fremdschlüssel „fk_film_actor_actor“ (MySQL Beispieldatenbank

„Sakila“)

Sehr interessant sind auch etwaige Daten, die im Detail-Ausgabebereich dargestellt werden, wenn kein Datensatz im Master-Ausgabebereich ausgewählt wurde. Hier erscheinen in diesem Fall alle Datensätze der rechten Tabelle die gar nicht von der Master-Tabelle referenziert werden.

Bei Fremdschlüsseln sehen Sie hier die Datensätze mit ein oder mehreren NULL-Werten in den Schlüsselspalten, bei Spaltenkorrelationen ebenso und darüber hinaus alle Datensätze der rechten Tabelle, welche das Anlegen eines Fremdschlüssels verhindern würden.

Verkettete Abfragen

Auch die komplexeren Master-Detail-Abfragen über eine beliebige Anzahl von durch Fremdschlüssel oder Spaltenkorrelationen verbundenen

Tabellen stellen Sie mit dem Strukturbrowser zusammen. Dazu müssen

Sie mit den Segmenten des Strukturbrowsers eine Kette bauen. jocDBInsight sucht stets vom rechts stehenden aktuellen Segment (also das letzte Segment mit einer Auswahl) nach links und versucht, die längste mögliche sinnvolle Kette für eine Datenabfrage zu finden. Damit

Sie wissen das eine Kette erkannt wurde, färbt sich der Hintergrund der

Daten-Detailansicht von hellgrau auf hellgrün um. Weiterhin wird für diese Kette eine Abfrage zusammengestellt und ausgeführt.

- 59 -

Verkettete Abfrage von Tabelle „actor“ über nm-Tabelle „film_actor“ auf Tabelle

„film“ mittels der Fremdschlüssel „fk_film_actor_actor“ (vorwärts) und

„fk_film_actor_film“ (rückwärts) (MySQL Beispieldatenbank „Sakila“)

Auf der linken Seite der Daten-Detailansicht, dem Master-Ausgabebereich, werden die Daten für das erste Segment der gefundenen Kette angezeigt. Auf der rechten Seite der Daten-Detailansicht, dem Detail-

Ausgabebereich, sehen Sie nach Auswahl eines Datensatzes im Ausgabebereich die mit diesem Datensatz korrespondierenden Daten für das aktuelle Segment. Es ist hier durchaus möglich, auch „rückwärts“, also von rechts nach links bzw. „n“ zu „1“, über einen Fremdschlüssel oder eine Spaltenkorrelation zu verbinden. Die gefundenen Kette von Tabellen wird in den Kopfzeilen beider Ausgabebereiche dargestellt. Die Tabellennamen sind hierbei über das Zeichen „>“ verbunden wenn eine

Beziehung vorwärts durchlaufen wird, das Zeichen „<„ steht für eine rückwärts durchlaufene Beziehung.

Filter

Unten in jedem Ausgabebereich finden Sie ein Textfeld, in welches Sie

ADO-kompatible Filterkriterien eintragen können. Durch Rechtsklick auf einen Wert eines Datensatzes im jeweiligen Ausgabebereich können Sie auch ein Kontextmenü zum Erstellen eines Filters aufrufen. Durch Anwahl des Eintrags „Set as filter“ wird der angeklickte Wert als Filterwert

- 60 -

des zugehörigen Elementes gesetzt. Bei Anwahl des Eintrags „Append as filter“ wird stattdessen der Filter an einen etwa bereits bestehenden mittels UND-Operator angehängt. Durch Anwahl der „X“-Schaltfläche ganz rechts setzen Sie den Filter zurück um wieder alle Datensätze anzuzeigen.

Abfrage auf Tabelle „actor“ gefiltert auf Spalte „first_name“ mit dem Inhalt

‚KENNETHʻ (MySQL Beispieldatenbank „Sakila“)

jocDBInsight versucht, einen bestehenden Filter bei einer neuen Abfrage beizubehalten. Setzen Sie zum Beispiel den Filter „Id=1“, so können Sie andere Tabellen mit einer Spalte namens „Id“ anwählen und der Inhalt des Ausgabebereichs bleibt stets auf Datensätze mit Id-Werten von 1 gefiltert.

Ein gültiger Filtertext besteht aus ein oder mehreren Klauseln die durch

AND oder OR miteinander verknüpft sind. Jede Klausel muss aus einem

Spaltennamen, einem der Operatoren „=“, „<“,   „>“,   „<=“,   „>=“,   „<>“,

„LIKE“ und einem zum Datentyp der Spalte passenden Wert bestehen.

Falls der Spaltenname Sonderzeichen oder Leerzeichen enthält so muss er in eckige Klammern eingeschlossen werden, zum Beispiel so:

[First Name]. Wird der „LIKE“-Operator verwendet, so können die Platzhalter „*“ oder „%“ am Ende oder an Anfang und Ende des Wertes angegeben werden. Sie stehen für kein bis beliebig viele Zeichen. Bei

- 61 -

Wertangaben sollten Zeichenketten in Hochkommata eingeschlossen werden, etwa ʻZeichenketteʻ. Datum- und Zeitangaben werden in Doppelkreuze eingeschlossen, zum Beispiel #12/25/2008#, das genaue Datumsformat richtet sich nach den in Ihrer Windows-Systemsteuerung eingestellten Werten. Zahlenwerten kann ein Dollarzeichen vorangestellt werden, etwa $12.34.

Source (Quelltext)

Für Sichten und Gespeicherte Prozeduren können Sie in dieser Detailansicht den zugrunde liegenden Quelltext einsehen. Farbige Syntaxhervorhebungen erleichtern es Ihnen hierbei den Überblick zu behalten.

“SQL“-Detailansicht (Microsoft SQL Server 2000 Beispieldatenbank „Northwind“)

Sehr nützlich zum Vergleich der Quelltexte von Elementen ist die Fähigkeit, mehrere oder gar alle Strukturelemente eines Typs anzuwählen. In diesem Fall werden dann die Quelltexte aller gewählten Elemente untereinander dargestellt. Praktisch sind auch die Möglichkeiten, den gesamten so zusammengestellten Quelltest kopieren oder mit der Suchfunktion durchsuchen zu können.

Passend zur Philosophie von jocDBInsight, keinerlei Datenbankveränderungen vorzunehmen, können Sie den Quelltext in dieser Ansicht nicht editieren.

Speicherbedarf

Die hohe Geschwindigkeit der Datenabfragen, der Sortierungen und der

Filterung in jocDBInsight haben Ihre Ursache darin, dass alle Daten der

- 62 -

aktuellen Abfrage nach der Übertragung im Hauptspeicher gehalten werden. Für die oben genannten Operationen ist also kein weiterer Datenbankzugriff notwendig. Auf der anderen Seite kann es daher theoretisch dazu kommen, dass die Abfragedaten bei riesigen Tabelleninhalten mit vielen Millionen Zeilen nicht mehr in den verfügbaren Speicher passen. Da jocDBInsight aber immer nur die aktuelle Abfrage im Speicher hält und die besonders speicherintensiven Daten von Binärspalten, so genannten BLOBs, gar nicht überträgt ist das in meiner bisherigen Praxis selbst bei grössten Tabellen mit Millionen von Zeilen nie vorgekommen. Deshalb und wegen der ausgezeichneten Verarbeitungsgeschwindigkeit sowie den durch die heutzutage sehr geringen Preise für Hauptspeicher allgemein guten Speicherausbau der Computer wurde dieser

Ansatz der klare Sieger unter meinen Prototypen.

Notes (Notizen)

In dieser Detailansicht können Sie jedem Strukturelement Ihre persönlichen Notizen hinzufügen. Zum Bearbeiten von Notizen muss die aktuelle Auswahl aus genau einem Strukturelement bestehen. Bearbeitete Notizen werden beim Verlassen des Textfeldes automatisch übernommen.

Alle Notizen werden beim Sichern der aktuellen Datenbankstruktur in eine DBI-Datei mit gespeichert.

“Notes“-Detailansicht (Microsoft SQL Server 2000 Beispieldatenbank „Northwind“)

- 63 -

Spaltenkorrelationen

Das Problem

Eines der Strukturelemente in jocDBInsight werden Sie wahrscheinlich noch nicht kennen, die Spaltenkorrelation. Die Idee dieser Spaltenkorrelationen war einer der Auslöser für die Entwicklung von jocDBInsight, denn wie schon eingangs erwähnt fehlen leider in vielen in der Praxis eingesetzten relationalen Datenbanken einige oder gar alle Fremdschlüsseldefinitionen. Natürlich könnte man versucht sein diese nun einfach anzulegen, aber zum einen liegt die Veränderung der Datenbank oft nicht im eigenen Verantwortungsbereich, zum anderen sind die Daten wegen der fehlenden Kontrolle durch Fremdschlüssel meist schon mehr oder weniger in Unordnung, ohne vorherige Datenbereinigung lassen sich also gar keine Fremdschlüssel mehr anlegen. Weiterhin verlassen sich auch die Programmierer meist auf die fehlende Fremdschlüsselkontrolle und befüllen die Tabellen in falscher Reihenfolge.

Die Lösung

Um trotzdem die Zusammenhänge zwischen Tabellen und Spalten einer relationalen Datenbank darstellen zu können, erlaubt jocDBInsight die

Erstellung von Spaltenkorrelationen. Diese bestehen wie Fremdschlüssel aus ein oder mehreren Paaren korrespondierender Spalten aus derselben oder zwei unterschiedlichen Tabellen. Im Gegensatz zu Fremdschlüsseln können Sie hier beliebige Spalten miteinander verknüpfen und die beiden Seiten der Spaltenkorrelation jederzeit tauschen.

Auf Wunsch ersetzen nun die Spaltenkorrelationen die fehlenden

Fremdschlüssel beim Layout des Datenbankdiagramms. Sie erlauben weiterhin die Zusammenstellung von Abfragen im Strukturbrowser über mehrere Tabellen. Für jede Spaltenkorrelation können auch Metriken berechnet werden welche unter anderem sehr schön anzeigen, ob das

Anlegen eines Fremdschlüssel beim aktuellen Datenbestand überhaupt möglich wäre.

Automatisches Generieren von Spaltenkorrelationen

Wenn eine Datenbank auch keine Fremdschlüsseldefinitionen enthält, so lassen sich dennoch wertvolle Informationen über genau diese feh-

- 64 -

lenden Beziehungen der Tabellenspalten zueinander finden, sofern die

Datenbank Sichten, Gespeicherte Prozeduren oder beide enthält. So ist ein sorgfältiges Durchsehen dieses SQL-Quelltextes denn auch meist

Pflichtlektüre, um eine Datenbank verstehen zu lernen. jocDBInsight erledigt diese Analyse für Sie automatisch.

Wenn Sie in jocDBInsight eine neue Datenbank öffnen, werden für viele

Datenbanktypen bestehende Sichten automatisch analysiert und aus den gefundenen JOINs Spaltenkorrelationen generiert, sofern keine entsprechenden Fremdschlüssel vorhanden sind. Die von einer Sicht verwendeten (und damit definierten) Spaltenkorrelationen können sie in gewohnter Weise im Strukturbrowser sichten. Es kommt zwar ab und zu vor, das JOINs über Spalten gebildet werden, die nicht für Fremdschlüssel geeignet sind, aber dies ist in den meisten Datenbanken die Ausnahme und die gefundene Verbindung ist fast immer dennoch interessant und nützlich für die Datenabfrage. Unerwünschte Spaltenkorrelationen können Sie einfach löschen oder auf „schwach“ umstellen, so das diese dann im Diagramm nicht mehr berücksichtigt werden.

Falls bereits passende Fremdschlüssel für die gefundenen JOINs existieren sind diese Information immer noch nützlich, da in diesem Fall Referenzen von den Sichten auf die benutzten Fremdschlüssel angelegt werden. So können Sie im Strukturbrowser auch die von einer Sicht verwendeten Fremdschlüssel anzeigen lassen.

Eventuell verwenden Sie für das Kennenlernen von jocDBInsight eine der vorbildlich entworfenen Beispieldatenbanken der Datenbankhersteller. In diesem Fall finden Sie wahrscheinlich keine automatisch generierten Spaltenkorrelationen da alle Fremdschlüssel korrekt angelegt sind.

Durch anzeigen der von allen Sichten der Datenbank benutzten Fremdschlüssel können sie sich dennoch einen Überblick über die von jocDBInsight gefundenen Beziehungen verschaffen.

Manuelles Anlegen von Spaltenkorrelationen

Natürlich können Sie Spaltenkorrelationen auch manuell anlegen. Wählen Sie dazu einfach im aktuellen Segment des Strukturbrowsers die gewünschten Tabellen oder Tabellenspalten und wählen Sie im Menü

„Column Correlation“ den Eintrag „Create...“.

- 65 -

Dialog zum Anlegen von Spaltenkorrelationen

Im Textfeld am oberen Rand des erscheinenden Dialogs können Sie der neuen Spaltenkorrelation einen Namen geben. Sie finden hier bereits einen automatisch von jocDBInsight generierten Namen. Mit dem Kontrollkästchen rechts daneben können Sie wählen, ob eine „starke“ oder

„schwache“ Spaltenkorrelation erzeugt werden soll. „Starke“ Spaltenkorrelationen erscheinen im Diagramm und werden im Diagrammlayout wie

Fremdschlüssel behandelt.

Die Liste in der Mitte des Dialoges zeigt die verbundenen Spaltenpaare.

Unter dieser Liste sehen Sie zwei Auswahlmenüs, in denen Sie je eine

Spalte aus der linken und rechten Tabelle wählen können. Die Tabellennamen sehen Sie in der Kopfzeile. Nachdem Sie Ihre Wahl getroffen haben, fügen Sie das neue Spaltenpaar durch klicken auf die „+“-

Schaltfläche der Liste hinzu. Mit der „-“-Schaltfläche können Sie ein in der Liste gewähltes Spaltenpaar wieder löschen.

Falls Sie die Tabellen beider Seiten austauschen möchten, wählen Sie die Schaltfläche „Swap Tables“. Im allgemeinen sollte in jocDBInsight die eindeutige Spalte oder Spaltenkombination auf der linken Seite stehen. Die linke Seite entspricht also der oder den in einem Fremdschlüssel referenzierten Spalten, die rechte Seite der oder den Spalten, auf denen der Fremdschlüssel definiert ist.

- 66 -

Man könnte hier mit Recht einwenden, dass die Definition dann doch besser genau anders herum erfolgen sollte. Der Grund für diese Art der

Definition liegt in der allgemeineren Bezeichnung von Datenbankbeziehungen als „1:n“. Links ist also in jocDBInsight die „1“-Seite, rechts die

„n“-Seite einer Beziehung.

Wenn Sie fertig sind wählen Sie die „OK“-Schaltfläche um die Spaltenkorrelation anzulegen. Durch Wahl von „Abbruch“ können Sie den Dialog jederzeit ohne Folgen verlassen.

Falls Sie im Strukturbrowser nur eine einzige Tabelle anwählen, können

Sie auch rekursive Spaltenkorrelationen anlegen.

Operationen auf Spaltenkorrelationen

Auch auf bereits bestehenden Spaltenkorrelationen können Sie einige

Operationen ausführen. Zunächst einmal können Sie natürlich den Namen ändern, und zwar durch Anwahl von „Rename“ im Edit-Menü oder das Windows-konforme Tastenkürzel „F2“. Alle weiteren Operationen auf

Spaltenkorrelationen finden Sie im gleichnamigen Menü „Column Correlations“.

„Column Correlations“-Menü mit Untermenü

Neben dem Aufruf des schon im letzten Abschnitt besprochenen Dialoges zum Anlegen von Spaltenkorrelationen finden Sie hier Operationen zum Vertauschen der Seiten von Spaltenkorrelationen sowie zum Umschalten solcher zwischen „Stark“ und „Schwach“.

Mit „Fix direction“ werden die Seiten der ausgewählten Spaltenkorrelationen so gewählt, das die „1“-Seite einer „1:n“-Beziehung links steht.

- 67 -

Dies entspricht in jocDBInsight der normalen Ausrichtung von Fremdschlüssel-Beziehungen. Mit „Flip direction“ können sie die Ausrichtung auch nach Belieben umschalten.

Durch Anwahl von „Make Weak“ können die ausgewählten Spaltenkorrelationen auf den Status „Schwach“ gesetzt werden. „Schwache“ Spaltenkorrelationen werden im Diagramm nicht berücksichtigt, stehen aber für das bilden von Abfragen noch zur Verfügung. Mittels „Make Strong“ stellt man die ausgewählten Spaltenkorrelationen auf den Status „Stark“ um, wodurch sie im Diagramm wie Fremdschlüssel behandelt werden.

Für Spaltenkorrelationen können auch Metriken berechnet werden. Die genaue Vorgehensweise ist im Kapitel Detailansichten im Abschnitt Me-

triken beschrieben.

- 68 -

DBI-Dateien

jocDBInsight bietet Ihnen die Möglichkeit eine Datenbankstruktur in Dateien mit der Erweiterung „dbi“ zu speichern. Diese Dateien können Sie sogar auf nicht mit der Datenbank verbundenen Systemen wieder laden und sichten, wobei dann allerdings naturgemäß keine Datenabfragen möglich sind.

„File“-Menü

Sie erreichen alle Funktionen zum Laden und Speichern von DBI-Dateien über das Menü „File“. Nach Anwahl des Eintrags „Open...“ erscheint ein Dateiauswahldialog in welchem Sie die gewünschte DBI-Datei auswählen und durch bestätigen mit der „Öffnen“-Schaltfläche öffnen können. Wie schon bei den Datenbankverbindungen werden auch hier bis zu 10 der letzten geöffneten DBI-Dateien im Untermenü „Reopen“ aufgeführt. Wählen Sie hier einfach den gewünschten Eintrag um die Datei zu öffnen. Durch Anwahl des Eintags „Clear List“ ganz unten im „Reopen“-Menü können sie dessen Inhalt vollständig löschen wobei auch der

Inhalt der zugehörigen Datei gelöscht wird.

Zum Sichern Ihrer Daten gibt es mehrere Möglichkeiten. Wählen Sie den Eintrag „Save“, um die Daten in der aktuell geöffneten Datei aufzufrischen. Falls die aktuelle Datenbank noch nie gesichert wurde, wird automatisch das Kommando „Save as...“ verwendet. Hier können Sie in einem Dateiauswahldialog den gewünschten Dateinamen und

Speicherort auswählen. Sie können auch jederzeit „Save as...“ auswählen um Ihre Daten in einer anderen Datei als der aktuell geöffneten zu sichern.

Über Anwahl des Eintrags „Close...“ können Sie die aktuelle Datei schließen. Falls Ihre Daten seit dem letzten öffnen verändert wurden

- 69 -

werden Sie vor dem Schließen darauf hingewiesen und können die Operation bei Bedarf ohne Datenverlust abbrechen.

Durch Anwahl von „Quit...“ oder einfaches Schließen des Hauptfensters können Sie die aktive Instanz von jocDBInsight beenden. Auch hier wird bei nicht gesicherten Änderungen eine Warnmeldung ausgegeben damit

Sie Ihre Änderungen vor dem Beenden sichern können.

Alle notwendigen Informationen über die aktuell geöffnete Datenbank werden in einer einzigen DBI-Datei gesichert. Gespeichert werden neben der Datenbankstruktur auch alle von Ihnen angelegten Spaltenkorrelationen, Ihre Notizen sowie alle berechneten Metriken. Somit bietet jocDBInsight eine ausgezeichnete Möglichkeit, Datenbankstrukturen und

Metriken zur späteren Prüfung und Analyse abzulegen.

- 70 -

Tips und Tricks

Bei meiner MySQL-Datenbank friert gelegentlich die Datenabfrage und die Metrics-Berechnung ein

MySQL erlaubt in Datum/Zeit-Spalten den Datumswert 0 (0000-00-00).

Dies ist kein valides Datum da weder Monate noch Tageswerte jemals 0 sein dürfen. Microsoft ADO hat mit diesem Datumswert Schwierigkeiten und kann es bei bestimmten Operationen nicht verarbeiten. Den Entwicklern der MySQL-ODBC Treibern ist dieses Problem bekannt, es ist daher möglich als ODBC-Option den Wert 16777216 anzugeben welcher das oben gezeigte Datum stets auf 01-01-0000 abändert. Hier ein

Beispiel für eine Verbindungszeichenkette mit Angabe dieser Option für

MySQL ODBC/Connector 3.51:

Driver={MySQL ODBC 3.51 Driver};

Server=<hostname>;

Database=<database>;

User=<user>;

Password=<password>;

Option=16777219

Die Zeilenumbrüche dienen nur der Lesbarkeit und müssen bei Verwendung entfernt werden!

Leider behebt diese Option das Problem bei meinen Versuchen nicht, aber immerhin kann jocDBInsight in diesem Fall einen Fehler erkennen und den Hänger vermeiden.

Bei meiner Microsoft Access Datenbank werden keine Fremdschlüssel und Queries angezeigt

Dieser Effekt tritt auf wenn bei der verwendeten Datenbankverbindung keine Systemdatenbank angegeben wurde da jocDBinsight in diesem

Fall keine Rechte für das Lesen der internen Beschreibungstabellen Ihrer Microsoft Access Datenbank hat. Geben Sie beim Anlegen Ihrer Datenbankverbindung zu Microsoft Access Datenbanken stets eine Systemdatenbank an. Das genaue Vorgehen wird im Kapitel Datenbanken

öffnen unter Abschnitt Sonderfall Microsoft Access beschrieben.

Snapshots erstellen mit der Demoversion

- 71 -

Die kostenlose Demoversion von jocDBInsight wurde bewusst so konzipiert, dass Sie vollständige Datenbankstrukturen inklusive Metriken und

Notizen sichern können. So kann bei Bedarf überall wo Internet verfügbar ist eine Demoversion heruntergeladen und installiert werden um eine DBI-Datei für die Offline-Sichtung zu erzeugen.

Wie finde ich Tabellenspalten für mögliche Spaltenkorrelationen

Eine gute Möglichkeit, etwas über die Beziehungen zwischen den Tabellen einer Datenbank herauszufinden, besteht in der Durchsicht der

Quelltexte von Sichten und Gespeicherten Prozeduren der Datenbank sowie der auf die Datenbank zugreifenden Programme. Sichten werden bei den meisten unterstützten Datenbanktypen schon von jocDBInsight automatisch analysiert, bei Gespeicherten Prozeduren und externen

Quelltexten müssen Sie das (noch) eigenhändig erledigen. Interessant sind in diesem Fall die JOINs der SQL-Quelltexte. Jeder gefundene

JOIN dokumentiert eine für die Verwendung der Datenbank benötigte

Beziehung zwischen Tabellenspalten.

Bei einigermaßen sorgfältiger Namensgebung können auch Tabellen- und Spaltennamen, hier insbesondere etwa vorhandener Primärschlüsselspalten, wertvolle Hinweise geben. Hier ist allerdings oft etwas Kreativität gefordert. Gibt es z.B. die Tabellen „Orders“ und „Order Details“ und enthalten beide eine Spalte namens „OrderID“ so deutet dies stark auf mögliche Kandidaten für eine Fremdschlüsselbeziehung hin. Da Sie jocDBInsight verwenden, können Sie nun einfach eine Spaltenkorrelation auf diese Spalten anlegen und durch Berechnen der Spaltenkorrelation-Metriken sehen, ob und wie gut die enthaltenen Werte Ihre Hypothese stützen.

Master-Detail Abfragen über eine Beziehung „rückwärts“

Normalerweise führt jocDBInsight beim Auswählen eines Fremdschlüssels oder einer Spaltenkorrelation eine Datenabfrage so aus, dass die

Daten der linken bzw. „1“-Seite der Beziehung im Master-Ausgabebereich auf der linken Seite der Daten-Detailansicht angezeigt werden und

Sie durch Auswahl eines Datensatzes in dieser Liste die zugehörigen

Datensätze der rechten bzw. „n“-Seite der Beziehung im Detail-Ausgabebereich rechts sichten können. Manchmal ist es aber auch nützlich,

Datensätze der „n“-Seite auswählen zu können um zugehörigen Datensätze der „1“-Seite zu sehen. Bei „1:1“-Beziehungen ist die Richtung sogar oft gar nicht eindeutig anzugeben.

- 72 -

Zum Umdrehen der Richtung für die Datenanzeige wählen Sie zunächst wie gewohnt die gewünschte Beziehung aus. Dann stellen Sie die

Typauswahl des abhängigen Segmentes auf Tabelle und wählen Sie anschliessend in diesem Segment die Tabelle der linken bzw. „1“-Seite der

Beziehung aus. Wenn alles richtig ausgewählt ist sollte der Hintergrund der Datenanzeige hellgrün eingefärbt werden, da eine Kette erkannt wurde. Die Daten der rechten bzw. „n“-Seite der Beziehung sollten im

Master-Ausgabebereich dargestellt sein und, bei Auswahl eines Datensatzes, die zugehörigen Daten der linken bzw. „1“-Seite im Detail-Ausgabebereich.

Anpassen der Spaltenbreite in Datenansichten

Wenn Sie in einem der Ausgabebereiche der Daten-Detailansicht die

Breite einer Ausgabespalte anpassen, welche eine Tabellenspalte der

Datenbank repräsentiert, so merkt sich jocDBInsight die neue Breite für diese Datenbank-Tabellenspalte bis zum Beenden des Programms. So brauchen Sie die meisten Breiten innerhalb einer Sitzung nur einmal einzustellen.

- 73 -

Danksagung

Während ich jocDBInsight stets als Einzelperson entwickelt habe, so ist es dennoch nicht die Arbeit eines Einzelnen. Der sicherlich größte Dank gebührt der Firma Object Arts ( www.object-arts.com

), welche mir durch die Entwicklung Ihres genialen Produktes „Dolphin-Smalltalk“ erst die

Möglichkeit gegeben haben, ein solch komplexes Produkt auch neben der Arbeit für meine Kunden fertigzustellen. Weiterhin gilt mein Dank den Nutzern der Dolphin-Newsgroup „comp.lang.smalltalk.dolphin“, welche mir bei unzähligen Detailproblemen stets direkt oder indirekt weitergeholfen haben.

Das hervorragende Buch „Building Parsers with Java“ von Steven John

Metsker lehrte mich die elegante Konzeption von Parsern, welche ich in

Smalltalk dank dessen brilliantem Sprachkonzept in einfacher Weise umsetzen und erweitern konnte. Hier haben mich anfangs auch hochinteressante Webseiten über Parser-Combinators auf den richtigen Weg gebracht, wie überhaupt das World Wide Web und insbesondere die dahinter stehenden Menschen eine unverzichtbarer Quelle von Information und Inspiration geworden ist; ihnen allen gilt meinen herzlicher

Dank.

Vielen Dank auch Ihnen, den Nutzern von jocDBInsight, die Sie mit Anregungen, Fehlerberichten und nicht zuletzt Ihrem Geld die Weiterentwicklung dieses interessanten Produktes unterstützen!

„Last but not least“ danke ich meiner Lebensgefährtin Paula, welche immer mit viel Verständnis meine zahlreichen „Überstunden“ toleriert hat.

Jochen Riekhof, November 2008

- 74 -

Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement