• Keine Ergebnisse gefunden

SQL. Standardisierte Datenbanksprache vom PC bis zum Mainframe. Von Professor Dr. Albrecht Achilles. 7., neu bearbeitete und erweiterte Auflage

N/A
N/A
Protected

Academic year: 2022

Aktie "SQL. Standardisierte Datenbanksprache vom PC bis zum Mainframe. Von Professor Dr. Albrecht Achilles. 7., neu bearbeitete und erweiterte Auflage"

Copied!
11
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

SQL

Standardisierte Datenbanksprache vom PC bis zum Mainframe

Von Professor

Dr. Albrecht Achilles

7., neu bearbeitete und erweiterte Auflage

R.Oldenbourg Verlag München Wien

© 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network.

(2)

Inhaltsverzeichnis V

Inhaltsverzeichnis

Vorwort XV

E i n f ü h r u n g u n d G r u n d l a g e n

1 „Vorgeschichte", Stand und Perspektiven 1 1.1 Erste Ansätze 1 1.2 Relationaler Ansatz 3 1.3 Standardisierung 4 1.4 Zukünftige Entwicklungen 5 2 Grundlegende D a t e n m o d e l l e 7 2.1 Entity-Relationship-Modell 7 2.2 Das relationale Modell 9 2.2.1 Produktbildung 11 2.3 Vom ER-Modell zu Tabellen 12 3 Übersicht über SQL 13 3.1 Bestandteile und Konzepte 13 3.1.1 SQL-Kommandos 13 3.1.2 Tabellen, Indexe, Katalog 14 3.1.3 Datentypen in SQL . i 16 3.1.4 Sperren, Transaktionen 17 3.1.5 Benutzer, Rechte 18 3.1.6 Sicherungskonzepte 19 3.2 Datendefinitionen 1 20 3.2.1 Erzeugen von realen Tabellen 21

(3)

I

VI Inhaltsverzeichnis

3.2.2 Ändern, Löschen von realen Tabellen 22 3.2.3 Index 23 3.3 Wiederauffinden von Daten mit SELECT 25 3.3.1 Suchen in Tabellen 25 3.3.2 Verbinden von Tabellen 29 3.3.3 Weitere Join-Arten 31 3.3.4 Spaltenfunktionen 32 3.3.5 Unteranfragen 33 3.3.6 Gruppieren einer Tabelle 35 3.3.7 Ordnen 36 3.4 Datendefinitionen 2 36 3.4.1 Anlegen virtueller Tabellen 36 3.4.2 Löschen virtueller Tabellen 37 3.4.3 Tabellenstrukturänderungen 37 3.4.4 Synonyme 38 3.5 Einfügen, Verändern, Löschen von Daten 38 3.6 Autorisierungen 41 3.7 Transaktionen 44 3.7.1 Verklemmungen - Deadlocks 48

f 3.8 Trigger : . 48 3.9 Gespeicherte Prozeduren 49 4 Schnittstellen 51 4.1 Einbettung in Programme 51 4.1.1 Vorbemerkung 51 4.1.2 Einbettung von SQL-Anweisungen 51 4.1.3 Deklaration gemeinsamer Variablen 52 4.1.4 Cursor zum Zugriff auf Tabellen 54 4.1.5 Fehlerbedingungen 54 4.1.6 Dynamische Anweisungen 56 4.1.7 Optimierung 57 4.2 Laden und Entladen von Tabellen 57

(4)

Inhaltsverzeichnis V11

SQL/92 — Implementationen

