Vorwort |
|||||||||||||||||||||||||||||||||||||||
Datenbanken waren noch nie so wichtig. Diese Aussage mag überraschen, angesichts der Bedeutung, die Datenbanken in den letzten 50 Jahren schon gewonnen haben. Sie ist aber, angesichts der Herausbildung einer digitalen Parallelwelt, richtig. |
|||||||||||||||||||||||||||||||||||||||
Datenbanken werden überall dort benötigt, wo - im Rahmen der Informatisierung - Informationen "erhalten bleiben sollen". Da dies für so gut wie alle Anwendungs- und Lebensbereiche gilt, ergibt sich eine entsprechende Verbreitung von Datenbanken und ein entsprechender Bedarf an Wissen über Datenbanktechniken. |
Informatisierung |
||||||||||||||||||||||||||||||||||||||
In einer Zeit aber, in der sich die Weltgesellschaft mit dem Internet eine digitale Parallelwelt geschaffen hat, in der sie privat, geschäftlich, kriminell, in staatlichem Auftrag, usw. aktiv ist, ist dieser Bedarf noch größer geworden. Denn alle diese Netzaktivitäten beruhen auf bzw. führen zu Datenbanken. Natürlich Datenbanken der verschiedensten Art. Netzwerkdaten im Social Web, wo Terabyte von Daten bereits emsig ausgewertet werden; Datenbanken der Suchmaschinen, die letztendlich auf die Technologie der "inverted files" zurückgehehen; "Unstruktierte Daten" der unterschiedlichsten Art, usw. Und die schon altbewährten Relationalen Datenbanken, die einen sehr großen Anteil am Gesamtbestand von Datenbanken halten, v.a. in den Unternehmen. |
Immer mehr Datenbanken |
||||||||||||||||||||||||||||||||||||||
Um die Relationalen Datenbanken geht es in diesem Buch in erster Linie. Sie sollen umfassend dargestellt werden und auch der Weg zu ihnen: Vom Anwendungsbereich zur konzeptionellen und logischen Datenmodellierung, dann zum Datenbankdesign und zur Einrichtung der Datenbank. Zum Schluss werden noch die physischen Datenstrukturen beschrieben, auf denen die heutigen Speichertechniken beruhen. |
Der ganze Weg |
||||||||||||||||||||||||||||||||||||||
Daneben werden aber auch die wichtigsten Alternativen kurz beschrieben. Alternative Datenmodelle (semantische und logische) und alternative Datenbanktechnologien, von dimensionalen Datenbanken über NoSQL-Datenbanken bis zur InMemory-Technologie. |
|||||||||||||||||||||||||||||||||||||||
Bezüglich der relationalen Datenbanktheorie sind folgende Themen neu und so anderweitig nicht abgedeckt: |
|||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||
Prof. Dr. Josef Ludwig Staud |
|||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||
Inhaltsverzeichnis der Buch- und PDF-Version |
|||||||||||||||||||||||||||||||||||||||
Vorwort, Inhalt, Abkürzungen III |
|||||||||||||||||||||||||||||||||||||||
1 Einleitung 13 |
|||||||||||||||||||||||||||||||||||||||
1.1 Aufbau des Buches, Gesamtüberblick 13 |
|||||||||||||||||||||||||||||||||||||||
1.2 Hinweise zur Textgestaltung 17 |
|||||||||||||||||||||||||||||||||||||||
1.3 Datenbanken 17 |
|||||||||||||||||||||||||||||||||||||||
1.4 Logische Datenmodelle, Datenorganisation 19 |
|||||||||||||||||||||||||||||||||||||||
1.5 Relationale Datenbanksysteme 21 |
|||||||||||||||||||||||||||||||||||||||
1.6 Die drei Ebenen der ANSI-SPARC - Architektur 23 |
|||||||||||||||||||||||||||||||||||||||
1.7 Syntax, Semantik, Pragmatik 23 |
|||||||||||||||||||||||||||||||||||||||
2 Informationen, Daten, Attribute 27 |
|||||||||||||||||||||||||||||||||||||||
2.1 Informationen, Daten 27 |
|||||||||||||||||||||||||||||||||||||||
2.2 Klassifizierung von Daten 29 |
|||||||||||||||||||||||||||||||||||||||
2.3 Zeichen, Zeichenvorrat 31 |
|||||||||||||||||||||||||||||||||||||||
2.4 Attribute 32 |
|||||||||||||||||||||||||||||||||||||||
3 Konzeptionelle Modellierung 37 |
|||||||||||||||||||||||||||||||||||||||
3.1 Anwendungsbereiche 37 |
|||||||||||||||||||||||||||||||||||||||
3.2 Objekte und Beziehungen erkennen 38 |
|||||||||||||||||||||||||||||||||||||||
3.3 Klassen bilden 40 |
|||||||||||||||||||||||||||||||||||||||
3.4 Beispiele 41 |
|||||||||||||||||||||||||||||||||||||||
3.5 Zusammenfassung 42 |
|||||||||||||||||||||||||||||||||||||||
4 Relationen bilden 45 |
|||||||||||||||||||||||||||||||||||||||
4.1 Von Klassen zu Relationen 45 |
|||||||||||||||||||||||||||||||||||||||
4.2 Eigenschaften und Darstellung von Relationen 47 |
|||||||||||||||||||||||||||||||||||||||
5 Beziehungen erkennen und einrichten 53 |
|||||||||||||||||||||||||||||||||||||||
5.1 Beziehungen erkennen 53 |
|||||||||||||||||||||||||||||||||||||||
5.2 Schlüssel und Fremdschlüssel 56 |
|||||||||||||||||||||||||||||||||||||||
5.3 Umsetzung von 1:1 57 |
|||||||||||||||||||||||||||||||||||||||
5.4 Min-/Max-Angaben und "1:1 vertieft" 59 |
|||||||||||||||||||||||||||||||||||||||
5.5 Umsetzung von 1:n 64 |
|||||||||||||||||||||||||||||||||||||||
5.6 Umsetzung von n:m 67 |
|||||||||||||||||||||||||||||||||||||||
5.7 Verknüpfung konkret 70 |
|||||||||||||||||||||||||||||||||||||||
5.8 Mehrstellige Beziehungen 73 |
|||||||||||||||||||||||||||||||||||||||
5.9 Integritäten 74 |
|||||||||||||||||||||||||||||||||||||||
5.10 Schlüssel vertieft 74 |
|||||||||||||||||||||||||||||||||||||||
6 Zusammenfassung Grundlagen 77 |
|||||||||||||||||||||||||||||||||||||||
6.1 Erste Schritte 77 |
|||||||||||||||||||||||||||||||||||||||
6.2 Warum eigentlich flache Tabellen? 78 |
|||||||||||||||||||||||||||||||||||||||
7 Die erste Normalform (1NF) 81 |
|||||||||||||||||||||||||||||||||||||||
7.1 Optimierung durch Normalisierung 81 |
|||||||||||||||||||||||||||||||||||||||
7.2 Definition und Herbeiführung 82 |
|||||||||||||||||||||||||||||||||||||||
7.3 Tupelvermehrung 83 |
|||||||||||||||||||||||||||||||||||||||
7.4 Zerlegung nach 1:n 84 |
|||||||||||||||||||||||||||||||||||||||
7.5 Zerlegung nach n:m 87 |
|||||||||||||||||||||||||||||||||||||||
7.6 Schlechte Lösungen 92 |
|||||||||||||||||||||||||||||||||||||||
7.7 Relationale Datenmodelle 94 |
|||||||||||||||||||||||||||||||||||||||
7.8 Redundanzen in 1NF-Relationen 99 |
|||||||||||||||||||||||||||||||||||||||
7.9 Anomalien 101 |
|||||||||||||||||||||||||||||||||||||||
8 Funktionale Abhängigkeiten 105 |
|||||||||||||||||||||||||||||||||||||||
8.1 Einführung 105 |
|||||||||||||||||||||||||||||||||||||||
8.2 Funktionale Abhängigkeit 106 |
|||||||||||||||||||||||||||||||||||||||
8.3 Schneller Weg zum Erfolg 110 |
|||||||||||||||||||||||||||||||||||||||
8.4 Einfache und volle FA 112 |
|||||||||||||||||||||||||||||||||||||||
8.5 Schlüssel (formal) 114 |
|||||||||||||||||||||||||||||||||||||||
9 Die zweite Normalform (2NF) 117 |
|||||||||||||||||||||||||||||||||||||||
9.1 Redundanz trotz 1NF 117 |
|||||||||||||||||||||||||||||||||||||||
9.2 Definition 118 |
|||||||||||||||||||||||||||||||||||||||
9.3 Beispiel Aufträge 119 |
|||||||||||||||||||||||||||||||||||||||
9.4 Beispiel PROJEKTMITARBEIT 121 |
|||||||||||||||||||||||||||||||||||||||
9.5 Zerlegung und Zusammengehörigkeit 124 |
|||||||||||||||||||||||||||||||||||||||
10 Die dritte Normalform (3NF) 125 |
|||||||||||||||||||||||||||||||||||||||
10.1 Redundanz trotz 2NF 125 |
|||||||||||||||||||||||||||||||||||||||
10.2 Beispiel Auftragsköpfe 126 |
|||||||||||||||||||||||||||||||||||||||
10.3 Beispiel Angestellte 128 |
|||||||||||||||||||||||||||||||||||||||
10.4 Beispiel Aufträge / Artikel / Kunden 130 |
|||||||||||||||||||||||||||||||||||||||
10.5 Definition 3NF 133 |
|||||||||||||||||||||||||||||||||||||||
11 Die Boyce-Codd - Normalform (BCNF) 135 |
|||||||||||||||||||||||||||||||||||||||
11.1 Redundanz trotz 3NF 135 |
|||||||||||||||||||||||||||||||||||||||
11.2 Beispiel Projektmitarbeit 137 |
|||||||||||||||||||||||||||||||||||||||
11.3 Definition BCNF 140 |
|||||||||||||||||||||||||||||||||||||||
11.4 Noch ein Beispiel 140 |
|||||||||||||||||||||||||||||||||||||||
12 Die vierte Normalform (4NF) 143 |
|||||||||||||||||||||||||||||||||||||||
12.1 Das Defizit 143 |
|||||||||||||||||||||||||||||||||||||||
12.2 Beispiel Vorlesungsbetrieb 143 |
|||||||||||||||||||||||||||||||||||||||
12.3 Mehrwertige Abhängigkeit 146 |
|||||||||||||||||||||||||||||||||||||||
12.4 Definition 4NF 147 |
|||||||||||||||||||||||||||||||||||||||
13 Die fünfte Normalform (5NF) 149 |
|||||||||||||||||||||||||||||||||||||||
13.1 Verbund (Join) und Projektion 150 |
|||||||||||||||||||||||||||||||||||||||
13.1.1 Verbund (Join) 150 |
|||||||||||||||||||||||||||||||||||||||
13.1.2 Projektion 152 |
|||||||||||||||||||||||||||||||||||||||
13.2 N-Zerlegbarkeit 154 |
|||||||||||||||||||||||||||||||||||||||
13.3 Regeln für die Erstellung relationaler Datenmodelle 163 |
|||||||||||||||||||||||||||||||||||||||
14 Muster in Anwendungsbereichen und Modellen 165 |
|||||||||||||||||||||||||||||||||||||||
14.1 Ähnlichkeit - Generalisierung / Spezialisierung 165 |
|||||||||||||||||||||||||||||||||||||||
14.2 Einzel- und Typinformation 174 |
|||||||||||||||||||||||||||||||||||||||
14.3 Enthaltensein - Aggregation 179 |
|||||||||||||||||||||||||||||||||||||||
14.4 Enthaltensein und Existenzabhängigkeit - Komposition 183 |
|||||||||||||||||||||||||||||||||||||||
14.5 Beziehungsattribute 188 |
|||||||||||||||||||||||||||||||||||||||
15 Die Zeit in Datenmodellen und Datenbanken 193 |
|||||||||||||||||||||||||||||||||||||||
15.1 Zeitlich fixiert oder zeitabhängig 193 |
|||||||||||||||||||||||||||||||||||||||
15.2 Duplizieren zum Zeitpunkt der Rechnungsstellung 194 |
|||||||||||||||||||||||||||||||||||||||
15.3 Andere Lösungen 195 |
|||||||||||||||||||||||||||||||||||||||
16 Modellierungsbeispiele mit Lösungsweg 197 |
|||||||||||||||||||||||||||||||||||||||
16.1 Rechnungsstellung 197 |
|||||||||||||||||||||||||||||||||||||||
16.2 Sportverein 208 |
|||||||||||||||||||||||||||||||||||||||
16.3 PC-Beschaffung 214 |
|||||||||||||||||||||||||||||||||||||||
16.4 Fachliteratur 219 |
|||||||||||||||||||||||||||||||||||||||
16.5 Hochschule – Vorlesungsbetrieb 228 |
|||||||||||||||||||||||||||||||||||||||
16.6 Sprachenverlag 237 |
|||||||||||||||||||||||||||||||||||||||
17 Weitere Modellierungsbeispiele 249 |
|||||||||||||||||||||||||||||||||||||||
17.1 Obst 249 |
|||||||||||||||||||||||||||||||||||||||
17.2 Haushaltsgeräte 251 |
|||||||||||||||||||||||||||||||||||||||
17.3 Angestellte 253 |
|||||||||||||||||||||||||||||||||||||||
17.4 Kfz-Werkstatt 258 |
|||||||||||||||||||||||||||||||||||||||
17.5 WebShop 259 |
|||||||||||||||||||||||||||||||||||||||
17.6 Zoo 262 |
|||||||||||||||||||||||||||||||||||||||
18 Von Attributen zu Datentypen 265 |
|||||||||||||||||||||||||||||||||||||||
18.1 Vielfalt 265 |
|||||||||||||||||||||||||||||||||||||||
18.2 Die Datentypen von MySQL 269 |
|||||||||||||||||||||||||||||||||||||||
18.3 Die Datentypen von ORACLE SQL 276 |
|||||||||||||||||||||||||||||||||||||||
18.4 Die Datentypen von ACCESS 277 |
|||||||||||||||||||||||||||||||||||||||
18.5 Welcher Datentyp für welches Attribut? 282 |
|||||||||||||||||||||||||||||||||||||||
19 Einführung in SQL 283 |
|||||||||||||||||||||||||||||||||||||||
19.1 Einleitung 283 |
|||||||||||||||||||||||||||||||||||||||
19.2 Datenbanken anlegen und löschen 286 |
|||||||||||||||||||||||||||||||||||||||
19.3 Relationen anlegen und löschen 287 |
|||||||||||||||||||||||||||||||||||||||
19.4 Eingeben von Daten 294 |
|||||||||||||||||||||||||||||||||||||||
19.5 Abfragen der Daten mit Select 298 |
|||||||||||||||||||||||||||||||||||||||
19.6 Gezieltes Löschen und Korrigieren 309 |
|||||||||||||||||||||||||||||||||||||||
19.6.1 Löschen mit DELETE FROM 311 |
|||||||||||||||||||||||||||||||||||||||
19.6.2 Daten korrigieren - Update ... set ... 312 |
|||||||||||||||||||||||||||||||||||||||
19.6.3 Maskierung mit LIKE 313 |
|||||||||||||||||||||||||||||||||||||||
19.7 Funktionen 315 |
|||||||||||||||||||||||||||||||||||||||
19.7.1 Funktionen für Tupelmengen und Gruppenbildung 315 |
|||||||||||||||||||||||||||||||||||||||
19.7.2 Mathematische Funktionen 317 |
|||||||||||||||||||||||||||||||||||||||
19.7.3 Funktionen für Zeichenketten 321 |
|||||||||||||||||||||||||||||||||||||||
19.8 Verknüpfen von Relationen 324 |
|||||||||||||||||||||||||||||||||||||||
19.8.1 Equjoin - Verbund über die Gleichheit von Attributsausprägungen 324 |
|||||||||||||||||||||||||||||||||||||||
19.8.2 Outer Join 329 |
|||||||||||||||||||||||||||||||||||||||
19.8.3 SelfJoin - Eine Relation mit sich selbst verknüpfen 333 |
|||||||||||||||||||||||||||||||||||||||
19.9 Transaktionen 338 |
|||||||||||||||||||||||||||||||||||||||
20 Vom Zeichen zur Datenbank 346 |
|||||||||||||||||||||||||||||||||||||||
20.1 Die Ebenen 346 |
|||||||||||||||||||||||||||||||||||||||
20.2 Übersicht 348 |
|||||||||||||||||||||||||||||||||||||||
21 Dateitechniken 351 |
|||||||||||||||||||||||||||||||||||||||
21.1 Datenmodell - Datenbank - Datei 351 |
|||||||||||||||||||||||||||||||||||||||
21.2 Stapeldateien 352 |
|||||||||||||||||||||||||||||||||||||||
21.3 Sequenzielle Dateien 353 |
|||||||||||||||||||||||||||||||||||||||
21.4 Indexsequenzielle Dateien 355 |
|||||||||||||||||||||||||||||||||||||||
21.5 Direktzugriffsdateien/Hashing 357 |
|||||||||||||||||||||||||||||||||||||||
22 Speichermedien 361 |
|||||||||||||||||||||||||||||||||||||||
22.1 Periphere Speicher 361 |
|||||||||||||||||||||||||||||||||||||||
22.2 Konkrete Speicherung 362 |
|||||||||||||||||||||||||||||||||||||||
22.3 Magnetische Speicher 362 |
|||||||||||||||||||||||||||||||||||||||
22.4 Optische Speicher 365 |
|||||||||||||||||||||||||||||||||||||||
22.5 Elektronische Speicher 370 |
|||||||||||||||||||||||||||||||||||||||
23 Andere Datenmodelle 373 |
|||||||||||||||||||||||||||||||||||||||
23.1 Semantische Datenmodelle 373 |
|||||||||||||||||||||||||||||||||||||||
23.2 Logische Datenmodelle 374 |
|||||||||||||||||||||||||||||||||||||||
24 NoSQL etc. Nicht-konventionelle DBn 377 |
|||||||||||||||||||||||||||||||||||||||
24.1 OLTP und OLAP 377 |
|||||||||||||||||||||||||||||||||||||||
24.2 Dimensionale Datenbanken 379 |
|||||||||||||||||||||||||||||||||||||||
24.3 Spaltenorientierte Datenbanken 390 |
|||||||||||||||||||||||||||||||||||||||
24.4 NoSQL-Datenbanken - Überblick 393 |
|||||||||||||||||||||||||||||||||||||||
24.4.1 Definition 394 |
|||||||||||||||||||||||||||||||||||||||
24.5 BigData 396 |
|||||||||||||||||||||||||||||||||||||||
24.5.1 Parallelwelten 396 |
|||||||||||||||||||||||||||||||||||||||
24.5.2 Ursache 1: Immer mehr Daten in den Rechnernetzen 397 |
|||||||||||||||||||||||||||||||||||||||
24.5.3 Ursache 2: Internet der Dinge und Industrie 4.0 398 |
|||||||||||||||||||||||||||||||||||||||
24.5.4 Immenser Speicherbedarf und Vielfalt 400 |
|||||||||||||||||||||||||||||||||||||||
24.5.5 Volume, Velocity, Variety 401 |
|||||||||||||||||||||||||||||||||||||||
24.5.6 Skalierbarkeit 401 |
|||||||||||||||||||||||||||||||||||||||
24.5.7 Parallelisierung mit Hilfe des MapReduce-Frameworks 402 |
|||||||||||||||||||||||||||||||||||||||
24.6 Konsistenz, CAP-Theorem 403 |
|||||||||||||||||||||||||||||||||||||||
24.7 Schemafreiheit 404 |
|||||||||||||||||||||||||||||||||||||||
24.8 Key/Value - Datenbanken 407 |
|||||||||||||||||||||||||||||||||||||||
24.9 Graphendatenbanken 409 |
|||||||||||||||||||||||||||||||||||||||
24.10 Dokumentendatenbanken 410 |
|||||||||||||||||||||||||||||||||||||||
24.11 InMemory - Datenbanksysteme 414 |
|||||||||||||||||||||||||||||||||||||||
Literatur 417 |
|||||||||||||||||||||||||||||||||||||||
Abkürzungsverzeichnis |
|||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||