Erstellen und Umstellen von relationalen Datenbanken

Werbung
Erstellen und Umstellen
von relationalen Datenbanken
auf MS Access
- Möglichkeiten und Grundsätze -
Studienarbeit im Rahmen des
ersten Praktischen Studiensemesters
im Fachbereich Wirtschaftsinformatik
an der Fachhochschule Furtwangen
vorgelegt von
Markus Frommherz
Beim Widmen 22
D-79736 Rickenbach
Referent: Prof. Schreier
eingereicht am 31.08.95
1 Zusammenfassung
Ziel der Studienarbeit war die Untersuchung der Grundsätze beim Erstellen und Umstellen
relationaler Datenbanken und der Möglichkeiten, die MS Access hierfür bietet. Aufgrund seiner
Bedienungsfreundlichkeit eignet sich diese datenbankorientierte Entwicklungsumgebung vornehmlich
zur Erstellung und Umstellung von Datenbanken im Privatbereich oder für Einzelplatz- und kleine
Systemlösungen. Wegen der unzureichenden Unterstützung von Datenbankmanagementfunktionen
sowie der schlechten Performance eignet sie sich nicht für für den professionellen Einsatz in grösseren
Systemen. 1 Die Besonderheit bei der Entwicklung relationalen Datenbanken gegenüber der
Entwicklung anderer Software besteht darin, dass sich durch Normalisierung eine optimale
Datenstruktur erreichen lässt, die für weitere Design- und Implementierungphasen wertvoll ist.
Ansonsten gleicht das Vorgehen bei der allgemeinen Softwareentwicklung dem der
Datenbankentwicklung. Beim Umstellen relationaler Datenbanken unterscheidet man zwischen
revolutionärem und evolutionärem Verfahren, wobei bezüglich der Umstellung auf MS Access auch
andere Verfahren sinnvoll sind.
1
Dies entspricht einer Aussage von Bill Gates, Geschäftsführer von Microsoft: „If you can not make it good, make
it look good“.
2 Inhaltsverzeichnis
1 ZUSAMMENFASSUNG......................................................................................................2
2 INHALTSVERZEICHNIS ....................................................................................................3
3 EINFÜHRUNG......................................................................................................................4
4 IST-ANALYSE VON MS ACCESS....................................................................................5
4.1 Möglichkeiten und Grenzen ........................................................................................................................................ 5
4.2 Vergleich......................................................................................................................................................................... 7
4.3 Technische Beschreibung..........................................................................................................................................11
5 ERSTELLEN RELATIONALER DATENBANKEN .....................................................13
5.1 Grundsätze bei Softwareprojekten ...........................................................................................................................13
5.2 Entwicklungsvorgehensmodell..................................................................................................................................13
5.3 Erstellen von Datenbanken.........................................................................................................................................17
5.4 Vorgehen beim Erstellen mit MS Access................................................................................................................21
6 UMSTELLEN VON DATENBANKEN............................................................................25
6.1 Gefahren und Besonderheiten...................................................................................................................................25
6.2 Entwicklungsvorgehensmodell - Varianten............................................................................................................26
6.3 Vorgehen bei MS Access............................................................................................................................................26
7 FALLBEISPIEL ..................................................................................................................28
8 LITERATURVERZEICHNIS.............................................................................................33
3 Einführung
Diese Studienarbeit beschreibt das formal richtige Vorgehen beim Erstellen und Umstellen von
Software - insbesondere relationaler Datenbanken - im allgemeinen und Besonderheiten beim Erstellen
und Umstellen relationaler Datenbanken mit der datenbankorientierten Entwicklungsumgebung MS
Access im speziellen. Hierbei wird durch eine IST-Analyse von MS Access verstärkt auf dessen
Möglichkeiten und Grenzen eingegangen. Weiterhin werden Grundsätze bei Softwareprojekten und
beim Datenbankdesign genannt. Zuletzt wird durch ein Fallbeispiel das der eigenen Entwicklung einer
Datenbank zugrundeliegt die Umsetzung der zuvor beschriebenen Methoden dargestellt.
4 IST-Analyse von MS Access
4.1 Möglichkeiten und Grenzen
MS Access ist eine zum Frontend-Einsatz geeignete datenbankorientierte
Entwicklungsumgebung für Einzelplatz- und kleine Systemlösungen. Sie wurde für das auf IBMkompatible Mikrorechner ausgelegte Betriebssystem MS Windows entwickelt. MS Access von der
Microsoft Corp. liegt in der aktuellen Version 2.0 vor und ist in das Office-Packet MS Office
(Professional Version), das in der aktuellen Version 4.3 vorliegt, integriert.1 Eine umfangreich
überarbeitete Version MS-Access 7.0 wurde von Microsoft für das Office-Packet für Windows 95
angekündigt. Alle MS Office-Produkte sollen dann die einheitliche Versionsnummer 7.0 bekommen
(Excel, Powerpoint,...).2 Im folgenden wird die aktuelle Version MS Access 2.0 betrachtet. Vom
Produkt MS Office gibt es eine Reihe von Varianten und Updates. Die Hauptversionen sind die
Standardversion mit Winword, Excel, Powerpoint, Money und Visio Express und die die
Professionalversion mit MS Access als Zusatz. Vergleichbare Datenbanksysteme sind z.B. Approach
3.0 für Lotus SmartSuite und Paradox 5.0 für Perfect Office Professional.
MS Access als Frontend-Tool
Durch die Unterstützung vieler Datenbankformate und die guten grafischen
Auswertungsmöglichkeiten sowie die Integration in ein Office-Packet eignet sich Access gut als
Frontend-Tool in einer heterogenen Datenbankumgebung. Es unterstützt Import, Export und Einbindung
von dBase (III und IV), Paradox (3.x und 4.x), FoxPro (2.0 und 2.5), SQL (benötigt jeweiligen ODBCTreiber), Import und Export von Btrieve (benötigt DLL WBTRCALL.DLL von Novell) und eine Reihe
weiterer Formate. Durch das im Lieferumfang des MS Office enthaltene MS Graph und
Exportmöglichkeiten nach MS Excel lassen sich die Daten vielfältig darstellen und gut auswerten.
Das Mehrbenutzersystem
Aufgrund der schlechten Mehrbenutzerverwaltung und der bei zunehmender Benutzerzahl stark
steigenden Performanceprobleme eignet sich eine MS Access Datenbank für eine Umgebung mit
maximal ca. 20 Arbeitsplatzrechnern (10 MB RAM empfehlenswert) und eine minimale Anzahl von
Datensätzen (ca. <50.000).3 Zudem sind schon bei Systemen mit weniger Arbeitsplatzrechnern
umfangreichere Ergänzungen des integrierten Mehrbenutzersystems notwendig, um die notwendigen
Datenbankmanagementfunktionen zu erhalten. Einige Datenbankmanagementfunktionen wie ein
aktives Data Dictionary und Zugriffsrechte auf Felder statt nur auf Objekte lassen sich allerdings als
Zusatzentwicklung schwer oder gar nicht realisieren. Den modernen Anforderungen an die
Datensicherheit - Kennwörter sollten geheim gehalten, periodisch geändert und nicht schriftlich
festgehalten werden. Sie sollten bei der Eingabe nicht auf dem Bildschirm erscheinen und vom
Benutzer selbst ausgewählt werden, damit dieser sie nicht vergißt. (Gillenson, 457) - genügt MS
Access nur ungenügend. So unterstützt es im Gegensatz zu anderen Systemen keine zwangsweise
periodische Änderung des Kennworts und keine Recoverymöglichkeit für die Benutzerkonten beim
Verlust der SYSTEM.MDA. Dies und der Umstand, dass sogar die wenigen integrierten
Mehrbenutzer-verwaltungsfunktionen nicht einmal zuverlässig funktionieren, machen MS Access für
den professionellen Einsatz im grösseren Rahmen unbrauchbar. So lassen sich zum Beispiel die von
1
Die Standardversion ist 4.2 - es gibt auch Packete, wo Access der Standardversion hinzugefügt wurde.
Gemäss Babo, Michael von. „32-Bit-Verlockungen“. Windows Guide Schweiz Special 2b: 31.
3
Siehe auch Abschnitt 4.3.3 Hardware-Voraussetzungen (S. 12)
2
4. IST-Analyse von MS Access
6
Microsoft vorgegebenen Benutzerkonten auf einfachste Weise manipulieren und es gibt ebenfalls keine
Möglichkeit, die Benutzerkonten vor Löschung zu schützen, wenn man den Benutzern das erforderliche
Recht, selbst ihr Kennwort festzulegen und zu ändern, nicht nehmen will. Gemäss Martin (250)
beinhaltet die Datenbank-Sicherheit ‘Sieben wesentliche Elemente’. Im folgenden werden diese und
deren Unterstützung durch MS Access genannt:
Eine Datenbank sollte:
- geschützt sein - die MS Access Metadatenbankdatei SYTEM.MDA lässt sich durch jeden
Benutzer löschen bzw. überschreiben - ebenso jede andere bearbeitbare Datenbank, da das
MS Access zugrundeliegende Betriebssystem MS DOS nur Sperrungen auf Dateiebene
unterstützt und sich bearbeitbare Dateien auch komplett überschreiben, also prinzipiell
löschen lassen.
- rekonstruierbar sein - MS Access besitzt kein Backup- und Recoverysystem.
- überprüfbar sein - MS Access besitzt weder ein Logbuch noch ein Data Dictionary.
- einbruchsicher sein - die von MS Access vorgegebenen Benutzerkonten la ssen sich sehr
leicht manipulieren, allerdings lässt sich die Datenbank verschlüsseln.
Ihre Benutzer sollten:
- Identifizierbar sein - ohne Logbuch lässt sich nicht ermitteln, wer wann welche Daten
verändert hat. Durch das Hinzufügen eines eigenen Logbuchs ist allerdings die
Identifizierbarkeit relativ gut gewährleistet.
Ihre Benutzer sollten zu bestimmten Aktionen:
- Berechtigt sein - MS Access unterstützt Zugriffsrechte auf Objekt-, nicht jedoch auf
Feldebene. Der Schutz der Feldinhalte vor den Datenbankentwicklern ist nicht möglich.
- Überwacht werden - es gilt das selbe wie für die Identifizierbarkeit.
Upsizing Möglichkeiten
MS Access kann als Übergangslösung zum Upsizing von ‘PC-Datenbanken’ auf einen
gemeinsamen Server sehr gute Dienste leisten - es im- und exportiert eine Vielzahl unterschiedlicher
Datenbankformate und die Access-Datenbanken lassen sich mit Hilfe eines Upsizing-Kits relativ leicht
auf einen SQL-Server übertragen. Mittlerweile bietet sich dazu auch Windows NT auch als High-EndDatenbankserver an. Die Nutzung von SMP (Symmetrisches Multiprocessing Mehrprozessorenrechner) durch Windows NT bringt zwar schon mehr Performance, Server Cluster
haben aber einen nahezu linearen Leistungszuwachs und sind deshalb ausbaufähig. Wenn diese
Technologie auch im PC-Serverbereich Verbreitung findet, sind enorme Leistungs- und in Verbindung
mit preiswerter PC-Standardhardware auch Einsprungpotentiale zu erwarten (Schmitt, 160). Der
Access Upsizing Kit ist ein Assistent für den Umstieg auf einen Microsoft SQL-Server. Da ein
professionelles System wie ein SQL-Server bezüglich der Bedienungsfreundlichkeit und der
Komplexität viel anspruchsvoller ist als eine für Endanwender entwickelte Datenbank wie MS Access,
kann der Upsizing Kit nur eine Arbeitserleichterung sein. Gladis schreibt: Dabei wird zwar viel Arbeit
gespart, trotzdem sind anschliessend aufwendige Umstellungen der Access-Anwendung erforderlich,
um die nötige Geschwindigkeit zu erreichen (64).
Professionelle Produkte auf MS Access Basis mit dem Developers Toolkit erstellen
Mit dem Access Developers Toolkit können auf vergleichsweise einfache Art Datenbanken zu
unabhängig von Access lauffähigen Anwendungsprogrammen gemacht werden (Matthey, 25). Die
erzeugten Anwendungen können (ohne Assistent-Funktionen) ohne weitere Kopierrechts-
4. IST-Analyse von MS Access
7
beschränkungen beliebig vervielfältigt und benutzt werden, was ein im Verhältnis zu vergleichbaren
Datenbanken relativ preisgünstiges Angebot ist. Der Access Developers Toolkit besitzt eine integrierte
Unterstützung zur Erstellung von Installationsdisketten mit eigenen Seriennummern und einen
Hypertext-Hilfesystem-Compiler. Der Ressourcenbedarf der erzeugten Anwendungen ist i.d.R.
identisch mit dem Ressourcenbedarf der entsprechenden Datenbanken in MS Access. Auch die
Performance ist zum grössten Teil identisch.
Aus den Vor- und Nachteilen von MS Access ergeben sich dessen Einsatzmöglichkeiten. Für
den Einsatz im Pivatbereich und Kleinbetrieben ergeben sich eine Reihe von Vorteilen. So ist MS
Access leicht erlernbar, preiswert, in ein Office-Packet integriert und auf einer für Kleinbetriebe und
den Privatbereich extrem verbreiteten Plattform lauffähig (auch Nutzung von OLE 2.0 möglich).
In Zweigstellen kommt als Vorteil die Unterstützung vieler Fremdformate bei der Verbindung zu
anderen Niederlassungen hinzu. In Arbeitsgruppen lässt sich MS Access als Programmteil des
Arbeitsplatzrechners in Client-Server-Anwendungen und für Arbeitsgruppeninterne Datenbanken
einsetzen. Für Softwareentwickler, die bereits mit Microsoft Visual Basic arbeiten, ergibt sich eine
leichtere Einarbeitung. Als Komplettsystem lässt sich MS Access somit in kleineren Betriebe und als
Frontend-Anwendung in grösseren Unternehmen zum Beispiel mit einem Microsoft SQL Server
zusammen einsetzen. In Grossunternehmen kann MS Access wegen der grafischen
Auswertungsmöglichkeiten und Unterstützung zahlreicher Fremdformate als Frontend-Tool für die
Unterstützung von Managementinformationssystemen (MIS) Verwendung finden.
4.2 Vergleich
4.2.1 Funktionsumfang
Ein Vergleich des Funktionsumfangs von Access mit anderen DBMS ergibt folgendes: 1
Access besitzt eine Mehrbenutzerverwaltung in Bezug auf Autorisierungskontrolle und
eingeschränkt in Bezug auf Konfliktregelungen, eine Meta-Datenbank (SYSTEM.MDA), einen QBEAssistenten, eine DDL (Access SQL), Einbindung fremder DB-Objekte mittels ODBC, bedingte
Referenzielle Integrität, Import-/Exportmöglichkeiten für viele Formate, einen
Datenbankreparaturmechanismus, ein QMF, ein ADF, einen gemeinsamen Bereich für mehrere
Tabellen, eine dynamische Erweiterung der physischen Bereiche, eine sortierte Ablage von Zeilen
unterschiedlicher Tabellen (Strukturabbildung), serielles Durchsuchen, den wahlfreien und seriellen
Zugriff über einen Index, die Index-Schnittmengentechnik, NULL-Indikatoren, eine feste Feldanzahl
(pro Tabelle), eine feste Feldlänge (ausser OLE-Objekte), eine integrierte Programmiersprache
(Access BASIC), einen Parser, einen Precompiler, einen Update-Prozessor, einen Abfrage-Optimierer
(Rushmore) für High-Level-Optimierung und bedingt für Low-Level-Optimierung, einen RecoveryManager für Transaktions-Revisionen, einen Transaktions-Manager und einen DatenbankDokumentierer. Es unterstützt Netzwerk- und einfache Plexstrukturen und erlaubt Zyklen.
Access besitzt kein aktives und kein automatisch-passives Data Dictionary (DD), keine
Unterstützung verteilter Systeme, keine referenzielle Integrität zu eingebundenen Objekten, kein
Wartungs- und Recovery-System, kein Datenrestaurations- und -revisionssystem, keine separate
1
Verglichen mit dem Funktionsumfang in folgenden Quellen:
Gillenson, Mark L.. Datenbank-Konzepte - Datenbanken, Netzwerke, Expertensysteme.
Scherff, Dr. J.. DB-Design. Skript FH Furtwangen (Nr. 81; 3.3-7)
Vetter, Max. Aufbau betrieblicher Informationssysteme - mittels konzeptioneller Datenmodellierung.
Vossen, Gottfried. Datenmodelle, Datenbanksprachen und Datenbank-Management-Systeme.
4. IST-Analyse von MS Access
8
Ablage einzelner (Access-)Tabellen, keine Optimierungsinformationen, keine variable Feldanzahl (pro
Tabelle), keine variable Feldlänge (ausser OLE-Objekte), keinen Recovery-Manager für Hard- und
Softwarefehler, keinen Dictionary-Manager, keinen Data Manager für verteilte Systeme, keinen
integrierten Geräte- und Speichermanager, kein Logbuch, keine Trigger, keinen HypertextHilfecompiler, keine Möglichkeit, Zugriffsrechte so einzustellen, dass man zwar Tabellenentwürfe
bearbeiten, jedoch nicht die darin enthaltenen Daten lesen kann (z.B. wichtig für Personaldaten <->
EDV-Abteilung) und unterstützt keine komplexen Plexstrukturen. Access hat keine
Beschreibungssprache für physiche Daten und kein dokumentiertes bzw. veröffentlichtes
Datenbankformat.
Access kann folgende Bestandteile - z.B. durch eigene Funktionen - relativ leicht bekommen: ein
passives, halbautomatisches Data Dictionary, ein Wartungs- und Recovery-System, ein
Datenrestaurations- und -revisionssystem, ein Logbuch1 und einen DB-spezifischen HypertextHilfstextcompiler (ist beim Developers Toolkit dabei). Das Problem hinzugefügter DBMS-Bestandteile
besteht jedoch darin, dass sie naturgemäss nicht die gleiche Zuverlässigkeit wie integrierte Bestandteile
aufweisen - die Zuverlässigkeit jedoch gerade im administrativen DBMS-Bereich eine grosse Rolle
spielt (z.B. Backup/Recovery-System).
Standardbestandteile eines Datenbankmanagementsystems und deren Unterstützung in MS
Access:
DDL (Data Definition Language) :
Access benutzt als DDL Access SQL. Access unterstützt dabei Zugriffsrechte auf die DDL
auf Abfrage- bzw. View- und Modulbasis. Access SQL ist eine Erweiterung von StandardSQL. Abfragen lassen sich wahlweise mit Access SQL oder dem grafischen QBE erstellen.
Optimierer (für Anfragen):
Microsoft Access kann Ausdrücke in der Zeile "Kriterien" des QBE-Entwurfsbereichs oder in
der WHERE-Klausel einer SELECT-Anweisung (SQL) optimieren. Ist der Index absteigend
und liegt ein anderer Vergleichsoperator als Gleich (=) vor, kann die Abfrage nicht optimiert
werden. (Rushmore)-Abfragen funktionieren sowohl in Verbindung mit Microsoft AccessTabellen als auch in Verbindung mit Microsoft FoxPro und dBASE-Tabellen (.DBFDateien). Rushmore kann jedoch nicht in Verbindung mit ODBC-Datenquellen verwendet
werden, da Access diese Abfragen direkt an die ODBC-Datenquelle sendet, anstatt sie lokal
zu verarbeiten. Access unterstützt High-Level-Optimierung und bedingt Low-LevelOptimierung.
Beziehungsintegritätsspezifikationen (Referential Integrity Constraints):2
Ein Trend in der Datenbanktechnik der letzten Jahre war es, Trigger durch RI-Regeln zu
ersetzen. Access unterstützt die meisten davon:
ASSERT/Gewährleistung: zu jedem Fremdschlüssel existiert ein Primärschlüssel - dies wird
durch die Option ‘Referentielle Integrität’ von Access unterstützt.
Löschen eines Primärschlüsselwertes:
- CASCADES: Weitergabe an Löschung (wl) - alle Fremdschlüsselwerte ebenfalls löschen wird von Access durch Aktivierung der Option ‘Löschweitergabe an
1
Siehe Grothe, Roland. „Kleine Kniffe für den Notfall“. Tips&Tools Sonderheft von VTP Fürst 5: 18-22.
Vorgaben aus: Vetter, Max. Aufbau betrieblicher Informationssysteme - mittels konzeptioneller
Datenmodellierung: 167.
2
4. IST-Analyse von MS Access
9
Detaildatensatz’ unterstützt.
- RESTRICT.: Bedingte Löschung (bl) - Solange entsprechende Fremdschlüsselwerte
existieren, wird die Löschung nicht akzeptiert - unterstützt Access durch
Deaktivierung der Option ‘Löschweitergabe an Detaildatensatz’.
- NULLIFIES: Nullsetzung bei Löschung (nl) - Alle entsprechenden Fremdschlüsselwerte auf
Null setzen (Nullwerte müssen dort allerdings zugelassen sein) - wird von
Access nicht unterstützt
Modifizierung eines Primärschlüssels:
- CASCADES: Weitergabe der Modifikation (wm) - Entsprechende Fremdschlüsselwerte
werden ebenfalls modifiziert - wird in Access durch Aktivierung der Option
‘Aktualisierungsweitergabe an Detailfeld’ unterstützt.
- RESTRICT.: Bedingte Modifikation (bm) - Solange entsprechende Fremdschlüsselwerte
existieren, wird Aktualisierung nicht akzeptiert - unterstützt Access durch
Deaktivierung von ‘Aktualisierungsweitergabe an Detailfeld’.
- NULLIFIES: Nullsetzung bei Modifikation (nm) - alle entsprechenden Fremdschlüsselwerte auf Null setzen (Nullwerte müssen dort allerdings zugelassen
sein - wird von Access nicht unterstützt.
QBE- Query by Example:
Als erstes von IBM (für die relationale Abfragesprache SQL) angebotener Abfragegenerator. Im
Gegensatz zum ersten QBE-Bereich lässt sich der in Access weitestgehend grafisch (Drag&Drop)
bedienen und ist deshalb benutzerfreundlich. Auch das Umstellen auf die SQL-Ansicht und die
Bearbeitung der erzeugten SQL-Befehle ist möglich.
QMF - Query Management Facility:
Datenerfassungsprodukt für relationale Abfragen und zum generieren von Berichten. Access besitzt
eine Reihe von Formular- und Berichtsassistenten, mit denen man in kürzester Zeit alle gängigen
Formular- und Berichttypen erstellen lassen kann. Eine nachträgliche manuelle Anpassung, z.B. der
Feldgrössen ist jedoch in den meisten Fällen erforderlich.
ADF - Application Development Facility:
Anwendungsgenerator. Access bietet für die Befehlsschaltflächen in Formularen eine Reihe von
Assistenten, die alle gängigen Standardfunktionen wie z.B. Bericht drucken, Datensatz suchen,
Applikation beenden usw. als Access BASIC-Code generieren können.
DD - Data Dictionary:
Access besitzt lediglich einen Datenbank-Dokumentierer. Mit ein bisschen Mehraufwand (Makro) lässt
sich daraus ein passives Data Dictionary erstellen, dass durch eine Momentaufnahme der Datenbank
immer wieder aktualisiert werden muss (nur bedarfsgesteuert bzw. manuell möglich). Die meisten der
heutigen relationalen Datenbanken führen dagegen ihre Datenkataloge automatisch nach. Dies ist
neben der schlechten Mehrbenutzerverwaltung ein weiterer Umstand, der Access für den Einsatz in
grösseren Systemen disqualifiziert.
Als sinnvolle Erweiterungen der Access-Datenbankmanagementfunktionen haben sich gemäss
obengenannter Aufzählung im Laufe des Praxissemesters folgende Funktionen bewährt:
Logbuch:
Festhalten aller Eingaben und Änderungen der Datensätze, sodass jeder beliebige frühere
Zustand der Datenbank wieder hergestellt werden kann, damit Kontrollen und Auswertungen
4. IST-Analyse von MS Access
10
bezüglich der Benutzungshäufigkeit und -schwankungen gemacht werden können und
entsprechend Massnahmen (z.B. Zugriffsoptimierung) vorgenommen werden können.
Diese Funktion lässt sich leicht in MS Access realisieren.
Automatisches Wiedersetzen auf der zuletzt bearbeiteten Maske:
Ermöglicht schnellere Orientierung des Benutzers und eine kürzere Überbrückungsphase bis
zum Einsatz. Mögliche jedoch nicht realisierte Erweiterung: Aufsetzen auf dem zuletzt
bearbeiteten Datensatz. Diese Funktion lässt sich ausgehend von einem Logbuch mit wenig
Aufwand realisieren.
Passives halbautomatisches Data Dictionary:
Dient dem Aufspüren von Synonymen, Homonymen und Redundanzen.
Führt zu einer schnelleren Einarbeitungszeit bei Wartung/Änderung, und unterstützt eine
halbautomatische Dokumentation (z.B. aufgrund der Feldbeschreibungen in den Tabellen).
Abhängigkeitskontrolle - ob ein Objekt gelöscht werden kann oder ob es noch irgendwo benutzt
wird und bessere Testmöglichkeiten z.B. aufgrund von Objektlisten, anhand derer sich die
einzelnen Objekte sukzessive testen und anpassen lassen. Die Abhängigkeitskontrolle ist
notwendig, weil Access im Gegensatz zu einigen anderen DBMS erst zur Laufzeit meldet,
wenn
Objekte fehlen. Diese Funktion beruht bei der eigenen Lösung auf der durch den
Datenbankdokumentierer erzeugten Tabelle ‘Objektdefinitionen’.
Eine andere Möglichkeit - der direkte Zugriff auf die Systemtabellen - wurde ebenfalls erprobt,
jedoch für zu aufwendig und unzureichend empfunden. Die vom Datenbankdokumentierer
erstellten Ergebnisse stimmten jedoch nicht überall korrekt mit den Originaleinstellungen
überein. So wurde aus der Formulareinstellung ‘Nicht bearbeitbar’ in der Dokumentation
‘Bearbeitbar’ und umgekert - weshalb alle im Data Dictionary verwendeten Angaben auf ihre
Richtigkeit zu überprüfen sind. Solche Fehler sind - falls sie unerkannt bleiben - besonders
schwerwiegend, weil man nicht nur keine Information sondern eine glaubhafte Fehlinformation
daraus erhält, was die Fehlersuche z.B. bei der Wartung erschweren kann.
Wartungsdienst:
Statt dem direkten löschen von Datensätzen werden diese - wie bei anderen
Datenbanksystemen
zum Teil auch möglich - deaktiviert. Im Wartungsdienst lassen sich dann alle deaktivierten
Datensätze in eine Backupdatenbank exportieren und löschen. Weiterhin lassen sich
Datensätze
gruppenweise deaktivieren (z.B. Alle Aufträge <X DM, die schon länger als Y Monate erledigt
sind). Der Vorteil dieses Wartungsdienstes liegt in der grösseren Sicherheit gegenüber
Fehlbedienung, Hardwaredefekten u.ä... Die Realisierung gestaltet sich bei rechtzeitiger
Einplanung (z.B. wegen Aktiv/Inaktiv Feld in jeder Tabelle) einfach.
Verbesserungsvorschlägeformular:
Findet ein Benutzer einen Fehler oder hat ein Benutzer Anregungen zur fertiggestellten
Datenbank, so kann er diese in einem Verbesserungsformular niederlegen. Bei
Updates/Wartungen werden dann diese Verbesserungsvorschläge vom Entwickler bearbeitet
und - wo möglich bzw. oft genug genannt, dass sich der Aufwand rechtfertigen lässt realisiert.
Dabei hat jeder Benutzer seinen eigenen Verbesserungsvorschlagsdatensatz. Diese Funktion
lässt sich zusammen mit einem Logbuch leicht realisieren. Da sich noch keine meiner
dergestalt
ausgestatteten Datenbanken lange genug in der Anwendung befand, kann ich keine Aussage
über die Effizienz einer solchen Funktion machen - bei der Entwicklung nach dem Prototyping-
4. IST-Analyse von MS Access
11
Prinzip und bei der exakteren Spezifikation der Anforderungen erhoffe ich mir jedoch dadurch
einen spürbaren Rationalisierungseffekt.
4.2.2 Vor- und Nachteile
Aus dem Funktionsumfang und der Funktionsgüte von Access lassen sich die Vor- und
Nachteile im Verhältnis zu anderen relationalen Datenbanken begründen - hier die wichtigsten:
Vorteile sind das sehr gute Preis-Leistungs-Verhältnis - auch für eine Datenbank im PC-Low-CostBereich, die Bediendungsfreundlichkeit nicht nur der fertigen Datenbanken, sondern auch der
Entwicklerfunktionen, die Zugriffsmöglichkeiten auf viele Fremdformate mit Einbinden/Import/Export
und die komfortable Datenübernahme in andere gängige Büroanwendungen aufgrund der Integration in
ein Office-Softwarepacket. Die Nachteile sind die Langsamkeit und der Ressourcenbedarf im
Verältnis zu vergleichbaren Datenbanken, die schlechte unausgereifte Mehrbenutzerverwaltung, die
fehlende Unterstützung verteilter Systeme sowie das fehlende Recovery- und Backup-System. Leider
bietet Access nicht die Möglichkeit wie bei Großdatenbanken üblich, im voraus die Tabellengrößen
festzulegen und die jeweiligen Erweiterungsgrößen anzugeben. Dadurch würde sich die Notwendigkeit
zur regelmäßigen Komprimierung, bei der zudem kein Benutzer zeitgleich auf die entsprechende
Datenbank zugreifen darf, erübrigen.
4.3 Technische Beschreibung
4.3.1 Objekttypen
Objekttyp
Beschreibung1
(deutsch
/englisch)
Datenbank/ MS Access verwaltet alle Objekte einer (logischen)
Database
Datenbank in einer Datei (mit Suffix ‘.MDB’), der der
Objekttyp Database entspricht.
Tabelle
/Table
Abfrage
/Query
Formular/F
orm
Bericht
/Report
Steuerelement
/Control
Makro
/Macro
Modul
1
entspricht einer Datei zur Speicherung von Daten in
anderen Datenbanken.
entspricht einem View in anderen Datenbanken, mit
QBE-Funktion, auch: Abfragedefinition
entspricht Maske in anderen Datenbanken, beinhaltet
zusätzlich auch Befehlsschaltflächen und
Ereignisprozeduren und kann auch gedruckt werden.
zur grafischen Auswertung der Daten und zum drucken
(mit Seitenansicht) als Dokument.
Steuerelement eines Formulars oder Berichts (z.B.
Eingabefeld)
strukturierte Definition einer oder mehrerer Aktionen.
Kein Aufzeichnungsmodus möglich. Aktionsaufrufe in
deutsch. Kann Bedingungen enthalten. Wird auch zum
Erstellen von Pull-Down-Menüs verwendet.
Microsoft Access-Basic Funktion ähnlich Visual Basic,
Wichtigste Einschränkungen2
Maximal 255 Benutzer gleichzeitig.
Theoretischer Wert - aus
Performancegründen und aufgrund
schlechter Mehrbenutzerverwaltung
nur sinnvoll einsetzbar bis ca. 20
Benutzer.
Maximale Grösse eines OLEObjektfeldes: 128 MByte.
Maximale Anzahl von Tabellen in einer
Abfrage: 16.
Maximale Anzahl der Verschachtelungen: 3 (z.B. Formular-Unterformular-Unterformular).
Gesamthöhe: 508 cm. Gleicze Max. Anz.
Versch. wie Formular.
-
Maximale Anzahl Zeichen in einem
Aktionsargument: 255.
-
Entspricht Matthey U., Meiser U.. ACCESS 2.0 - Das DATA BECKER Handbuch, Einstieg, Praxis, Referenz: 26
mit Ergänzungen.
2
Ebenfalls Matthey U.: 515 - 518 mit Auswahl gemäss einem Vergleich mit den eigenen Datenbanken.
4. IST-Analyse von MS Access
/Module
Dynaset
Snapshot
12
entspricht z.B. NATURAL auf PREDICT/ADABAS.
Tabelle oder Abfrageergebnis (aktualisierbar)
Tabelle oder Abfrageergebnis (nicht aktualisierbar)
Maximale Grösse: 128 MB
-
4.3.2 Datenbanktechnik
Tabellen
(gespeicherte
Daten)
Aktion
Datenfluss
Abfragen
(Datenansicht)
Ausf.*
Auslöser
*Öffnen, Format,
Filter, Formulare,
Abfragen, Berichte
Auslöser
Makros
Auslöser
Auslöser
Formulare
Berichte
Ausf.
Module
Funktionen
Öffnen/Format Subprozeduren
Ausführen/
Aufrufen
Druck,Ans.,Format
Öffnen, Format, Filter,
Formulare, Abfr., Berichte
Definieren Formulare, Berichte,
Abfragen, Tabellen
Abbildung 1 - Datenbanktechnik von MS Access (Viescas, 47)
4.3.3 Hardware-Voraussetzungen
Die erforderliche Hardware hängt im wesentlichen von der Datenbankgrösse und von der
Anzahl der gleichzeitig an einer Datenbank bzw. an einer Tabelle arbeitenden Benutzer ab. 1
Einzelplatzsysteme erfordern mindestens einen PC 80386SX/DX mit 6 MB Festplattenspeicher für die
Mindest-, 23 MB für die Vollinstallation, eine Maus oder ähnliches, eine EGA- oder VGA-Grafikkarte
und einen Monitor sowie 6 MB Arbeitsspeicher (logisch), MS-DOS 3.1 und MS-Windows 3.1.
Empfohlen wird ein PC 80486 mit 8 MB Arbeitsspeicher (physisch). Bei kleinen
Mehrbenutzersystemen ist ein PC 80486 mit 10 MB Arbeitsspeicher (physisch), bei etwas grösseren
12 MB Arbeitsspeicher (physisch) empfehlenswert. Bei den heute gebräuchlichen IBM-kompatiblen
PC liegt bezüglich des Einsatzes von MS Access der Performanceengpass in den meisten Fällen bei
unzureichendem Hauptspeicher.
1
Da die an einer Tabelle gleichzeitig arbeitenden Benutzer von vielen Faktoren abhängen (Anwendungsgebiet,
DB-Struktur usw.), können nur sehr grobe Angaben zur Anzahl der Arbeitsplatzrechner gemacht werden.
5 Erstellen relationaler Datenbanken
5.1 Grundsätze bei Softwareprojekten
In einigen Installationen werden heute 80% und mehr des Entwicklungsetats für Wartung und
Veränderung bestehender Programme und Daten gebraucht; höchstens 20% werden für die
Entwicklung neuer Verfahren eingesetzt. Dieses Verhältnis ist der Evolution der Datenverarbeitung
innerhalb einer Organisation extrem hinderlich. Entsprechend dieser Aussagen von Martin (47) ist es
heute wichtig, wartungsfreundliche Software, die gut designed und dokumentiert ist, zu erstellen. Aus
dieser Sicht ist Software durchaus mit einem physischen Produkt vergleichbar - gutes Design wirkt sich
auf die Qualität aus und die Konstruktion eines Produktes steht im Vordergrund. Um aber die Effizienz
des Designs messen und Design-Werkzeuge (z.B. Computer Aided Software Engineering (CASE)Tools) bewerten zu können, müssen bei der Softwareentwicklung - vergleichbar mit dem auf dem
Rechnungswesen basierenden Controling - Daten gesammelt werden (z.B. Zeitgerüste). Dies
bestätigen Aussagen, die auf langjährigen Erfahrungen von Softwareprojekteleitern wie Pressman wie
„the sooner you begin ‘writing code,’ the longer it’ll take you to get done“ (22) und „Poor up-front
definition is the major cause of failed software efforts“ (21) beruhen. Die Qualitätsziele und die damit
verbundenen Messzahlen können sich (jedoch) für jedes Entwicklungsvorhaben ändern - sind also
projektspezifisch festzulegen. Diese Aussage von Prof. Illik 1 ergibt sich dadurch, dass bei einem
Softwareprojekt viele unterschiedliche Anforderungen und Bedingungen wie Terminplanung,
Ressourcenplanung, Versionsproblematik, wechselnde Auftraggeberwünsche, Budget, Gesetze und
Einflüsse von Gutachtern gleichzeitig auftreten. Eine grosse Rolle bei der Gewichtung dieser Faktoren
spielt dabei, ob eine Software als Produkt für einen anonymen Massenmarkt oder als
Projektabwicklung für einen spezifischen Kunden entwickelt wird. Während ersteres hohe
Anforderungen an das Dialogdesign, die Fehlertoleranz und das Marketing stellt erfordert letzteres die
genaue Analyse des organisatorischen Umfeldes und die Entwicklung eines Wartungssystems.
Bedeutende Qualitätsmerkmale für Software sind Korrektheit (zum Beispiel gemessen in Fehlern pro
Kilo Lines Of Code (KLOC)), Wartbarkeit (zum Beispiel gemessen in Mean Time To Change
(MTTC)), Integrität und Benutzerfreundlichkeit.
Für effizientes Softwareengineering werden zunehmend CASE-Tools eingesetzt. Sie
unterstützen die Geschäftsprozessplanung (Analysephase), das Projektmanagement, die
Kundenbetreuung, diverse Analyse und Designbereiche (z.B. Critical Path Method, CPM und
Programmablaufdesign), Programmierung, Integration und Test, Prototyping, Wartung und
Gruppenarbeit. Während andere Disziplinen (z.B. Maschinenbau mit Computer Aided Design (CAD)
und Elektrotechnik mit Electronic System Design Automation (ESDA)) schon länger rechnergestütztes
Design machen, ist entsprechende Nutzung bei der Softwareentwicklung relativ neu. Durch immer
leistungsfähigere Hardware wird diesem Bereich jedoch in Zukunft eine grosse Bedeutung zukommen.
5.2 Entwicklungsvorgehensmodell
Es gibt einige verschiedene Entwicklungsvorgehensmodelle bei der Softwareentwicklung von
denen jedes spezifische Vor- und Nachteile besitzt. Die bekanntesten sind das Vorgehensmodell (auch
V-Modell), das Wasserfallmodell (oder Life-Cycle Modell) das Prototyping, das Gestaltungsebenenmodell von Vetter und das Spiralenmodell. Durch das Wasserfallmodell, das den Abschluss
einer Projektphase vor Beginn einer neuen voraussetzt, lassen sich leicht Milestones setzen und
detailliertere Aussagen über Kosten- und Zeitrahmen des Projektes machen. Durch das Prototyping,
1
Entnommen aus Vorlesungsunterlagen zu „Methoden im Software-Projekt“ der FH Furtwangen von Anton Illik.
5. Erstellen relationaler Datenbanken
14
bei welchem die Benutzer einen aufgrund von einem ‘schnellen Design’ erstellten Prototypen
evaluieren (z.B. aufgrund Pflichtenheft erstellt), wird eher sichergestellt, dass das fertige
Softwareprodukt den gewünschten Anforderungen entspricht. Das von B. Böhm entwickelte
Spiralenmodell versucht, die Vorteile beider vorgenannten Modelle zu vereinen, indem es in den
zeitlichen Ablauf des Prototyping die Komponente ‘Risikoanalyse’ integriert. Das
Gestaltungsebenenmodell von Vetter mit vier Gestaltungsebenen für den Projektentwicklungsprozess
ähnelt dem Wasserfallmodell, unterscheidet jedoch zwischen statischen und dynamischen Aspekten
bzw. zwischen konzeptionellem Datenbank-Design und Prozess- und Dialogdesign. Das V-Modell
strukturiert das Projekt zeitlich und logisch durch die Definition und Beschreibung von Phasen,
Produkten und Tätigkeiten. Damit soll eine einheitliche und personenunabhängige Vorgehensweise aller
Beteiligten bewirkt werden (Illik). Unter Prototyping versteht man gemäss der Aussage von Vossen:
„Es sei bemerkt, dass ein Prototyping auch anders verstanden werden kann...“ (158) auch die
„Entwurfs-Verifikation“ als letzter Schritt des Entwurfsprozesses und entsprechende
Performancemessungen und -optimierungen. Die oben genannten Sichtweisen lassen - wie Pressman
in seinem Schaubild auf Seite 34 zeigt, auch kombinieren. Unabhängig vom gewählten Modell fallen
Systemanalyse, Projektplanung und Anforderungsanalyse, Softwaredesign, Implementierung und Test
sowie Korrektur, Adaption und Erweiterung immer an. Zu jeder Phase ist eine ensprechende
Dokumentation zu erstellen, sodass diese im folgenden nicht als separater Abschnitt erscheint.
Das klassische Phasenmodell als Beispiel für ein Vorgehensmodell (Finkenzeller, 4):
Abbildung 2 - Klassisches Phasenmodell
5.2.1 Analyse
Hauptbestandteile der Analyse für ein Softwareprojekt sind die Bedarfsanalyse,
Durchführbarkeitsstudien, die Wirtschaftlichkeits- und technische Analyse, die Aufwandsschätzung, die
Risikoanalyse und die Anforderungsspezifikation.
Als erster Analyseschritt setzen sich bei der Bedarfsanalyse Systementwickler und Anwender
und - soweit vom Anwender verschieden - Endanwender mit den Bedürfnissen und deren Prioritäten
auseinander. Bei der darauffolgenden Durchführbarkeitsstudie wird die wirtschaftliche
Durchführbarkeit (Kosten/Nutzen), die technische Durchführbarkeit (Funktionalität, Performance, ...),
5. Erstellen relationaler Datenbanken
15
die rechtliche Durchführbarkeit (Datenschutz u.ä.) und Alternativen ermittelt. Die
Wirtschaftlichkeitsanalyse oder Kosten-Nutzen-Analyse ist dabei die bedeutendste.
Um Aussagen über den geschätzen Aufwand bezüglich der benötigten Resourcen (Menschen,
Hardware, Software) machen zu können, bedarf es aussagekräftiger Daten von früheren Projekten.
Als Entscheidungshilfe können dabei zunehmend CASE-Tools dienen. Gemäss den unterschiedlichen
Anforderungen der einzelnen Entwicklungsphasen gibt es dabei unterschiedliche Tools, die auch
integriert als Datenbank angeboten werden.
Die Risikoanalyse teilt sich in die Risikoidentifikation (Technisches und wirtschaftliches Risiko
(z.B. Markt, Strategie, Marketing, Management, Budget)), die Risikoprojektion gemäss den
Wahrscheinlichkeiten aufgrund der Daten früherer Projekte und dem Risikomanagement auf.
Wesentlichen Einfluss auf das Risiko haben Zeitvorgaben. Offene oder grosszügig ausgelegte Termine
ermöglichen eine Optimierung der Ressourcennutzung, während Abweichungen von festgelegten
Terminen (z.B. Markteinführungszeitpunkt vorgegeben durch das Marketing) extrem hohe Kosten und
Risiken verursachen kann (z.B. kein Markt mehr für das Produkt, Konkurrenzprodukt etabliert o.ä.).
Ausgangspunkt für die weiteren Entwicklungsphasen ist eine mit einem Projektplan realisierte
Anforderungsspezifikation. Dieser beinhaltet im wesentlichen Schätzungen, Projektrisiken,
Aufgabenverteilung, Projektressourcen, Organisationsaufbau und Kontrollmechanismen und wird im
Laufe des Projektes ständig verfeinert und korrigiert. Bezogen auf die Analyse wird darin der ISTZustand, der SOLL-Zustand, Randbedingungen, der Aufgabenkatalog, Systemanforderungen, die
Schnittstellendefinition und der Systemtestentwurf festgehalten.
Die zur Analyse und Spezifikation benötigten Modelle müssen einige Anforderungen erfüllen. Sie
müssen unter anderem unabhängig von der Implementierung, tolerant gegenüber Unvollständigkeit und
Fehlern und lokalisiert und lose gekoppelt sein. Die verbreitetsten Modelle zur strukturierten Analyse
sind das Datenflussdiagramm, das Control Flow Modell (CFM), das Warnier Diagramm (auch Data
structured system development (DSSD)), die Jackson Methode (auch Jackson System Development
(JSD)) und die Structured Analysis and Design Technique (SADT).1
Martin unterscheidet auf Seite 23 zwischen ‘Zwangsgesteuert oder bedarfsgesteuert’ als
wesentliches Klassifizierungsmerkmal von Verarbeitungsabläufen und beschreibt auf Seite 66 die
‘Unterschiede zwischen Planungs- und ausführenden Systemen’. Dabei stellen bedarfsgesteuerte
Verarbeitungsabläufe und Informations- bzw. Planungssysteme ungleich höhere Anforderungen an die
Entwicklung als zwangsgesteuerte und ausführende. Obwohl es klassische Anwendungsbeispiele für
beide Varianten gibt (Wetterbericht zwangsgesteuert, Kontenauskunft operationell, Management
Informations System (MIS) bedarfsgesteuertes Informationssystem) ist doch aufgrund der
leistungsfähiger werdenden Hardware und steigenden Benutzeransprüche ein Trend zu
bedarfsgesteuerten Informationssystemen erkennbar. Entsprechend den Systemanforderungen dieser
Kategorie von Systemen ist eine aufwendigere Analyse und ein aufwendigeres Design der Datenflüsse
des Unternehmens notwendig.
Bevor ein Datenbankentwickler in die nächste Entwicklungsphase geht, benötigt er ausser der
sich aus der Analyse ergebenden Informationen das volle Verständnis und die Unterstützungszusage
der Geschäftsführung des Auftraggebers und eine grobe definitive Festlegung der Anforderungen (z.B.
Pflichtenheft). Wie die Auswertung eines Projektes an dem ich während des Praktikums beratend
beteiligt war ergab, verdoppelte sich der Umfang einer zu erstellenden Datenbank von der ‘Mitte’ bis
zum ‘Ende’ der Analysephase. Zwingt man den Auftraggeber nicht, sich grob festzulegen, dann kann
1
SADT ist ein Warenzeichen der Softech, Inc.
5. Erstellen relationaler Datenbanken
16
dies entweder dazu führen, dass die Anforderungen nicht erfüllt werden, oder der Datenbankentwickler
finanzielle Verluste aufgrund des unterschätzten Aufwandes bis hin zum Konkurs erleidet.
5.2.2 Design
Ziel des Designs ist die präzise und formale Spezifikation des Systems, welches mittels statischer
Zerlegungsstrukturen in kleinere Einheiten aufgeteilt wird. Hier werden erstmals auch Realisierungsentscheidungen (WIE) ausgehend von den Anforderungen (WAS) der Analyse getroffen. Dies führt zu
einer Verfeinerung und Präzisierung der Systemanforderungen. Anforderung, Spezifikation und
Konstruktion werden dabei oft mehrmals durchlaufen. Design ist die erste der drei technischen Phasen
‘Design’, ‘Implementierung’ und ‘Test’ und lässt sich unabhängig von der Designmethode in Daten-,
Struktur- und System- oder Architekturdesign unterteilen. Das grobe Systemdesign ist dabei dem
detaillierten Struktur- und Datendesign vorgelagert (Top-Down-Ansatz). Als Ausgangsbasis für das
Design dienen die System- und die Systemtestanforderungen aus der Analysephase. Das Systemdesign
spezifiziert dabei die Anforderungen an einzelne Module und ist somit Voraussetzung für das
Moduldesign. Die Spezifikation der Anforderungen an jedes Modul ist wiederum die Grundlage der
Programmierung (Modulimplementierung). Sie umfaßt in erster Linie eine präzise
Schnittstellenbeschreibung. Die Beschreibung der eigentlichen Leistung des Moduls sollte abstrakt sein,
da Realisierungsdetails erst bei der Modulimplementierung geklärt werden müssen und sich so aufgrund
des systemunabhängigen Designs bei späteren Änderungen leichter Re-Engineering durchführen lässt.
Für jedes Modul wird ebenfalls ein Modultest gemäss den Testanforderungen aus der
Aufgabendefinition entworfen.
Gemäss der Aussage von Pressman „Design, code and test absorb 75 percent or more of the
cost of software engineering (excluding maintenance). It is here that we make decisions that will
ultimately affect the success of software implementation and, as important, the ease whith which
software will be maintained.“ (316) ist die Güte des Designs entscheidend für die erfolgreiche
Softwareentwicklung. Design bedeutet Qualität insofern, dass sie hilft, gegebenen Anforderungen zu
entsprechen. Gutes Design sollte hierarchisch organisierte, modulare Modelle mit loser Kopplung der
einzelnen Module liefern.
Um ein gutes Design zu erhalten und gegenüber der direkten Implementierung einen Vorteil zu
erhalten, muss eine Designnotation eine Reihe von Vorteilen gegenüber der Implementierungsnotation
besitzen und Anforderungen erfüllen. Eine Designnotation sollte modulare Softwareentwicklung
unterstützen, einfache Notationselemente besitzen, leicht bearbeitbar, maschinenlesbar und wartbar
sein, nur strukturierte Konstrukte zulassen, logisch überprüfbar und implementierbar sein.
Bezüglich der Benutzer-Software-Schnittstelle liegen grafische Benutzeroberflächen im Trend.
Die ersten Schnittstellen waren zeilenorientierte Kommando- und Abfrageschnittstellen. Eine
Verbesserung der Bedienungsfreundlichkeit wurde durch einfache Auswahlmenüs erreicht. Da die
Hardware immer leistungsfähiger wurde und immer schlechter ausgebildete Benutzer mit Computern
umgehen mussten erwies sich der Desk-Top-Ansatz (Nachahmung einer Schreibtischoberfläche auf
dem Bildschirm) zusammen mit einer Window-orientierten mausgesteuerten Oberfläche als geeignetes
Umfeld für zukünftige Interfaces und ist heute in administrativen Unternehmensbereichen verbreitet.
Interfacedesign, Benutzerhilfen und Fehlerbehandlung sind frühzeitig zu planen - von ihnen hängt im
wesentlichen die Benutzerakzeptanz ab. Deshalb sollte das Interfacedesign vor der Implementierung
mit entsprechenden Interface-Prototypen durch die (potentiellen) Benutzer evaluiert werden. Dies ist
meistens ein iterativer Prozess, bei dem Interfaces erstellt werden, eine Benutzerumfrage gemacht und
ausgewertet und entsprechende Interfaceanpassungen vorgenommen werden.
5. Erstellen relationaler Datenbanken
17
5.2.3 Implementierung
Die Implementierung setzt die detaillierte Spezifikation der Anforderungen voraus. Bei ihr geht
es um Realisierungsentscheidungen der Modulkonstruktion. Um nachträgliche Anpassungen zu
ermöglichen und eine personenunabhängige Implementierung zu gewährleisten, sind das Einhalten und
Festhalten von Konventionen, Daten, verwendeten und nicht verwendeten Algorithmen sowie ein
kommentiertes Programmlisting notwendig. Da die Ausfallsicherheit des Gesamtsystems von der der
Module abhängt (Die Ausfallsicherheit eines Systems entspricht in etwa dem Produkt der
Ausfallsicherheit seiner Komponenten) ist zudem eine detaillierte Test-Konstruktion, die Protokollierung
der Testergebnisse und Fehlerbeseitigungen sowie Code Reading
(Durchsichtsprotokolle/Ergebnisse/Schlußfolgerungen) und Know-How-Archivierung der
Entwicklungsdaten notwendig.
Zur Implementierung von Interfaces gibt es Interface-Implementationstools (User Interface
Development Systems (UIDS)), die Funktionen wie Eingabegeräteverwaltung,
Benutzereingabenüberprüfung, Fehlerbehandlung und Fehlermeldungsanzeige und Benutzerhilfe
beinhalten. Diese Tools verringern bei gleichzeitiger Steigerung der Interface-Qualität den
Implementierungsaufwand beträchtlich. Da bei gutem Design die Implementierung zum grossen Teil
nur noch Übersetzungsarbeit von einer Darstellungsweise in eine andere bedeutet, erscheinen
zunehmend Werkzeuge auf dem Markt, mit denen sich anhand des Designs der Code bzw. die Struktur
des Codes automatisch erzeugen lässt. Das im Fach ‘Objektorientiertes Systemdesign’ Rahmen eines
Scheinnachweises von uns getestete ‘Together C++’ von ‘Objective International‘ erzeugt zum
Beispiel anhand des Objektorientierten Modells alles bis auf die Funktionen. Werden diese noch
integriert, so lässt sich der Code direkt übersetzen und das ausführbare Programm erstellen und
ausführen.
5.2.4 Integration
Bei grösseren Projekten werden viele Programmierer eingesetzt. Dabei sollte idealerweise ein
Programmierer je ein Modul bzw. eine Funktionseinheit implementieren. Das Zusammenfügen dieser
Module bezeichnet man als Integration. Dabei kann es mehrere Integrationsebenen geben. Die
Arbeitsschritte der Integration ähneln dabei denen der Implementierung: Erstellung von SubsystemTestentwürfen, Subsystem-Validation, Subsystem-Integration, Subsystem-Testdesign, Montage
("montiertes Subsystem"), Validation ("validiertes Subsystem") und Fehlerbeseitigung. Bei der
Integration werden lineare und baumartige Integration (BI) unterschieden, wobei auch Mischformen
praktiziert werden. Die BI spielt vor allem dann eine Rolle, wenn die Integrationseinheiten
selbstständige Komponenten sind.1
5.2.5 Test
Da die Kosten von einer Entwicklungsphase zur nächsten immens sind (z.B. ein Analysator, 10
Designer, 100 Implementierer, 1000 Tester) werden Tests in jeder technischen Phase der
Softwareentwicklung durchgeführt und bei schwerwiegenden Mängeln die getestete Phase und die
davorliegende wiederholt (Ansatz des V-Modells) oder es werden solange Prototypen erstellt und
getestet, bis das Produkt fertiggestellt ist (Prototyping). Bezüglich des fertiggestellten Produktes lassen
sich folgende Softwarequalitätsfaktoren unterscheiden: Funktionalität (Korrektheit, Sicherheit, Effizienz,
Integrität und Bedienungsfreundlichkeit), Anpassungsfähigkeit (Wartbarkeit, Flexibilität, Testbarkeit)
und Übertragbarkeit (Portabilität, Wiederverwertbarkeit und Interoperabilität).
1
Entnommen aus Vorlesungsunterlagen zu „Methoden im Software-Projekt“ der FH Furtwangen von Anton Illik.
5. Erstellen relationaler Datenbanken
18
5.3 Erstellen von Datenbanken
5.3.1 Einordnung
Eine Datenbank ist ein Element eines Systems, wie das Schaubild von Pressman (133)
veranschaulicht:
Procedures
Documents
Input
Hardware
System
Database
Output
Software
People
Abbildung 3 - System elements
Dabei wachsen die Bestandteile Datenbank und Software durch Embedded Functions
zunehmend zusammen. So besteht zum Beispiel in ORACLE eine Maske aus mehreren Oberflächen
nebst den dazugehörigen Funktionen (z.B. Eingabekontrollen). Auch in MS Access sind
Datenbankelemente und Software eng miteinander verbunden (z.B. durch Ereignisprozeduren, Module
und Gültigkeitsregeln). Gemäss eigener Erfahrungen sind Analyse und Design sowie Implementierung
und Test bei der Datenbankentwicklung iterativer Prozesse, die fliessend ineinander übergehen und
sich vermischen.
5.3.2 Analyse
Die Analyse bei der Datenbankentwicklung ist der der Softwareentwicklung sehr ähnlich. Auch
hier geht man vom groben ins Detail. Wichtiger Bestandteil der Analyse bei der Entwicklung von
Datenbanken ist die Einführung eines Data Dictionarys. Die Data Systems Working Party der British
Computer Society bezeichnet ein Data Dictionary als Werkzeug zur Verwaltung der Struktur und der
Verwendung von Daten (Vetter, 353). Ein Data Dictionary beinhaltet bezogen auf eine Datenbank die
Beziehungen zwischen den Datenobjekten und die Datenelemente. Es sollte idealerweise
unternehmensweit Gültigkeit besitzen um Datenaustausch und Anpassungen zu vereinfachen.
„Gemeinsame Datensätze an jedem Standort werden unsere Effektivität erhöhen, die Probleme einer
Fabrik interpretieren und ihr helfen zu können, das Personal vom einen Ort zum anderen zu versetzen,
Verantwortlichkeiten für Produkte zu übertragen, Produktinformationen auszutauschen, neue Fabriken
aufzubauen ... Dies wird von grosser Bedeutung für neues Personal sein ... Es wird für unser Personal
5. Erstellen relationaler Datenbanken
19
leichter, Informationen auszutauschen, wenn diese Informationen in der gleichen Weise interpretiert
werden ... Andere Bereiche der Kommunikation im Unternehmen werden sehr verbessert ...
Schnellere und genauere Kommunikation ... Schnellere Anpassung an sich ändernde
Umweltbedingungen ... Verbesserte Führung ... Verbesserte Leistung zu niedrigeren Kosten ...
werden das Ergebnis sein“ (Martin, 6). Gerade bei der Einführung der EDV in ein Unternehmen ist
diese Standardisierung enorm wichtig, weil sie dort - im Gegensatz zu einem Unternehmen mit bereits
bestehender EDV - noch ohne erheblichen Zeit- und Geldaufwand möglich ist.
Wichtige Unterschiede einer Datenbank zu einem anderen Softwareprodukt sind, dass der
Schwerpunkt der Entwicklung bei den Daten und deren Organisation und nicht bei den Funktionen liegt,
und dass andere Softwareprodukte bezüglich der Daten eine mehr oder weniger umfangreiche, jedoch
fest vorgegebene Ansammlung von Datenstrukturen besitzen. Mit dem von E.F. Codd entwickelten
relationalen Datenbankkonzept wird hingegen die Organisation und Speicherung der Daten unabhängig
von jeder bestimmten Anwendung realisiert. Entsprechend sind die Module aus der Analyse und die
Designbereiche Daten-, Architektur-, und Funktionsdesign unterschiedlich stark ausgeprägt. Bei der
datenorientierten Vorgehensweise stehen (demgegenüber) die Daten im Mittelpunkt der Betrachtung.
Idealerweise versucht man dabei, zunächst eine sehr grobe, unternehmensweite Datenstruktur zu
ermitteln (8). Entsprechend dieser Aussage von Vetter, der zwischen einer daten- und einer
funktionsorientierten Vorgehensweise unterscheidet, ist bei der Entwicklung auch ein detaillierteres
Phasenmodell sinnvoll, wie Finkenzellers Neues Phasenmodell (6) verdeutlicht:
Abbildung 4 - Neues Phasenmodell
Abbildung 4 - Neues Phasenmodell (Finkenzeller, 6)
Durch den Trend zu bedarfsgesteuerten Systemen, der sich bei Datenbanken in der Verbreitung
von Systemen mit Embedded Funktions wiederspiegelt, relativiert sich dieser Unterschied etwas.
Aufgrund der im folgenden genannten Vorteile ist es dennoch sinnvoll, bei Datenbanksystemen dieses
Modell zu verwenden.
Zur Ermittlung von Konstruktionselementen und von optimalen, voll normalisierten
Datenstrukturen eignen sich Realitätsbeobachtungen, die Analyse der im Rahmen einer Applikation zu
produzierenden Formulare und Bildschirmausgaben, die Analyse existierender Datenbestände und
Interviews. (Vetter, 237). Diese Verfahren lassen sich auch kombinieren. Ich glaube dass es z.B.
sinnvoll wäre, mit Interviews zur groben Ermittlung der gesamten Unternehmensstruktur zu beginnen,
und dann in diese die Ergebnisse aus den anderen Verfahren einzuordnen.
5. Erstellen relationaler Datenbanken
20
5.3.3 Design
Softwaredesign war früher hauptsächlich auf die Modularisierung und Hierarchisierung von
Programmen beschränkt. Prozedurale Aspekte führten dann zur Philosophie der Strukturierten
Programmierung. Später wurden Schwerpunkte auf den Datenfluss und die Datenstruktur gelegt. Die
neueste Sichtweise für das Design ist die objektorientierte. Da diese aber zum Erstellen relationaler
Datenbanken nicht geeignet ist (z.B. Verletzung des objektorientierten Prinzips, dass Daten und
zugehörige Funktionen gekapselt werden), beschränkt sich die Designbetrachtung bezüglich des
Datenbankdesign auf die Sicht auf Datenfluss und Datenstruktur. Die Normalisierung, bei der eine
optimale Datenstruktur erreicht wird, stellt hierbei ein adäquates Mittel dar, dass bei der Entwicklung
relationaler Datenbanksysteme fast immer benutzt werden sollte und auch benutzt wird.
Normalisierung führt zu Funktionaler Unabhängigkeit, welche die effektive Modularität des
Funktionsdesigns unterstützt. Deshalb ist es sinnvoll, das Datendesign mit Hilfe der Normalisierung
stets zeitlich vor dem Funktionsdesign zu machen. Dabei ist - unabhängig von der endgültigen Struktur zuerst ein semantisches ideales Datenmodell zu entwickeln und in das „Ziel“-Datenmodell zu
transformieren. So lässt sich ein möglichst redundanzfreies Modell entwerfen, dass - wo aus
Performancegründen notwendig - im nachhinein an das System, auf dem es realisiert werden soll,
angepasst werden kann. Der für uns wesentliche Aspekt dieser Vorgehensweise beim
Datenbankentwurf besteht darin, dass es dem Datenbank-Designer bei Verwendung des ER-Modells
möglich wird, sein „Wissen“ bzw. seine Erkenntnisse über die vorgegebene Anwendung zu
organisieren, ohne bereits auf spezielle Beschränkungen oder Charakteristika eines konkreten Modells
(wie z.B. die ausschliessliche Verwendbarkeit zweistelliger 1:n-Beziehungen im Netzwerk-Modell)
Rücksicht nehmen zu müssen (Vossen, 160). Die Aussage Vetters: Es empfiehlt sich,
Computerapplikationen vom Groben zum Detail (englisch: Top-down) zu entwickeln und zu realisieren
(16) - unterstützt diese Vorgehensweise.
Obwohl es je nach Anforderung Datenbanken mit unterschiedlichem Verhältnis vom Daten- zum
Funktionsumfang gibt, beeinflusst gemäss eigener Erfahrungen die Güte des Datendesigns zusätzlich
dieses Verhältnis: Je besser das Datendesign ist, desto höher wird der Daten- und desto geringer wird
der Funktionsumfang einer Datenbank bei gleichen Restbedingungen sein. Gutes Datendesign kann
also gutes Programmdesign, effektive Modularität und reduzierte Prozedurenkomplexität unterstützen.
Das Entity Relationship Modell (ERM) ist die wichtigste Designnotation für relationale
Datenbanken. 1 Da dies datenorientierte Softwareprodukte sind, spielen funktionsorientierte Notationen
wie der Programmablaufplan (PAP) und die Nassi-Shneiderman Notation eine eher geringe Rolle.
Ebenfalls ist das datenflussorientierte Design ist für Datenbanksysteme bestenfalls ein Teilbereich umfassendere Designarten dafür sind das datenorientierte Design, das Jackson Structured Design und
das Data Structured Systems Development (von Warnier). Die von Vossen verwendete in Abbildung 5
sichtbare Notationsvariante des ERM (49), bei der die Attribute in separaten Kreisen dargestellt wird,
nimmt zu viel Platz in Anspruch und führt schon bei etwas grösseren Modellen zum Verlust der
Übersichtlichkeit. Die von MS Access verwendete in Abbildung 6 sichtbare Notation, in der die zu
einer Tabelle gehörenden Felder in einem Block zusammengefasst sind und der Tabellenname auf dem
Kopf des Blocks steht ist deshalb meiner Meinung nach von Vorteil.
1
Es erfüllt die in Abschnitt 5.2.2 Design genannten Anforderungen durchweg gut.
5. Erstellen relationaler Datenbanken
21
Wenig zusätzliche Information führt zu grösserer Unübersichtlichkeit:
AUTOR
TITEL
VERLAG
INVNR
B
m
ELHN
RDAT
1
L
ADRESSE
LNR
NAME
Abbildung 5 - entnommen aus Vossen, 49
Verzicht auf zwei weniger bedeutende Informationen zugunsten von Übersichtlichkeit:
Abbildung 6 - 'ensprechende' Umsetzung im Access-Beziehungsfenster
5.4 Vorgehen beim Erstellen mit MS Access
MS Access unterstützt Fouth-Generation-Techniques relativ gut. Durch das grafisch darstellbare
ERM, den komfortablen QBE-Bereich sowie Funktionsgeneratoren für Standardfunktionen und direkte
grafische Darstellungsmöglichkeiten der Daten mittels MS Graph lässt sich Software auf einem
verhältnismässig hohen Niveau spezifizieren. Dieses Niveau sollte jedoch nicht dazu (ver-)führen, die
Analyse- und Designphase bei der Softwareentwicklung zu vernachlässigen. Da zu einer
kommerziellen Datenbank unter MS Access noch einige DBMS Funktionen hinzugefügt werden
müssen, empfiehlt es sich, auch auf Wiederverwertbarkeit der hinzugefügten Bestandteile zu achten,
zumal sich in Access BASIC-Code von sehr hohem Allgemeinheitsgrad schreiben lässt. Gemäss
eigener Erfahrungen hat sich der Einsatz einer Basisdatenbank, die alle allgemein nutzbaren Funktionen
und Objekte enthält, bei der Datenbankentwicklung bewährt. Sie hilft den Unterschied des
Funktionsumfangs von MS Access zu einer professionellen Datenbank zu verringern. Wichtige
5. Erstellen relationaler Datenbanken
22
Bestandteile einer Basisdatenbank für MS Access sollten ein Backup- und Recovery-System und ein
Logbuch sein.
MS Access eignet sich aufgrund der vielfältigen Auswertungs-, Darstellungs- und
Verarbeitungsmöglichkeiten sowie seiner Bedienungsfreundlichkeit gut zum Einsatz in
bedarfsgesteuersten Systemen. Seine schlechte Ausnutzung der Ressourcen und die damit
einhergehende schlechte Performance machen es für zwangsgesteuerte Aufgaben, bei denen oft
grosse Datenmengen verarbeitet werden müssen, ungeeignet. Da bedarfsgesteuerte Systeme grössere
Anforderungen an das Ablaufdesign stellen, sollte auch bei der Entwicklung mit MS Access ein
separates Ablaufdesign erstellt werden. Dabei hat es sich als effizient erwiesen, die Struktur des PullDown-Menüs und das Ablaufdesign einander anzugleichen: Ausgehend von einem Hauptmenü lassen
sich alle weiteren Menü- und Bearbeitungsformulare entsprechend ihrer Stellung und Hierarchieebene
im Pull-Down-Menü ansteuern. Dies erhöht die Benutzerfreundlichkeit, verringert den
Entwicklungsaufwand und erhöht die Qualität des Systems.
Das Vorgehensmodell in Abbildung 4 ist für das Erstellen von Datenbanken unter MS Access im
allgemeinen gut geeignet.1 Ergibt sich bei der Analyse keine klare Anforderungsspezifikation, so ist zu
prüfen, ob das Schalenmodell zur Entwicklung nicht besser geeignet ist.
Es gibt keine speziell auf MS Access zugeschnittenen CASE-Tools und auch keine integrierte
CASE-Lösung. Zur effizienten Datenbankentwicklung - auch auf einem Low-Level-System wie MS
Access - sind diese jedoch empfehlenswert. Durch die gute grafische Darstellung des ERM in MS
Access lässt sich dies auch gleichzeitig als Designtool für das Datendesign benutzen. Für das
Funktionsdesign, den Programmablaufplan, die Formularhierarchie und -inhalte müssen externe
Zusatzprogramme hinzugezogen werden. Für die Implementierungsphase stellt MS Access
leistungsfähige Mittel wie einen QBE-Bereich, Formular- und Ereignisprozedurassistenten und
Diagrammassistenten zur Verfügung. Für die anderen Phasen der Softwareentwicklung sind
ergänzende CASE-Tools sinnvoll. Dabei lassen sich auch oft allgemeine Programme für CASE
benutzen (z.B. MS Excel für Entscheidungstabellen und Auswertungen).
Entwickelt man eine MS Access Datenbank zum Einsatz in einer Arbeitsgruppe in einem
Unternehmen oder in einer Zweigstelle oder ähnlichem, dann werden in der Regel schon
Datenbanksysteme vorhanden sein. Ist ein unternehmensweites Data Dictionary definiert, so sollte man
sich auch bei der Entwicklung der MS Access Datenbank aufgrund der in Abschnitt 5.3.2 Analyse
genannten Vorteile daran halten. Sind die Felder nicht einheitlich definiert, so kann man sich am
grössten im Unternehmen eingesetzten Datenbanksystem oder an dem, dass die meisten Schnittstellen
zur zu erstellenden Datenbank hat orientieren. Bei Kleinbetrieben, in denen eine reine MS Access
Lösung zu erstellen ist, und bei obengenannten Einsatzmöglichkeiten, wo keine Vorgaben zu entnehmen
sind, sind vor Abschluss der Analysephase für alle Daten, die den geplanten Kern und die spontane
Hülle des Datenbanksystems betreffen, Definitionen zu erstellen.
5.4.1 Design
MS Access läuft auf der Window-orientierten Benutzeroberfläche MS Windows. Dies
ermöglicht eine sehr benutzerfreundliche Gestaltung, erfordert jedoch auch ein separates InterfaceDesign, welches Layouts und Interaktionen zwischen Benutzer und Software spezifiziert. Das
Interface ist die ‘Verpackung’ der Software - gute Nutzung des inneren wird erst durch gute
Interfaces möglich, was ein Vorteil von Access-Datenbanken gegenüber Datenbanken in Systemen mit
1
Die gleichen gegenüber den anderen Vorgehensmodellen in Unterkapitel 5.2 Entwicklungsvorgehensmodell
genannten Vor- und Nachteile gelten auch hier, haben aber eine Access-spezifische Gewichtung.
5. Erstellen relationaler Datenbanken
23
zeilenorientierten Masken ist. Der menschliche Faktor spielt beim Interfacedesign eine grosse Rolle:
Visuelle Wahrnehmung, Lesegewohnheiten, Verhalten des Benutzers und Wahrnehmungsattribute wie
Grösse, Schärfe, Farbe, Position und Bewegung müssen ebenso berücksichtigt werden wie die
Verweildauer von Informationen im Lang- und Kurzzeitgedächnis. Ausserdem müssen sich die
Interfaces den Benutzerkenntnissen und dem Benutzerverhalten anpassen, weshalb Kontext- und
Bereichsbezogene Interfaces allgemeingültigen vorzuziehen sind. Grafische Oberflächen liegen im
Trend. Dies bestätigt ein Projekt, bei dem ich in beratender Funktion beteiligt war und bei dem sich die
Beteiligten trotz der offensichtlichen Vorteile, die eine textorientierte Oberfläche aufgrund der
vorhandenen Systemumgebung und vorhandener Software bezüglich des Projekts gehabt hätte, für eine
Lösung mit einer grafischen Oberfläche entschieden haben. Grafische Benutzeroberflächen können
helfen, die Furcht mancher Benutzer vor der unbekannten Technik durch Humane Computer
Interfaces (HCI), die die Benutzerbedürfnisse berücksichtigen, zu verringern. Dies spricht auch für den
Einsatz von MS Access als Frontend-Tool in einer bestehenden Datenbankumgebung.
Probleme beim Interfacedesign mit MS Access entstehen hauptsächlich bezüglich der
Systemantwortzeiten. Kriterien für Systemantwortzeiten sind die durchschnittliche Antwortzeit und die
Varianz der Antwortzeiten. In einer Mehrbenutzerumgebung bekommen die Antwortzeiten bei MS
Access eine hohe Varianz und bei ‘grossen’ Datenbanken wird die durchschnittliche Antwortzeit stark
vergrössert, was nur bedingt durch leistungsfähigere Hardware auszugleichen ist.1 Die in MS Access
integrierten Interface-Implementationstools (auch Formularassistenten) sorgen dafür, dass sich
Interfaces nicht nur komfortabel bedienen, sondern auch komfortabel erstellen lassen.
Durch die Möglichkeit, in MS Access Kombinationsfelder und Unterformulare zu verwenden,
lässt sich das Formulardesign gut vom ERM ableiten. Als Beispiel sei hier eine Tabelle ‘Person’
angeführt, die mehrere ‘Adresse’(n) besitzen kann, wobei jede Adressse mehrere ‘Telefon’(e)
beinhalten kann:
Abbildung 7 - Beispiel ERM zum Formulardesign
Aus diesem ERM lassen sich folgende Formulare ableiten (auf die grafische Darstellung wurde
aus Platzmangel verzichtet):
- Personenliste sowie Adressenliste und Telefonliste mit Kombinationsfeldern zur Auswahl der
korrespondierenden Primärschlüssel aus der ensprechenden Haupttabelle,
- Person mit ihren Adressen, Person mit ihren Telefonen und Person mit ihren Adressen und
den
dazugehörigen Telefonnummern,
- Adresse mit ihren Telefonen und der Auswahl der ensprechenden Person über eine
Kombinationsschaltfläche.
1
Referenz: Jörg Sobottka, Netzwerkadministrator der SUD SOLEIL GmbH Freiburg, die MS Access in einem
System mit ca. 18 Benutzern einsetzt.
5. Erstellen relationaler Datenbanken
24
Wenngleich auch nicht alle abgeleiteten Formulare benötigt werden sollten, führt dies doch zu
einer bezogen auf die Möglichkeiten von MS Access nahezu vollständigen Liste von Formularvarianten,
anhand derer z.B. durch eine Auswahl durch die Benutzer eine exaktere Spezifikation der benötigten
Formulare möglich wird.
Die von Martin genannten Vorteile der Trennung von Eingabe (Verarbeitungssystem) und
Ausgabe (Informationssystem) (Abb. 6.2, 70): bessere Anwortzeiten und leichtere
Wartungsmöglichkeiten gelten auch für MS Access Datenbanksysteme. Da in Access in
regelmässigen Abständen Datenbanken ‘komprimiert’ werden müssen, und während dieses Vorgangs
kein Benutzer auf die Datenbank zugreifen darf, ist die Trennung von Verarbeitungs- und
Informationssystem eine Möglichkeit, die Wartung auch während der Benutzung vorzunehmen. Der
Geschwindigkeitsvorteil beim Nur-Lesen von Daten zum Bearbeiten von Daten ist bei MS Access
Datenbanken erheblich1, was ebenfalls für die Aufteilung in zwei Teilsysteme spricht.
5.4.2 Implementierung
Bezogen auf die Kopplungsgüte ist beste Kopplungsart für Funktionen die Parameterübergabe
(Stamp Coupling), gefolgt von der Flagübergabe (Control Coupling), dem gemeinsamen Zugriff auf
globale Daten (Common Coupling) und der Nutzung von Daten eines anderen Moduls durch ein Modul
(Content Coupling)§. Dies macht sich auch bei MS Access bemerkbar: bei der Umstellung einer mit
einer deutschen Version von MS Access erstellten Datenbank auf eine englische erwies sich, dass die
Parameterübergabe bei Funktionsaufrufen interner Funktionen funktionierte, die Flagübergabe jedoch
angepasst werden musste.
Eine wichtige Realisierungsentscheidung ist, ob eine Funktion als Access BASIC Modul oder als
Ereignisprozedur realisiert werden soll. Ist die Funktion formularspezifisch, so lässt sich eine bessere
Kapselung von Interface und Interface-Funktionalität erreichen. Lässt sich die Funktion allgemeingültig
definieren, so ist ein Access BASIC Modul wegen der Redundanzfreiheit gegenüber mehreren
Ereignisprozeduren vorzuziehen. Auf jeden Fall ist zu prüfen, welcher Kohäsion und welcher Kopplung
die jeweilige Funktion bezüglich des Formulars und der gesamten Datenbank unterliegt, bevor man
diese Realisierungsentscheidung trifft.
Zur Entwicklung grosser Datenbanksysteme werden Subschemas verwendet, die die Sicht eines
Anwendungsprogrammierers auf die von ihm benutzten Datenfeldtypen und Satztypen bezeichnen. In
MS Access sind diese nach meiner Einschätzung vermutlich nicht sinnvoll. Die mit MS Access
erstellbaren Datenbanksysteme sind klein genug, dass eine vertikale Arbeitsteilung bei der Entwicklung
(z.B. gemäss der Entwicklungsphasen) ausreichend ist, sodass eine Person ausreicht, um die
Implementierung vorzunehmen. Die Integrationsphase entfällt dadurch ebenfalls.
1
Referenz: Jörg Sobottka, Netzwerkadministrator der SUD SOLEIL GmbH Freiburg, die MS Access in einem
System mit ca. 18 Benutzern einsetzt.
6 Umstellen von Datenbanken
Das Umstellen von Datenbanken beinhaltet das zumindest teilweise Erstellen einer neuen
Datenbank und die Übernahme oder Anpassung der Daten und gleicht somit in grossen Teilen dem
Erstellen einer Datenbank. Deshalb wird in den folgenden Unterkapiteln lediglich auf die Unterschiede
zum Erstellen von Datenbanken eingegangen.
6.1 Gefahren und Besonderheiten
Datenbanken umstellen heisst Daten anders zu organisieren. Danach kann man auch das
Umstellen der nicht-rechnergestützten Datenorganisation eines Unternehmens auf eine Datenbank als
‘umstellen’ bezeichnen. Bei der Migration rechnergestützer Datenorganisationen spielt eine
wesentliche Rolle, in welcher Generation von Datenbanksystemen die Daten vorliegen. Laut Vossen
(14) lässt sich die bisherige „Entwicklungsgeschichte“ von Datenbanksystemen (lässt sich) - ähnlich
wie bei Rechnern - in fünf Generationen gliedern, ... . Die erste Generation lies lediglich sequentielle
Verarbeitungsformen zu. Die zweite ermöglichte Dialogbetrieb und Direct File Access. Die dritte
unterschied zwischen logischen und physischen Informationen und benutzte Datenmodelle zur logischen
Beschreibung physikalischer Strukturen. Die vierte Generation trennte klar zwischen logischem und
physischem Datenmodell - wie dies für das relationale Datenmodell zutrifft.
Beim Umstellen einer Datenbank lassen sich aufgrund vorhandener Daten (empirisches
Vorgehen) die Anforderungen genauer spezifizieren. Müssen Daten übernommen werden, so ist eine
Übergangslösung und zusätzlich Zugriffs- und Sicherheitsaspekte für das vorhandene System zu
berücksichtigen.
Gründe, die das Umstellen eines Datenbanksystems auf ein neues erforderlich machen, sind z.B.
gestiegene Benutzeranforderungen bezüglich Auswertungsmöglichkeiten, Reaktionszeit und
Bedienungsfreundlichkeit, unzureichende Sicherheit des alten Systems und zu hohe Wartungskosten.
Da eine solche Umstellung i.d.R. Auswirkungen auf das gesamte Unternehmen hat und entsprechend
kostenintensiv ist, sollte in der Analysephase genau geprüft werden, welche Alternativen sich ergeben
und ob das Kosten-Nutzen-Verhältnis für die Umstellung stimmt. Oft bietet sich bei kleinen
Änderungen die Anpassung des vorhandenen Systems und bei Performanceproblemen das Tuning des
Systems anstelle der eigentlichen Datenbank (z.B. die Erweiterung der Hardware, meistens des
Hauptspeichers) als günstigere Alternative an. Unter dem Paradigma, dass sich die
Gesamtperformance eines Systems verbessert, wenn oft benötigte Daten schneller zugänglich sind als
selten benötigte, lassen sich z.B. aufgrund der Auswertung von Logbucheinträgen
Zugriffsoptimierungen machen. Einige Datenbankmanagementsysteme machen dies automatisch.
Ob ein Unternehmen seine Felder standardisiert bzw. einheitlich definiert hat (z.B. mit einem
Data Dictionary) spielt beim Umstellen einer Datenbank eine entscheidende Rolle. Bei vorhandenen
Standards ergeben sich weniger Definitionsprobleme und Missverständnisse, weniger
Synchronisationsprobleme an den Schnittstellen zu anderen (vorhandenen) Systemen und geringere
Kosten für den EDV-Bereich des Unternehmens insgesamt. Falls eine Datenbank ohne standardisierte
Felder umgestellt werden soll, muss der Inhalt aller Felder zuvor eindeutig definiert werden. Falls eine
unterschiedliche Benutzung der Felder z. B. in einzelnen Abteilungen vorhanden ist, muss eine
Definition der Felder durch jede Abteilung separat vorgenommen und das Ergebnis unter den
Abteilungen abgeglichen werden. Unter solchen Voraussetzungen ist es aufwendig und schwierig, die
vorhandenen Daten in das neue System zu übernehmen. Als Bestätigung zur Wichtigkeit der
Feldstandardisierung sei ein Projekt genannt, bei dem ich während des Praktikums involviert war und
6. Umstellen von Datenbanken
26
dessen Inhalt es war, ein ‘Auftragslistenprogramm’, dass in mehreren Werken unabhängig voneinander
benutzt wurde, durch ein benutzerfreundlicheres, sichereres Datenbanksystem zu ersetzen. Obwohl
man sich früh darauf einigte, dass die vorhandenen Daten nicht übernommen werden müssten, war die
einheitliche Definition der Felder der neuen Datenbank aufgrund der gewohnten unterschiedlichen
Sichten auf diese durch die jeweiligen Benutzer in einem Werk aufwendig.
6.2 Entwicklungsvorgehensmodell - Varianten
Die Entwicklungsphasen beim Umstellen einer Datenbank unterscheiden sich nicht wesentlich
von denen beim Erstellen einer Datenbank. Dies stützt die Aussage von Vetter: Dazu ist zu sagen, dass
das in den vorangegangenen Kapiteln geschilderte Verfahren unbesehen auch für existierende
Datenbestände zur Anwendung gelangen kann. Das heisst, man wird in den bestehenden
Datenbeständen zunächst die - bislang vermutlich nur intuitiv berücksichtigten Konstruktionselemente ausfindig machen und für letztere ein voll normalisiertes Relationenmodell
definieren (271). Der kritische Bereich beim Umstellen liegt in der Übergangsphase: die vorhandene
Datenbank wird benutzt, das Unternehmen ist von ihr abhängig. In diesem Zusammenhang ist das
Umstellen eines vorhandenen Systems auf ein neues mit einem ‘Gewaltakt’, wie es immer noch in
manchen Unternehmen durchgeführt wird mit einer kriminellen Kurzschlusshandlung gleichzusetzen,
weil diese Art der Umstellung den Informationsfluss des gesamten Unternehmens lähmen kann. Durch
die zunehmende Abhängigkeit der Unternehmen vom Produktionsfaktor ‘Information’ kann dies leicht
zum Konkurs des Unternehmens führen. Deshalb nennt Vetter ‘Das evolutionäre Vorgehen’ (271)
und ‘Das revolutionäre Verfahren’ (272) als Möglichkeiten, Datenbanken umzustellen. Beim
evolutionären Vorgehen werden Analyse und Design durchgeführt und bei den laufenden Anpassungen
an neue Bedürfnisse das Design des neuen Systems als Leitbild für die entsprechenden
Strukturänderungen genommen. Mit diesem Verfahren kommen Verbesserungen erst nach längerer
Zeit zum Tragen und die Durchführung erfordert Disziplin, da sich die an Anpassungen Beteiligten
längere Zeit an eine Vorgabe halten müssen, deren Nutzen nicht direkt ersichtlich ist. Beim
revolutionären Verfahren werden bis zum Einsatz alle Entwicklungsphasen durchlaufen. Neue
Applikationen werden nach der Fertigstellung der neuen Datenbank gemäss dieser realisiert und beide
Systeme - neue und alte Datenbank - laufen solange parallel, bis alle erforderlichen Applikationen auch
auf dem neuen Datenbanksystem realisiert wurden. Dieses Verfahren bringt einen erhöhten
Arbeitsaufwand mit sich und kann zu Synchronisationsproblemen aufgrund der redundanten
Datenführung führen. Die Nachteile des einen Verfahrens sind dabei jeweils die Vorteile des anderen.
Ich halte auch eine Modifikation des evolutionären Vorgehens für sinnvoll, nach der man nicht nur
Anpassungen vornimmt wenn existierende Datenbestände an neue Bedürfnisse angepasst werden
müssen, sondern bereits wenn Ressourcen zur Anpassung frei sind.
6.3
Vorgehen bei MS Access
Aufgrund der geringen Grösse von MS Access Datenbanken hat sich gemäss eigenen
Erfahrungen das evolutionäre nicht und das revolutionäre Verfahren bedingt zum Umstellen als
geeignet erwiesen. Vielmehr hat sich gezeigt, dass oft die komplette Umstellung in einer kurzen Phase,
in der die Benutzer die Datenbank nicht benötigen, machbar und sinnvoll ist. Bei MS Access
Datenbanken müssen in regelmässigen Abständen ohnehin solche Unterbrüche stattfinden um die
Datenbank zu ‘komprimieren’, d.h. um freigewordene Pages in der Datenbankdatei auch wirklich
freizugeben. Bei der Umstellung entwickelt man nun unabhängig von der vorhandenen Datenbank eine
neue mit einer idealen Datenstruktur. Nachdem diese entwickelt und gut getestet wurde, wird die
automatische Übernahme der Daten der alten Datenbank in die neue z.B. mittels Access BASIC und
Abfragen vorbereitet. Ein Beispiel für eine solche Funktion ist ein Algorithmus, der aus einer
Mitarbeitertabelle, in der sich die Gebäude als redundante Datensätze befinden, die Gebäude
herausfiltert, Duplikate herausstreicht, einen Zählerschlüssel vor jedes Gebäude setzt anstelle der
6. Umstellen von Datenbanken
27
Gebäudeeinträge in der Mitarbeitertabelle den entsprechenden Fremdschlüssel einsetzt. Alle
Funktionen werden dabei genau dokumentiert. Wurden mittels automatischer Funktionen alle Daten der
alten Datenbank soweit möglich in die neue übernommen, so sucht man einen Zeitraum, in dem die
vorhandene Datenbank nicht benutzt wird und vereinbart einen Termin, ab dem die neue Datenbank in
Betrieb gehen soll. In diesem Zeitraum überträgt man nun den neuesten Stand der Datenbestände der
vorhandenen Datenbank mittels der zuvor erstellten Funktionen in die neue. Da die Funktionen bereits
erprobt und dokumentiert wurden, sollte dies ohne grössere Probleme und schnell machbar sein. Ab
diesem Zeitpunkt wird dann die neue MS Access Datenbank benutzt. Das revolutionäre Vorgehen
lässt sich mit einer Modifikation auch gut einsetzen: Der Nachteil dieses Vorgehens ist, dass es
aufgrund der doppelt geführten Datenbestände zu Synchronisationsproblemen kommen kann. Da MS
Access eine Reihe von Fremdformaten einbinden kann, bietet es sich an, die Tabellen der alten
Datenbank in MS Access lediglich einzubinden, sodass der Benutzer eine Zeitlang entweder die
vorhandene oder die neue Datenbank benutzen kann und auf die gleichen Daten zugreift. Vorteile
dieser Methode sind, dass sich der Benutzer allmählich an die neue Datenbank gewöhnen kann und
dass sich diese besser austesten lässt (z.B. durch Bug-Reporting der Benutzer). Allerdings eignet sich
dieses Vorgehen nur, wenn die neue Datenstruktur nicht wesentlich von der vorhandenen abweicht.
Ist das primäre Ziel einer Umstellung die Erhöhung der Benutzerfreundlichkeit bei gleicher
Funktionalität und genügt die vorhandene Datenstruktur den Anforderungen, dann ist in der Regel
letztgenanntes Vorgehen sinnvoll. Genügt die vorhandene Datenstruktur nicht den Anforderungen und
sind umfangreiche funktionale Änderungen oder Erweiterungen vorzunehmen, ist das erstgenannte
Verfahren vorteilhaft.
Vorsicht ist in Bezug auf die Machbarkeit der Umstellung gegeben. Vor der Umstellung ist
genau zu analysieren, ob die Anzahl der vorhandenen und neu zu erfassenden Datensätze und die
Anzahl der Benutzer für die Umstellung auf MS Access nicht zu gross ist. Ansonsten kann es in MS
Access relativ schnell passieren, dass man trotz guter Kenntnisse über die Datenbankoptimierung,
ODBC und die Jet-Engine keine ausreichende Performance erreicht.
7 Fallbeispiel
Zu entwickeln war eine Kursverwaltung für das Werk eines Unternehmens. Da die
Anforderungen am Anfang unklar waren, wurde ein kombiniertes Vorgehen gewählt, bei dem gemäss
dem Prototypingmodell Analyse und Design mehrmals durchlaufen wurden bis die Anforderungen
genau spezifiziert waren. Danach wurden die nächsten Phasen Implementierung und Test mit
Korrektur mehrmals hintereinander durchgeführt, wobei der Testanteil auf Kosten des
Implementierungsanteils stets stieg. Leider wurde zu spät bemerkt, dass sich die aufgewendete Zeit
durch ein Modell zur Wiederverwertung von Formularteilen bezüglich der Formularerstellung um ca.
52% reduzieren liesse bei gleichzeitiger Verbesserung der Qualität und geringerem Reengineering- und
Wartungsaufwand. Dennoch wurde für weitere Datenbanken zusätzlich dieses
Formulardesignablaufschema erstellt. Weiterhin wurde zu früh im Projektes ein funktionierender
Prototyp erstellt, was sich im nachhinein nicht als sinnvoll erwiesen hat und einen Mehraufwand von
zwei Stunden mit sich brachte.
Die Phasen beinhalteten dabei folgende Tätigkeiten (Zusammenfassung aus der Zeiterfassung):
Phase/Dauer
Analyse:
Gesamtzeit:
10 h 55 min.
Durchschnitt:
55 min.
Design:
Gesamtzeit:
25 h 39 min.
Durchschnitt:
77 min.
Implementierung:
Gesamtzeit:
16 h 42 min.
Durchschnitt:
67 min.
Test:
Gesamtzeit:
9 h 41 min.
Durchschnitt:
65 min.
Dokumentation:
Gesamtzeit:
3 h 30 min.
Durchschnitt:
70 min.
Tätigkeiten
Gespräch mit dem Auftraggeber über ERM, Formulare und deren Inhalte, mögliche
‘Listenausdrucke’, Formularlayouts. Auswertung der durch die Benutzer erstellten
Formularlayouts, Abklärung neuer Aspekte, Evaluierung von Tabellen- und
Felddefinitionen, ERM, PAP und Formularstruktur durch den Auftraggeber und den
Benutzer.
ERM mit MS Access erstellen, beschriften und zur Evaluierung ausdrucken, Prototypdatenbank erstellen mit Formular, -ausdrucken und -beschreibungen (nur ‘Tote Masken’).
PAP erstellen. Anpassungen an ERM, PAP und Formularlayouts (oft) und
Formulardesignablaufschema erstellen.
Erstellen und Anpassen von Tabellen gemäss ERM und von Abfragen gemäss Tabellen
und Druckformularen, Formulare an Abfragen anpassen, Menümakros gemäss PAP
erstellen. Überarbeitung der Formulare gemäss Formulardesignablaufschema, Korrektur
von Formularen nach Test (oft), Druckformulare erstellen, diverses.
Formulartests mit Testdatensätzen (oft), allgemeine funktionale Tests der Formulare, Test
der Druckformulare, Test der gesamten Datenbank (Zugriffsrechte u.ä.).
Hilfetext und Dokumentationstext erstellen. Dokumentation der Tabellen, -attribute,
Formulare, Abfragen und Menümakros nach der Designphase.
HINWEIS: Mittels dem Datenbankdokumentierer und eigener Add-Ons konnte etwa die
Hälfte der Dokumentation automatisch erstellt werden (z.B. Übernahme der
Feldbeschreibungen in den Tabellen). Zum Teil wurden lediglich die Ergebnisse der
Designphase archiviert (PAP, ERM, Formulardesignablaufschema u.ä.).
7. Fallbeispiel
29
Die Auswertung der Zeitaufwände für die einzelnen Phasen ergab folgendes Diagramm:
Abbildung 8 - Zeitaufwand pro Entwicklungsphase
Eine ‘Objektorientierte’ Zeiterfassung wäre sinnvoller gewesen, da sich dadurch der Aufwand
für weitere Projekte wesentlich exakter schätzen lässt (z.B. bei niedriger Streuung in einer Objektart
Durchschnittswerte, ansonsten mit Komplexitätsgraden o.ä.). Allerdings wäre dabei der
Zeiterfassungsaufwand ungleich höher gewesen. Für Zeitangaben über die Wartung und Anpassungen
ist die Datenbank zu kurze Zeit im Einsatz.
Ein Vergleich des Designs am Anfang und am Ende der Analyse/Designphase ergab bei den
Tabellen eine Steigerung von 5 auf 12, bei den Attributen von 35 auf 69 und bei den Formularen von 5
auf 98 (inklusive Druckformularen). Bei einer schlechten Analyse wären demnach ca. die Hälfte der
gewünschten Anforderungen nicht erfüllt worden.
Die genaue Definition der Attribute und Tabellen in der Analyse-/Designphase stellte sich als
wichtig heraus: Durch ein Missverständnis wäre eine wichtige Tabelle nicht berücksichtigt worden.
Weiterhin ergab sich die Möglichkeit, die so erstellten Definitionen und Beispiele für die Dokumentation
und die Benutzerhilfe zu verwerten.
Im folgenden erscheinen Ausschnitte aus den Ergebnissen der Designphase. Aus Platzmangel
wurde auf Beispiele der Implementierung und Dokumentation sowie die vollständige Darstellung der
Designergebnisse verzichtet. Die Reihenfolge der Darstellung entspricht der chronologischen
Reihenfolge der Erstellung. Als Hilfsmittel zur Erstellung wurden das ‘Beziehungen...’ Fenster von MS
Access, MS Paintbrush und Chartist von Novagraph verwendet.
7. Fallbeispiel
30
Das Entity Relationship Modell wurde direkt in MS Access erstellt, in Paintbrush übernommen,
beschriftet und als Bitmap abgespeichert. Die Definition der Attribute geschah durch die Auswertung
der Attributsbeschreibungen in den Tabellen über den Datenbankdokumentierer:
Abbildung 9 - ERM - Auszug
Der Programmablaufplan bzw. die Menüstruktur wurden mit dem Programm ‘Chartist’ von
‘Novagraph’ erstellt. Jeder Benutzer setzt die ersten X mal beim Start der Datenbank bei einem Intro
auf, und danach wahlweise beim Intro oder beim Hauptmenü. Wurden Daten bearbeitet, so setzt der
Benutzer auf dem Formular wieder auf, in dem er diese zuletzt bearbeitet hat. Die Pfeile bedeuten,
dass man mittels Befehlsschaltflächen zu diesen Formularen wechseln kann. Formulare sind rechteckig
dargestellt. Man kann jedes Formular entweder direkt über das Pull-Down-Menü, das den gleichen
Aufbau hat oder über indirekt über eine Befehlsschaltfläche erreichen.
Intro
START*
Hauptmenü
Spez
Mit
Geber
Ort
Gruppe
MitLis
Anb m.Leit
Ort m. Kur
Art
Mit m.
Teil+Bew
Typ
Abbildung 10 - PAP/Menüstruktur - Auszug
OrtLis
Anb
7. Fallbeispiel
31
Beim Formulardesign wurde die Formularbezeichnung unterstrichen und der Name in Klammern
dargestellt. Attributen, deren Wert durch eine Kombinationsschaltfläche gesetzt wird, geht ein
Doppelpunkt voran. Unterformulare sind durch einen Pfeil mit ihren Hauptformularen verknüpft, an
dem die beiden Verknüpfungsattribute stehen.
Art des Kurses
(KU-FO-SpezArt)
SpezArt#,:SpezGrup#,SpezArt,
SpezArtAkt
Kursgruppe
(KU-FO-SpezGrup)
SpezGrup#,
SpezGrup,
SpezGrupAkt
Art des Kurses
(KU-FO-SpezArt)
SpezArt#,:SpezGrup#,SpezArt,
SpezArtAkt
Kursgruppe mit Kursen
(KU-FO-SpezGrup0HKur)
KurGrup#,
KurGrup,
KurGrupAkt
SpezTyp#:SpezGrup#
Kursliste
(KU-FO-KurLis)
Kur#, :GebLeit#,
:Ort#,:SpezTyp#,
KurMinTeil,
KurMaxTeil,
KurVor, KurPreis,
KurBem, KurAkt
Kurse
(KU-FO-SpezGrup1UKur)
Kur#, :GebLeit#,
:Ort#,:SpezTyp#,
KurMinTeil,
KurMaxTeil,
KurVor, KurPreis,
KurBem, KurAkt
Abbildung 11 - Formulardesign - Auszug
Anbieter mit Leitern
(KU-FO-GebAnb0HLeit)
GebAnb#, GebAnb,
GebAnbOrt,
GebAnbTel,GebAnbAkt
GebAnb#:GebAnb#
Leiter
(KU-FO-GebAnb1ULeit)
GebLeit#,GebAnb#,
GebLeitNac,GebLeitVor,
GebLeitTel,GebLeitAkt
Kursart mit Kursen
(KU-FO-SpezArt0HKur)
SpezArt#,:SpezGrup#,SpezArt,
SpezArtAkt
Ort mit Kursen
(KU-FO-Ort0HKur)
Ort#,Ort,OrtAkt
Ort#:Ort#
Kurse
(KU-FO-Ort1UKur)
Kur#, :GebLeit#,
Ort#,:SpezTyp#,
KurMinTeil,
KurMaxTeil,
KurVor, KurPreis,
KurBem, KurAkt
Ort mit Terminen
(KU-FO-Ort0HTer)
Ort#,Ort,OrtAkt
7. Fallbeispiel
32
Das Formulardesignablaufschema beschreibt die Wiederverwertungsmöglichkeiten von
Formularen und unterteilt sich in vier Stufen, von denen in Abbildung 12 nur die obersten zwei sichtbar
sind. In der obersten Stufe beträgt der Erstellungsaufwand 100%. Dort werden Listenformulare
erstellt. In der zweiten Stufe werden die Listenformulare zu Haupt- und Unterformularen angepasst mit
einem geschätzen Aufwand von 50%. In der dritten Stufe werden Formulare, die nur als Unter- oder
Hauptformulare vorkommen erstellt mit einem Aufwand von 100%. In der vierten Stufe werden die
Haupt- und Unterformulare der zweiten und dritten Stufe in anderen Kombinationen zusammengefügt
und angepasst. Der geschätzte Aufwand hierfür beträgt 5% bis 20%.
MitLis
Art m. Typ
Typ
Art
Gruppe
Typ m. Teil
Abbildung 12 - Formulardesignablaufschema - Auszug
KurLis
Grp.m.Kur
Leit
8 Literaturverzeichnis
(bearbeitete Literatur)
Babo, Michael von. „32-Bit-Verlockungen“. Windows Guide Schweiz Special 2b (1995).
Bager, Jo. „Von Kunden und Dienstleistern - aktuell:CeBIT’95:Client/Server“. c’t 6 (1995): 76-78.
Brosius, Gerhard. Das Access 1.1 Sprachreferenz-Handbuch. Düsseldorf, Wien: Addison-Wesley, 1993.
Finkenzeller, Hermann und andere. Systematischer Einsatz von SQL-ORACLE - Entwurf und Realisierung
eines Informationssystems. Bonn: Addison-Wesley, 1989.
Gillenson, Mark L.. Datenbank-Konzepte - Datenbanken, Netzwerke, Expertensysteme. Sybex, 1991.
Gladis, Rolf. „Kletterhilfe - Die Access-Upsizing-Tools“. c’t 2 (1995): 64.
Grothe, Roland. „Kleine Kniffe für den Notfall“. Tips&Tools Sonderheft von VTP Fürst 5 (1994): 18-22.
Hock, Martin. „Clipper-Erbfolger für Windows - Computer Associates liefert Visual Objects 1.0 aus“.
c’t 2 (1995): 44.
Hüskes, Ralf. „Gebündelte Produktivität? - Office-Pakete im Vergleich“. c’t 12 (1994): 222.
Kolberg, Michael. Microsoft Access - auf einen Blick. Unterschleissheim: Microsoft Press, 1994.
Lambert, Colleen. ODBC: Architecture, Performance and Tuning. (MSDN CD Level 1).
Litwin, Paul. Jet Database Engine 2.0: A User's Overview. (MSDN CD Level 1)
Martin, James. Einführung in die Datenbanktechnik. 3. Auflage. München, Wien: Hanser Carl, 1981.
Matthey U., Meiser U.. ACCESS 2.0 - Das DATA BECKER Handbuch, Einstieg, Praxis, Referenz.
DATA BECKER, 1994.
Miller, Martin u.a.. „Banker-Leiden - Die Datenbankschnittstelle ODBC in der Praxis“. c’t 3 (1995): 306.
Philip, Picuri. „Eine Investition in die Zukunft - Interview mit ...“. Windows Guide Schweiz Special 2b
(1995).
Pressman, Roger S.. Software Engineering. 3. Auflage. Hamburg:McGraw-Hill, Inc., 1992.
Schmitt, Dr. Hans-Jochen. „Buchprüfung der Datenbankiers - Der Stand der Dinge bei PC-SQLServern“. c’t 6 (1995): 76-81.
Staud, Kurt. „Supervisor - Access 2.0-Anwendungen besser organisieren“. c’t 3 (1995): 260.
Steiner, René. Theorie und Praxis relationaler Datenbanken. Braunschweig/Wiesbaden:Vieweg, 1994.
Vetter, Max. Aufbau betrieblicher Informationssysteme - mittels konzeptioneller Datenmodellierung.
4. Auflage. Stuttgart: B.G. Teubner, 1987.
Viescas, John L.. Microsoft Access - Professionell nutzen. Unterschleissheim: Microsoft Press
Deutschland, 1994.
Vossen, Gottfried. Datenmodelle, Datenbanksprachen und Datenbank-Management-Systeme.
Bonn: Addison-Wesley, 1987.
7. Fallbeispiel
Weimer, Günter. „Solutions“. Microsoft Werbeheft 1 (1995)
34
Herunterladen