Datenbanksysteme

Das umfassende Lehrbuch für Ausbildung, Beruf und Studium - Auflage 2024
Sofort lieferbar | Lieferzeit: Sofort lieferbar I
Alle Preise inkl. MwSt. | Versandkostenfrei
ISBN-13:
9783367100156
Veröffentl:
2024
Erscheinungsdatum:
05.03.2024
Seiten:
782
Autor:
Michael Kofler
Gewicht:
1556 g
Format:
248x181x48 mm
Serie:
Rheinwerk Computing
Sprache:
Deutsch
Beschreibung:

Michael Kofler hat Telematik an der TU Graz studiert und ist einer der erfolgreichsten deutschsprachigen IT-Fachbuchautoren. Zu seinen Themengebieten zählen neben Linux auch IT-Sicherheit, Python, Swift, Java und der Raspberry Pi. Er ist Entwickler, berät Firmen undarbeitet als Lehrbeauftragter.
Mit Übungen und Musterlösungen zum Selbststudium

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

Datenbanken sind das Rückgrat moderner IT-Systeme. Wie Sie sicher mit ihnen arbeiten, zeigt Ihnen Dr. Michael Kofler in diesem umfassenden Handbuch. Sie lernen grundlegende Begriffe und Konzepte kennen, die Sie für gutes Datenbankdesign brauchen, und erfahren, wie Sie Daten modelliere und strukturieren. Ein Schnellkurs in SQL zeigt Ihnen, wie Daten abgefragt und geändert werden, Praxiswissen zur Client-Entwicklung und DBMS-Administration machen Sie fit für den Berufsalltag, Übungen und anschauliche Beispiele helfen Ihnen beim Selbststudium und der Prüfungsvorbereitung.

Aus dem Inhalt:

  • Datenbankmodellierung: vom ER-Modell zum perfekten Schema
  • Datentypen
  • Primary Keys, Foreign Keys und referenzielle Integrität
  • Indizes
  • Daten mit SQL abfragen und ändern
  • SQL für Fortgeschrittene: Subqueries, Transaktionen, Rekursion, DDL
  • Client-Programmierung
  • Benutzerverwaltung und Access Control
  • Backups und Logging
  • Replikation und High Availability
  • Stored Procedures und Trigger
  • NoSQL: Datenverarbeitung jenseits relationaler Datenbanken

Kunden Rezensionen

Zu diesem Artikel ist noch keine Rezension vorhanden.
Helfen sie anderen Besuchern und verfassen Sie selbst eine Rezension.