Click here to load reader

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

  • View
    219

  • Download
    0

Embed Size (px)

Text of Inhaltsverzeichnis - application.wiley-vch.de · Ein (sehr) kurzer historischer Überblick 41...

  • Inhaltsverzeichnis

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

    Einfhrung 23ber 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? 28Datenbankgre und -komplexitt 29Was ist ein Datenbankverwaltungssystem? 29Flache Dateien 31Datenbankmodelle 32

    Das relationale Modell 32Komponenten einer relationalen Datenbank 33Was sind Relationen? 33Views oder Sichten 34Schemata, Domnen und Einschrnkungen 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 Wrter 42

    11

  • Datentypen 44Genaue Zahlen 44Annhernd genaue Zahlen 46Zeichenketten 48Binre Zeichenketten 50Boolesche Werte 51Datums- und Zeitwerte 51Intervalle 52Der Datentyp XML 53Der Datentyp ROW 55Datentypen fr Auflistungen 56REF-Typen 58Benutzerdefinierte Typen 58Zusammenfassung der Datentypen 61

    Nullwerte 63Einschrnkungen 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 80Ausdrcke 80Prdikate 83Logische Verknpfungen 84Mengenfunktionen 85Unterabfragen 86

    DCL (Data Control Language) 86Transaktionen 87Benutzer und Rechte 88Einschrnkungen der referenziellen Integritt knnen Ihre Daten gefhrden 90Die Verantwortung fr die Sicherheit delegieren 92

    SQL fr 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 gehrt 96Eine Datenbanktabelle erstellen 97Die Struktur einer Tabelle ndern 104Einen Index definieren 106Eine Tabelle lschen 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 lschen 117Einen Index lschen 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 121Domnen, Zeichenstze, Sortierfolgen und bersetzungstabellen 124Schlssel fr den schnellen Zugriff 125Primrschlssel 126

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

    Die Datenintegritt bewahren 131Integritt von Entitten 131Integritt von Domnen 132Referenzielle Integritt 133Und gerade als Sie dachten, alles wre sicher . . . 136Potenzielle Problembereiche 137Einschrnkungen 139

    Inhaltsverzeichnis

    13

  • Die Datenbank normalisieren 142nderungsanomalien 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 genderten Attribut 155

    Sichten aktualisieren 156Neue Daten hinzufgen 156

    Daten zeilenweise einfgen 157Daten nur in ausgewhlte Spalten einfgen 158Zeilen blockweise in eine Tabelle einfgen 159

    Vorhandene Daten aktualisieren 161Daten bertragen 164berholte Daten lschen 166

    Kapitel 7Temporale Daten verarbeiten 167

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

    Primrschlssel in Anwendungszeitperiode-Tabellen definieren 171Referenzielle Einschrnkungen auf Anwendungszeitperiode-Tabellenanwenden 172Anwendungszeitperiode-Tabellen abfragen 173

    Mit systemversionierten Tabellen arbeiten 174Primrschlssel fr systemversionierte Tabellen definieren 176Referenzielle Einschrnkungen auf systemversionierte Tabellen anwenden 176Systemversionierte Tabellen abfragen 176

    Noch mehr Daten mit bitemporalen Tabellen verwalten 177

    SQL fr Dummies

    14

  • Kapitel 8Werte festlegen 179

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

    Wertausdrcke 184String-Wertausdrcke 185Numerische Wertausdrcke 185Datums- und Zeit-Wertausdrcke 186Intervall-Wertausdrcke 186Bedingungs-Wertausdrcke 187

    Funktionen 187Mit Mengenfunktionen summieren 187Wertfunktionen 190

    Kapitel 9SQL-Wertausdrcke fortgeschrittener Teil 203

    CASE-Bedingungsausdrcke 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

    Datensatzwertausdrcke 213

    Kapitel 10Daten zielsicher finden 215

    Modifizierende Klauseln 215Die Klausel FROM 217Die Klausel WHERE 217

    Vergleichsprdikate 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 Integritt und das Prdikat MATCH 230

    Logische Verknpfungen 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 250Verknpfungsoperatoren 250

    Die einfache Verknpfung 251Gleichheitsverknpfung Equi-Join 252Kreuzverknpfungen Cross-Join 254Natrliche Verknpfungen Natural-Join 254Bedingte Verknpfungen 255Spaltennamenverknpfungen 255Innere Verknpfungen INNER JOIN 256uere Verknpfungen OUTER JOIN 257Vereinigungsverknpfungen Union Join 260

    ON im Vergleich zu WHERE 266

    Kapitel 12Mit verschachtelten Abfragen tief graben 267

    Was Unterabfragen erledigen 268Verschachtelte Abfragen, die eine Zeilenmenge zurckgeben 269Verschachtelte Abfragen, die einen einzelnen Wert zurckgeben 272

    SQL fr Dummies

    16

  • Die quantifizierenden Vergleichsoperatoren ALL, SOME und ANY 275Verschachtelte Abfragen als Existenztest 276Weitere korrelierte Unterabfragen 278Die Anweisungen UPDATE, DELETE und INSERT 281nderungen 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 knnte ich eine rekursive Abfrage sonst noch einsetzen? 293

    Teil IVKontrollmechanismen 295

    Kapitel 14Datenbanken schtzen 297

    Die Datenkontrollsprache von SQL 297Zugriffsebenen fr Benutzer 298

    Der Datenbankadministrator 298Besitzer von Datenbankobjekten 299Die ffentlichkeit 299

    Rechte an Benutzer vergeben 300Rollen 301Daten einfgen 302Daten lesen 302Tabellendaten ndern 303Tabellenzeilen lschen 303Verknpfte Tabellen referenzieren 304Domnen, Zeichenstze, Sortierreihenfolgen und bersetzungstabellen 304Das Ausfhren von SQL-Anweisungen bewirken 306

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

    Inhaltsverzeichnis

    17

  • Kapitel 15Daten schtzen 313

    Gefahren fr die Datenintegritt 313Plattforminstabilitt 314Gerteausfall 314Gleichzeitiger Datenzugriff 315

    Die Gefahr der Verflschung 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

    Einschrnkungen innerhalb von Transaktionen 326

    Kapitel 16SQL in Anwendungen benutzen 331

    SQL in einer Anwendung 331Nach dem Sternchen Ausschau halten 332Strken und Schwchen von SQL 332Strken und Schwchen 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 fr 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 356Zeichenstze 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

    Prdikate 365DOCUMENT 365CONTENT 365XMLEXISTS 365VALID 365

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

    Domnen 368Distinct UDT (Spezifischer benutzerdefinierter Datentyp) 369Row (Zeile) 369Array 370Multiset 371

    Die Hochzeit von SQL und XML 372

    Inhaltsverzeichnis

    19

  • Teil VISQL fr Fortgeschrittene 373

    Kapitel 19Cursor 375

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

    Einen Cursor ffnen 380Daten aus einer einzelnen Zeile abrufen 382

    Syntax 382Die Orientierung eines scrollbaren Cursors 383Cursor-Zeilen lschen oder ndern 383

    Einen Cursor schlieen 384

    Kapitel 20Prozedurale Mglichkeiten mit dauerhaft gespeicherten Modulenschaffen 385

    Zusammengesetzte Anweisungen 385Atomaritt 386Variablen 387Cursor 388Zustand (Condition) 388Mit Zustnden umgehen 389Zustnde, 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 fr Dummies

    20

  • Kapitel 21Fehlerbehandlung 403

    SQLSTATE 403Die Klausel WHENEVER 405Diagnosebereiche 406

    Der Kopf des Diagnosebereichs 406Der Detailbereich des Diagnosebereichs 407Beispiel fr Verste gegen Einschrnkungen 409Einer Tabelle Einschrnkungen hinzufgen 410Die Informationen auswerten, die von SQLSTATE zurckgegeben werden 411

    Ausnahmen handhaben 411

    Kapitel 22Trigger 413

    Einige Anwendungen von Triggern 413Einen Trigger erstellen 414Anweisungs- und Zeilen-Trigger 414Wenn ein Trigger ausgelst wird 415Die getriggerte SQL-Anweisung 415Ein Beispiel fr eine Trigger-Definition 416Eine Folge von Triggern auslsen 416Alte Werte und neue Werte referenzieren 417Mehrere Trigger fr eine einzelne Tabelle auslsen 418

    Teil VIIDer Top-Ten-Teil 419

    Kapitel 23Zehn hufige Fehler 421

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

    Inhaltsverzeichnis

    21

  • Kapitel 24Zehn Tipps fr Abfragen 425

    Prfen Sie die Datenbankstruktur 425Testen Sie Abfragen mit einer Testdatenbank 426Prfen Sie Verknpfungsabfragen doppelt 426Prfen Sie Abfragen mit einer Unterabfrage dreifach 426Daten mit GROUP BY summieren 426Beachten Sie die Einschrnkungen der Klausel GROUP BY 427Benutzen Sie bei AND, OR und NOT Klammern 427berwachen Sie Abfragerechte 427Sichern Sie Ihre Datenbanken regelmig 428Bauen Sie eine Fehlerbehandlung ein 428

    AnhangSQL:2011 Reservierte Wrter 429

    Stichwortverzeichnis 431

    SQL fr Dummies

    22