Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
12
Vorwort
13
TEIL I Grundlagen
17
1 Wozu Datenbanken?
19
1.1 Datenbanken sind allgegenwärtig
19
1.2 Warum eine Excel-Tabelle nicht ausreicht
24
1.3 Die erste eigene Datenbank
27
1.4 Realisierung des Beispiels mit der MySQL Workbench
35
2 Grundlagen relationaler Datenbanken
47
2.1 Datenbank versus Datenbankmanagementsystem
47
2.2 Das relationale Modell
56
2.3 Transaktionen
65
2.4 Datensicherheit und ACID
68
2.5 Codds zwölf Gebote
78
2.6 Kritik am relationalen Modell
81
2.7 Wiederholungsfragen
86
TEIL II Datenbanken modellieren
91
3 Datenbankmodellierung
93
3.1 Datenbankschema
94
3.2 Modellierungsstufen
96
3.3 Modellierungstechniken
100
3.4 Das Entity-Relationship-Modell
104
3.5 Sonderfälle im ER-Modell
110
3.6 Alternative Diagrammformen und Notationen (IDEF1X, Min-Max, UML)
118
3.7 Vom ER-Diagramm zum Tabellenschema
129
3.8 Namensregeln
137
3.9 Normalformen
142
3.10 Normalisierungsbeispiel
154
3.11 Modellierung hierarchischer bzw. unstrukturierter Daten
157
3.12 Wiederholungsfragen
164
4 Datentypen
169
4.1 SQL und das Kommando »CREATE TABLE«
169
4.2 Ganze Zahlen
172
4.3 Gleit- und Festkommazahlen
174
4.4 Zeichenketten
178
4.5 Datum und Uhrzeit
183
4.6 Boolesche Zustände
184
4.7 Binäre Daten (BLOBs)
185
4.8 NULL, Defaultwerte und Werteinschränkungen (CHECKs)
188
4.9 Besondere Datentypen
191
4.10 Eigene Datentypen
195
4.11 Virtuelle Spalten (Generated Columns)
197
4.12 Beispiele
198
4.13 Wiederholungsfragen
200
5 Primary Keys, Foreign Keys und referenzielle Integrität
203
5.1 Primary Keys (Primärschlüssel)
204
5.2 Foreign Keys (Fremdschlüssel)
217
5.3 Foreign-Key-Beispiele
225
5.4 Wiederholungsfragen
232
6 Indizes
235
6.1 Indexformen
236
6.2 Index-Interna und B-Trees
242
6.3 Indizes – Pro und Kontra
257
6.4 Cache-Systeme für Abfragen
260
6.5 Wiederholungsfragen
262
7 Physische Modellierung
265
7.1 DBMS-Auswahl
265
7.2 Dimensionierung von Datenbanken
269
7.3 Views
274
7.4 Partitionen
281
7.5 Wiederholungsfragen
286
8 Modellierungsbeispiele
289
8.1 »books«-Datenbank
290
8.2 »todo«-Datenbank
292
8.3 »school«-Datenbank
301
8.4 »clouddb«-Datenbank
312
8.5 »sakila«-Datenbank
323
8.6 »employees«-Datenbank
329
8.7 Noch mehr Musterdatenbanken
332
8.8 Wiederholungsfragen
334
TEIL III Structured Query Language (SQL)
337
9 Relationale Algebra und SQL
339
9.1 Relationale Algebra
340
9.2 Relationenkalkül (relationaler Calculus)
350
9.3 Structured Query Language (SQL)
355
9.4 Elementare SQL-Syntaxregeln
360
9.5 Wiederholungsaufgaben
362
10 Daten abfragen (SELECT)
365
10.1 Zugriff auf die Beispieldatenbanken
365
10.2 Einfache Abfragen (WHERE, DISTINCT)
368
10.3 Tabellen verknüpfen (JOIN)
373
10.4 Ergebnisse gruppieren (GROUP BY)
385
10.5 Ergebnisse sortieren (ORDER BY)
389
10.6 Ergebnisse limitieren (LIMIT)
390
10.7 SELECT-Syntax-Zusammenfassung
392
10.8 Der Umgang mit NULL
393
10.9 Abfragen kombinieren (UNION)
395
10.10 Abfrageausführung und -optimierung
396
10.11 Wiederholungsaufgaben
407
11 Daten ändern (INSERT, UPDATE, DELETE)
411
11.1 Daten einfügen (INSERT)
412
11.2 Daten ändern (UPDATE)
417
11.3 Daten löschen (DELETE)
421
11.4 Wiederholungsaufgaben
424
12 Transaktionen
425
12.1 Transaktionen in SQL
426
12.2 Isolation Level
429
12.3 Dirty Read, Phantom Read und andere Isolation-Probleme
435
12.4 Locking-Verfahren
446
12.5 Multiversion Concurrency Control (MVCC)
453
12.6 Wiederholungsaufgaben
458
13 Subqueries, Rekursion, Zusatzfunktionen
461
13.1 SQL-Funktionen
461
13.2 Subqueries
468
13.3 Window-Funktionen (OVER)
474
13.4 Rekursion
479
13.5 Data Definition Language (DDL)
484
13.6 Systemkatalog
489
13.7 Wiederholungsaufgaben
494
14 Volltextsuche, geografische Daten, XML und JSON
495
14.1 Volltextindex und Volltextsuche
495
14.2 Geografische Daten (GIS-Funktionen)
500
14.3 XML
506
14.4 JSON
512
14.5 Wiederholungsaufgaben
515
TEIL IV Administration und Programmierung
517
15 Benutzerverwaltung
519
15.1 Authentifizierung
520
15.2 Privilegien und Rollen
522
15.3 Administration der Benutzerrechte (DCL)
526
15.4 Ein Blick hinter die Kulissen
532
15.5 Server-Konfiguration und -Absicherung
534
16 Logging und Backups
539
16.1 Logging
539
16.2 Backups
543
16.3 Import und Export
551
17 Replikation und High Availability
555
17.1 Replikation
555
17.2 Replikations-Setup in MySQL
562
17.3 High Availability
566
18 Stored Procedures und Trigger
567
18.1 Programmierung auf DBMS-Ebene versus Client-Code
567
18.2 Hello, Stored Procedure!
570
18.3 Stored Procedures und Funktionen
575
18.4 Fehlerabsicherung und Cursor
583
18.5 Administration und Sicherheit
587
18.6 Trigger
589
19 Client-Programmierung
591
19.1 Konzepte der Client-Programmierung
591
19.2 Beispiel 1: Java und JDBC
596
19.3 Beispiel 2: Kotlin und Exposed
600
TEIL V NoSQL
607
20 Von relationalen Datenbanken zu NoSQL
609
20.1 Verteilte Datenbankmanagementsysteme
610
20.2 Objektorientierte Datenbanken
619
20.3 Online Analytical Processing (OLAP)
625
20.4 NoSQL
633
20.5 Wiederholungsfragen
648
21 MongoDB
651
21.1 Installation
651
21.2 Abfragen durchführen
656
21.3 Nicht relationales Datenbankdesign
662
21.4 »todo«-Datenbank
665
Anhang
669
A MySQL installieren und einrichten
669
A.1 MySQL Workbench
670
A.2 Onlinezugriff auf die Beispieldatenbanken
672
A.3 MySQL-Server unter Windows installieren
673
A.4 MySQL-Server unter macOS installieren
676
A.5 MySQL-Server unter Linux installieren
677
A.6 Der Kommando-Client mysql
679
A.7 Die MySQL-Shell mysqlsh
683
A.8 Beispieldatenbanken lokal installieren
685
A.9 Server-Konfiguration für den Unterricht
686
B Lösungen
691
B.1 Kapitel 2: »Grundlagen relationaler Datenbanken«
691
B.2 Kapitel 3: »Datenbankmodellierung«
699
B.3 Kapitel 4: »Datentypen«
711
B.4 Kapitel 5: »Primary Keys, Foreign Keys und referenzielle Integrität«
714
B.5 Kapitel 6: »Indizes«
720
B.6 Kapitel 7: »Physische Modellierung«
726
B.7 Kapitel 8: »Modellierungsbeispiele«
729
B.8 Kapitel 9: »Relationale Algebra und SQL«
738
B.9 Kapitel 10: »Daten abfragen (SELECT)«
741
B.10 Kapitel 11: »Daten ändern (INSERT, UPDATE, DELETE)«
747
B.11 Kapitel 12: »Transaktionen«
750
B.12 Kapitel 13: »Subqueries, Rekursion, Zusatzfunktionen«
753
B.13 Kapitel 14: »Volltextsuche, geografische Daten, XML und JSON«
759
B.14 Kapitel 20: »Von relationalen Datenbanken zu NoSQL«
760
Index
769