Markus Lusti Dateien und Datenbanken Eine anwendungsorientierte Einftihrung Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Professor Dr. Markus Lusti Institut fUr Inforrnatik Wirtschaftswissenschaftliches Zentrum der Universitat Basel Petersgraben 51 CH-4051 Basel ISBN-13: 978-3-540-51035-2 e-ISBN-13: 978-3-642-97170-9 DOl: 10.1007/978-3-642-97170-9 Dieses Werk ist urheberrechtIich geschiitzt. Die dadurch begriindeten Rechte, insbesonde re die der Ubersetzung, des Nachdruckes, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendungen, der Mikroverfilmung oder der Vervielfaltigung auf an deren Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfliltigung dieses Werkes oder von Tei len dieses Werkes istauch im Einzelfall nurin den Grenzen dergesetzlichenBestimmungen des U rheberrechtsgesetzes der BundesrepublikDeutschland yom 9. September 1965 in der Fassung yom 24. Juni 1985 zuliissig. Sie ist grundsiitzlich vergiitungspflichtig. Zuwider handlungen unterliegen den Stratbestimmungen des Urheberrechtsgesetzes © Springer-Verlag Berlin Heidelberg 1989 Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in die sem Werk berechtigtauch ohne besondere Kennzeichnungnichtzu der Annahme, daB sol che Namen im Sinne der Warenzeichen-und Markenschutz-Gesetzgebung als frei zu be trachten waren und daher vonjederrnann benutzt werden diirften. 2142/7130-543210 Vorwort Die folgenden Kapitel fUhren Anwender in Datei- und Datenbanksysteme ein. Anders als in traditionellen Programmierkursen liegt der Schwerpunkt nicht auf der Entwick lung von Algorithmen sondem auf dem Entwurf und der Abfrage von Datenbanken in Anwendersprachen. Die meisten Abschnitte sind besser verstandlich, wenn der Leser einfache Endbenutzerwerkzeuge (zum Beispiel gangige Textverarbeitungs-und Tabel lenkalkulationspakete) handhaben kann und bereits Programme in einer prozeduralen Sprache (zum Beispiel Pascal) entwickelt hat. Das erste Kapitel behandelt den Begriff und die verschiedenen Arten von Daten, das zweite untersucht die Organisation konventioneller Dateien: Ausgewlihlte Dateiopera tionen in Pascal veranschaulichen die Dateiverwaltung mit einer traditionellen Pro grammiersprache. Kapitel 3 verdeutlicht die relative und indizierte Dateiverwaltung an den Dateioperationen von zwei allgemein zuganglichen Softwarepaketen: dBASE ist das verbreitetste Datenbanksystem aufPersonalcomputem. Seine Anfange gehen bis ins Jahr 1978 zuriick (Die Entstehungsgeschichte von dBASE schildert ein Interview mit dem Entwickler C. W. Ratliff im faszinierenden Buch "Programmers at Work", Mi crosoft Press 1986, dt. Markt&Technik 1987). Paradox ist wesentlich jiinger und wurde vor allem wegen seiner benutzerfreundlichen Dialogschnittstelle (Query by Example) ausgewahlt. Das vierte Kapitel skizziert einige Grundlagen des Datenentwurfs. Es motiviert ohne den komplizierten Begriffsapparat der N ormalisierungstheorie das Ziel der Redundanz minirnierung. Kapitel 5 wendet die Grundsatze des Datenentwurfs auf die Implemen tierung einfacher Datenbanken an. Eine Starke vieler PC-Datenbanksysteme liegt in der Moglichkeit, einfach und schnell Anwendungen zu programmieren, die auf eine Datenbank zugreifen. Kapitel 6 stellt deshalb eine Fallstudie zur Programmierung in der eingebauten Programmiersprache von dBASE vor. Das nachste Kapitel beschreibt dBASE und Paradox als relation ale Datenbanksysteme und weist auf U nterschiede zum relationalen Modell hin. Das letzte Kapitel stellt allgemeine Anforderungen an ein Datenbankverwaltungssystem zusam men und wendet sie auf dBASE und Paradox an. Die methodische und didaktische Gestaltung orientiert sich an folgenden Grundsatzen: • Jedes Kapitel beginnt mit einer Liste der wichtigsten Begriffe. Urn ihre gegenseiti gen Beziehungen hervorzuheben, sind sie als Einriickungsliste dargestellt. • Die exemplarische Vertiefung einzelner Aspekte ersetzt eine iiberblicksartige Dar stellung. • Das LOsen der Aufgaben am Ende eines Kapitels ist fUr die aktive Aneignung des Stoffes notwendig. vi Yorwort • Das Erlemen der Syntax von Pascal, dBASE und Paradox ist nicht Hauptzweck. Das Buch eignet sich deshalb auch fUr Leser ohne Vorkenntnisse in Pascal und ohne Zugang zu dBASE und Paradox. Wer sich tiefer mit den Werkzeugen beschaftigen will, findet Details in Hand-und Lehrbiichem (siehe Abschnitt Literaturhinweise). • Die Beispiele vermeiden nach Moglichkeit Abkiirzungen. Bezeichner iiberschrei- ten deshalb manchmal die vom Betriebssystem gesetzte MaximalUinge. Ich danke allen, die mir bei der Durchsicht des Manuskripts geholfen haben. Besonde ren Dank schulde ich meinen Assistenten Peter Hassler, Yvonne Kuntermann, Thomas Ratz und Johannes Schmidt. Inhaltsverzeichnis 1 Daten ond Dateien 1 1.1 Daten 3 1.1.1 Arlen von Daten 3 1.1.2 Arlen von Attributen 4 1.1.3 Formate von Daten 4 1.2 Dateien 5 1.2.1 Arten von Dateien 5 1.2.2 Operationen auf Dateien 7 Aufgaben zu Kapitel 1 9 2 Dateiorganisation 13 2.1 Datenspeicher 15 2.2 Sequentielle Dateiorganisation 16 2.2.1 Deklarieren des Satzpuffers 16 2.2.2 Offnen und Schliessen 17 2.2.3 Errichten 18 2.2.4 Lesen 20 2.2.5 Fortschreiben 20 2.3 Relative Dateiorganisation 27 2.4 Indizierte Dateiorganisation 28 2.5 Wahl der geeigneten Dateiorganisation 31 Aufgaben zu Kapitel2 32 3 Dateiverwaltong in Datenbanksystemen 43 3.1 Dateiverwaltung fUr den Endbenutzer 45 3.2 Operationen auf einer Datei 45 3.2.1 Deklarieren der Satzstruktur 46 Inhaltsverzeichnis viii 3.2.2 Offnen und Schliessen 47 3.2.3 Errichten 47 3.2.4 Suchen 48 3.2.5 Fortschreiben 49 Aufgaben zu Kapitel 3 51 4 Datenentwurf 53 4.1 Ziele des Datenentwurfs 55 4.1.1 Minimale Redundanz 55 4.1.2 Minimale Datenabhangigkeit 56 4.2 Mittel des Datenentwurfs 56 4.2.1 Beseitigung von Anomalien 57 4.2.2 Datenbankstrukturdiagramm 61 4.2.3 Phasen des Datenentwurfs 62 4.3 Eine Fallstudie zur Normalisierung 66 Aufgaben zu Kapitel4 70 5 Datenbankverwaltung 79 5.1 Abfragen 81 5.1.1 Verkniipfen von Tabellen 81 5.1.2 Verbund zweier Tabellen 83 5.1.3 Query by Example 84 5.2 Andern 89 5.2.1 Fortschreiben einer Stammdatei mit einer Bewegungsdatei 89 5.3 Datenbankverwaltung und Tabellenkalkulation 91 . Aufgaben zu Kapitel 5 93 . 6 Programmieren in prozeduralen Datenbanksprachen 97 6.1 Benutzerschnittstelle zur Datenbank 99 6.1.1 Befehls-und meniigesteuerte Benutzerschnittstellen 99 Inhaltsverzeichnis ix 6.1.2 Die eingebauten Programmiersprachen von dBASE und Paradox 99 6.1.3 Programmentwicklung 102 6.2 Fallstudie LITERATURVERWALTUNG 103 6.2.1 Kurzbeschreibung und Dialogentwurf 103 6.2.2 Dateientwurf 105 6.2.3 Algorithrnischer Entwurf 105 6.2.4 Programmierung 107 Aufgaben zu Kapite16 114 7 Relationale Datenbanksysteme auf Personalcomputern 115 7.1 Datenmodelle 117 7.2 Relationale Eigenschaften von dBASE und Paradox 117 7.2.1 Relationale Datenbanken als Mengen von Tabellen 117 7.2.2 Operationen auf Tabellen 119 7.3 Das Codd'sche Postulat eines idealen relationalen Systems 125 7.4 Relationenmodell und Netzwerkmodell 129 Aufgaben zu Kapitel 7 134 8 Anforderungen an Datenbanksysteme 139 Anhang A Die Datenbanksysteme Paradox und dBASE 143 1 Ubersicht 144 1.1 Operationen in einer Datei 144 1.2 Operationen zwischen Dateien 144 2 Paradox 145 a) Dateioperationen in Paradox 145 b) Datenbankoperationen in Paradox 147 3dBASE 148 Inhaltsverzeichnis x a) Dateioperationen in dBASE 148 b) Datenbankoperationen in dBASE 151 B ASCII-Code 153 ASCll-Code 154 C Glossar 157 D Losungen zu den Aufgaben 165 E Literaturhinweise 205 F Software 211 a) Lemprogramme zu Paradox und dBASE 212 b) Turbo Pascal Database Toolbox 212 Index 213 Kapitel1 Daten ond Dateien