Hugendubel.info - Die B2B Online-Buchhandlung 

Merkliste
Die Merkliste ist leer.
Bitte warten - die Druckansicht der Seite wird vorbereitet.
Der Druckdialog öffnet sich, sobald die Seite vollständig geladen wurde.
Sollte die Druckvorschau unvollständig sein, bitte schliessen und "Erneut drucken" wählen.

Datenbanksysteme

E-BookEPUB0 - No protectionE-Book
782 Seiten
Deutsch
Rheinwerk Verlag GmbHerschienen am05.03.20242. Auflage
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



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 und arbeitet als Lehrbeauftragter.
mehr
Verfügbare Formate
BuchGebunden
EUR49,90
E-BookEPUB0 - No protectionE-Book
EUR49,90

Produkt

KlappentextDatenbanken 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



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 und arbeitet als Lehrbeauftragter.
Details
Weitere ISBN/GTIN9783367100170
ProduktartE-Book
EinbandartE-Book
FormatEPUB
Format Hinweis0 - No protection
Erscheinungsjahr2024
Erscheinungsdatum05.03.2024
Auflage2. Auflage
Seiten782 Seiten
SpracheDeutsch
Dateigrösse11837 Kbytes
Artikel-Nr.13150688
Rubriken
Genre9200

Inhalt/Kritik

Inhaltsverzeichnis
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
mehr
Leseprobe


Vorwort

»Geld regiert die Welt.«
»Das Internet regiert die Welt.«
»Datenbanken regieren die Welt.«

Natürlich sind alle drei Aussagen irgendwie richtig, aber an dieser Stelle ist nur der dritte Aspekt relevant. Tatsächlich sind Datenbanken in unserem Leben allgegenwärtig: Jede Suche im Internet, jeder Einkauf in einem Onlineshop, jede medizinische Untersuchung, jeder Eintritt in ein Konzert, jede Fahrt in einem Skigebiet, jeder Aufenthalt in einer Parkgarage, jede bestandene oder missglückte Prüfung während des Studiums hinterlässt Einträge (Datensätze) in einer Datenbank.

In diesem Buch beginne ich damit, Ihnen die Grundlagen und Funktionsweise von Datenbankmanagementsystemen zu erklären. Dieser sperrige Begriff bezeichnet Programme, die Datenbanken speichern - z. B. Oracle Database Server, Microsoft SQL Server oder MySQL. Diese drei Programme sind Vertreter aus der Gruppe relationaler Datenbankmanagementsysteme. Solche Systeme garantieren die Sicherheit und die Konsistenz von Daten auch beim gleichzeitigen Zugriff durch mehrere Programme oder Clients. Im Detail werden diese Sicherheitsanforderungen durch die Begriffe Atomicity, Consistency, Isolation und Durability umschrieben (zusammen kurz ACID).

Ein Grundkonzept relationaler Datenbanken besteht darin, dass Datensätze unterschiedlicher Tabellen aufeinander verweisen. Das ermöglicht eine gut strukturierte Abbildung komplexer Daten ohne Redundanz. Ein inhaltlicher Schwerpunkt dieses Buchs liegt auf dem optimalen Design relationaler Datenbanken. Das richtige Design hat großen Einfluss darauf, wie gut sich die Daten später durchsuchen lassen und wie effizient Datenbankanwendungen laufen. Fehler in der Designphase können später kaum mehr korrigiert werden.

Bei der Nutzung von Datenbanken tritt die Structured Query Language (SQL) in den Vordergrund. Damit formulieren Sie Kommandos, um nach Daten zu suchen (SELECT), um diese zu ändern (INSERT, UPDATE und DELETE) sowie um diverse andere Aktionen durchzuführen - beispielsweise Kommandos, die Transaktionen bündeln, neue Tabellen einrichten oder Benutzer-Accounts anlegen. In mehreren Kapiteln erläutere ich die relationale Algebra, die als wissenschaftliche Grundlage von SQL gilt, sowie die vielfältigen Anwendungsformen von SQL. Dabei gehe ich auch auf neue Entwicklungen und Randbereiche ein, z. B. auf die Formulierung rekursiver Abfragen, auf die Verarbeitung geografischer Daten oder auf den Umgang mit XML- und JSON-Dokumenten.

Mit dem Datenbankentwurf und dem Ausführen von SQL-Kommandos ist es nicht getan: Administratoren müssen sich um einen anhaltend sicheren Betrieb kümmern, Benutzer-Accounts einrichten, Backups durchführen und vielleicht ein Replikationssystem konfigurieren. In der Programmierung sind Sie für die Entwicklung von Desktop-Programmen, Weboberflächen oder Apps zuständig, die die Anwendung von Datenbanken so einfach wie möglich machen. Stored Procedures können dabei helfen, dass innerhalb der Datenbank stets bestimmte Regeln (die sogenannte Geschäftslogik) eingehalten werden. Auf all diese Aspekte gehe ich im vierten Teil dieses Buchs kurz ein, um so die ganze Bandbreite der Anwendung von Datenbankmanagementsystemen zu beleuchten.

