Vorwort

Datenbanken waren noch nie so wichtig. Diese Aussage mag überraschen, angesichts der Bedeutung, die Datenbanken in den letzten 50 Jahren schon gewonnen haben. Sie ist aber, angesichts der Herausbildung einer digitalen Parallelwelt, richtig.

Datenbanken werden überall dort benötigt, wo - im Rahmen der Informatisierung - Informationen "erhalten bleiben sollen". Da dies für so gut wie alle Anwendungs- und Lebensbereiche gilt, ergibt sich eine entsprechende Verbreitung von Datenbanken und ein entsprechender Bedarf an Wissen über Datenbanktechniken.

Informatisierung

In einer Zeit aber, in der sich die Weltgesellschaft mit dem Internet eine digitale Parallelwelt geschaffen hat, in der sie privat, geschäftlich, kriminell, in staatlichem Auftrag, usw. aktiv ist, ist dieser Bedarf noch größer geworden. Denn alle diese Netzaktivitäten beruhen auf bzw. führen zu Datenbanken. Natürlich Datenbanken der verschiedensten Art. Netzwerkdaten im Social Web, wo Terabyte von Daten bereits emsig ausgewertet werden; Datenbanken der Suchmaschinen, die letztendlich auf die Technologie der "inverted files" zurückgehehen; "Unstruktierte Daten" der unterschiedlichsten Art, usw. Und die schon altbewährten Relationalen Datenbanken, die einen sehr großen Anteil am Gesamtbestand von Datenbanken halten, v.a. in den Unternehmen.

Immer mehr Datenbanken

Um die Relationalen Datenbanken geht es in diesem Buch in erster Linie. Sie sollen umfassend dargestellt werden und auch der Weg zu ihnen: Vom Anwendungsbereich zur konzeptionellen und logischen Datenmodellierung, dann zum Datenbankdesign und zur Einrichtung der Datenbank. Zum Schluss werden noch die physischen Datenstrukturen beschrieben, auf denen die heutigen Speichertechniken beruhen.

Der ganze Weg

Daneben werden aber auch die wichtigsten Alternativen kurz beschrieben. Alternative Datenmodelle (semantische und logische) und alternative Datenbanktechnologien, von dimensionalen Datenbanken über NoSQL-Datenbanken bis zur InMemory-Technologie.

Bezüglich der relationalen Datenbanktheorie sind folgende Themen neu und so anderweitig nicht abgedeckt:

  • Die intensive Betrachtung von Mustern in Anwendungsbereichen und in relationalen Datenmodellen(„Semantik sucht Syntax“). Dies sollte die konkrete Datenmodellierung erleichtern.
  • Die Erweiterung der Kardinalitäten zur durchgängigen Betrachtung von Min-/Max-Angaben bei relationalen Verknüpfungen („wieviele Teilnehmer mindestens, wieviele höchstens“). Auch dies sollte bei einer modernen Modellierung so sein.
  • Die Betrachtung des gesamten Wegs von der Wahrnehmung des Anwendungsbereichs bis zur Erstellung der Datenbank und der physischen Datenorganisation.
  • Zahlreiche Beispiele für relationale Datenmodellierung, einige mit Lösungsweg, einige ohne. Dies ist motiviert durch die Erfahrung aus jahrzehntelanger Lehr- und Beratungstätigkeit, dass Datenmodellierung beim Umgang mit Datenbanken die größten Probleme macht und vielerorts nur eingeschränkt beherrscht wird.

Prof. Dr. Josef Ludwig Staud

 

Inhaltsverzeichnis der Buch- und PDF-Version

Vorwort, Inhalt, Abkürzungen III

1 Einleitung 13

1.1 Aufbau des Buches, Gesamtüberblick 13

1.2 Hinweise zur Textgestaltung 17

1.3 Datenbanken 17

1.4 Logische Datenmodelle, Datenorganisation 19

1.5 Relationale Datenbanksysteme 21

1.6 Die drei Ebenen der ANSI-SPARC - Architektur 23

1.7 Syntax, Semantik, Pragmatik 23

2 Informationen, Daten, Attribute 27

2.1 Informationen, Daten 27

2.2 Klassifizierung von Daten 29

2.3 Zeichen, Zeichenvorrat 31

