Skip to main content

Datenbanksysteme für Dummies

Datenbanksysteme für Dummies

ISBN: 978-3-527-71253-3

Oct 2016

369 pages

Einleitung 19

Über dieses Buch 19

Konventionen in diesem Buch 20

Was Sie nicht lesen müssen 21

Törichte Annahmen über den Leser 21

Wie dieses Buch aufgebaut ist 22

Teil I: Einführung in Datenbanksysteme 22

Teil II: Von der Aufgabenstellung zur relationalen Datenbank 22

Teil III: Zugriff auf relationale Datenbanken mit SQL 22

Teil IV: Die Verwaltung einer relationalen Datenbank 22

Teil V: Objektrelationale Datenbanksysteme 23

Teil VI: Grundlagen von Datenbankanwendungen 23

Teil VII: Der Top-10-Teil 23

Symbole, die in diesem Buch verwendet werden 23

Wie es weitergeht 24

Teil I Einführung in Datenbanksysteme 25

Kapitel 1 Wozu Datenbanksysteme da sind 27

Daten und ihre Speicherung 27

Ein einführendes Beispiel 30

Aufgaben 36

Vertiefungsfragen 36

Übungen 36

Kapitel 2 Definition und Architektur von Datenbanksystemen 37

Dateiverarbeitung: Ein Überblick 37

Merkmale von Anwendungen mit Dateizugriff 37

Datenbanksysteme: Architektur und Definition 41

Eigenschaften von Datenbanksystemen 42

Datenbank- und Informationssysteme 44

Wer macht was 44

Gesellschaftliche Auswirkungen großer Datenbanken 45

Aufgaben 46

Wiederholungsfragen 46

Vertiefungsfragen 46

Kapitel 3 Überblick über Datenmodelle 47

Klassifikation von Daten 47

Datenmodelle 48

Ein historischer Überblick 50

Das netzwerkartige Datenmodell 51

Das relationale Datenmodell 54

Tabellen 54

Beziehungen 55

Datenbankschema 56

Beispiel 56

NoSQL-Datenmodelle 57

Spaltenorientierte Datenbanken 57

Dokumentenorientierte Datenbanken 58

Vergleich von NoSQL- und relationalen Systemen 59

Benutzungsschnittstellen 59

Übersicht über Datenbanksysteme 61

Aufgaben 62

Übungsaufgaben 62

Vertiefungsfragen 62

Übungen 62

Kapitel 4 Vorgehensweise bei der Datenbankentwicklung 63

Ein einfacher Software-Entwicklungsprozess 63

Wie schreibt man Programme 63

Überblick über aktuelle Vorgehensweisen 65

Phasenmodell der Datenbankentwicklung 66

Die Datenbank kommt ins Spiel 66

Von der Anforderungsanalyse zu Betrieb und Wartung 67

Die Anforderungsanalyse im Detail 70

Erhebungstechniken 70

Ergebnis der Anforderungsanalyse 71

Der Datenbankentwurf im Detail 71

Semantischer Entwurf 72

Logischer Entwurf 72

Physischer Entwurf 73

Beispiel 73

Ein Beispiel mit Anforderungsanalyse und Entwurf 74

Aufgaben 78

Wiederholungsfragen 78

Vertiefungsfragen 79

Übungen 79

Teil II Von der Aufgabenstellung zur relationalen Datenbank 81

Kapitel 5 Semantische Modellierung einer Datenbank 83

Entitätstypen, Attribute und Beziehungen 83

Entitätstypen 83

Attribute 85

Beziehungen 86

Beziehung oder Attribut 89

Die Entity-Relationship-Modellierung 90

Entitätstypen und Attribute 90

Beziehungen 91

Erweiterung des klassischen ER-Modells: die MC-Notation 93

Beispiele 95

Weitere Notationsformen 99

Semantische Modellierung mit UML-Klassendiagrammen 100

Klassendiagramme 101

Beziehungen in UML-Klassendiagrammen 101

Constraints bei Beziehungen 103

Aufgaben 104

Wiederholungsfragen 104

Vertiefungsfragen 104

Übungen 104

Kapitel 6 Das relationale Datenbankmodell im Detail 107

Erläuterungen zum Begriff »Relation« 107

Relationen sind Mengen 107

Konstruktionsregeln für Relationen 109

Primär- und Fremdschlüssel 110

3-Ebenen-Architektur 112

Datenunabhängigkeit 112

Sichten und Schemata 112

Merkmale relationaler Datenbanken 115

Integritätsaspekte relationaler Datenbanken 117

Schlüsselintegrität 118

Typintegrität 120

Referenzielle Integrität 120

Transaktionsintegrität 121

Relationenalgebra im Überblick 125

Mengenoperationen der Relationenalgebra 125

Das kartesische Produkt 127

Spezielle Operationen der Relationenalgebra 128

Beispiele für Datenbankabfragen mit der Relationenalgebra 131

Aufgaben 132

