Relationale Datenbanken. Grundlagen, Modellierung, Speicherung, Alternativen
März 2015 – 431 Seiten – 143 Abbildungen
ISBN 978-3-9817175-2-5
Beziehbar über den Buchhandel, Amazon oder vom Autor selbst (staud@staud.info).
Auszüge auf www.staud.info –> DATENBANKEN / Relationale Datenbanken
Vorwort des Buches
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.
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.
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.
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 in diesem Buch folgende Themen neu und so anderweitig nicht abgedeckt:
- Die intensive Betrachtung von Mustern in Anwendungsbereichen und in relationalen Datenmodellen(„Semantik sucht Syntax“). Dies sollte die konkrete Datenmodellierung erleichtern.
- Die Erweiterung der Kardinalitäten zur durchgängigen Betrachtung von Min-/Max-Angaben bei relationalen Verknüpfungen („wieviele Teilnehmer mindestens, wieviele höchstens“). Auch dies sollte bei einer modernen Modellierung so sein.
- Die Betrachtung des gesamten Wegs von der Wahrnehmung des Anwendungsbereichs bis zur Erstellung der Datenbank und der physischen Datenorganisation.
- Zahlreiche Beispiele für relationale Datenmodellierung, einige mit Lösungsweg, einige ohne. Dies ist motiviert durch die Erfahrung aus jahrzehntelanger Lehr- und Beratungstätigkeit, dass Datenmodellierung beim Umgang mit Datenbanken die größten Probleme macht und vielerorts nur eingeschränkt beherrscht wird.
Josef Ludwig Staud
Inhaltsverzeichnis des Buches
1 Einleitung. 15
1.1 Aufbau des Buches, Gesamtüberblick. 15
1.2 Datenbanken. 18
1.3 Logische Datenmodelle, Datenorganisation. 20
1.4 Relationale Datenbanksysteme. 21
1.5 Die drei Ebenen der ANSI-SPARC – Architektur 24
1.6 Syntax, Semantik, Pragmatik. 25
2 Informationen, Daten, Attribute. 29
2.1 Informationen, Daten. 29
2.2 Klassifizierung von Daten. 31
2.3 Zeichen, Zeichenvorrat 33
2.4 Attribute. 33
3 Konzeptionelle Modellierung. 39
3.1 Anwendungsbereiche. 39
3.2 Objekte und Beziehungen erkennen. 40
3.3 Klassen bilden. 42
3.4 Beispiele. 43
3.5 Zusammenfassung. 44
4 Relationen bilden. 49
4.1 Von Klassen zu Relationen. 49
4.2 Eigenschaften und Darstellung von Relationen. 51
5 Beziehungen erkennen und einrichten. 57
5.1 Beziehungen erkennen. 57
5.2 Schlüssel und Fremdschlüssel 60
5.3 Umsetzung von 1:1. 61
5.4 Min-/Max-Angaben und „1:1 vertieft“. 62
5.5 Umsetzung von 1:n. 66
5.6 Umsetzung von n:m… 69
5.7 Verknüpfung konkret 72
5.8 Mehrstellige Beziehungen. 74
5.9 Integritäten. 75
5.10 Schlüssel vertieft 76
6 Zusammenfassung Grundlagen. 79
6.1 Erste Schritte. 79
6.2 Warum eigentlich flache Tabellen?. 80
7 Die erste Normalform (1NF) 85
7.1 Optimierung durch Normalisierung. 85
7.2 Definition und Herbeiführung. 86
7.3 Tupelvermehrung. 87
7.4 Zerlegung nach 1:n. 88
7.5 Zerlegung nach n:m… 90
7.6 Schlechte Lösungen. 95
7.7 Darstellung ganzer Relationaler Datenmodelle. 97
7.8 Redundanzen in 1NF-Relationen. 100
7.9 Anomalien. 102
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.. 113
8.5 Schlüssel (formaler) 115
9 Die zweite Normalform (2NF) 117
9.1 Redundanz trotz 1NF. 117
9.2 Definition. 119
9.3 Beispiel AUFTRÄGE.. 119
9.4 Beispiel PROJEKTMITARBEIT.. 122
9.5 Zerlegung und Zusammengehörigkeit 125
10 Die dritte Normalform (3NF) 127
10.1 Redundanz trotz 2NF. 127
10.2 Beispiel Auftragsköpfe. 128
10.3 Beispiel Angestellte. 129
10.4 Beispiel Aufträge / Artikel / Kunden. 131
10.5 Definition 3NF. 133
11 Die Boyce-Codd – Normalform (BCNF) 137
11.1 Redundanz trotz 3NF. 137
11.2 Beispiel Projektmitarbeit 139
11.3 Definition BCNF. 142
11.4 Noch ein Beispiel 142
12 Die vierte Normalform (4NF) 145
12.1 Das Defizit 145
12.2 Beispiel Vorlesungsbetrieb. 145
12.3 Mehrwertige Abhängigkeit 148
12.4 Definition 4NF. 150
13 Die fünfte Normalform (5NF) 153
13.1 Verbund (Join) und Projektion. 153
13.2 N-Zerlegbarkeit 157
13.3 Definition. 161
13.4 Regeln für die Erstellung relationaler Datenmodelle. 163
14 Muster in Anwendungsbereichen und Modellen. 167
14.1 Ähnlichkeit – Generalisierung / Spezialisierung. 167
14.2 Einzel- und Typinformation. 175
14.3 Enthaltensein – Aggregation. 180
14.4 Enthaltensein und Existenzabhängigkeit – Komposition. 184
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. 199
16.1 Rechnungsstellung. 199
16.2 Sportverein. 209
16.3 PC-Beschaffung. 214
16.4 Fachliteratur 220
16.5 Hochschule – Vorlesungsbetrieb. 229
16.6 Sprachenverlag. 238
17 Weitere Modellierungsbeispiele. 249
17.1 Obst 249
17.2 Haushaltsgeräte. 251
17.3 Angestellte. 253
17.4 Kfz-Werkstatt 257
17.5 WebShop. 258
17.6 Zoo. 261
18 Von Attributen zu Datentypen. 267
18.1 Vielfalt 267
18.2 Die Datentypen von MySQL.. 271
18.3 Die Datentypen von ORACLE SQL.. 278
18.4 Die Datentypen von ACCESS. 280
18.5 Welcher Datentyp für welches Attribut?. 284
19 SQL – Eine Kurzeinführung. 287
19.1 Einleitung. 287
19.2 Relationen anlegen und löschen. 290
19.3 Eingeben von Daten. 295
19.4 Abfragen der Daten mit Select 299
19.4.1 Projektion. 300
19.4.2 Parameter IN.. 311
19.5 Gezieltes Löschen und Korrigieren. 312
19.6 Maskierung mit LIKE.. 314
19.7 Funktionen. 316
19.8 Verknüpfen von Relationen. 323
19.9 Transaktionen. 332
20 Vom Zeichen zur Datenbank. 343
20.1 Die Ebenen. 343
20.2 Übersicht 345
21 Dateitechniken. 347
21.1 Datenmodell – Datenbank – Datei 347
21.2 Stapeldateien. 348
21.3 Sequenzielle Dateien. 349
21.4 Indexsequenzielle Dateien. 352
21.5 Direktzugriffsdateien/Hashing. 354
22 Speichermedien. 357
22.1 Periphere Speicher 357
22.2 Konkrete Speicherung. 358
22.3 Magnetische Speicher 358
22.4 Optische Speicher 362
22.5 Elektronische Speicher 367
23 Andere Datenmodelle. 373
23.1 Semantische Datenmodelle. 373
23.2 Logische Datenmodelle. 374
24 Andere Datenbanken. 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. 397
24.5.1 Parallelwelten. 397
24.5.2 Ursache 1: Immer mehr Daten in den Rechnernetzen. 398
24.5.3 Ursache 2: Internet der Dinge und Industrie 4.0. 399
24.5.4 Immenser Speicherbedarf und Vielfalt 401
24.5.5 Volume, Velocity, Variety. 402
24.5.6 Skalierbarkeit 402
24.5.7 Parallelisierung mit Hilfe des MapReduce-Frameworks. 403
24.6 Konsistenz, CAP-Theorem… 404
24.7 Schemafreiheit 406
24.8 Key/Value – Datenbanken. 408
24.9 Graphendatenbanken. 411
24.10 Dokumentendatenbanken. 412
24.11 InMemory – Datenbanksysteme. 417
Index. 421
Literatur 427