Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Schummelseite
Titelei
Inhaltsverzeichnis
Über den Autor
Widmung
Danksagung des Autors
Über die Übersetzer
Einführung
Über dieses Buch
Wer sollte dieses Buch lesen?
Symbole, die in diesem Buch verwendet werden
Wie es weitergeht
Teil I Grundbegriffe
1 Grundlagen relationaler Datenbanken
Die Übersicht über Dinge behalten
Was ist eine Datenbank?
Datenbankgröße und -komplexität
Was ist ein Datenbankverwaltungssystem?
Flache Dateien
Datenbankmodelle
Das relationale Modell
Komponenten einer relationalen Datenbank
Was sind Relationen?
Views oder Sichten
Schemata, Domänen und Einschränkungen
Das Objektmodell fordert das relationale Modell heraus
Das objektrelationale Modell
Überlegungen zum Datenbankentwurf
2 SQL-Grundlagen
Was SQL ist und was es nicht ist
Ein (sehr) kurzer historischer Überblick
SQL-Anweisungen
Reservierte Wörter
Datentypen
Genaue Zahlen
Annähernd genaue Zahlen
Zeichenketten
Binäre Zeichenketten
Boolesche Werte
Datums- und Zeitwerte
Intervalle
Der Datentyp XML
Der Datentyp ROW
Datentypen für Auflistungen
REF-Typen
Benutzerdefinierte Typen
Zusammenfassung der Datentypen
Nullwerte
Einschränkungen
SQL in einem Client/Server-System benutzen
Der Server
Der Client
SQL mit dem Internet oder einem Intranet benutzen
3 Die Komponenten von SQL
Data Definition Language
Wenn »Mach’ es einfach!« kein guter Rat ist
Tabellen erstellen
Sichten
Tabellen in Schemata zusammenfassen
Ordnung durch Kataloge
Die DDL-Anweisungen kennenlernen
Data Manipulation Language
Ausdrücke
Prädikate
Logische Verknüpfungen
Mengenfunktionen
Unterabfragen
DCL (Data Control Language)
Transaktionen
Benutzer und Rechte
Einschränkungen der referenziellen Integrität können Ihre Daten gefährden
Die Verantwortung für die Sicherheit delegieren
Teil II Datenbanken mit SQL erstellen
4 Eine einfache Datenbankstruktur erstellen und verwalten
Eine einfache Datenbank mit einem RAD-Werkzeug erstellen
Entscheiden, was in die Datenbank gehört
Eine Datenbanktabelle erstellen
Die Struktur einer Tabelle ändern
Einen Index definieren
Eine Tabelle löschen
Das gleiche Beispiel mit der DDL von SQL erstellen
SQL mit Microsoft Access nutzen
Eine Tabelle erstellen
Einen Index erstellen
Die Tabellenstruktur ändern
Eine Tabelle löschen
Einen Index löschen
Überlegungen zur Portierbarkeit
5 Eine relationale Datenbank mit mehreren Tabellen erstellen
Die Datenbank entwerfen
Schritt 1: Objekte definieren
Schritt 2: Tabellen und Spalten identifizieren
Schritt 3: Tabellen definieren
Domänen, Zeichensätze, Sortierfolgen und Übersetzungstabellen
Schlüssel für den schnellen Zugriff
Primärschlüssel
Mit Indizes arbeiten
Was ist eigentlich ein Index?
Wozu ist ein Index gut?
Einen Index verwalten
Die Datenintegrität bewahren
Integrität von Entitäten
Integrität von Domänen
Referenzielle Integrität
Und gerade als Sie dachten, alles wäre sicher …
Potenzielle Problembereiche
Einschränkungen
Die Datenbank normalisieren
Änderungsanomalien und Normalformen
Erste Normalform
Zweite Normalform
Dritte Normalform
Domain-Key-Normalform (DK/NF)
Abnorme Formen
Teil III Daten speichern und abrufen
6 Daten einer Datenbank bearbeiten
Daten abrufen
Eine Sicht erstellen
FROM-Tabellen
Mit einer Auswahlbedingung
Mit einem geänderten Attribut
Sichten aktualisieren
Neue Daten hinzufügen
Daten zeilenweise einfügen
Daten nur in ausgewählte Spalten einfügen
Zeilen blockweise in eine Tabelle einfügen
Vorhandene Daten aktualisieren
Daten übertragen
Überholte Daten löschen
7 Temporale Daten verarbeiten
Zeiten und Perioden in SQL:2011 verstehen
Mit Anwendungszeitperioden-Tabellen arbeiten
Primärschlüssel in Anwendungszeitperiode-Tabellen definieren
Referenzielle Einschränkungen auf Anwendungszeitperiode-Tabellen anwenden
Anwendungszeitperiode-Tabellen abfragen
Mit systemversionierten Tabellen arbeiten
Primärschlüssel für systemversionierte Tabellen definieren
Referenzielle Einschränkungen auf systemversionierte Tabellen anwenden
Systemversionierte Tabellen abfragen
Noch mehr Daten mit bitemporalen Tabellen verwalten
8 Werte festlegen
Werte
Zeilenwerte
Literale
Variablen
Spezielle Variablen
Spaltenreferenzen
Wertausdrücke
String-Wertausdrücke
Numerische Wertausdrücke
Datums- und Zeit-Wertausdrücke
Intervall-Wertausdrücke
Bedingungs-Wertausdrücke
Funktionen
Mit Mengenfunktionen summieren
Wertfunktionen
9 SQL-Wertausdrücke – fortgeschrittener Teil
CASE-Bedingungsausdrücke
CASE mit Suchbedingungen verwenden
CASE mit Werten verwenden
Ein Sonderfall: CASE – NULLIF
Ein weiterer Sonderfall: CASE – COALESCE
Umwandlungen von Datentypen mit CAST
CAST in SQL verwenden
CAST als Mittler zwischen SQL und Host-Sprachen
Datensatzwertausdrücke
10 Daten zielsicher finden
Modifizierende Klauseln
Die Klausel FROM
Die Klausel WHERE
Vergleichsprädikate
BETWEEN
IN und NOT IN
LIKE und NOT LIKE
SIMILAR
NULL
ALL, SOME, ANY
EXISTS
UNIQUE
DISTINCT
OVERLAPS
MATCH
Regeln der referenziellen Integrität und das Prädikat MATCH
Logische Verknüpfungen
AND
OR
NOT
Die Klausel GROUP BY
HAVING
ORDER BY
Begrenzende FETCH-Funktion
Ergebnismengen mit Fensterfunktionen erstellen
Ein Fenster mit NTILE in Buckets partionieren
In einem Fenster navigieren
Fensterfunktionen verschachteln
Gruppen von Zeilen auswerten
11 Relationale Operatoren
UNION
UNION ALL
UNION CORRESPONDING
INTERSECT
EXCEPT
Verknüpfungsoperatoren
Die einfache Verknüpfung
Gleichheitsverknüpfung – Equi-Join
Kreuzverknüpfungen – Cross-Join
Natürliche Verknüpfungen – Natural-Join
Bedingte Verknüpfungen
Spaltennamenverknüpfungen
Innere Verknüpfungen – INNER JOIN
Äußere Verknüpfungen – OUTER JOIN
Vereinigungsverknüpfungen – Union Join
ON im Vergleich zu WHERE
12 Mit verschachtelten Abfragen tief graben
Was Unterabfragen erledigen
Verschachtelte Abfragen, die eine Zeilenmenge zurückgeben
Verschachtelte Abfragen, die einen einzelnen Wert zurückgeben
Die quantifizierenden Vergleichsoperatoren ALL, SOME und ANY
Verschachtelte Abfragen als Existenztest
Weitere korrelierte Unterabfragen
Die Anweisungen UPDATE, DELETE und INSERT
Änderungen per pipelined DML abrufen
13 Rekursive Abfragen
Was ist Rekursion?
Houston, wir haben ein Problem
Scheitern ist keine Option
Was ist eine rekursive Abfrage?
Wo kann ich eine rekursive Abfrage anwenden?
Abfragen auf die harte Tour erstellen
Zeit mit einer rekursiven Abfrage sparen
Wo könnte ich eine rekursive Abfrage sonst noch einsetzen?
Teil IV Kontrollmechanismen
14 Datenbanken schützen
Die Datenkontrollsprache von SQL
Zugriffsebenen für Benutzer
Der Datenbankadministrator
Besitzer von Datenbankobjekten
Die Öffentlichkeit
Rechte an Benutzer vergeben
Rollen
Daten einfügen
Daten lesen
Tabellendaten ändern
Tabellenzeilen löschen
Verknüpfte Tabellen referenzieren
Domänen, Zeichensätze, Sortierreihenfolgen und Übersetzungstabellen
Das Ausführen von SQL-Anweisungen bewirken
Rechte über Ebenen hinweg einräumen
Das Recht zur Vergabe von Rechten übertragen
Rechte entziehen
Mit GRANT und REVOKE zusammen Zeit und Aufwand sparen
15 Daten schützen
Gefahren für die Datenintegrität
Plattforminstabilität
Geräteausfall
Gleichzeitiger Datenzugriff
Die Gefahr der Verfälschung von Daten reduzieren
Mit SQL-Transaktionen arbeiten
Die Standardtransaktion
Isolierungsebenen
Anweisungen mit implizitem Transaktionsbeginn
SET TRANSACTION
COMMIT
ROLLBACK
Datenbankobjekte sperren
Datensicherung
Speicherpunkte und Untertransaktionen
Einschränkungen innerhalb von Transaktionen
16 SQL in Anwendungen benutzen
SQL in einer Anwendung
Nach dem Sternchen Ausschau halten
Stärken und Schwächen von SQL
Stärken und Schwächen prozeduraler Sprachen
Probleme bei der Kombination von SQL mit prozeduralen Sprachen
SQL in prozedurale Sprachen einbinden
Eingebettetes SQL
Die SQL-Modulsprache
Objektorientierte RAD-Werkzeuge
SQL mit Microsoft Access verwenden
Teil V SQL in der Praxis
17 Datenzugriffe mit ODBC und JDBC
ODBC
Die ODBC-Schnittstelle
Die Komponenten von ODBC
ODBC in einer Client/Server-Umgebung
ODBC und das Internet
Server-Erweiterungen
Client-Erweiterungen
ODBC und Intranets
JDBC
18 SQL und XML
Was XML mit SQL zu tun hat
Der XML-Datentyp
Wann der XML-Datentyp verwendet werden sollte
Wann der Datentyp XML nicht verwendet werden sollte
SQL in XML und XML in SQL konvertieren
Zeichensätze konvertieren
Bezeichner konvertieren
Datentypen konvertieren
Tabellen konvertieren
Mit Nullwerten umgehen
Das XML-Schema erzeugen
SQL-Funktionen, die mit XML-Daten arbeiten
XMLDOCUMENT
XMLELEMENT
XMLFOREST
XMLCONCAT
XMLAGG
XMLCOMMENT
XMLPARSE
XMLPI
XMLQUERY
XMLCAST
Prädikate
DOCUMENT
CONTENT
XMLEXISTS
VALID
XML-Daten in SQL-Tabellen umwandeln
Nicht vordefinierte Datentypen in XML abbilden
Domänen
Distinct UDT (Spezifischer benutzerdefinierter Datentyp)
Row (Zeile)
Array
Multiset
Die Hochzeit von SQL und XML
Teil VI SQL für Fortgeschrittene
19 Cursor
Einen Cursor deklarieren
Der Abfrageausdruck
Die Klausel ORDER BY
Die Klausel FOR UPDATE
Sensitivität
Scrollbarkeit
Einen Cursor öffnen
Daten aus einer einzelnen Zeile abrufen
Syntax
Die Orientierung eines scrollbaren Cursors
Cursor-Zeilen löschen oder ändern
Einen Cursor schließen
20 Prozedurale Möglichkeiten mit dauerhaft gespeicherten Modulen schaffen
Zusammengesetzte Anweisungen
Atomarität
Variablen
Cursor
Zustand (Condition)
Mit Zuständen umgehen
Zustände, die nicht verarbeitet werden
Zuweisung
Anweisungen zur Ablaufsteuerung
IF … THEN … ELSE … END IF
CASE … END CASE
LOOP … ENDLOOP
LEAVE
WHILE … DO … END WHILE
REPEAT … UNTIL … END REPEAT
FOR … DO … END FOR
ITERATE
Gespeicherte Prozeduren
Gespeicherte Funktionen
Rechte
Gespeicherte Module
21 Fehlerbehandlung
SQLSTATE
Die Klausel WHENEVER
Diagnosebereiche
Der Kopf des Diagnosebereichs
Der Detailbereich des Diagnosebereichs
Beispiel für Verstöße gegen Einschränkungen
Einer Tabelle Einschränkungen hinzufügen
Die Informationen auswerten, die von SQLSTATE zurückgegeben werden
Ausnahmen handhaben
22 Trigger
Einige Anwendungen von Triggern
Einen Trigger erstellen
Anweisungs- und Zeilen-Trigger
Wenn ein Trigger ausgelöst wird
Die getriggerte SQL-Anweisung
Ein Beispiel für eine Trigger-Definition
Eine Folge von Triggern auslösen
Alte Werte und neue Werte referenzieren
Mehrere Trigger für eine einzelne Tabelle auslösen
Teil VII Der Top-Ten-Teil
23 Zehn häufige Fehler
Annehmen, dass die Kunden wissen, was sie brauchen
Den Umfang des Projekts ignorieren
Nur technische Faktoren berücksichtigen
Nicht um Feedback bitten
Immer Ihre liebste Entwicklungsumgebung benutzen
Immer Ihre liebste Systemarchitektur benutzen
Datenbanktabellen unabhängig voneinander entwerfen
Design-Reviews ignorieren
Betatests überspringen
Keine Dokumentation erstellen
24 Zehn Tipps für Abfragen
Prüfen Sie die Datenbankstruktur
Testen Sie Abfragen mit einer Testdatenbank
Prüfen Sie Verknüpfungsabfragen doppelt
Prüfen Sie Abfragen mit einer Unterabfrage dreifach
Daten mit GROUP BY summieren
Beachten Sie die Einschränkungen der Klausel GROUP BY
Benutzen Sie bei AND, OR und NOT Klammern
Überwachen Sie Abfragerechte
Sichern Sie Ihre Datenbanken regelmäßig
Bauen Sie eine Fehlerbehandlung ein
Anhang SQL:2011 Reservierte Wörter
Stichwortverzeichnis
← Prev
Back
Next →
← Prev
Back
Next →