Wiederholungsfragen 132

Übungen 132

Kapitel 7 Entwurf und Implementierung des Datenbankschemas 135

Umsetzung eines Entity-Relationship-Diagramms in ein Datenbankschema 135

Entitätstypen und Attribute 135

Beziehungen 136

Tabellen und ihre Attribute 140

Woran erkennt man gut strukturierte Tabellen? 141

Das Anomalie-Problem 141

Kriterien einer guten Zerlegung von Tabellen 142

Normalisierung 145

Die erste Normalform 145

Die zweite Normalform 146

Die dritte Normalform 148

Die Boyce-Codd-Normalform 150

Zusammenfassung 150

Erzeugen der Tabellen mit SQL 151

Syntax der SQL-Definitionen 151

Der Befehl CREATE TABLE 152

Datentypen 153

Integritätsbedingungen (Constraints) 154

Automatische Schlüsselgenerierung 158

Änderung der Tabellenstruktur 159

Aufgaben 160

Wiederholungsfragen 160

Vertiefungsfragen 161

Übungen 161

Teil III Zugriff auf relationale Datenbanken mit SQL 165

Kapitel 8 Die DML-Befehle von SQL 167

SQL und relationale Datenbanksysteme 167

Der SELECT-Befehl im Überblick 168

Der INSERT-Befehl 172

Einzelne Tupel speichern 173

Mehrere Tupel speichern 173

Attribute mit automatisch vergebenen Werten 174

Der UPDATE-Befehl 175

Der DELETE-Befehl 176

DML-Befehle und Fremdschlüssel 176

Aufgaben 178

Wiederholungsfragen 178

Vertiefungsfragen 178

Übungen 178

Kapitel 9 Der SELECT-Befehl im Detail 179

Datenbankschema für die Beispiele 179

Abfrage einer einzelnen Tabelle 180

Zählen und Sortieren 180

Numerische Operatoren 182

String-Operatoren 184

Logische Operatoren 185

Mengenwertige Filter 186

Behandlung von NULL-Werten 186

Abfragen über mehrere Tabellen 189

Mengenoperatoren 189

Join in der Where-Klausel 190

Der Join-Operator 193

Der EXISTS-Quantor 195

Gruppierung mit »GROUP BY« 197

Unterabfragen 199

Subselect in der Where-Klausel 200

Subselect in der From-Klausel 201

Subselect in der Select-Klausel 202

Aufgaben 204

Wiederholungsfragen 204

Übungen 204

Teil IV Die Verwaltung einer relationalen Datenbank 207

Kapitel 10 Benutzersichten 209

Was sind Benutzersichten? 209

Definition von Views 209

Beispiele für Views 210

Vorteile von Views 212

Datenunabhängigkeit 212

Datenschutz durch Views 212

Vordefinition von SQL-Abfragen 213

Views und die Generalisierung/Spezialisierung 213

Untertypen als View 214

Obertyp als View 215

DML-Operationen bei Views 216

Aufgaben 218

Wiederholungsfragen 218

Vertiefungsfragen 218

Übungen 218

Kapitel 11 Datensicherheit und Zugriffsrechte bei Datenbanken 221

Datensicherheit und Datenschutz 221

Was bedeutet das? 221

Schutzziele und Schutzmechanismen bei Datenbanken 222

Benutzer und ihre Zugriffsrechte 224

Benutzer 224

Rollen 224

Vergabe von Zugriffsrechten 225

Zurücknahme von Rechten 227

Aufgaben 228

Vertiefungsfragen 228

Übungen 228

Kapitel 12 Datenbankoptimierung 229

Einflussmöglichkeiten bei SQL-Abfragen 229

Übersetzung und Optimierung 230

Transaktionsverarbeitung 232

Speicherverwaltung 232

Ansatzpunkte für Tuning-Möglichkeiten 232

Indizes als Zugriffspfade 233

Klassischer Index 234

Bitmap-Index 236

Der Ausführungsplan 237

Partitionierung 238

Range-Partitionierung 239

List-Partitionierung 240

Hash-Partitionierung 241

Optimierung des Datenbankschemas 241

Zusammenfassung von Relationen 242

Einführung redundanter Daten 242

Zerlegung einer Relation in mehrere kleinere 243

Spaltenorientierte Speicherung 243

Hardware und Systemumgebung 245

Einige Tipps zur Performance-Steigerung 245

Das sollten Sie beachten 245

Ein Beispiel 246

Aufgaben 247

Wiederholungsfragen 247

Vertiefungsfragen 247

Übungen 247

Teil V Objektrelationale Datenbanksysteme 249

Kapitel 13 Objektorientierung und relationale Datenbanksysteme 251

Objektorientierte Softwareentwicklung 251

Eigenschaften von Objekten 251

Beziehungen zwischen Klassen 252

Die Generalisierung/Spezialisierung 252

Übertragung objektorientierter Konstrukte in die relationale Datenbankwelt 253

Schachtelung von Objekten 253

