12
Inhaltsverzeichnis Über den Autor 7 Widmung 7 Danksagung des Autors 7 Über die Übersetzer 7 Einführung 23 Über dieses Buch 23 Wer sollte dieses Buch lesen? 24 Symbole, die in diesem Buch verwendet werden 24 Wie es weitergeht 24 Teil I Grundbegriffe 25 Kapitel 1 Grundlagen relationaler Datenbanken 27 Die Übersicht über Dinge behalten 27 Was ist eine Datenbank? 28 Datenbankgröße und -komplexität 29 Was ist ein Datenbankverwaltungssystem? 29 Flache Dateien 31 Datenbankmodelle 32 Das relationale Modell 32 Komponenten einer relationalen Datenbank 33 Was sind Relationen? 33 Views oder Sichten 34 Schemata, Domänen und Einschränkungen 36 Das Objektmodell fordert das relationale Modell heraus 37 Das objektrelationale Modell 38 Überlegungen zum Datenbankentwurf 38 Kapitel 2 SQL-Grundlagen 39 Was SQL ist und was es nicht ist 39 Ein (sehr) kurzer historischer Überblick 41 SQL-Anweisungen 42 Reservierte Wörter 42 11

Inhaltsverzeichnis - application.wiley-vch.de · Ein (sehr) kurzer historischer Überblick 41 SQL-Anweisungen 42 Reservierte Wörter 42 11. Datentypen 44 Genaue Zahlen 44 Annähernd

  • Upload
    vuthu

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

Inhaltsverzeichnis

Über den Autor 7Widmung 7Danksagung des Autors 7Über die Übersetzer 7

Einführung 23Über dieses Buch 23Wer sollte dieses Buch lesen? 24Symbole, die in diesem Buch verwendet werden 24Wie es weitergeht 24

Teil IGrundbegriffe 25

Kapitel 1Grundlagen relationaler Datenbanken 27

Die Übersicht über Dinge behalten 27Was ist eine Datenbank? 28Datenbankgröße und -komplexität 29Was ist ein Datenbankverwaltungssystem? 29Flache Dateien 31Datenbankmodelle 32

Das relationale Modell 32Komponenten einer relationalen Datenbank 33Was sind Relationen? 33Views oder Sichten 34Schemata, Domänen und Einschränkungen 36Das Objektmodell fordert das relationale Modell heraus 37Das objektrelationale Modell 38

Überlegungen zum Datenbankentwurf 38

Kapitel 2SQL-Grundlagen 39

Was SQL ist und was es nicht ist 39Ein (sehr) kurzer historischer Überblick 41SQL-Anweisungen 42Reservierte Wörter 42

11

Datentypen 44Genaue Zahlen 44Annähernd genaue Zahlen 46Zeichenketten 48Binäre Zeichenketten 50Boolesche Werte 51Datums- und Zeitwerte 51Intervalle 52Der Datentyp XML 53Der Datentyp ROW 55Datentypen für Auflistungen 56REF-Typen 58Benutzerdefinierte Typen 58Zusammenfassung der Datentypen 61

Nullwerte 63Einschränkungen 63SQL in einem Client/Server-System benutzen 64

Der Server 64Der Client 65

SQL mit dem Internet oder einem Intranet benutzen 66

Kapitel 3Die Komponenten von SQL 67

Data Definition Language 67Wenn »Mach’ es einfach!« kein guter Rat ist 68Tabellen erstellen 69Sichten 71Tabellen in Schemata zusammenfassen 76Ordnung durch Kataloge 77Die DDL-Anweisungen kennenlernen 78

Data Manipulation Language 80Ausdrücke 80Prädikate 83Logische Verknüpfungen 84Mengenfunktionen 85Unterabfragen 86

DCL (Data Control Language) 86Transaktionen 87Benutzer und Rechte 88Einschränkungen der referenziellen Integrität können Ihre Daten gefährden 90Die Verantwortung für die Sicherheit delegieren 92

SQL für Dummies

12

Teil IIDatenbanken mit SQL erstellen 93

Kapitel 4Eine einfache Datenbankstruktur erstellen und verwalten 95

Eine einfache Datenbank mit einem RAD-Werkzeug erstellen 96Entscheiden, was in die Datenbank gehört 96Eine Datenbanktabelle erstellen 97Die Struktur einer Tabelle ändern 104Einen Index definieren 106Eine Tabelle löschen 108

Das gleiche Beispiel mit der DDL von SQL erstellen 109SQL mit Microsoft Access nutzen 109Eine Tabelle erstellen 112Einen Index erstellen 116Die Tabellenstruktur ändern 117Eine Tabelle löschen 117Einen Index löschen 118