5 Sprachelemente von SQL 59 5.1 Datentypen, Konstanten und NULL-Wert 59 5.1.1 Der NULL-Wert und dreiwertige Logik 63 5.1.2 Konstanten 64 5.1.3 Implementations-Spezifika 66 5.2 Skalare Funktionen und vordefinierte Variablen 68 5.2.1 Datum- und Zeit 68 5.2.2 User-Funktionen 68 5.2.3 Numerische Funktionen 69 5.2.4 Zeichenketten-Funktionen 70 5.2.5 CAST 71 5.2.6 CASE 72 5.2.7 Implementations-Spezifika 74 5.3 Spaltenfunktionen 79 5.3.1 Implementations-Spezifika 80 5.4 Gemeinsame Variablen 81 5.4.1 Implementations-Spezifika 81 5.5 Zeilen- und Tabellenkonstruktoren 82 5.5.1 Implementations-Spezifika p3 5.6 Ausdrücke . ,, 83 5.6.1 Skalare Ausdrücke 84 5.6.2 Tabellenausdrücke 85 5.6.3 Implementations-Spezifika 89 5.7 Prädikate 90 5.7.1 Einfache Prädikate 90 5.7.2 Quantifizierte Prädikate 95 5.7.3 Suchbedingung . . . . } 97 5.7.4 Implementations-Spezifika 98 5.8 Datenbankstruktur 99 5.8.1 Das Schema INFORMATION_SCHEMA 100 5.8.2 Benennung von Datenbankobjekten 102 5.8.3 Implementations-Spezifika 102

(5)

VIII Inhaltsverzeichnis

5.9 SQL-Sitzung 103 5.9.1 Autorisierungen 104 5.9.2 Implementations-Spezifika 105 5.10 Zeichensatz, Sortierung, Übersetzung 107 5.10.1 COLLATE und TRANSLATE 108 5.10.2 Implementations-Spezifika 108 5.11 Einschränkungen - Constraints 109 5.11.1 Die CHECK-Regel 109 5.11.2 Einschränkungen für Tabellen und Spalten 111 5.11.3 Referentielle Integrität 113 5.11.4 Überprüfen von Einschränkungen 116 5.11.5 Implementations-Spezifika 117 6 Definitionssprache (DDL) 119 6.1 Datendefinitionen 119 6.2 Erzeugen von DBMS-Objekten 120 6.2.1 Schemata 120 6.2.2 Tabellen 121 6.2.3 Virtuelle Tabellen 125 6.2.4 Domänen 130 6.2.5 Zeichensätze 4. 131 6.2.6 Übersetzungsvorschriften 132 6.2.7 Anordnungen 133 6.2.8 An Schemata gebundene Einschränkungen 134 6.2.9 Implementations-Spezifika 135 6.3 Ändern von DBMS-Objekten 165 6.3.1 Domänen 165 6.3.2 Tabellen 166 6.3.3 Implementations-Sptezifika 166 6.4 Löschen von DBMS-Objekten 171 6.4.1 An Schemata gebundene Einschränkungen 171 6.4.2 Zeichensätze 171 6.4.3 Anordnungen 171 6.4.4 Domänen 172

(6)

Inhaltsverzeichnis IX

6.4.5 Schemata 173 6.4.6 Tabellen 173 6.4.7 Übersetzungsvorschriften 173 6.4.8 Virtuelle Tabellen 173 6.4.9 Implementations-Spezifika 174 6.5 Datenschutz 175 6.5.1 Vergabe von Rechten 175 6.5.2 Entzug von Rechten 178 6.5.3 Implementations-Spezifika 180 6.6 Die SET-Anweisung 186 6.6.1 Katalog 187 6.6.2 Verbindung 187 6.6.3 Einschränkungen 187 6.6.4 Zeichensatz für SQL-Anweisungen 187 6.6.5 Schema 188 6.6.6 Zugriffsrechte 188 6.6.7 Zeitzone 188 6.6.8 Transaktionsmodus 188 6.6.9 Implementation-Spezifika 190 6.7 Zukünftige Erweiterungen: Trigger 192

f

7 Datenretrieval (DML) 193 7.1 Die einfache SELECT-Anweisung 193 7.1.1 Die SELECT-Klausel 194 7.1.2 Verbinden von Tabellen (Join) 200 7.1.3 Unteranfrage (Subquery) 203 7.1.4 Implementations-Spezifika 205 7.2 Die generelle SELECT-Anweisung 208 7.3 Nicht eindeutige SELECT-Anweijungen 209 7.4 Die geordnete SELECT-Anweisung 210 7.5 SQL-Erweiterungen der Implementationen 211 7.6 Spezielle SQL-Probleme 213 7.6.1 DerNULL-Wert 213 7.6.2 Syntax-Probleme 214