2.4 Attribute 32

3 Konzeptionelle Modellierung 37

3.1 Anwendungsbereiche 37

3.2 Objekte und Beziehungen erkennen 38

3.3 Klassen bilden 40

3.4 Beispiele 41

3.5 Zusammenfassung 42

4 Relationen bilden 45

4.1 Von Klassen zu Relationen 45

4.2 Eigenschaften und Darstellung von Relationen 47

5 Beziehungen erkennen und einrichten 53

5.1 Beziehungen erkennen 53

5.2 Schlüssel und Fremdschlüssel 56

5.3 Umsetzung von 1:1 57

5.4 Min-/Max-Angaben und "1:1 vertieft" 59

5.5 Umsetzung von 1:n 64

5.6 Umsetzung von n:m 67

5.7 Verknüpfung konkret 70

5.8 Mehrstellige Beziehungen 73

5.9 Integritäten 74

5.10 Schlüssel vertieft 74

6 Zusammenfassung Grundlagen 77

6.1 Erste Schritte 77

6.2 Warum eigentlich flache Tabellen? 78

7 Die erste Normalform (1NF) 81

7.1 Optimierung durch Normalisierung 81

7.2 Definition und Herbeiführung 82

7.3 Tupelvermehrung 83

7.4 Zerlegung nach 1:n 84

7.5 Zerlegung nach n:m 87

7.6 Schlechte Lösungen 92

7.7 Relationale Datenmodelle 94

7.8 Redundanzen in 1NF-Relationen 99

7.9 Anomalien 101

8 Funktionale Abhängigkeiten 105

8.1 Einführung 105

8.2 Funktionale Abhängigkeit 106

8.3 Schneller Weg zum Erfolg 110

8.4 Einfache und volle FA 112

8.5 Schlüssel (formal) 114

9 Die zweite Normalform (2NF) 117

9.1 Redundanz trotz 1NF 117

9.2 Definition 118

9.3 Beispiel Aufträge 119

9.4 Beispiel PROJEKTMITARBEIT 121

9.5 Zerlegung und Zusammengehörigkeit 124

10 Die dritte Normalform (3NF) 125

10.1 Redundanz trotz 2NF 125

10.2 Beispiel Auftragsköpfe 126

10.3 Beispiel Angestellte 128

10.4 Beispiel Aufträge / Artikel / Kunden 130

10.5 Definition 3NF 133

11 Die Boyce-Codd - Normalform (BCNF) 135

11.1 Redundanz trotz 3NF 135

11.2 Beispiel Projektmitarbeit 137

11.3 Definition BCNF 140

11.4 Noch ein Beispiel 140

12 Die vierte Normalform (4NF) 143

12.1 Das Defizit 143

12.2 Beispiel Vorlesungsbetrieb 143

12.3 Mehrwertige Abhängigkeit 146

12.4 Definition 4NF 147

13 Die fünfte Normalform (5NF) 149

13.1 Verbund (Join) und Projektion 150

13.1.1 Verbund (Join) 150

13.1.2 Projektion 152

13.2 N-Zerlegbarkeit 154

13.3 Regeln für die Erstellung relationaler Datenmodelle 163

14 Muster in Anwendungsbereichen und Modellen 165

14.1 Ähnlichkeit - Generalisierung / Spezialisierung 165

14.2 Einzel- und Typinformation 174

14.3 Enthaltensein - Aggregation 179

14.4 Enthaltensein und Existenzabhängigkeit - Komposition 183

14.5 Beziehungsattribute 188

15 Die Zeit in Datenmodellen und Datenbanken 193

15.1 Zeitlich fixiert oder zeitabhängig 193

15.2 Duplizieren zum Zeitpunkt der Rechnungsstellung 194

15.3 Andere Lösungen 195

16 Modellierungsbeispiele mit Lösungsweg 197

16.1 Rechnungsstellung 197

16.2 Sportverein 208

16.3 PC-Beschaffung 214

16.4 Fachliteratur 219

16.5 Hochschule – Vorlesungsbetrieb 228

16.6 Sprachenverlag 237

17 Weitere Modellierungsbeispiele 249

17.1 Obst 249

17.2 Haushaltsgeräte 251

17.3 Angestellte 253