Überlegungen zur Portierbarkeit 118

Kapitel 5Eine relationale Datenbank mit mehreren Tabellen erstellen 119

Die Datenbank entwerfen 119Schritt 1: Objekte definieren 120Schritt 2: Tabellen und Spalten identifizieren 120Schritt 3: Tabellen definieren 121Domänen, Zeichensätze, Sortierfolgen und Übersetzungstabellen 124Schlüssel für den schnellen Zugriff 125Primärschlüssel 126

Mit Indizes arbeiten 128Was ist eigentlich ein Index? 128Wozu ist ein Index gut? 129Einen Index verwalten 130

Die Datenintegrität bewahren 131Integrität von Entitäten 131Integrität von Domänen 132Referenzielle Integrität 133Und gerade als Sie dachten, alles wäre sicher . . . 136Potenzielle Problembereiche 137Einschränkungen 139

Inhaltsverzeichnis

13

Die Datenbank normalisieren 142Änderungsanomalien und Normalformen 142Erste Normalform 145Zweite Normalform 145Dritte Normalform 146Domain-Key-Normalform (DK/NF) 147Abnorme Formen 148

Teil IIIDaten speichern und abrufen 149

Kapitel 6Daten einer Datenbank bearbeiten 151

Daten abrufen 151Eine Sicht erstellen 152

FROM-Tabellen 153Mit einer Auswahlbedingung 154Mit einem geänderten Attribut 155

Sichten aktualisieren 156Neue Daten hinzufügen 156

Daten zeilenweise einfügen 157Daten nur in ausgewählte Spalten einfügen 158Zeilen blockweise in eine Tabelle einfügen 159

Vorhandene Daten aktualisieren 161Daten übertragen 164Überholte Daten löschen 166

Kapitel 7Temporale Daten verarbeiten 167

Zeiten und Perioden in SQL:2011 verstehen 167Mit Anwendungszeitperioden-Tabellen arbeiten 169

Primärschlüssel in Anwendungszeitperiode-Tabellen definieren 171Referenzielle Einschränkungen auf Anwendungszeitperiode-Tabellenanwenden 172Anwendungszeitperiode-Tabellen abfragen 173

Mit systemversionierten Tabellen arbeiten 174Primärschlüssel für systemversionierte Tabellen definieren 176Referenzielle Einschränkungen auf systemversionierte Tabellen anwenden 176Systemversionierte Tabellen abfragen 176

Noch mehr Daten mit bitemporalen Tabellen verwalten 177

SQL für Dummies

14

Kapitel 8Werte festlegen 179

Werte 179Zeilenwerte 179Literale 179Variablen 181Spezielle Variablen 183Spaltenreferenzen 183

Wertausdrücke 184String-Wertausdrücke 185Numerische Wertausdrücke 185Datums- und Zeit-Wertausdrücke 186Intervall-Wertausdrücke 186Bedingungs-Wertausdrücke 187

Funktionen 187Mit Mengenfunktionen summieren 187Wertfunktionen 190

Kapitel 9SQL-Wertausdrücke – fortgeschrittener Teil 203

CASE-Bedingungsausdrücke 203CASE mit Suchbedingungen verwenden 204CASE mit Werten verwenden 206Ein Sonderfall: CASE – NULLIF 208Ein weiterer Sonderfall: CASE – COALESCE 210

Umwandlungen von Datentypen mit CAST 210CAST in SQL verwenden 212CAST als Mittler zwischen SQL und Host-Sprachen 212

Datensatzwertausdrücke 213

Kapitel 10Daten zielsicher finden 215

Modifizierende Klauseln 215Die Klausel FROM 217Die Klausel WHERE 217

Vergleichsprädikate 219BETWEEN 219IN und NOT IN 221LIKE und NOT LIKE 222SIMILAR 223NULL 224ALL, SOME, ANY 225EXISTS 226

Inhaltsverzeichnis

15

UNIQUE 227DISTINCT 227OVERLAPS 228MATCH 229Regeln der referenziellen Integrität und das Prädikat MATCH 230

Logische Verknüpfungen 232AND 232OR 233NOT 233

Die Klausel GROUP BY 234HAVING 236ORDER BY 237Begrenzende FETCH-Funktion 238Ergebnismengen mit Fensterfunktionen erstellen 240

Ein Fenster mit NTILE in Buckets partionieren 241In einem Fenster navigieren 241Fensterfunktionen verschachteln 243

Gruppen von Zeilen auswerten 244

Kapitel 11Relationale Operatoren 245

