Die wichtigste Voraussetzung für die erfolgreiche Entwicklung einer Datenbank-Applikation ist zweifellos der richtige Entwurf des Datenmodells. Die konsistente Datenhaltung und wirksame Integritätsregeln auf der physikalischen Datenbankebene ersparen Ihnen viele Probleme bei der Implementierung der Masken für die Dateneingabe und beim Entwurf von Abfragen und Berichten für die Datenpräsentation. Die eventuellen Fehleingaben werden automatisch vermieden ohne die Konsistenz der gespeicherten Daten negativ beeinflussen zu können.
Außerdem hat das Datenmodell eine wichtige Dokumentierungsfunktion. Für die Wartung, also die späteren Anpassungen und Erweiterungen eines Programms, ist die schnelle Orientierung in den bestehenden Datenstrukturen und Beziehungen von besonderer Bedeutung. Eine graphische Darstellung von Tabellen, Feldern, Schlüsseln und Beziehungen ist am übersichtlichsten und dadurch am effizientesten.
Ein gutes Zeichenprogramm kann Ihnen viel Arbeit ersparen. Es geht allerdings nicht nur darum, ein Bild zu zeichnen. Speziell im Bereich der Datenmodellierung gibt es die Möglichkeit den Vorgang beim Generieren einer Datenbank weitgehend zu automatisieren. Die Anforderungen an ein solches Werkzeug werden unter folgenden Punkten zusammengefasst:
· Eine leicht bedienbare Benutzeroberfläche mit vordefinierten Symbolen (Shapes), derer Layout den gängigen Konventionen entspricht.
· Überprüfung der wichtigsten Integritätsregeln sofort beim Zeichnen des Diagramms.
· Umsetzung des fertigen Datenmodells in die Praxis:
· Generieren eines DDL-Skripts und
· automatisches Erstellen der Tabellenstrukturen, Indizes und Beziehungen.
· Reverse-Engineering - aus einer bestehenden Datenbank wird das Datenmodell generiert.
· Das graphische Datenmodell mit der Datenbank zu synchronisieren - die Änderungen in beiden Richtungen zu übertragen.
Das Programm Visio2000 (in weiterem Text nur Visio) wird in vier Editionen ausgeliefert, die unterschiedlichen Benutzergruppen folgende Möglichkeiten der Diagrammerstellung ermöglichen:
· Darstellung von Geschäftsprozessen
· Erstellung von Organigrammen
· Planung von Projekten und Prozessen
· Zeichnungen für Marketingpräsentationen
· Geschäftsformulare, Landkarten
· Technische und architektonische Diagramme
· Arbeiten mit CAD-Zeichnungen
· Prozessflussdiagramme, Leitungsdiagramme
· Grundrisse und Baupläne
· Gebäudeinstallationen, Rohrvernetzungen
· Dokumentation der Netzwerke und Verzeichnisdienste
· Planung und Verknüpfung von Web-Sites
· Entwurf von Software-Komponenten
· Entwurf von Datenbankmodellen
· Import der Netzwerk-Verzeichnisstrukturen
· Teamorientierte Datenbankentwicklung
· Erweiterungen der Software-Modelle
Von dem umfangreichen Funktionsangebot von Visio werden wir uns in diesem Artikel nur mit den Möglichkeiten beschäftigen, die direkt bei der Entwicklung von MS-Access-Datenbanken eingesetzt werden können. Es werden erstens der Weg vom graphischen Datenmodell zur einer generierten Datenbank, zweitens das Reverse-Engineering Prozess bei der Analyse einer bestehenden Applikation präsentiert.
Aufgrund der großen Komplexität des Programms werden wir uns an dieser Stelle nur auf die grobe Programmstruktur und die Visio-spezifischen Elemente der Oberfläche beschränken.
Nach dem Einlegen der Installations-CD können Sie unter dem Titel Exkurs der Visio 2000 Oberfläche von der Hauptmaske eine kurze Einführung starten. Außerdem können Sie sich ein Lernprogramm unter dem Namen Interaktive Schulung Visio 2000 entdecken installieren. Der erste Teil dieses Programms ist identisch mit der Einführung im Zuge der Installation.
Eine ausführliche Anleitung finden Sie in der Hilfe und in Handbüchern, die als .PDF-Dateien im Verzeichnis ...\Dokumente\ abgelegt werden. Aus der Hilfe-Datei ist für den Bereich der Datenmodellierung der Punkt Visio-Lösungen->Datenbankmodelle von der größten Bedeutung.
Im Verzeichnis ...\Beispiele\ sind zu jedem Diagrammtyp Beispielzeichnungen gespeichert, die über Menü Datei-Neu-Beispielzeichnungen durchsuchen geöffnet werden können.
Das kleinste Element einer Zeichnung wird als Symbol (Shape) bezeichnet. Es wird zwischen einem zweidimensionalen (z.B. ein Rechteck) und einem eindimensionalen (z.B. eine Verbindungslinie) Symbol unterschieden.
Eine Gruppe von Symbolen, die für einen bestimmtem Diagrammtyp bestimmt sind, werden in einer Schablone zusammengefasst. Sie wird im Verzeichnis ...\Lösungen\ in einer Datei mit der Erweiterung .VSS gespeichert.
Die ausgewählten Schablonen und weitere Stil-Einstellungen bilden eine so genannte Vorlage. Standardmäßig sind Vorlagen für alle Diagrammtypen mitgeliefert. Sie sind als Dateien mit der Erweiterung .VST im gleichen Verzeichnis wie die Schablonen gespeichert.
Sowohl Schablonen als auch Vorlagen können Sie auch selbst definieren und für das Erstellen Ihrer Diagramme verwenden. Der Inhalt einer Schablone kann mit einem Schablonendruck-Assistenten ausgedruckt werden, der sich im Unterverzeichnis ...\Lösungen\Visio-Extras befindet.
Eine spezielle Stellung unter den Schablonen nimmt die sog. Dokument-Schablone ein. Sie wird automatisch mit allen in der jeweiligen Zeichnung eingesetzten Symbolen aktualisiert und kann über das Menü Fenster- Dokument-Schablone anzeigen ein- oder ausgeblendet werden. Sie ist als einzige der Schablonen standardmäßig nicht schreibgeschützt und deswegen können Sie darauf (mit Drag and Drop) auch konkrete Symbole aus Ihrer Zeichnung für die Wiederverwendung ablegen.
Ein Diagramm ist eine Datei mit der Erweiterung .VSD, die nicht nur die Zeichnung selbst, sondern auch alle notwendigen Hintergrundinformationen enthält.
Alle implementierten Diagrammtypen sind in zwölf Kategorien gegliedert, von dieser Gliederung wird auch die Struktur der Unterverzeichnisse mit Schablonen, Vorlagen und Beispielen abgeleitet.
Die für uns wichtigste Diagrammkategorie Datenbank hat zusätzliche Funktionen, die alle unter dem Menüpunkt Datenbank aufrufbar sind. Dieser Menüpunkt ist für die anderen Kategorien irrelevant und wird nicht eingeblendet.
Die Oberfläche zum Erstellen einer Zeichnung besteht aus zwei wichtigsten Fenstern:
· einem Zeichenblatt und
· einer oder mehreren Schablonen mit Symbolen.
Sie können entweder zuerst ein leeres Zeichenblatt und danach explizit die gewünschten Schablonen öffnen oder eine Vorlage, die einen vordefinierten Satz von Schablonen enthält, auswählen.
Das gewählte Symbol kann von einer Schablone auf das Zeichenblatt mit der Maus gezogen werden. Die einfachen Symbole, wie z.B. in einem Organigramm können nach einem Doppelklick beschriftet werden. Bei den Symbolen für die Datenmodellierung werden die Inhalte im Fenster Datenbankattribute eingegeben, das ebenfalls mit Doppelklick eingeblendet werden kann (siehe später).
Ein richtiges Diagramm entsteht erst dann, wenn die Beziehungen zwischen den Symbolen definiert werden. Dabei wird zwischen zwei Arten von Verbindungen unterschieden:
Statische (Punkt zu Punkt Verbindung) entsteht dann, wenn die Verbindungslinie von einem Verbindungspunkt des Symbols zu dem Verbindungspunkt eines anderen Symbols gezogen wird (der Punkt verwandelt sich dabei in ein rotes Rechteck). Beim Verschieben der Symbole bleiben immer die gleichen Punkte verbunden.
Dynamische (Shape zu Shape Verbindung) entsteht dann, wenn die Verbindungslinie von einem Symbols zu dem anderen gezogen wird, wobei zum Zeitpunkt der Verbindung das ganze Symbol rot umrandet wird. Beim Verschieben der Symbole dürfen sich die Verbindungspunkte auch verschieben.
Im Menüpunkt Ansicht->Fenster können Sie bis zu vier Hilfsfenster öffnen, die vor allem die Arbeit mit umfangreichen und von der Funktionalität her komplexen Diagrammen unterstützen. Damit sie nicht zu viel von der Fläche des Zeichenblatts überdecken, können Sie mit der rechten Maustaste die Option Automatisch verbergen aktivieren. Dann wird sich das Fenster automatisch zu einer schmalen Schaltfläche am Rande des Programmfensters zurückziehen, wenn der Mauszeiger seinen Bereich verlässt.
· Verschieben und Zoom - durch das Verschieben und Größenänderung eines Rahmens kann der sichtbare Bereich des Diagramms im Zeichnungsfenster festgelegt werden.
· Zeichnungs-Explorer - mit Hilfe der hierarchischen Anzeige können Sie Elemente wie Zeichenblätter, Shapes usw. des aktuellen Diagramms hinzufügen, löschen, bearbeiten und aufrufen.
· Datenfelder - einem Symbol können beliebige Daten zugeordnet werden, die sich mit Hilfe eines Berichts abrufen lassen. Die Feldnamen und -typen sind frei definierbar.
· Größe und Position - enthält auch Informationen über die Drehung (Winkel und Position des Drehpunktes) eines Symbols.
Außer dieser vier Fenstern, die für alle Diagrammtypen zur Verfügung stehen, gibt es für die Datenbankmodelle unter dem Menüpunkt Datenbank->Ansicht weitere sechs Hilfsfenster:
· Tabellen - Übersicht der im Datenmodell vorhandenen Tabellen und Views (Abfragen). Es wird automatisch von dem Assistenten für Reverse-Engineering angezeigt (siehe später).
· Typen - Enthält die Übersicht der verfügbaren logischen Datentypen für die Zieldatenbank.
· Code - In diesem Fenster werden alle Code-Module des Diagramms aufgelistet. Der Code selbst kann mit Doppelklick im Code-Editor Fenster angesehen, bzw. bearbeitet werden. Der Code kann in Form von SQL-Ausdrücken, Feldprüfungsbedingungen usw. vorliegen.
· Projekt - Zeigt eine Liste der im Projekt enthaltenen Dateien an (ist eher für die Verwaltung komplexer Modelle bestimmt).
· Ausgabe - Zeigt Informationen über den Ablauf von diversen Aktionen an, wie z. B. beim Validieren des Modells oder beim Ausführen des Assistenten für Reverse-Engineering.
· Verbalizer - Das Fenster enthält eine Textbeschreibung der Datenbankattribute des ausgewählten Objekts.
Im Hintergrund der für uns wichtigsten Symbolen der Datenmodellierung wie Tabellen (Entitäten) und Beziehungen werden weitere Informationen, z.B. Attribute der Tabellenfelder, gespeichert. Die können im Fenster Datenbankattribute angezeigt und geändert werden. Das Fenster kann entweder durch Doppelklick auf ein Datenmodell-Symbol oder mit der rechten Maustaste im Kontextmenü Datenbankeigenschaften geöffnet werden. Das automatische Verbergen funktioniert hier genauso wie bei allen anderen Hilfsfenstern.
Abschließend zu der Beschreibung der Visio-Oberfläche wird auf folgendem Bild die Arbeit mit einem Datenmodell-Diagramm präsentiert. Am linker Rand sehen Sie die Dokument-Schablone und in der linken unteren Ecke das Fenster Verschieben und Zoom. Der rote Rahmen ungefähr in der Mitte markiert den auf dem Zeichenblatt jeweils angezeigten Bereich des Diagramms. Die Tabelle Personal ist markiert und im Fenster Datenbankattribute rechts oben werden die Spaltenangaben bearbeitet.
Abbildung 1: Die Visio-Arbeitsoberfläche
Außer der grafischen Darstellung eines Datenmodelldiagramms ist es im Visio auch möglich tabellarische Berichte über die Struktur des Datenmodells zu erstellen. Folgende Typen stehen zur Verfügung:
· Constraint-Typ-Berichte
· Faktentyp-Berichte
· Objekttyp-Berichte
· Statistische Berichte
· Supertyp-Berichte
· Tabellenberichte
· Typenberichte
Den Berichtsassistenten können Sie über den Menüpunkt Datenbank->Bericht... aufrufen. Die ausführliche Beschreibung der einzelnen Berichtstypen steht in der Hilfe unter Visio-Lösungen->Datenbankmodelle->Berichte,
Visio liefert Vorlagen für sieben Diagramme der Kategorie Datenbankmodell. Die schnelle Übersicht über die Typen bekommen Sie über das Menü Datei->Neu->Zeichnungstyp wählen. In einem Fenster werden verkleinerte Beispielzeichnungen der Kategorie dargestellt und Sie können unter ihnen die Vorlage auswählen. Beachten Sie, dass nur bei der Auswahl der Zeichnungstyps aus dieser Kategorie, im Hauptmenü von Visio der Eintrag Datenbank erscheint.
In diesem Kapitel werden wir uns ausschließlich mit dem Datenmodell-Diagramm beschäftigen, weil es am besten die Struktur eines Entity-Relationship-Datemodells darstellen kann. Die eingesetzten Symbole kommen alle aus der Schablone Entity-Relationship.
In einem komplexen Datenmodell ist es empfehlenswert (genauso wie bei der Benennung von MS-Access-Datenbankobjekten) bestimmte Namenskonventionen einzuhalten, die zur besseren Übersichtlichkeit bei der Implementierung beitragen. Folgende Regeln wurden auch in unserem kleinen Beispielmodell eingehalten:
· Als Trennzeichen wird ausschließlich Underscore ("_") verwendet.
· Die abgekürzten Tabellennamen werden großgeschrieben als Präfix zu jedem Namen eines Tabellenfelds (Spalte) hinzugefügt.
· Die Namen der Schlüsselfelder werden groß geschrieben.
· Die Namen der Primärschlüsselfelder bestehen aus dem abgekürzten Tabellennamen und der Bezeichnung "_ID".
· Die Namen von fremden Schlüsseln enthalten auch die Bezeichnungen der Mastertabelle.
Ein einfaches Beispiel, das sowohl die 1:N, als auch die M:N Beziehung zwischen Tabellen enthält, wurde aus einer Weihnachtskartei extrahiert (die Tabellenstrukturen wurden reduziert).
Es besteht aus folgenden Tabellen:
Kunde enthält die Kundenattribute und den fremden Schlüssel zur Tabelle Adresse
Adresse speichert die Adressangaben
Geschenk ist ein Verzeichnis der im jeweiligen Jahr verteilten Geschenke
KundeGeschenk vermittelt die M:N Beziehung zwischen den Kunden und Geschenken (jeder Kunden kann mehrere Geschenke bekommen, jedes Geschenk(typ) kann an mehrere Kunden verteilt werden
Außer dem auch vom MS-Access bekannten Menüpunkt Extras->Optionen befinden sich viele Einstellungsmöglichkeiten unter dem Menüpunkt Datenbank->Optionen. Für unsere Aufgabe wurden folgende Änderungen im Untermenüpunkt Dokument vorgenommen:
Die Datentypen der Spalten werden in jedem Tabellensymbol rechts angezeigt.
Die Enden der Verbindungslinien zwischen Tabellen werden mit den im relationalen Datenmodell üblichen Symbolen versehen.
Nachdem Sie ein neues Datenbankmodell-Diagramm geöffnet haben, erscheint auf der linken Seite die Schablone, die alle notwendigen Symbole enthält. Ziehen Sie das Symbol Entität auf das Zeichenblatt.
Das neue Symbol ist leer und hat einen Standard-Namen Tabelle mit einer fortlaufenden Nummer. Den richtigen Tabellennamen können Sie nur im Fenster Datenbankattribute definieren (wird mit Doppelklick oder der rechten Maustaste geöffnet). Visio unterstützt sowohl den physikalischen, als auch den konzeptionellen Namen, die allerdings nach dem Aktivieren der entsprechenden Option auf der Registerkarte Definition synchronisiert werden können.
Auf der Registerkarte Spalten des Fensters Datenbankattribute können Sie die einzelnen Spalten der Tabelle anlegen und bearbeiten. Wichtig ist dabei die Wahl des richtigen Datentyps der Spalte. Standardmäßig enthält die zuständige Combobox nur den Typ CHAR(10), die Auswahl der Zeile Neuer Datentyp öffnet ein neues Fenster Datentyp und ermöglicht Ihnen, einen neuen zu definieren. Wenn Sie als installierten Visio-Treiber Microsoft Access auswählen, stehen Ihnen alle MS-Access-spezifischen Datentypen zur Verfügung.
Wenn Sie eine Spalte als primären Schlüssel definieren, wird die entsprechende Zeile im Tabellensymbol nach oben verschoben, fett gedruckt, unterstrichen und mit einem Präfix PK in der linken Spalte versehen.
Die Reihenfolge der Fenster bei der Definition des primären Schlüssels der Tabelle Kunden als MS-Access-Datentyp COUNTER können Sie dem folgenden Bild entnehmen.
Abbildung 2: Definition eines Spalten-Datentyps für die MS-Access-Datenbank
Auf der Registerkarte Primär-ID des Fensters Datenbankattribute können Sie zu dem auf der vorigen Registerkarte definierten Primärschlüssel noch festlegen, ob auch ein Index automatisch erzeugt werden soll (Standardeinstellung ist JA).
Weiteren Indizes, die nicht durch die Primärschlüsseldefinition entstanden sind, können Sie auf der Registerkarte Indizes erstellen. Sie sind vor allem dann sinnvoll, wenn Sie die Eindeutigkeit einer Spalte oder Spaltenkombination garantieren wollen, die nicht den Primärschlüssel darstellt. In unserem Beispiel ist es die Kombination der Adressenfelder in der Tabelle Adresse und die Kombination Jahr-Geschenk in der Tabelle Geschenk.
Alle in unserem Beispiel existierenden Tabellenbeziehungen sind Verknüpfungen zwischen dem primären Schlüssel der Mastertabelle und dem fremden Schlüssel in der Detailtabelle. Es werden dynamische Verbindungen erstellt, weil es dann einfacher ist, auch große strukturelle Änderungen im Datenmodell vorzunehmen.
Es wird empfohlen die oben beschriebene Option Krähenfüße verwenden zu aktivieren, damit die Kardinalität in der Beziehung anschaulich sichtbar ist. Die Verbindung wird immer in der Richtung von der Master- zur Detailtabelle durchgeführt.
Es gibt zwei Möglichkeiten, wie eine Beziehung zwischen zwei Tabellen definiert werden kann:
· Mit dem Verbinder (Schaltfläche auf der Symbolleiste Standard) wie bei allen anderen Diagrammtypen oder
· Sie können auf das Zeichenblatt das Symbol Beziehung aus der Schablone Entity-Relationship ziehen und die Verbindungspunkte nachträglich bearbeiten:
Der Anfang der Verbindungslinie ist mit Kreuz gekennzeichnet und wird mit der Mastertabelle verbunden.
Das Ende der Verbindungslinie ist mit Pluszeichen gekennzeichnet und wird mit der Detailtabelle verbunden.
Standardmäßig werden beim Erstellen der Beziehung die Primärschlüsselfelder aus der Mastertabelle automatisch als Fremdschlüsselfelder mit den gleichen Feldnamen in die Detailtabelle neu hinzugefügt.
Wenn Sie die Namen der Fremdschlüsselfelder (wie in unserem Beispiel) selbst festlegen wollen, müssen Sie unter dem Menüpunkt Datenbank-> Optionen->Modellierung auf der Registerkarte Logisch-sonstiges die Option FK Weiterreichen - Beim Hinzufügen weiterreichen deaktivieren. Dann werden keine Felder automatisch verknüpft und Sie müssen die verbundenen Felder mit der Schaltfläche Assoziieren im Fenster Datenbankattribute festlegen. Danach wird das Fremdschlüsselfeld in der Detailtabelle mit der Abkürzung FK gekennzeichnet.
Auf dem folgenden Bild sehen Sie alle Tabellen unseres Beispiels mit ihren Primärschlüsseln und zusätzlichen Indizes U1, die als Eindeutigkeits-Constraints definiert sind. Im Fester Datenbankattribute wird bereits eine Beziehungen zwischen der Adressen- und Kundentabelle erstellt.
Abbildung 3: Definition einer Tabellenbeziehung
Auf der Registerkarte Sonstiges des Fensters Datenbankattribute können Sie die Kardinalität und Typ der Beziehung festlegen.
Abbildung 4: Kardinalität und Beziehungstyp
Der Rahmen Kardinalität betrifft die N-Seite der Beziehung. Nach der Auswahl einer der Optionen des Radio-Buttons ändert sich auf das (Krähenfuß)-Symbol auf der Verbindungslinie dementsprechend.
Die 1-Seite der Beziehung kann mit der Checkbox Optional bearbeitet werden. Nachdem Sie sie aktivieren, ändert sich die Beziehung von eins zu ... auf null oder eins zu ...
Auf der Registerkarte Sonstiges können Sie für jede Beziehung einen von zwei Beziehungstypen definieren:
Als identifizierend wird die Beziehung bezeichnet, die auf beiden Seiten die primären Schlüssel verbindet. Sie wird im Diagramm mit der vollen Linie dargestellt.
Als nicht-identifizierend wird die Beziehung bezeichnet, die nicht nur primäre Schlüssel verbindet. Sie wird im Diagramm mit der strichlierten Linie dargestellt.
Eine identifizierende Beziehung kann nicht optional sein, weil in den Primärschlüsseln grundsätzlich keine Null-Werte erlaubt sind.
Auf der Registerkarte Referenzielle Integrität können die gleichen Optionen wie in den Beziehungen einer MS-Access-Datenbank eingestellt werden. Es wird das Verhalten erstens beim Aktualisieren und zweitens beim Löschen des Primärschlüssels der Mastertabelle festgelegt. Der im Visio verwendete Begriff Kaskadierung entspricht der MS-Access-Option Aktualisierungsweitergabe an Detailfeld, bzw. Löschweitergabe an Detaildatensatz.
Das fertige Beispiel-Datenmodell, das als Basis für das Generieren einer MS-Access-Datenbank verwendet wird, ist in der beigelegten Datei Test_Datenbankmodell.vsd gespeichert und wird auf dem folgenden Bild dargestellt.
Abbildung 5: Fertiges Beispiel-Datenmodell
Bevor das Datenmodell in die Praxis umgesetzt wird, ist es sinnvoll, seine Konsistenz und Richtigkeit zu überprüfen. Dabei werden verschiedene logische Fehler entdeckt, wie z.B. nicht eindeutige Tabellennamen, und andere. Der Vorgang wird automatisch vor dem Generieren der Datenbank oder über den Menüpunkt Datenbank->Modell->Fehlerprüfung gestartet und die Ergebnisse werden im Ausgabefenster angezeigt.
Mit dem Menüpunkt Datenbank->Generieren können Sie den Generierungsassistenten starten. Zuerst wird die Fehlerprüfung automatisch durchgeführt und der Vorgang nur mit einem fehlerfreien Modell fortgesetzt.
Auf der ersten Maske können Sie drei wichtige Optionen aktivieren (siehe Bild):
Abbildung 6: Die erste Maske des Generierungsassistenten.
Textdatei aus dem DDL-Skript erstellen - Die DDL (Data Definition Language)-Befehle, mit denen die Datenbankobjekte erstellt wurden, werden in eine Textdatei zusammengefaßt. Die einzelnen Anweisungen wie CREATE TABLE usw. können in eine SQL-spezifische Access-Abfrage übernommen und bei Bedarf wiederholt werden.
Neue Datenbank erzeugen - eine neue Datenbank mit allen Objekten aus dem Datenmodell wird physikalisch angelegt
Aktuelles Datenbankbild im Modell speichern - Wenn Sie diese Option aktivieren, können Sie später Unterschiede zwischen dem aktualisierten Datenmodell und der zuletzt generierten Datenbank auswerten.
Auf der zweiten Maske des Generierungsassistenten können Sie entscheiden ob die Datenbankdatei (.MDB) bereits existiert oder eine neue erstellt werden soll. Die Erstellung einer neuen Datei starten mit dem Klick auf die Schaltfläche Neu...
Über die Wahl der richtigen ODBC-Treibers (hier heißt er Microsoft Access 97 Datenbank) kommen Sie zum Fenster ODBC Microsoft Access Setup, wo Sie auf die Schaltfläche Erstellen klicken. Im nachfolgenden Fenster Neue Datenbank wählen Sie rechts im Rahmen Format die gewünschte Version laut folgender Tabelle:
Acces-Version Format
Access 2000 Version 4.x
Access 97 (8.0) Version 3.x
Access 95 (7.0) Version 2.x
Eine Zusammenfassung des gesamten Vorgangs können Sie auch dem folgenden Bild entnehmen:
Abbildung 7: Erstellen einer neuer Access-Datenbank mit dem Generierungsassistenten.
Ganz im Hintergrund sehen Sie auch einen Teil des Ausgabefensters, wo die Ergebnisse der automatischen Fehlerprüfung des Datenmodells angezeigt werden.
Nachdem die Datenbankdatei physikalisch erstellt wurde, können Sie zu der zweiten Maske der Generierungsassistenten zurückkehren, den Radio-Button MDB-Datei bereits vorhanden aktivieren und die erstellte Datenbank auswählen. Danach wird die Übersicht aller generierten Objekte (in unserem Beispiel die vier Tabellen) angezeigt und die Generierung kann mit der Schaltfläche Fertigstellen abgeschlossen werden. Im Ausgabefenster werden alle durchgeführten DDL-Befehle zur Kontrolle aufgelistet.
Das Ergebnis der präsentierten Generierung können Sie in der Datenbank Test_Datenmodell.mdb im Entwurf der Tabellen, bzw. im Beziehungsfenster beobachten. Die generierten DDL-Befehle wurden in der Textdatei Test_Datenmodell.ddl gespeichert.
Die mächtigen Fähigkeiten des Reverse-Engineering von Visio kommen besser zum Tragen, wenn wir eine möglichst komplexe Datenbank als Beispiel auswählen. Eine solche Datei, die mit Access installiert werden kann, also jedem Anwender zur Verfügung steht ist die Datenbank Nordwind.mdb, die im Verzeichnis ...\Office\Beispiel\ zu finden ist.
Sie enthält insgesamt acht Tabellen mit definierten Indizes, Gültigkeitsregeln und Beziehungen und eine Menge von Abfragen.
Bevor der Assistent über das Menü Datenbank->Reverse-Engineering gestartet werden kann, müssen Sie ein neues Diagramm vom Typ Datenbankmodell aus der Kategorie Datenbank erstellen.
Auf der ersten Maske des Assistenten erfolgt die Auswahl des Visio-Treibers (Microsoft Access), und der ODBC-Datenquelle (MS Access 97-Datenbank). Nach der Auswahl der konkreten Datenbankdatei werden in der zweiten Maske des Assistenten folgende Objekte für Reverse-Engineering angeboten:
· Tabellen
· Primärschlüssel
· Indizes
· Fremdschlüssel
· Feldprüfungsbedingungen
· Views
In diesem Beispiel wurden die Checkboxen bei allen hier verwendeten Objekten aktiviert.
In der nächsten Maske können die Tabellen und Abfragen einzeln ausgewählt werden und das automatische Reverse-Engineering gestartet werden.
Im Ausgabe-Fenster wird der bereits durchgeführte Vorgang aufgezeichnet und im Tabellen-Fenster werden Symbole für übernommene Tabellen und Abfragen (Views - mit "V") eingeblendet.
Das Zeichenblatt bleibt in dieser Phase noch leer. Sie können die Elemente aus dem Tabellen-Fenster auf das Blatt ziehen. Es wird nicht nur das entsprechende Symbol wie auf der Schablone erstellt, sondern wird es automatisch mit allen Datenbankattributen (z.B. Tabellenspalten) befüllt.
Die Tabellenbeziehungen werden automatisch gezeichnet, nachdem Sie die beide verknüpften Tabellen auf das Zeichenblatt übernommen haben. Wenn Sie im Kontextmenü (rechte Maustaste) eines Tabellensymbols den Punkt Verwandte Tabellen anzeigen auswählen, können Sie zu der jeweiligen Tabelle alle Tabellen automatisch anzeigen, die mit ihr in Beziehung stehen.
Bei einer in das Zeichenblatt übernommenen Abfrage werden alle Spaltennamen wie bei Tabellen angezeigt, aber keine Beziehungen in Form von Verbindungslinien automatisch erstellt.
Sie können die SQL-Ausdrücke der Abfragen entweder auf der Karte SQL der Fensters Datenbankattribute oder über das Hilfsfenster Code sehen, bzw. bearbeiten.
Das folgende Bild zeigt die gerade beschriebene Situation beim Reverse-Engineering in der Phase der Übernahme der Objekte auf das Zeichenblatt.
Abbildung 8: Reverse-Engineering in der Zeichnungsphase.
Das in der Übersicht der Elemente der Visio-Oberfläche erwähntes Hilfsfenster Code zeigt die Übersicht aller im Datenmodell vorhandenen Code-Module an. Sie werden in zwei Gruppen aufgeteilt:
Globaler Code - enthält die SQL-Ausdrücke der Abfragen
Lokaler Code - enthält die Feldprüfungsbedingungen
Jede Dokumentation verliert ihren Wert, wenn sie nicht aktuell ist. Das Datenbankmodell und die physikalische Datenbank müssen laufend auf dem gleichen Stand gehalten werden. Dabei sind zwei Situationen zu unterscheiden:
Bei der Weiterentwicklung der Applikation wurde das Datenmodell geändert und die Änderungen sollen in die Datenbank übertragen werden.
Bei der Wartung oder Fehlerbehebung sind in der Datenbank Änderungen vorgenommen worden, anschließend muss man auch das Datenmodell auf den gleichen Stand bringen.
Für die Aktualisierung der Datenbank steht ein Assistent zur Verfügung, der über den Menüpunkt Datenbank->Aktualisieren gestartet wird.
Der Vorgang ist der Generierung einer Datenbank sehr ähnlich. In der ersten Maske können Sie wieder eine Textdatei mit dem DDL-Skript erzeugen lassen, außerdem können Sie die Unterschiede zwischen dem bei der letzten Generierung im Datenmodell gespeicherten Datenbankbild und der Datenbank in eine Textdatei (standardmäßige Erweiterung .LOG) speichern.
Nachdem mit dem Assistenten Unterschiede zwischen dem Datenmodell und der Datenbank festgestellt wurden, können Sie noch entscheiden, dass Sie statt der Datenbank das Datenmodell ändern lassen.
Den Assistenten, der die Aktualisierung des Datenmodells je nach dem aktuellen Stand der Datenbank durchführt, können Sie mit dem Menüpunkt Datenbank->Modell->Auffrischen starten. Die Maske mit der Auswahl der Protokollierungsoptionen fällt hier weg, es werden die festgestellten Unterschiede nur auf dem Bildschirm angezeigt und das Datenmodell nach der Abfrage aktualisiert.
Mit dem einfachen Einblick in das Zusammenspiel von Visio 2000 mit MS-Access bei der Datenmodellierung sind die Möglichkeiten des Programms bei Weitem nicht ausgeschöpft. Weitere Einsatzgebiete, wie z.B. Darstellung der Arbeitsabläufe und Dokumentation der Benutzeroberfläche sind sicher nicht weniger interessant.