Das relationale Modell gilt zwar seit über 30 Jahren als Industriestandard - aber es ist nicht frei von Einschränkungen und Nachteilen. Problematisch ist vor allem die mangelhafte Skalierbarkeit für extrem große Datenbanken. Deswegen hat sich in den letzten Jahren in der Datenbankwelt eine Art Gegenbewegung unter dem Sammelbegriff NoSQL etabliert. In einem eigenen Kapitel gehe ich darauf ein, durch welche Merkmale sich NoSQL-Systeme von ihren relationalen Vorgängern absetzen und unter welchen Umständen ihr Einsatz zweckmäßig ist. Ein weiteres Kapitel (neu in der 2. Auflage) zeigt anhand von MongoDB die praktische Anwendung eines NoSQL-Systems.
Viel Erfolg!

Mit diesem Buch richte ich mich an alle, die den Umgang mit Datenbanken bzw. mit Datenbankmanagementsystemen lernen und vor allem verstehen möchten. Das Buch ist als Begleitlektüre zum Datenbankunterricht in der IT-Ausbildung konzipiert, eignet sich aber auch für das Selbststudium.

Besonders wichtig war es mir, bei aller notwendigen Theorie möglichst viel Praxis einfließen zu lassen, um Ihnen das Rüstzeug für reale Projekte zu geben. Dementsprechend breit ist die Palette der im Buch präsentierten Beispiele. Viele Kapitel enden mit (oft umfangreichen) Übungs- und Wiederholungsaufgaben, deren Lösungen Sie im Anhang finden.

Ich wünsche Ihnen viel Erfolg beim Erlernen der Datenbanktheorie und bei der praktischen Anwendung dieses Wissens!

Michael Kofler (https://kofler.info)

PS: Bedanken möchte ich mich an dieser Stelle bei Prof. Thomas Eppler, bei Holger Jakobs und bei Stefan Pröll, die mir eine Menge wertvolles Feedback zum Manuskript gegeben haben.
Die Rolle von MySQL in diesem Buch

Es ist möglich, Datenbanktheorie quasi in den luftleeren Raum hinein zu vermitteln. Davon halte ich aber nichts. Damit Sie lernen, mit Datenbanken umzugehen, müssen Sie eigene Datenbanken entwerfen, mit Daten füllen und Abfragen für diese Daten testen. Deswegen sollte Ihnen bei der Lektüre dieses Buchs ein Database Management System (DBMS) zur Verfügung stehen, um die vielen in diesem Buch präsentierten Beispiele selbst auszuprobieren.

Für dieses Buch habe ich mich für MySQL als Arbeitsumgebung entschieden. Für das Open-Source-Programm sprechen einige Argumente:

Der Datenbank-Server ist inklusive des hervorragenden Administrationswerkzeugs MySQL Workbench kostenlos für alle gängigen Plattformen verfügbar (Windows, macOS, Linux).


MySQL ist sehr weit verbreitet und bildet für viele Websites das Datenbankfundament. MySQL-Kenntnisse sind also für Ihre weitere berufliche Arbeit vorteilhaft.


MySQL ist gut dokumentiert.


Wie Sie den MySQL-Server und die MySQL Workbench auf Ihrem Rechner installieren und einige Musterdatenbanken einrichten, beschreibe ich im Anhang. Als zusätzlichen Service ermögliche ich Ihnen den Zugriff auf einige Musterdatenbanken direkt über das Internet. Damit können Sie ohne eine eigene Server-Installation SQL-Abfragen ausprobieren. (Ganz ersetzt dieser Service eine eigene Installation aber nicht: Sie können damit keine Daten ändern, keine eigenen Datenbanken einrichten und auch keine administrativen Funktionen ausprobieren.)

MySQL versus MariaDB

Nachdem MySQL von Oracle übernommen wurde, haben ehemalige MySQL-Entwickler das Projekt MariaDB gestartet. Das Ergebnis ist ein weitgehend kompatibler Datenbank-Server mit ein wenig abweichenden Lizenzbestimmungen. In meinem beruflichen Umfeld arbeite ich häufig mit MariaDB unter Linux.

Für dieses Buch habe ich mich aber ganz pragmatisch auf MySQL festgelegt. Im Vordergrund des Buchs stehen Datenbankgrundlagen. Es fehlt der Platz, um auf die kleinen Unterschiede zwischen MySQL und MariaDB einzugehen. Durch die Beschränkung auf ein Programm bleiben Installationsanleitungen, der Umgang mit Beispielen usw. übersichtlicher.

Wenn Sie schon mit MariaDB vertraut sind, können Sie dieses DBMS selbstverständlich auf Ihrem Testrechner verwenden. Fast alle in diesem Buch präsentierten Beispiele funktionieren auch dort.

Glossar

In diesem Buch kommen einige Abkürzungen immer wieder vor, ohne dass ich sie jedes Mal neu erläutere.

Kürzel

Bedeutung

ACID

Atomicity, Consistency, Isolation und Durability

API

Application Programming Interface (Programmierschnittstelle)

DB

Database

DBMS

Database Management System

ER-Modell

Entity-Relationship-Modell

FK
...
mehr

Autor

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 und
arbeitet als Lehrbeauftragter.
Weitere Artikel von
Kofler, Michael