Neuerscheinung:

Relationale Datenbanken

Grundlagen, Modellierung, Speicherung, Alternativen

März 2015 - 431 Seiten - 143 Abbildungen

ISBN 978-3-9817175-2-5

Beziehbar über den Buchhandel und Amazon

Auszüge auf www.staud.info --> DATENBANKEN / NEU 2015 Relationale Datenbanken

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.

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.

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.

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.

Josef Ludwig Staud

Inhaltsverzeichnis

1     Einleitung.. 15

1.1 Aufbau des Buches, Gesamtüberblick. 15

1.2 Datenbanken.. 18

1.3 Logische Datenmodelle, Datenorganisation.. 20

1.4 Relationale Datenbanksysteme. 21

1.5 Die drei Ebenen der ANSI-SPARC - Architektur 24

1.6 Syntax, Semantik, Pragmatik. 25

2     Informationen, Daten, Attribute. 29

2.1 Informationen, Daten.. 29

2.2 Klassifizierung von Daten.. 31

2.3 Zeichen, Zeichenvorrat 33

2.4 Attribute. 33

3     Konzeptionelle Modellierung.. 39

3.1 Anwendungsbereiche. 39

3.2 Objekte und Beziehungen erkennen.. 40

3.3 Klassen bilden.. 42

3.4 Beispiele. 43

3.5 Zusammenfassung. 44

4     Relationen bilden.. 49

4.1 Von Klassen zu Relationen.. 49

4.2 Eigenschaften und Darstellung von Relationen.. 51

5     Beziehungen erkennen und einrichten.. 57

5.1 Beziehungen erkennen.. 57

5.2 Schlüssel und Fremdschlüssel 60

5.3 Umsetzung von 1:1. 61

5.4 Min-/Max-Angaben und "1:1 vertieft". 62

5.5 Umsetzung von 1:n.. 66

5.6 Umsetzung von n:m.. 69

5.7 Verknüpfung konkret 72

5.8 Mehrstellige Beziehungen.. 74

5.9 Integritäten.. 75

5.10  Schlüssel vertieft 76

6     Zusammenfassung Grundlagen.. 79

6.1 Erste Schritte. 79

6.2 Warum eigentlich flache Tabellen?. 80

7     Die erste Normalform (1NF) 85

7.1 Optimierung durch Normalisierung. 85

7.2 Definition und Herbeiführung. 86

7.3 Tupelvermehrung. 87

7.4 Zerlegung nach 1:n.. 88

7.5 Zerlegung nach n:m.. 90

7.6 Schlechte Lösungen.. 95

7.7 Darstellung ganzer Relationaler Datenmodelle. 97

7.8 Redundanzen in 1NF-Relationen.. 100

7.9 Anomalien.. 102

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.. 113

8.5 Schlüssel (formaler) 115

9     Die zweite Normalform (2NF) 117

9.1 Redundanz trotz 1NF.. 117

9.2 Definition.. 119

9.3 Beispiel AUFTRÄGE.. 119

9.4 Beispiel PROJEKTMITARBEIT. 122

9.5 Zerlegung und Zusammengehörigkeit 125

10  Die dritte Normalform (3NF) 127

10.1  Redundanz trotz 2NF.. 127

10.2  Beispiel Auftragsköpfe. 128

10.3  Beispiel Angestellte. 129

10.4  Beispiel Aufträge / Artikel / Kunden.. 131

10.5  Definition 3NF.. 133

11  Die Boyce-Codd - Normalform (BCNF) 137

11.1  Redundanz trotz 3NF.. 137

11.2  Beispiel Projektmitarbeit 139

11.3  Definition BCNF.. 142

11.4  Noch ein Beispiel 142

12  Die vierte Normalform (4NF) 145

12.1  Das Defizit 145

12.2  Beispiel Vorlesungsbetrieb. 145

12.3  Mehrwertige Abhängigkeit 148

12.4  Definition 4NF.. 150

13  Die fünfte Normalform (5NF) 153

13.1  Verbund (Join) und Projektion.. 153

13.2  N-Zerlegbarkeit 157

13.3  Definition.. 161

13.4  Regeln für die Erstellung relationaler Datenmodelle  163

14  Muster in Anwendungsbereichen und Modellen.. 167

14.1  Ähnlichkeit - Generalisierung / Spezialisierung. 167

14.2  Einzel- und Typinformation.. 175

14.3  Enthaltensein - Aggregation.. 180

14.4  Enthaltensein und Existenzabhängigkeit - Komposition   184

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.. 199

16.1  Rechnungsstellung. 199

16.2  Sportverein.. 209

16.3  PC-Beschaffung. 214

16.4  Fachliteratur 220

16.5  Hochschule - Vorlesungsbetrieb. 229

16.6  Sprachenverlag. 238

17  Weitere Modellierungsbeispiele. 249

17.1  Obst 249

17.2  Haushaltsgeräte. 251

17.3  Angestellte. 253

17.4  Kfz-Werkstatt 257

17.5  WebShop. 258

17.6  Zoo. 261

18  Von Attributen zu Datentypen.. 267

18.1  Vielfalt 267

18.2  Die Datentypen von MySQL. 271

18.3  Die Datentypen von ORACLE SQL. 278

18.4  Die Datentypen von ACCESS.. 280

18.5  Welcher Datentyp für welches Attribut?. 284

19  SQL - Eine Kurzeinführung.. 287

19.1  Einleitung. 287

19.2  Relationen anlegen und löschen.. 290

19.3  Eingeben von Daten.. 295

19.4  Abfragen der Daten mit Select 299

19.4.1  Projektion.. 300

19.4.2  Parameter IN.. 311

19.5  Gezieltes Löschen und Korrigieren.. 312

19.6  Maskierung mit LIKE.. 314

19.7  Funktionen.. 316

19.8  Verknüpfen von Relationen.. 323

19.9  Transaktionen.. 332

20  Vom Zeichen zur Datenbank. 343

20.1  Die Ebenen.. 343

20.2  Übersicht 345

21  Dateitechniken.. 347

21.1  Datenmodell - Datenbank - Datei 347

21.2  Stapeldateien.. 348

21.3  Sequenzielle Dateien.. 349

21.4  Indexsequenzielle Dateien.. 352

21.5  Direktzugriffsdateien/Hashing. 354

22  Speichermedien.. 357

22.1  Periphere Speicher 357

22.2  Konkrete Speicherung. 358

22.3  Magnetische Speicher 358

22.4  Optische Speicher 362

22.5  Elektronische Speicher 367

23  Andere Datenmodelle. 373

23.1  Semantische Datenmodelle. 373

23.2  Logische Datenmodelle. 374

24  Andere Datenbanken.. 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. 397

24.5.1  Parallelwelten.. 397

24.5.2  Ursache 1: Immer mehr Daten in den Rechnernetzen   398

24.5.3  Ursache 2: Internet der Dinge und Industrie 4.0  399

24.5.4  Immenser Speicherbedarf und Vielfalt 401

24.5.5  Volume, Velocity, Variety. 402

24.5.6  Skalierbarkeit 402

24.5.7  Parallelisierung mit Hilfe des MapReduce-Frameworks  403

24.6  Konsistenz, CAP-Theorem.. 404

24.7  Schemafreiheit 406

24.8  Key/Value - Datenbanken.. 408

24.9  Graphendatenbanken.. 411

24.10 Dokumentendatenbanken.. 412

24.11 InMemory - Datenbanksysteme. 417

Index. 421

Literatur. 427