(7)

X Inhaltsverzeichnis

8 Datenmanipulation (DML) 217 8.1 Einfügen: INSERT 218 8.1.1 Implementations-Spezifika 220 8.2 Löschen: DELETE 221 8.2.1 Implementations-Spezifika 223 8.3 Ändern: UPDATE 224 8.3.1 Implementations-Spezifika 226 8.4 SQL-Erweiterungen der Implementationen 227 9 Datenkontrollsprache (DCL) 229 9.1 Transaktionen 229 9.1.1 Implementations-Spezifika 231 9.2 SQL-Erweiterungen der Implementationen 232

Sprachanbindung

10 Grundlagen zur Sprachanbindung 237 10.1 Überblick 237 10.2 Selektieren und Benutzen von Daten 238 10.2.1 Die SELECT-Anweisung mit einer Ergebniszeile . . ? . 238 10.2.2 Das Cursor-Konzept .239 10.2.3 Die FETCH-Anweisung 244 10.3 Temporäre Tabellen 245 10.4 Statusinformationen 246 10.4.1 Die Variable SQLSTATE 246 10.4.2 Die „Diagnostic Area" 247 11 Die Module-Sprache i 251 11.1 Parameter, Host- und Indikatorvariablen 254 11.2 Der Aufbau eines Modules 254 11.3 Übergabe des SQL-Returncodes 255 11.4 Module-Prozeduren und Argumentübergabe 255 11.5 Zugriffsrechte 256

(8)

Inhaltsverzeichnis XI

12 E i n g e b e t t e t e SQL-Anweisungen 257 12.1 Aufgabe des Precompilers 258 12.2 Ausnahmebehandlung 260 12.3 Statische SQL-Anweisungen 261 12.4 Dynamische SQL-Anweisungen 262 12.4.1 Die PREPARE-Anweisung 263 12.4.2 Die EXECUTE-Anweisung 265 12.4.3 Freigeben der Ressourcen 265 12.5 Verbindung durch Deskriptoren 266 12.5.1 Anlegen eines Deskriptors 267 12.5.2 Initialisieren eines Deskriptors 267 12.5.3 Auslesen der Ausgabeparameter 268 12.5.4 Setzen der Eingabeparameter 269 12.5.5 Freigeben der Ressourcen 269 12.5.6 Ein Beispiel für dynamisches SQL 269 12.6 Probleme bei Embedded SQL 271 12.7 Sprachabhängigkeiten 272 13 Call Level Interface (CLI) 275 13.1 Initialisierung und Terminierung 276 13.2 Transaktionsverarbeitung 2'if) 13.2.1 Strukturen für SQL-Anweisung anlegen 281 13.2.2 Vorbereiten und Ausführen 282 13.2.3 Auslesen der Ergebnisse mittels Cursor 282 13.2.4 Transaktionsende 283 13.3 Ein- und Ausgabe 285 13.4 Direkte Positionierung des Cursors 288 13.5 Fehlerauskünfte 289 13.6 CLI für Client/Server-Anwendun'gen 289 13.6.1 Informationsbeschaffung 289 13.6.2 Verringerung des Datenstroms 289 14 J D B C 291 14.1 Einführung 291

(9)

XII Inhaltsverzeichnis

14.1.1 Eigenschaften von Java 291 14.1.2 JDBC-API: Übersicht 292 14.1.3 Die Arten der Anbindung 293 14.1.4 Middleware 295 14.2 Der Verbindungsaufbau 295 14.3 SQL-Anweisungen 296 14.3.1 Einfache Anweisungen 296 14.3.2 Wiederholte Anweisungen 298 14.3.3 Aufruf von Prozeduren 299 14.4 Ergebniszeilen 301 14.5 Ausnahmebedingungen 302 14.6 Transaktionen 304 14.7 Informationen 305 14.7.1 Metadaten des R e s u l t S e t 305 14.7.2 Metadaten der Datenbank 306