UNION 245UNION ALL 247UNION CORRESPONDING 247

INTERSECT 248EXCEPT 250Verknüpfungsoperatoren 250

Die einfache Verknüpfung 251Gleichheitsverknüpfung – Equi-Join 252Kreuzverknüpfungen – Cross-Join 254Natürliche Verknüpfungen – Natural-Join 254Bedingte Verknüpfungen 255Spaltennamenverknüpfungen 255Innere Verknüpfungen – INNER JOIN 256Äußere Verknüpfungen – OUTER JOIN 257Vereinigungsverknüpfungen – Union Join 260

ON im Vergleich zu WHERE 266

Kapitel 12Mit verschachtelten Abfragen tief graben 267

Was Unterabfragen erledigen 268Verschachtelte Abfragen, die eine Zeilenmenge zurückgeben 269Verschachtelte Abfragen, die einen einzelnen Wert zurückgeben 272

SQL für Dummies

16

Die quantifizierenden Vergleichsoperatoren ALL, SOME und ANY 275Verschachtelte Abfragen als Existenztest 276Weitere korrelierte Unterabfragen 278Die Anweisungen UPDATE, DELETE und INSERT 281Änderungen per pipelined DML abrufen 284

Kapitel 13Rekursive Abfragen 285

Was ist Rekursion? 285Houston, wir haben ein Problem 287Scheitern ist keine Option 287

Was ist eine rekursive Abfrage? 288Wo kann ich eine rekursive Abfrage anwenden? 288

Abfragen auf die harte Tour erstellen 290Zeit mit einer rekursiven Abfrage sparen 291

Wo könnte ich eine rekursive Abfrage sonst noch einsetzen? 293

Teil IVKontrollmechanismen 295

Kapitel 14Datenbanken schützen 297

Die Datenkontrollsprache von SQL 297Zugriffsebenen für Benutzer 298

Der Datenbankadministrator 298Besitzer von Datenbankobjekten 299Die Öffentlichkeit 299

Rechte an Benutzer vergeben 300Rollen 301Daten einfügen 302Daten lesen 302Tabellendaten ändern 303Tabellenzeilen löschen 303Verknüpfte Tabellen referenzieren 304Domänen, Zeichensätze, Sortierreihenfolgen und Übersetzungstabellen 304Das Ausführen von SQL-Anweisungen bewirken 306

Rechte über Ebenen hinweg einräumen 307Das Recht zur Vergabe von Rechten übertragen 308Rechte entziehen 309Mit GRANT und REVOKE zusammen Zeit und Aufwand sparen 310

Inhaltsverzeichnis

17

Kapitel 15Daten schützen 313

Gefahren für die Datenintegrität 313Plattforminstabilität 314Geräteausfall 314Gleichzeitiger Datenzugriff 315

Die Gefahr der Verfälschung von Daten reduzieren 317Mit SQL-Transaktionen arbeiten 318Die Standardtransaktion 319Isolierungsebenen 320Anweisungen mit implizitem Transaktionsbeginn 322SET TRANSACTION 322COMMIT 323ROLLBACK 323Datenbankobjekte sperren 324Datensicherung 324Speicherpunkte und Untertransaktionen 325

Einschränkungen innerhalb von Transaktionen 326

Kapitel 16SQL in Anwendungen benutzen 331

SQL in einer Anwendung 331Nach dem Sternchen Ausschau halten 332Stärken und Schwächen von SQL 332Stärken und Schwächen prozeduraler Sprachen 333Probleme bei der Kombination von SQL mit prozeduralen Sprachen 333

SQL in prozedurale Sprachen einbinden 334Eingebettetes SQL 334Die SQL-Modulsprache 337Objektorientierte RAD-Werkzeuge 339SQL mit Microsoft Access verwenden 340

Teil VSQL in der Praxis 343

Kapitel 17Datenzugriffe mit ODBC und JDBC 345

ODBC 345Die ODBC-Schnittstelle 346Die Komponenten von ODBC 346

ODBC in einer Client/Server-Umgebung 347

SQL für Dummies

18

ODBC und das Internet 348Server-Erweiterungen 349Client-Erweiterungen 349

ODBC und Intranets 350JDBC 351

Kapitel 18SQL und XML 353

Was XML mit SQL zu tun hat 353Der XML-Datentyp 354

Wann der XML-Datentyp verwendet werden sollte 354Wann der Datentyp XML nicht verwendet werden sollte 355

SQL in XML und XML in SQL konvertieren 356Zeichensätze konvertieren 356Bezeichner konvertieren 356Datentypen konvertieren 357Tabellen konvertieren 358Mit Nullwerten umgehen 358Das XML-Schema erzeugen 359