17.4 Kfz-Werkstatt 258

17.5 WebShop 259

17.6 Zoo 262

18 Von Attributen zu Datentypen 265

18.1 Vielfalt 265

18.2 Die Datentypen von MySQL 269

18.3 Die Datentypen von ORACLE SQL 276

18.4 Die Datentypen von ACCESS 277

18.5 Welcher Datentyp für welches Attribut? 282

19 Einführung in SQL 283

19.1 Einleitung 283

19.2 Datenbanken anlegen und löschen 286

19.3 Relationen anlegen und löschen 287

19.4 Eingeben von Daten 294

19.5 Abfragen der Daten mit Select 298

19.6 Gezieltes Löschen und Korrigieren 309

19.6.1 Löschen mit DELETE FROM 311

19.6.2 Daten korrigieren - Update ... set ... 312

19.6.3 Maskierung mit LIKE 313

19.7 Funktionen 315

19.7.1 Funktionen für Tupelmengen und Gruppenbildung 315

19.7.2 Mathematische Funktionen 317

19.7.3 Funktionen für Zeichenketten 321

19.8 Verknüpfen von Relationen 324

19.8.1 Equjoin - Verbund über die Gleichheit von Attributsausprägungen 324

19.8.2 Outer Join 329

19.8.3 SelfJoin - Eine Relation mit sich selbst verknüpfen 333

19.9 Transaktionen 338

20 Vom Zeichen zur Datenbank 346

20.1 Die Ebenen 346

20.2 Übersicht 348

21 Dateitechniken 351

21.1 Datenmodell - Datenbank - Datei 351

21.2 Stapeldateien 352

21.3 Sequenzielle Dateien 353

21.4 Indexsequenzielle Dateien 355

21.5 Direktzugriffsdateien/Hashing 357

22 Speichermedien 361

22.1 Periphere Speicher 361

22.2 Konkrete Speicherung 362

22.3 Magnetische Speicher 362

22.4 Optische Speicher 365

22.5 Elektronische Speicher 370

23 Andere Datenmodelle 373

23.1 Semantische Datenmodelle 373

23.2 Logische Datenmodelle 374

24 NoSQL etc. Nicht-konventionelle DBn 377

24.1 OLTP und OLAP 377

24.2 Dimensionale Datenbanken 379

24.3 Spaltenorientierte Datenbanken 390

24.4 NoSQL-Datenbanken - Überblick 393

24.4.1 Definition 394

24.5 BigData 396

24.5.1 Parallelwelten 396

24.5.2 Ursache 1: Immer mehr Daten in den Rechnernetzen 397

24.5.3 Ursache 2: Internet der Dinge und Industrie 4.0 398

24.5.4 Immenser Speicherbedarf und Vielfalt 400

24.5.5 Volume, Velocity, Variety 401

24.5.6 Skalierbarkeit 401

24.5.7 Parallelisierung mit Hilfe des MapReduce-Frameworks 402

24.6 Konsistenz, CAP-Theorem 403

24.7 Schemafreiheit 404

24.8 Key/Value - Datenbanken 407

24.9 Graphendatenbanken 409

24.10 Dokumentendatenbanken 410

24.11 InMemory - Datenbanksysteme 414

Literatur 417

Abkürzungsverzeichnis


Abkürzung

 

ANSI

American National Standards Institution

DBMS

Datenbankmanagementsystem

DBS

Datenbanksystem

DML

Data Manipulation Language

DV

Datenverarbeitung

ERM

Entity Relationship - Modell

ERP

Enterprise Ressource Planning. Eingeführte Bezeichnung für integrierte prozessorientierte Standardsoftware.

fA

funktionale Abhängigkeit

FA-Diagramm

Diagramm der funktionalen Abhängigkeiten

IRS

Information Retrieval System

IT

Informationstechnologie. Heute benutzt als Bezeichnung für die Abteilung, in der die Computer der Organisation betrieben werden.

OODBS

Objektorientiertes Datenbanksystem

OODM

Objektorientierte Datenmodellierung

PC

Personal Computer

RDBS

Relationales Datenbanksystem

SPARC

Standards Planning and Requirements Committee

SQL

Structured Query Language

vs.

versus (im Vergleich zu, im Gegensatz zu)