Design und Performance

15 Logisches Design und Normalisierung 307 15.1 Designaspekte 307 15.1.1 Die Wahl von Primärschlüsseln f. 308 15.1.2 Planungsdaten 308 15.2 Normalisierung: 1. bis 3. Norma.lform 309 15.2.1 1. Normalform 310 15.2.2 Funktionale Abhängigkeit, Schlüssel 311 15.2.3 2. Normalform 312 15.2.4 3. Normalform 313 15.3 Weitere Normalformen 314 15.3.1 Boyce-Codd-Normalform 315 15.3.2 4. Normalform 315 15.3.3 Zerlegung 315 15.3.4 5. Normalform 315 15.4 Weitere strukturelle Überlegungen 316 15.4.1 Domänen 316

(10)

Inhaltsverzeichnis XIII

15.4.2 Primärschlüssel 317 15.4.3 Referenzintegrität 317 15.4.4 Weitere Einschränkungen 318 15.4.5 Datenschutz 318

16 Optimierungen 319 16.1 Ziel der Optimierung 319 16.2 Überlegungen zur physischen Speicherung 319 16.2.1 Anordnung der Spalten 320 16.2.2 Geplante Redundanzen 320 16.2.3 Zerlegung von Tabellen 320 16.2.4 Indexe 322 16.3 Der Optimizer 324 16.3.1 Angaben von Spaltennamen 324 16.3.2 Problematische SQL-Anfragen 325 16.3.3 Hinweise an den Optimizer 330 16.3.4 Statistische Daten und Reorganisation 331 16.4 Kompilierte Anwendungen 332 16.4.1 Richtige Datentypen 332 16.4.2 Vermeidung unnötiger Aufrufe 332 16.4.3 „Caching" 3?3 16.4.4 Erhöhung der Nebenläufigkeit 334 16.4.5 Sperren 334 16.4.6 Ein- oder Zwei-Phasen-Cornmit 334

17 Verteilte Datenbanken 335 17.1 Formatierung im PC 335 17.2 Client - Server 335 17.3 Verteilte Verarbeitung , 336 17.4 Verteilte Datenbanksysteme (VDBMS) 337 17.4.1 Derzeitiger Stand 338 17.5 Verteilung 338 17.5.1 Fragmentierung 339 17.5.2 Faktoren, die die Verteilung beeinflussen 340

(11)

XIV Inhaltsverzeichnis

17.5.3 Allokation der Fragmente 341 17.5.4 Physische Speicherung 341 17.6 Replikation 341 17.6.1 Arten der Replikation 342 17.6.2 Replikation unter Oracle 343 17.6.3 Replikation unter DB2 344

Dienstprogramme

18 Schnittstellen 345 18.1 Die Dialogkomponente 345 18.2 Query By Example (QBE) 346 18.3 Datenbank-Editoren und Masken 347 18.4 Anbindung an Dialogsysteme 347 18.5 Künstliche Intelligenz 348 18.6 Anbindung an das das www 348

19 Administration 349 19.1 Hilfsmittel 349 19.1.1 Laden und Entladen von Tabellen 349 19.1.2 Überwachungswerkzeuge 350 19.1.3 Auditing ' . 3 5 0 19.1.4 Sicherung und Recovery 350 19.2 Leitfaden zur Datenbankentwicklung 351

Anhang

A Beispieltabellen 353 B Glossar i 359 Literaturverzeichnis 367 Index 369

Referenzen

ÄHNLICHE DOKUMENTE

© 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to

© 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to

Erkennung einer Durchblutungsstörung bei jüngeren Frauen Rehabilitation nach Herzinfarkt oder Bypass-Operation Worum geht es bei der Behandlung im Krankenhaus. Worum geht es bei

1. Gebrauchsrecht und Erhaltungspflicht. Zinszahlungspflicht des Mieters. Mietzinsminderung bzw -befreiung ... Untervermietung, Weitergabe ... Rechtsposition des Mieters

© 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to

© 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to

© 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to

© 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to