Assoziation, Aggregation und Komposition bei relationalen Datenbanken 254

Generalisierung/Spezialisierung und relationale Datenbanken 254

Der Begriff »Impedance Mismatch« 255

Das objektrelationale Datenbankmodell 256

Relationale Datenbanken und Objektorientierung 256

Merkmale des objektrelationalen Datenbankmodells 257

Beispiele für objektrelationale Strukturen 259

Aufgaben 260

Wiederholungsfragen 260

Vertiefungsfragen 260

Übungen 260

Kapitel 14 Arbeiten mit objektrelationalen Tabellen 263

Einige objektrelationale Strukturen 263

Tabellen mit UDT als Attribut 264

Tabellen mit Listen als Attribut 267

Tabellen mit Tabellen als Attribut 269

Aufgaben 272

Wiederholungsfragen 272

Vertiefungsfragen 272

Übungen 272

Teil VI Grundlagen zur Erstellung von Datenbanksystemen 273

Kapitel 15 Trigger und Stored Procedures 275

Architektur von Datenbank-Anwendungsprogrammen 275

PL/SQL 277

Grundlagen 277

Cursor-Verarbeitung 278

Trigger 279

Arten von Triggern 279

Syntax 280

Beispiele 282

Stored Procedures 285

Beispiele 285

Aufgaben 286

Wiederholungsfragen 286

Vertiefungsfragen 286

Übungen 287

Kapitel 16 Programmieren oder Generieren von Datenbankanwendungen 289

JDBC 289

Architektur und Funktionalität 289

PDO: PHP und MySQL 294

Generieren von Web-Anwendungen 296

APEX-Grundlagen 296

Beurteilung 297

Aufgaben 298

Wiederholungsfragen 298

Vertiefungsfragen 298

Übungen 298

Kapitel 17 Anwendungsbereiche relationaler Datenbanken 299

Informationssysteme in Unternehmen 299

Relationale Datenbanken als Basis von Data-Warehouse-Systemen 300

Definition und Grundlagen 300

Relationale Datenbank als Data Warehouse 303

Geo-Datenbanken als Anwendung objektrelationaler Systeme 305

Einführung 305

Oracle Spatial (Locator) 306

Aufgaben 309

Wiederholungsfragen 309

Vertiefungsfragen 309

Übungen 310

Kapitel 18 SQL oder nicht SQL 311

Zusammenfassung 311

Merkmale relationaler Datenbanksysteme 312

Welche Datenbank für welches Problem? 312

Aufgaben 313

Vertiefungsfragen 313

Teil VII Der Top-10-Teil 315

Kapitel 19Die 10 größten Fehler beim Entwurf relationaler Datenbanken 317

Verletzung der Normalformen 317

Schlecht gewählte Variablennamen und Datentypen 318

Keine Check-Klauseln für Attribute 318

Keine Fremdschlüsseldefinitionen 318

Redundante Daten 318

Datenbankdateien und deren Kopien auf demselben Laufwerk 319

Keine vollständige und korrekte Abbildung des semantischen Modells 319

Zu wenig Absprache mit dem Anwender 320

Glossar nicht überprüft bzw. angepasst 320

Nicht genügend Testdaten 320

Kapitel 20 Die 10 wichtigsten SQL-Befehle und ihre Varianten 323

SELECT mit einer Tabelle 323

SELECT mit mehreren Tabellen (Join) 324

SELECT mit Gruppierung 324

SELECT mit Unterabfrage 325

INSERT 325

UPDATE 325

DELETE 326

CREATE 326

DROP 327

COMMIT und ROLLBACK 327

Kapitel 21 10 Fragen bei der Entity-Relationship-Modellierung 329

ER-Modellierung oder UML? 329

Welche Schreibweise? 330

Sind die Entitätstypen korrekt gebildet? 330

Sind alle notwendigen Beziehungen erkannt? 330

Redundante Beziehungen oder nicht? 331

Gibt es existenzabhängige Entitätstypen? 331

1:1-Beziehung: muss das sein? 332

Stimmen die Kardinalitäten? 332

Ist das ER-Diagramm mit dem Anwender abgesprochen? 332

Ist das Glossar korrekt? 332

Anhang 333

Lösungen zu den Übungen 335

Übungen zu Kapitel 1 335

Übungen zu Kapitel 3 336

Übungen zu Kapitel 4 337

Übungen zu Kapitel 5 337

Übungen zu Kapitel 6 339

Übungen zu Kapitel 7 341

Übungen zu Kapitel 8 344

Übungen zu Kapitel 9 344

Übungen zu Kapitel 10 348

Übungen zu Kapitel 11 351

Übungen zu Kapitel 12 351

Übungen zu Kapitel 13 352

Übungen zu Kapitel 14 355

Übungen zu Kapitel 15 356

Übungen zu Kapitel 16 358

Übungen zu Kapitel 17 360

Literaturverzeichnis 363

Stichwortverzeichnis 367