Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
11
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
2 Grundlagen relationaler Datenbanken
45
2.1 Datenbank versus Datenbankmanagementsystem
45
2.2 Das relationale Modell
54
2.3 Transaktionen
63
2.4 Datensicherheit und ACID
66
2.5 Codds zwölf Gebote
76
2.6 Kritik am relationalen Modell
79
2.7 Wiederholungsfragen
84
3 Von relationalen Datenbanken zu NoSQL
89
3.1 Verteilte Datenbankmanagementsysteme
91
3.2 Objektorientierte Datenbanken
99
3.3 Online Analytical Processing (OLAP)
105
3.4 NoSQL
113
3.5 Wiederholungsfragen
128
TEIL II Datenbanken modellieren
131
4 Datenbankmodellierung
133
4.1 Datenbankschema
134
4.2 Modellierungsstufen
136
4.3 Modellierungstechniken
140
4.4 Das Entity-Relationship-Modell
144
4.5 Sonderfälle im ER-Modell
150
4.6 Alternative Diagrammformen und Notationen (IDEF1X, Min-Max, UML)
158
4.7 Vom ER-Diagramm zum Tabellenschema
168
4.8 Namensregeln
176
4.9 Normalformen
178
4.10 Normalisierungsbeispiel
190
4.11 Modellierung hierarchischer bzw. unstrukturierter Daten
193
4.12 Wiederholungsfragen
200
5 Datentypen
205
5.1 SQL und das Kommando »CREATE TABLE«
205
5.2 Ganze Zahlen
208
5.3 Gleit- und Festkommazahlen
210
5.4 Zeichenketten
214
5.5 Datum und Uhrzeit
218
5.6 Boolesche Zustände
220
5.7 Binäre Daten (BLOBs)
220
5.8 NULL, Defaultwerte und Werteinschränkungen (CHECKs)
223
5.9 Besondere Datentypen
226
5.10 Virtuelle Spalten (Generated Columns)
231
5.11 Beispiele
231
5.12 Wiederholungsfragen
234
6 Primary Keys, Foreign Keys und referenzielle Integrität
235
6.1 Primary Key (Primärschlüssel)
236
6.2 Foreign Keys (Fremdschlüssel)
248
6.3 Foreign-Key-Beispiele
256
6.4 Wiederholungsfragen
263
7 Indizes
265
7.1 Indexformen
266
7.2 Index-Interna und B-Trees
272
7.3 Indizes – Pro und Kontra
286
7.4 Cache-Systeme für Abfragen
289
7.5 Wiederholungsfragen
291
8 Physische Modellierung
295
8.1 DBMS-Auswahl
295
8.2 Dimensionierung von Datenbanken
300
8.3 Views
304
8.4 Partitionen
311
8.5 Wiederholungsfragen
316
9 Modellierungsbeispiele
319
9.1 »books«-Datenbank
320
9.2 »todo«-Datenbank
322
9.3 »school«-Datenbank
331
9.4 »clouddb«-Datenbank
342
9.5 »sakila«-Datenbank
353
9.6 »employees«-Datenbank
359
9.7 Noch mehr Musterdatenbanken
362
9.8 Wiederholungsfragen
363
TEIL III Structured Query Language (SQL)
367
10 Relationale Algebra
369
10.1 Relationale Algebra
370
10.2 Relationenkalkül (relationaler Calculus)
380
10.3 Structured Query Language (SQL)
385
10.4 Elementare SQL-Syntaxregeln
390
10.5 Wiederholungsaufgaben
392
11 Daten abfragen (SELECT)
393
11.1 Zugriff auf die Beispieldatenbanken
393
11.2 Einfache Abfragen (WHERE, DISTINCT)
396
11.3 Tabellen verknüpfen (JOIN)
401
11.4 Ergebnisse gruppieren (GROUP BY)
412
11.5 Ergebnisse sortieren (ORDER BY)
417
11.6 Ergebnisse limitieren (LIMIT)
418
11.7 SELECT-Syntax-Zusammenfassung
420
11.8 Der Umgang mit NULL
420
11.9 Abfragen kombinieren (UNION)
423
11.10 Abfrageausführung und -optimierung
424
11.11 Wiederholungsaufgaben
435
12 Daten ändern (INSERT, UPDATE, DELETE)
437
12.1 Daten einfügen (INSERT)
437
12.2 Daten ändern (UPDATE)
443
12.3 Daten löschen (DELETE)
445
12.4 Wiederholungsaufgaben
448
13 Transaktionen
451
13.1 Transaktionen
452
13.2 Isolation Level
455
13.3 Dirty Read, Phantom Read und andere Isolation-Probleme
461
13.4 Locking-Verfahren
472
13.5 Multiversion Concurrency Control (MVCC)
479
13.6 Wiederholungsaufgaben
484
14 Subqueries, Rekursion, Zusatzfunktionen
487
14.1 SQL-Funktionen
487
14.2 Subqueries
494
14.3 Window-Funktionen (OVER)
500
14.4 Rekursion
503
14.5 Data Definition Language (DDL)
509
14.6 Systemkatalog
514
14.7 Wiederholungsaufgaben
519
15 Volltextsuche, geografische Daten, XML und JSON
521
15.1 Volltextindex und Volltextsuche
521
15.2 Geografische Daten (GIS-Funktionen)
526
15.3 XML
532
15.4 JSON
538
15.5 Wiederholungsaufgaben
541
TEIL IV Administration und Programmierung
543
16 Benutzerverwaltung
545
16.1 Authentifizierung
546
16.2 Privilegien und Rollen
548
16.3 Administration der Benutzerrechte (DCL)
552
16.4 Ein Blick hinter die Kulissen
558
16.5 Server-Konfiguration und -Absicherung
560
17 Logging und Backups
565
17.1 Logging
565
17.2 Backups
569
17.3 Import und Export
577
18 Replikation und High Availability
581
18.1 Replikation
581
18.2 Replikations-Setup in MySQL
588
18.3 High Availability
592
19 Stored Procedures und Trigger
593
19.1 Programmierung auf DBMS-Ebene versus Client-Code
593
19.2 Hello, Stored Procedure!
596
19.3 Stored Procedures und Funktionen
601
19.4 Fehlerabsicherung und Cursor
609
19.5 Administration und Sicherheit
613
19.6 Trigger
615
20 Client-Programmierung
617
20.1 Konzepte der Client-Programmierung
617
20.2 Beispiel 1: Java und JDBC
622
20.3 Beispiel 2: Kotlin und Exposed
626
A MySQL installieren und einrichten
633
A.1 MySQL Workbench
634
A.2 Onlinezugriff auf die Beispieldatenbanken
636
A.3 MySQL-Server unter Windows installieren
637
A.4 MySQL-Server unter macOS installieren
640
A.5 MySQL-Server unter Linux installieren
641
A.6 Der Kommando-Client mysql
643
A.7 Die MySQL-Shell mysqlsh
647
A.8 Beispieldatenbanken lokal installieren
649
A.9 Server-Konfiguration für den Unterricht
650
B Lösungen
655
B.1 Kapitel 2: »Grundlagen relationaler Datenbanken«
655
B.2 Kapitel 3: »Von relationalen Datenbanken zu NoSQL«
663
B.3 Kapitel 4: »Datenbankmodellierung«
670
B.4 Kapitel 5: »Datentypen«
682
B.5 Kapitel 6: »Primary Keys, Foreign Keys und referenzielle Integrität«
685
B.6 Kapitel 7: »Indizes«
691
B.7 Kapitel 8: »Physische Modellierung«
697
B.8 Kapitel 9: »Modellierungsbeispiele«
700
B.9 Kapitel 10: »Relationale Algebra und SQL«
710
B.10 Kapitel 11: »Daten abfragen (SELECT)«
712
B.11 Kapitel 12: »Daten ändern (INSERT, UPDATE, DELETE)«
719
B.12 Kapitel 13: »Transaktionen«
721
B.13 Kapitel 14: »Subqueries, Rekursion, Zusatzfunktionen«
725
B.14 Kapitel 15: »Volltextsuche, geografische Daten, XML und JSON«
730
Index
733