20,99 €
Datenbanken sind unverzichtbare Basis fast aller Informationssysteme. Dieses in dritter, erweiterter Auflage vorliegende Buch vermittelt Ihnen das notwendige Grundlagenwissen zu Datenbanksystemen. Dabei werden, nach einem allgemeinen Überblick über die verschiedenen Datenbankmodelle, vor allem der Entwurf und die Implementierung relationaler Datenbanken besprochen. Im Mittelpunkt des praktischen Teils steht die Datenbanksprache SQL, die anhand vieler Beispiele detailliert erläutert wird. Auch auf SQL-spezifische Besonderheiten der verbreiteten Datenbankmanagementsysteme MySQL, Oracle und PostgreSQL wird eingegangen. Mit den zahlreich vorhandenen Übungsaufgaben sowie einer Fallstudie zum Download können Sie Ihren Lernfortschritt überprüfen. Musterlösungen dazu sind vorhanden.
Der Inhalt orientiert sich an den Empfehlungen der Gesellschaft für Informatik für das Studienfach Informatik.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 446
Veröffentlichungsjahr: 2022
Datenbanksysteme für Dummies
»Hilfe, ich habe morgen eine Prüfung im Fach Datenbanksysteme und habe alles vergessen!« Vielleicht beruhigt und hilft die folgende kurze Zusammenstellung einiger »Basics«. Aber bitte nicht mit zur Klausur nehmen; es sei denn, die Schummelseite ist als Hilfsmittel erlaubt.
Mit einem ER-Diagramm lassen sich Entitäts- und Beziehungstypen modellieren.
Ein Kunde kann N, also mehrere Bestellungen haben; eine Bestellung ist einem Kunden zugeordnet. Daneben gibt es noch 1:1- und M:N-Beziehungen. Für die MC-Notation (Multiple Can bzw. Choice), einer Erweiterung der Kardinalitäten auf Minimal- und Maximalwerte, gilt:
1:MC
Ein Kunde kann mehrere, aber auch keine Bestellungen haben »MC«.
Eine Bestellung ist aber immer genau einem Kunden zugeordnet »1«.
C:MC
Es könnte zusätzlich auch Bestellungen ohne einen Kunden geben »C«.
Weitere Notationsformen sind die Min-Max-Notation und die Krähenfuß-Notation.
Eine Relation R(A1, A2, …, An) ⊆ D1 x D2 x … x Dn – umgangssprachlich als Tabelle bezeichnet – ist eine Teilmenge eines Kreuzproduktes über sogenannte Domains. Die Domains Di sind dabei die den Attributen Ai zugeordneten, gültigen Wertebereiche, die auf einfachen SQL-Datentypen wie Zahlen, Zeichenketten (Strings) oder Datum basieren.
CREATE TABLE Test1( A1 NUMERIC(4) CHECK (A1 > 0), A2 VARCHAR(20), A3 DATE, A4 INTEGER, …PRIMARY KEY (A1),FOREIGN KEY (A4) REFERENCES Test2(…));
Jede Relation hat mindestens eine minimale Menge von Attributen, deren Werte je Tupel paarweise verschieden sind. Dies ist ein Schlüsselkandidat (candidate key). Einer der Schlüsselkandidaten wird als Primärschlüssel festgelegt (primary key).
Jede Attributmenge, die in einer anderen Relation Primärschlüssel (oder zumindest Schlüsselkandidat) ist, heißt Fremdschlüssel (foreign key). Mithilfe der Fremdschlüssel werden Beziehungen zwischen Relationen definiert.
Entitätstypen werden zu Tabellen. 1:1-Beziehungen werden eventuell zu einer Tabelle zusammengefasst. Ansonsten werden 1:1- und 1:N-Beziehungen durch Fremdschlüssel abgebildet. Ausnahme sind MC:C-, M:C- und C:C-Beziehungen, bei denen ein die Beziehung beschreibendes Attribut vorhanden ist; insbesondere, wenn es als NOT NULL definiert ist. Dies erfordert dann eine Zwischentabelle. M:N-Beziehungen erfordern immer eine Zwischentabelle mit den Primärschlüsseln der beiden Entitätstypen als zusammengesetzten Primärschlüssel, genauso M:N:P-Beziehungen.
Die 3-Ebenen-Architektur strukturiert ein relationales Datenbanksystem wie folgt:
Die externe Ebene besteht aus den Datensichten für die einzelnen Benutzer, die mithilfe von sogenannten externen Schemata definiert und mit dem SQL-Befehl CREATE VIEW angelegt werden.Die konzeptionelle Ebene ist die Sicht auf die Gesamtheit aller Daten und wird durch das konzeptionelle Schema beschrieben. Ziel ist eine redundanzfreie Strukturierung der Daten (siehe Normalformen). Die Tabellen werden mit dem Befehl CREATE TABLE angelegt.Die interne Ebene beschreibt die physischen Speicherstrukturen, in denen die Daten abgelegt werden, und wird durch das interne Schema beschrieben. Ziel ist ein effizienter Zugriff, indem, zum Beispiel mit CREATE INDEX, Indizes für den wahlfreien Zugriff angelegt werden.Eine Relation ist in der ersten Normalform (1. NF), wenn jedes Attribut vom gewählten Primärschlüssel funktional abhängig und insbesondere »atomar« ist. Atomar bedeutet, dass es nicht zusammengesetzt, mengenwertig oder geschachtelt ist und somit direkt auf einen der vom relationalen Datenbank-Managementsystem bereitgestellten SQL-Datentypen abgebildet werden kann.
Eine Relation befindet sich in der zweiten Normalform (2. NF), wenn sie in der 1. NF ist und alle Nicht-Schlüsselattribute voll funktional von jedem Schlüsselkandidaten abhängig sind. Es darf also keine funktionalen Abhängigkeiten eines Attributs von einer Teilmenge eines Schlüsselkandidaten (also insbesondere des Primärschlüssels) geben.
Eine Relation ist in der dritten Normalform (3. NF), wenn sie in der 2. NF ist und es innerhalb der Menge der Nicht-Schlüsselattribute keine transitiven Abhängigkeiten von den Schlüsselkandidaten gibt.
Zwischen den Attributmengen α und γ besteht eine transitive Abhängigkeit, wenn es eine Attributmenge β mit α → β → γ gibt. Dabei darf aber α nicht gleichzeitig auch funktional von β abhängig sein.
Weitere Normalformen sind die Boyce-Codd-Normalform und die 4. und 5. NF.
Und bei den Datentypen brauchen Sie vermutlich vor allem diese:
CHAR(n)
Zeichenkette der Länge n
VARCHAR(n)
Zeichenkette mit der maximalen Länge von n Zeichen
NUMERIC(n)
Ganze Zahl mit maximal n Ziffern
DATE
Datum
Datenbanksysteme für Dummies
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
3. Auflage 2023
© 2023 Wiley-VCH GmbH, Boschstraße 12, 69469 Weinheim, Germany
All rights reserved including the right of reproduction in whole or in part in any form. This book published by arrangement with John Wiley and Sons, Inc.
Alle Rechte vorbehalten inklusive des Rechtes auf Reproduktion im Ganzen oder in Teilen und in jeglicher Form. Dieses Buch wird mit Genehmigung von John Wiley and Sons, Inc. publiziert.
Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.
Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.
Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.
Print ISBN: 978-3-527-72037-8ePub ISBN: 978-3-527-84115-8
Coverfoto: Siarhei – stock.adobe.comKorrektur: Shangning Postel-Heutz
Cover
Titelblatt
Impressum
Einleitung
Über dieses Buch
Konventionen in diesem Buch
Was Sie nicht lesen müssen
Törichte Annahmen über den Leser
Wie dieses Buch aufgebaut ist
Symbole, die in diesem Buch verwendet werden
Wie es weitergeht
Teil I: Einführung in Datenbanksysteme
Kapitel 1: Wofür Datenbanksysteme gut sind
Daten und ihre Speicherung
Ein einführendes Beispiel
Aufgaben
Kapitel 2: Definition und Architektur von Datenbanksystemen
Dateiverarbeitung: ein Überblick
Datenbanksysteme: Architektur und Definition
Eigenschaften von Datenbanksystemen
Datenbank- und Informationssysteme
Aufgaben
Kapitel 3: Überblick über Datenmodelle
Klassifikation von Daten
Datenmodelle
Ein historischer Überblick
Das netzwerkartige Datenmodell
Das relationale Datenmodell
NoSQL-Datenmodelle
Vergleich von NoSQL- und relationalen Systemen
Benutzungsschnittstellen
Übersicht über Datenbanksysteme
Aufgaben
Kapitel 4: Vorgehensweise bei der Datenbankentwicklung
Ein einfacher Software-Entwicklungsprozess
Phasenmodell der Datenbankentwicklung
Die Anforderungsanalyse im Detail
Der Datenbankentwurf im Detail
Ein Beispiel mit Anforderungsanalyse und Entwurf
Aufgaben
Teil II: Von der Aufgabenstellung zur relationalen Datenbank
Kapitel 5: Semantische Modellierung einer Datenbank
Entitätstypen, Attribute und Beziehungen
Die Entity-Relationship-Modellierung
Semantische Modellierung mit UML-Klassendiagrammen
Aufgaben
Kapitel 6: Das relationale Datenbankmodell im Detail
Erläuterungen zum Begriff »Relation«
3-Ebenen Architektur
Merkmale relationaler Datenbanken
Integritätsaspekte relationaler Datenbanken
Relationenalgebra im Überblick
Aufgaben
Kapitel 7: Entwurf und Implementierung des Datenbankschemas
Umsetzung eines Entity-Relationship-Diagramms in ein Datenbankschema
Tabellen und ihre Attribute
Normalisierung
Erzeugen der Tabellen mit SQL
Änderung der Tabellenstruktur
Aufgaben
Teil III: Zugriff auf relationale Datenbanken mit SQL
Kapitel 8: Die DML-Befehle von SQL
SQL und relationale Datenbanksysteme
Der SELECT-Befehl im Überblick
Der INSERT-Befehl
Der UPDATE-Befehl
Der DELETE-Befehl
DML-Befehle und Fremdschlüssel
Aufgaben
Kapitel 9: Der SELECT-Befehl im Detail
Datenbankschema für die Beispiele
Abfrage einer einzelnen Tabelle
Abfragen von Zeiten und Zeiträumen
Abfragen von JSON-Objekten
Abfragen über mehrere Tabellen
Gruppierung mit »GROUP BY«
Unterabfragen
Aufgaben
Teil IV: Die Verwaltung einer relationalen Datenbank
Kapitel 10: Benutzersichten
Was sind Benutzersichten?
Beispiele für Views
Vorteile von Views
Views und die Generalisierung/Spezialisierung
DML-Operationen bei Views
Materialized Views
Aufgaben
Kapitel 11: Datensicherheit und Zugriffsrechte bei Datenbanken
Datensicherheit und Datenschutz
Benutzer und ihre Zugriffsrechte
Aufgaben
Kapitel 12: Datenbankoptimierung
Einflussmöglichkeiten bei SQL-Abfragen
Indizes als Zugriffspfade
Der Ausführungsplan
Partitionierung
Optimierung des Datenbankschemas
Hardware und Systemumgebung
Einige Tipps zur Performance-Steigerung
Aufgaben
Teil V: Objektrelationale Datenbanksysteme
Kapitel 13: Objektorientierung und relationale Datenbanksysteme
Objektorientierte Softwareentwicklung
Übertragung objektorientierter Konstrukte in die relationale Datenbankwelt
Das objektrelationale Datenbankmodell
Aufgaben
Kapitel 14: Arbeiten mit objektrelationalen Tabellen
Einige objektrelationale Strukturen
Tabellen mit UDT als Attribut
Tabellen mit Listen als Attribut
Tabellen mit Tabellen als Attribut
Aufgaben
Teil VI: Grundlagen zur Erstellung von Datenbankanwendungen
Kapitel 15: Trigger und Stored Procedures
Architektur von Datenbank-Anwendungsprogrammen
PL/SQL
Trigger
Stored Procedures
Aufgaben
Kapitel 16: Programmieren von Datenbankanwendungen
JDBC
PDO: PHP und MySQL
RUDI-Operationen für MongoDB mit Python
Generieren von Web-Anwendungen
Aufgaben
Kapitel 17: Anwendungsbereiche relationaler Datenbanken
Informationssysteme in Unternehmen
Relationale Datenbanken als Basis von Data-Warehouse-Systemen
Geo-Datenbanken als Anwendung objektrelationaler Systeme
Aufgaben
Kapitel 18: SQL oder nicht SQL
Zusammenfassung
Merkmale relationaler Datenbanksysteme
Welche Datenbank für welches Problem?
Wenn doch SQL? Eine Fallstudie
Aufgaben
Teil VII: Der Top-10-Teil
Kapitel 19: Die 10 größten Fehler beim Entwurf relationaler Datenbanken
Verletzung der Normalformen
Schlecht gewählte Variablennamen und Datentypen
Keine Check-Klauseln für Attribute
Keine Fremdschlüsseldefinitionen
Redundante Daten
Datenbankdateien und deren Kopien auf demselben Laufwerk
Keine vollständige und korrekte Abbildung des semantischen Modells
Zu wenig Absprache mit dem Anwender
Glossar nicht überprüft bzw. angepasst
Nicht genügend Testdaten
Kapitel 20: Die 10 wichtigsten SQL-Befehle und ihre Varianten
SELECT mit einer Tabelle
SELECT mit mehreren Tabellen (Join)
SELECT mit Gruppierung
SELECT mit Unterabfrage
INSERT
UPDATE
DELETE
CREATE
DROP
COMMIT und ROLLBACK
Kapitel 21: 10 Fragen bei der Entity-Relationship-Modellierung
ER-Modellierung oder UML?
Welche Schreibweise?
Sind die Entitätstypen korrekt gebildet?
Sind alle notwendigen Beziehungen erkannt?
Redundante Beziehungen oder nicht?
Gibt es existenzabhängige Entitätstypen?
1:1-Beziehung: Muss das sein?
Stimmen die Kardinalitäten?
Ist das ER-Diagramm mit dem Anwender abgesprochen?
Ist das Glossar korrekt?
Lösungen zu den Übungen
Übungen zu Kapitel 1
Übungen zu Kapitel 3
Übungen zu Kapitel 4
Übungen zu Kapitel 5
Übungen zu Kapitel 6
Übungen zu Kapitel 7
Übungen zu Kapitel 8
Übungen zu Kapitel 9
Übungen zu Kapitel 10
Übungen zu Kapitel 11
Übungen zu Kapitel 12
Übungen zu Kapitel 13
Übungen zu Kapitel 14
Übungen zu Kapitel 15
Übungen zu Kapitel 16
Übungen zu Kapitel 17
Literaturverzeichnis
Abbildungsverzeichnis
Stichwortverzeichnis
End User License Agreement
Kapitel 1
Abbildung 1.1: Beispiele für Daten und Informationen
Abbildung 1.2: ER-Diagramm für die Kontakte
Abbildung 1.3: Erzeugen der Tabelle »Kontakte«
Abbildung 1.4: Eingabe von Daten in die Tabelle »Kontakte«
Abbildung 1.5: Definition einer Datenbankabfrage
Kapitel 2
Abbildung 2.1: Komplexität der Dateiverarbeitung
Abbildung 2.2: Prinzipskizze für einen Dateizugriff
Abbildung 2.3: Architektur eines Datenbanksystems
Abbildung 2.4: Prinzipskizze für Datenbankzugriff
Abbildung 2.5: Datenbank- und Informationssysteme
Kapitel 3
Abbildung 3.1: Netzwerk-Datenmodell
Abbildung 3.2: Family group »Kunden«
Abbildung 3.3: Dokumentenorientierte Datenbank
Abbildung 3.4: Ausgabe der Dokumente mit Name Mustermann
Kapitel 4
Abbildung 4.1: Ein einfacher Software-Entwicklungsprozess
Abbildung 4.2: Vom Problem zur Datenbank
Abbildung 4.3: Die einzelnen Phasen beim Datenbankentwurf
Abbildung 4.4: Modellierungsschritte bei der Kontaktdatenbank
Abbildung 4.5: Anmeldung zum Griechisch-Kurs
Abbildung 4.6: VHS-Beispiel, Version 1
Abbildung 4.7: VHS-Beispiel, Version 2
Abbildung 4.8: VHS-Beispiel, Version 3
Kapitel 5
Abbildung 5.1: Entitäten und ihre zugehörigen Typen
Abbildung 5.2: 1:1-Beziehung
Abbildung 5.3: 1:N-Beziehung
Abbildung 5.4: M:N-Beziehung
Abbildung 5.5: Entitätstyp mit Attributen
Abbildung 5.6: 1:1-Beziehung im ER-Modell
Abbildung 5.7: 1:N-Beziehung im ER-Modell
Abbildung 5.8: M:N-Beziehung im ER-Modell
Abbildung 5.9: M:N:P-Beziehung im ER-Modell
Abbildung 5.10: 1:C-Beziehung
Abbildung 5.11: MC:M-Beziehung
Abbildung 5.12: VHS-Beispiel in MC-Notation
Abbildung 5.13: Onlineshop in MC-Notation
Abbildung 5.14: Baukastenstückliste
Abbildung 5.15: Baukastenstückliste in MC-Notation
Abbildung 5.16: Baukastenstückliste mit MC:MC-Beziehung
Abbildung 5.17: Allgemeine M:N-Beziehung
Abbildung 5.18: Zugehörige 1:N- und 1:M-Beziehungen
Abbildung 5.19: 1:C vs. (0,1):(1,1)
Abbildung 5.20: N:MC vs. (0,M):(1:N)
Abbildung 5.21: UML-Klassendiagramm (vereinfachte Darstellung)
Abbildung 5.22: Klassendiagramm mit Assoziation
Abbildung 5.23: Aggregation
Abbildung 5.24: Komposition
Abbildung 5.25: Constraints bei Beziehungen
Abbildung 5.26: ER-Diagramm für Aufträge und Angebote
Kapitel 6
Abbildung 6.1: Konstruktoren einer Relation
Abbildung 6.2: Schichtenmodell einer relationalen Datenbank
Abbildung 6.3: Transaktion
Abbildung 6.4: Striktes Zwei-Phasen-Sperrprotokoll
Abbildung 6.5: Rekonstruktion einer Datenbank
Kapitel 7
Abbildung 7.1: ER-Diagramm mit Attributen
Abbildung 7.2: ER-Diagramm mit 1:N-Beziehung
Abbildung 7.3: ER-Diagramm mit 1:1-Beziehung (MC-Notation)
Abbildung 7.4: ER-Diagramm mit 1:C-Beziehung (MC-Notation)
Abbildung 7.5: M:N-Beziehung
Abbildung 7.6: MC:C-Beziehung
Abbildung 7.7: Hierarchie der Normalformen
Abbildung 7.8: Metadaten im relationalen DBMS
Abbildung 7.9: ER-Diagramm für Übung 7.4
Abbildung 7.10: ER-Diagramm zu Übung 7.6
Abbildung 7.11: ER-Diagramm zu Übung 7.8
Kapitel 8
Abbildung 8.1: Der SELECT-Befehl
Kapitel 9
Abbildung 9.1: Join zwischen der Kunden- und Bestellungstabelle
Kapitel 10
Abbildung 10.1: Datenunabhängigkeit durch Views
Abbildung 10.2: Generalisierung/Spezialisierung
Kapitel 11
Abbildung 11.1: Der Ablauf der Rechtevergabe
Kapitel 12
Abbildung 12.1: SQL-Befehlsabarbeitung (SELECT)
Abbildung 12.2: Zugriff über Primärschlüsselindex
Abbildung 12.3: Index für das Attribut »Name«
Abbildung 12.4: Bitmap-Index für das Attribut Wohnort
Abbildung 12.5: Partitionierung
Abbildung 12.6: Satzweise Speicherung
Abbildung 12.7: Spaltenorientierte Speicherung
Kapitel 13
Abbildung 13.1: UML-Klassendiagramm mit Vererbung
Abbildung 13.2: Verschachtelte Klassen
Abbildung 13.3: Konstruktoren bei objektrelationalen Datenbanksy...
Abbildung 13.4: Assoziation, Aggregation, Komposition
Kapitel 14
Abbildung 14.1: Typen bei objektrelationalen Datenbanksystemen
Abbildung 14.2: VArray
Abbildung 14.3: Nested Table
Kapitel 15
Abbildung 15.1: Aufbau eines Programms
Abbildung 15.2: Programm mit Datenbankzugriff
Abbildung 15.3: DBMS mit Spracherweiterung
Kapitel 16
Abbildung 16.1: Architektur von JDBC
Kapitel 17
Abbildung 17.1: Hierarchie der Informationssysteme
Abbildung 17.2: Star-Schema
Abbildung 17.3: Architektur eines Data Warehouse
Abbildung 17.4: Snowflake-Schema
Abbildung 17.5: Beispiel für Datentyp SDO_Geometry
Kapitel 18
Abbildung 18.1: ER-Diagramm zur Fallstudie
Kapitel 21
Abbildung 21.1: Beispiel für redundante Beziehungen
Lösungen zu den Übungen
Abbildung A.1: Semantisches Schema Mitarbeiter_Räume
Abbildung A.2: ER-Diagramm zu Übung 5.2
Abbildung A.3: Beispiel N:MC als ER-Diagramm
Abbildung A.4: ER-Diagramm zu Übung 7.5
Abbildung A.5: ER-Diagramm zu Übung 7.7
Abbildung A.6: ER-Diagramm zu Übung 7.10
Abbildung A.7: Starschema »Klausurergebnisse«
Cover
Titelblatt
Impressum
Inhaltsverzeichnis
Einleitung
Fangen Sie an zu lesen
Lösungen zu den Übungen
Literaturverzeichnis
Abbildungsverzeichnis
Stichwortverzeichnis
End User License Agreement
1
2
3
4
7
8
21
22
23
24
25
26
27
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
241
242
243
244
245
246
247
248
249
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
355
356
357
358
359
360
361
363
364
365
366
367
369
370
371
372
373
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
405
406
407
411
412
413
414
Offensichtlich interessieren Sie sich für Datenbanksysteme, denn sonst hätten Sie dieses Buch nicht in die Hand genommen.
Sie besuchen eine Vorlesung oder einen Fortbildungskurs zu diesem Thema?
Sie wollen – beruflich oder privat – eine Datenbank aufbauen oder (müssen) in einem Datenbankprojekt mitarbeiten, fühlen sich aber noch nicht fit auf diesem Gebiet?
Oder Sie haben oft mit Datenbanken zu tun und wollen etwas mehr darüber wissen?
Dann ist dieses Lehrbuch genau das Richtige für Sie! Der Inhalt basiert auf den Erfahrungen, die ich als Hochschullehrer über viele Jahre bei der Vermittlung des Datenbankstoffes in Form von Vorlesungen und Praktika gesammelt habe.
Grundsätzlich gilt: Datenbankvorlesungen machen Spaß; den Lehrenden (mir jedenfalls) und den meisten Studierenden. Warum? Das Thema »Datenbanksysteme« ist eine gute Mischung aus Theorie und Praxis. Im Rahmen der didaktisch fundierten, kompetenzorientierten Herangehensweise dieses Buches lernen Sie Datenbank-relevante Dinge zu verstehen, zu analysieren und zu bewerten sowie frühzeitig anzuwenden. Sie werden das an Ihren persönlichen Fortschritten und Erfolgen zum Beispiel bei der Modellierung mit Entity-Relationship-Diagrammen, der Normalisierung relationaler Datenbanken, aber vor allem auch beim Erlernen der Datenbank-Abfragesprache SQL noch sehen – vorausgesetzt, Sie lesen weiter!
Das Ziel dieses Lehrbuches über Datenbanksysteme ist es,
Ihnen zum einen genügend Wissen zu vermitteln, damit Sie im Studium, in der Ausbildung oder im Beruf bei diesem Thema kompetent mitreden oder eine Prüfung bestehen können,
und zum anderen Ihr Interesse zu wecken, sich weiterhin praktisch damit zu beschäftigen.
Doch welchen Inhalt soll ein solches Buch haben? Was gehört alles dazu? Was sollte detailliert und was weniger genau behandelt, und auf was kann verzichtet werden? Sie wollen ja schließlich keine 1000 Seiten lesen!
In den Empfehlungen der Gesellschaft für Informatik für Bachelor- und Masterprogramme im Studienfach Informatik an Hochschulen werden unter anderem die Kompetenzanforderungen auf dem Gebiet der Datenbank- und Informationssysteme für Bachelor-Studiengänge definiert (GI 2016). Daran orientiert sich dieses Buch, das sich deshalb besonders gut zur Vorlesungsbegleitung und Klausurvorbereitung für Studierende eignet. Behandelt werden:
verschiedene Datenbankmodelle, insbesondere das relationale.
Grundkonzepte und theoretische Grundlagen relationaler Datenbanksysteme.
Der prinzipielle Aufbau von Datenbank-Managementsystemen.
Datenschutzmechanismen.
Optimierung relationaler Datenbanken.
Die Erstellung konzeptioneller Datenbankentwürfe, deren Überführung in normalisierte relationale Datenbankschemata und die Erzeugung der entsprechenden Tabellen.
Die Durchführung auch komplexerer Anfragen und Änderungsoperationen mit SQL.
Die Eignung eines relationalen Datenbanksystems für ein gegebenes Problem einschätzen.
Die Verbindung objektorientierter Anwendungssysteme mit relationalen Datenbanksystemen.
Die Erstellung von Datenbankanwendungen.
Das hört sich alles ganz kompliziert und schwierig an? Keine Angst, Sie werden schrittweise an diese Themen herangeführt. Möglicherweise beunruhigt Sie aber auch, dass Sie »programmieren« und mit einem Datenbank-Managementsystem arbeiten sollen? Auch hier lässt Sie dieses Buch nicht im Regen stehen.
Und natürlich hat es seit der vorherigen Auflage dieses Buches einige Weiterentwicklungen gegeben, die in diese aktuelle Auflage eingeflossen sind.
An dieser Stelle möchte ich nicht versäumen, mich bei allen zu bedanken, die zum Gelingen dieses Buches beigetragen haben. In erster Linie sind das Katharina Gerken, Dr. Konstantin Gerken, Ulrike Kröplin-Gerken und Dr. Hendrik Meyer, die einzelne Kapitel aus Lesersicht kritisch unter die Lupe genommen und auch den Anstoß zu diesem Buch gegeben haben. Mein besonderer Dank gilt meinem Kollegen Herrn Prof. Dr. Olaf Zukunft für seine fachlichen Hinweise. Nicht zuletzt gilt mein Dank Herrn Marcel Ferner von Wiley-VCH, der mich verlagsseitig betreut hat.
Das Erlernen der Datenbanksprache SQL ist ein wichtiger Bestandteil dieses Buches. Aber das geht leider nicht ohne einige Konventionen zur Syntax – das heißt der Schreibweise der einzelnen Befehle –, denn Sie müssen oder wollen (was besser ist) natürlich wissen, wie man korrekte Befehle und Abfragen für eine Datenbank formuliert. Da ist dann von Schlüsselworten, Bezeichnern oder Bedingungen die Rede. Aber Sie werden sich schnell an die zuerst ungewohnte neue Sprache gewöhnen, denn bei jedem neuen SQL-Befehl finden Sie folgendes Schema:
Definition der formalen Syntax
Erläuterung
Beispiele
Definitionen und Beispiele heben sich immer durch eine andere Schriftart vom normalen Text ab.
Am Ende eines jeden Kapitels gibt es Wiederholungsfragen, Vertiefungsfragen und Übungen. Wenn Sie das Kapitel aufmerksam studiert haben, sollten Sie die Wiederholungsfragen problemlos beantworten können. Die Vertiefungsfragen stellen einen Blick über den Tellerrand dar und sind für das Verständnis des Textes nicht zwingend notwendig. Die Übungen dienen zur Überprüfung, ob Sie den Stoff eines Kapitels auch verstanden haben und anwenden können. Sie wissen ja: Übung macht den Meister. Zu den Übungen gibt es immer Musterlösungen am Ende des Buches.
Übrigens: Zitate werden im Harvard-Stil angegeben. Das heißt, im Text finden Sie in Klammern den Nachnamen des Autors, das Erscheinungsjahr und, falls erforderlich, die Seitenzahl. Im Literaturverzeichnis steht dann der komplette Nachweis.
Das hängt ganz von Ihren bereits vorhandenen, persönlichen Datenbankkenntnissen und Erwartungen ab.
Wenn Sie keine Datenbankanwendungen programmieren wollen, müssen Sie den
Teil VI
, Grundlagen von Datenbankanwendungen, nicht lesen.
Wenn Sie als Nicht-Informatiker nur beim Modellieren einer Datenbank mitreden und den Informatikern die richtigen Fragen stellen wollen, brauchen Sie die
Teile III
bis
V
nicht unbedingt zu lesen. Zumindest nicht im ersten Durchlauf.
Aber was müssen Sie denn lesen? Von »müssen« kann schon mal nicht die Rede sein. Die Bücher der »… für Dummies«-Reihe zeichnen sich dadurch aus, dass sie modular aufgebaut sind. Sie könnten sich also auch – bei entsprechendem Vorwissen – einzelne Teile gezielt herauspicken, die Sie besonders interessieren. Aber eigentlich bin ich der Meinung, dass es sich lohnt, das gesamte Buch zu lesen. Außerdem lassen sich Querbezüge nicht immer vermeiden. Besonders Eifrige sollten auch die schon erwähnten Vertiefungsfragen am Ende jedes Kapitels nicht vergessen.
Ich gehe davon aus, dass Sie dem Thema Datenbanksysteme ein gewisses Interesse entgegenbringen. Die meisten Leser wissen wahrscheinlich schon etwas darüber oder haben eine intuitive, vage Vorstellung davon. Außerdem können Sie vermutlich schon ganz routiniert mit PCs bzw. Laptops umgehen und zur Not auch Software installieren. Wenn Sie …
sich plötzlich beruflich mit Datenbanksystemen auseinandersetzen müssen,
eine Vorlesung zu diesem Thema besuchen,
sich über den Entwurf, die Implementierung und die Anwendung von Datenbanksystemen informieren wollen,
ohne gleich eine Promotion darüber anzustreben, dann sollten Sie ruhig weiterlesen.
Sie wollen nur das Buch lesen und dann alles verstanden haben und sofort anwenden können? Das ist in der Tat eine törichte Annahme. Das Erlernen der Datenbanksprache SQL setzt praktisches Üben voraus. Am besten, Sie installieren eines der frei verfügbaren Datenbank-Managementsysteme und probieren die im Text vorkommenden Beispiele und Übungen praktisch aus. Nur durch Lesen eines Notenheftes lernen Sie schließlich auch nicht Klavier zu spielen.
Liebe Leser*innen, eine weitere törichte Annahme ist in der Überschrift dieses Abschnitts versteckt. Seien Sie nachsichtig, wenn im weiteren Verlauf nicht immer von Kunden und Kundinnen, Studenten und Studentinnen usw. die Rede ist. Wenn keine geschlechtsneutrale Formulierung möglich ist, wird hier das generische Maskulinum verwendet, das natürlich immer alle Geschlechter umfasst!
Dieses Buch hat sieben Teile. Hier erfahren Sie, worum es bei diesem Lehrbuch geht, welche Inhalte die einzelnen Teile haben und was von Ihnen, liebe Leser, dabei erwartet wird. Falls Sie jetzt noch nicht alle Fachbegriffe verstehen, lernen Sie diese sukzessive in den einzelnen Kapiteln.
Der erste Teil soll Sie für das Thema begeistern. Hier erfahren Sie Grundlegendes über Datenbanksysteme. Sie können schon ihre erste Minidatenbank aufbauen und lernen alle dabei notwendigen Schritte im Schnelldurchlauf kennen. Am Ende sollten Sie wissen, was Daten von Informationen unterscheidet, wie Datenbanksysteme aufgebaut sind, und welche Datenbankmodelle es gibt.
Die Entwicklung, also die Anforderungsanalyse, Modellierung und Implementierung einer Datenbank, ist ein langwieriger Prozess. Sie lernen ihn hier kennen. Highlights sind dabei die Modellierung einer Datenbank mithilfe der Entity-Relationship-Diagramme, die Normalisierung der sich daraus ergebenden Tabellen der relationalen Datenbank und das Erzeugen dieser Tabellen mit dem CREATE-TABLE-Befehl. Wenn Sie mit Datenbankprojekten zu tun haben, wird das einen Großteil Ihrer Zeit beanspruchen. Sie sollten die einzelnen Entwicklungsschritte gut beherrschen.
Wenn Sie Ihre Datenbank erzeugt haben, wollen Sie natürlich auch darauf zugreifen, also Daten speichern, gelegentlich ändern oder löschen und vor allem abfragen. Das lernen Sie in diesem Teil, dessen magisches Stichwort »SQL« (Structured Query Language) lautet. Hier werden Sie schrittweise an immer komplexere Datenbankabfragen herangeführt. Die Übungen dazu ermöglichen es Ihnen, festzustellen, ob Sie alles verstanden haben und auch selbstständig komplexere Datenbankabfragen formulieren können.
Eine erzeugte Datenbank muss gepflegt werden. Sie müssen die Datensicherheit gewährleisten, festlegen, auf welche Teile der gesamten gespeicherten Daten die einzelnen Benutzer zugreifen dürfen, und darüber hinaus für eine ausreichende Performance sorgen. Wenn das ein Thema für Sie ist, sind Sie hier richtig. Falls Sie die Absicht haben, einmal Datenbankadministrator zu werden, machen Sie hier ein dickes Ausrufungszeichen.
Hier können Sie lernen, wie ein objektorientiert entworfenes fachliches Datenmodell auf eine relationale Datenbank abgebildet werden kann. Insbesondere wird auf die objektrelationalen Erweiterungen des relationalen Datenbankmodells eingegangen. Wenn Sie Software mit objektorientierten Methoden modellieren, dürfte Sie das besonders interessieren.
Sie wollen Programme schreiben, die auf relationale Datenbanken zugreifen? Dann sollten Sie hier aufpassen. Behandelt werden die Trigger-Programmierung sowie die Programmierschnittstellen JDBC und PDO. Das müssen Sie dann kennen und benutzen können. Wenn Programmieren für Sie nicht in Frage kommt, reicht das Kapitel über Trigger und Stored Procedures.
Und wenn Sie auf eine NoSQL-Datenbank zugreifen wollen? Auch dazu gibt es ein Programmbeispiel mit Python und MongoDB.
Besonders hinweisen möchte ich auf eine umfassende Fallstudie beginnend mit der Modellierung über die Erstellung der Tabellen bis hin zu Abfragen. Die SQL-Befehle dazu können Sie von der Webseite zu diesem Buch herunterladen.
Zum Schluss kommt der Top-10-Teil, der Tipps für besondere Lebenslagen enthält; zumindest, was Datenbanksysteme betrifft:
Die 10 größten Fehler beim Entwurf relationaler Datenbanken.
Die 10 wichtigsten SQL-Befehle und ihre Varianten.
10 Fragen bei der Entity-Relationship-Modellierung.
Vielleicht hilft ein Blick hierauf, wenn Sie bei Ihrem Datenbankprojekt gerade mal nicht weiterwissen. Sie können die Top 10 aber auch als abschließende Zusammenfassung sehen: Wenn Sie bei diesen Fragen sagen »ist ja klar«, dann können Sie sich mit gutem Gewissen auf Ihr erstes/nächstes Datenbankprojekt stürzen.
Immer, wenn besondere Aufmerksamkeit erforderlich ist, sehen Sie eines der folgenden Symbole:
Kleiner Tipp gefällig? Die Beachtung dieses hilfreichen Hinweises macht Ihnen das Datenbankleben leichter. Vielleicht geht Ihnen dann ein Licht auf.
Hier wird ein Begriff genau erklärt. Das sollten Sie sich merken.
Wenn Sie dieses Symbol sehen, könnte daneben etwas stehen, was wirklich wichtig ist und nicht einfach überlesen werden sollte. Eine gute Stelle, um über das bisher Gelesene einmal nachzudenken.
Achtung, hier steht eine Warnung! Wenn Sie diese nicht beachten, kann etwas gehörig schiefgehen.
Hier meldet sich der Techniker als freundlicher Lesebegleiter zu Wort und gibt beispielsweise einen Hinweis, wenn Sie mal nicht weiterkommen. Gelegentlich finden Sie hier auch einen Tipp für Insider, der über das Grundlagenwissen hinausgeht.
Das dürfte eigentlich klar sein.
Sie werfen jetzt am besten einmal einen Blick in das Inhaltsverzeichnis und überlegen, an welcher Stelle Sie mit dem Lesen beginnen möchten. Wenn Ihnen die einzelnen Kapitelüberschriften noch nicht viel sagen, fangen Sie einfach ganz klassisch mit dem 1. Kapitel an.
Sie sollten aber nicht vergessen, gelegentlich persönliche Breakpoints zu setzen, um das bisher Gelesene zu reflektieren, praktisch auszuprobieren oder auch etwas ganz Anderes zu machen – selbst wenn Sie das Thema gerade höchst spannend finden.
Viel Spaß beim Lesen und Lernen!
Teil I
IN DIESEM TEIL …
erfahren Sie, was Daten sind, und lernen die besonderen Eigenschaften von Datenbanksystemen kennen (der Begriff Definition klingt so theoretisch) und warum man Daten in Datenbanken speichern sollte und nicht einfach in Dateien.
bauen Sie schon Ihre erste Datenbank auf. Das geht ganz einfach.
lernen Sie etwas über die Architektur von Datenbanksystemen und über die verschiedenen Datenmodelle, die in Datenbanksystemen verwendet werden.
Aber immer der Reihe nach …
Kapitel 2
IN DIESEM KAPITEL
Dateiverarbeitung: Möglichkeiten und ProblemeDefinition eines DatenbanksystemsArchitektur und Eigenschaften von DatenbanksystemenDatenbank- und InformationssystemeDieses Kapitel soll zu einer ersten Definition und Architekturübersicht von Datenbanksystemen führen und darlegen, welche Vorteile ihr Einsatz mit sich bringt. Ferner sollte der Unterschied zwischen Datenbank- und Informationssystemen klargestellt werden.
Jedes Programm verarbeitet Da