SQL-Funktionen, die mit XML-Daten arbeiten 360XMLDOCUMENT 360XMLELEMENT 360XMLFOREST 361XMLCONCAT 361XMLAGG 362XMLCOMMENT 363XMLPARSE 363XMLPI 363XMLQUERY 364XMLCAST 364

Prädikate 365DOCUMENT 365CONTENT 365XMLEXISTS 365VALID 365

XML-Daten in SQL-Tabellen umwandeln 366Nicht vordefinierte Datentypen in XML abbilden 368

Domänen 368Distinct UDT (Spezifischer benutzerdefinierter Datentyp) 369Row (Zeile) 369Array 370Multiset 371

Die Hochzeit von SQL und XML 372

Inhaltsverzeichnis

19

Teil VISQL für Fortgeschrittene 373

Kapitel 19Cursor 375

Einen Cursor deklarieren 376Der Abfrageausdruck 376Die Klausel ORDER BY 377Die Klausel FOR UPDATE 378Sensitivität 379Scrollbarkeit 380

Einen Cursor öffnen 380Daten aus einer einzelnen Zeile abrufen 382

Syntax 382Die Orientierung eines scrollbaren Cursors 383Cursor-Zeilen löschen oder ändern 383

Einen Cursor schließen 384

Kapitel 20Prozedurale Möglichkeiten mit dauerhaft gespeicherten Modulenschaffen 385

Zusammengesetzte Anweisungen 385Atomarität 386Variablen 387Cursor 388Zustand (Condition) 388Mit Zuständen umgehen 389Zustände, die nicht verarbeitet werden 391Zuweisung 392

Anweisungen zur Ablaufsteuerung 392IF . . . THEN . . . ELSE . . . END IF 392CASE . . . END CASE 393LOOP . . . ENDLOOP 394LEAVE 395WHILE . . . DO . . . END WHILE 395REPEAT . . . UNTIL . . . END REPEAT 396FOR . . . DO . . . END FOR 396ITERATE 396

Gespeicherte Prozeduren 397Gespeicherte Funktionen 399Rechte 399Gespeicherte Module 400

SQL für Dummies

20

Kapitel 21Fehlerbehandlung 403

SQLSTATE 403Die Klausel WHENEVER 405Diagnosebereiche 406

Der Kopf des Diagnosebereichs 406Der Detailbereich des Diagnosebereichs 407Beispiel für Verstöße gegen Einschränkungen 409Einer Tabelle Einschränkungen hinzufügen 410Die Informationen auswerten, die von SQLSTATE zurückgegeben werden 411

Ausnahmen handhaben 411

Kapitel 22Trigger 413

Einige Anwendungen von Triggern 413Einen Trigger erstellen 414Anweisungs- und Zeilen-Trigger 414Wenn ein Trigger ausgelöst wird 415Die getriggerte SQL-Anweisung 415Ein Beispiel für eine Trigger-Definition 416Eine Folge von Triggern auslösen 416Alte Werte und neue Werte referenzieren 417Mehrere Trigger für eine einzelne Tabelle auslösen 418

Teil VIIDer Top-Ten-Teil 419

Kapitel 23Zehn häufige Fehler 421

Annehmen, dass die Kunden wissen, was sie brauchen 421Den Umfang des Projekts ignorieren 422Nur technische Faktoren berücksichtigen 422Nicht um Feedback bitten 422Immer Ihre liebste Entwicklungsumgebung benutzen 422Immer Ihre liebste Systemarchitektur benutzen 423Datenbanktabellen unabhängig voneinander entwerfen 423Design-Reviews ignorieren 423Betatests überspringen 424Keine Dokumentation erstellen 424

Inhaltsverzeichnis

21

Kapitel 24Zehn Tipps für Abfragen 425

Prüfen Sie die Datenbankstruktur 425Testen Sie Abfragen mit einer Testdatenbank 426Prüfen Sie Verknüpfungsabfragen doppelt 426Prüfen Sie Abfragen mit einer Unterabfrage dreifach 426Daten mit GROUP BY summieren 426Beachten Sie die Einschränkungen der Klausel GROUP BY 427Benutzen Sie bei AND, OR und NOT Klammern 427Überwachen Sie Abfragerechte 427Sichern Sie Ihre Datenbanken regelmäßig 428Bauen Sie eine Fehlerbehandlung ein 428

AnhangSQL:2011 Reservierte Wörter 429

Stichwortverzeichnis 431

SQL für Dummies

22