|
Liebe Leserin, lieber Leser, |
3 |
|
|
Auf einen Blick |
4 |
|
|
Inhalt |
6 |
|
|
Kapitel 1 Einführung |
20 |
|
|
1.1 Für wen ist dieses Buch geschrieben? |
20 |
|
|
1.2 Der Aufbau des Buches |
23 |
|
|
1.3 Vorwort zur zweiten Auflage |
30 |
|
|
1.4 Danksagung |
32 |
|
|
Kapitel 2 Verwendete Werkzeuge und Ressourcen |
34 |
|
|
2.1 Oracles Online-Dokumentation |
34 |
|
|
2.2 Aufsetzen einer Beispieldatenbank |
40 |
|
|
2.3 SQL*Plus |
43 |
|
|
2.4 SQL Developer |
44 |
|
|
2.5 »explain plan« |
46 |
|
|
2.6 Autotrace |
47 |
|
|
2.7 RunStats |
50 |
|
|
2.8 Trace und TKProf |
51 |
|
|
2.9 Debugger |
55 |
|
|
2.10 Weitere Werkzeuge |
56 |
|
|
2.11 Die Beispielskripte |
56 |
|
|
TEIL I |
58 |
|
|
Kapitel 3 Aufbau der Datenbank aus Sicht eines Programmierers |
60 |
|
|
3.1 Grundlegende Arbeitsweise der Datenbank |
60 |
|
|
3.2 Logischer Aufbau: Schema, Tablespace & Co. |
70 |
|
|
3.3 Die physikalische Datenbank |
81 |
|
|
3.4 Instanz und Speicherstrukturen |
87 |
|
|
3.5 Start der Datenbank |
97 |
|
|
3.6 Verbindungsaufbau zur Datenbank |
98 |
|
|
Kapitel 4 Datenbankobjekte und SQL |
118 |
|
|
4.1 Tabellen |
118 |
|
|
4.2 Index |
124 |
|
|
4.3 Views und Materialized Views |
133 |
|
|
4.4 PL/SQL-Programm |
136 |
|
|
4.5 Sonstige Datenbankobjekte |
137 |
|
|
4.6 Exkurs: Zeichensatzkodierung |
142 |
|
|
4.7 Mächtigkeit von SQL |
148 |
|
|
Kapitel 5 Datensicherheit, -konsistenz und Transaktion |
162 |
|
|
5.1 Lese- und Schreibkonsistenz |
163 |
|
|
5.2 Transaktion |
167 |
|
|
5.3 Datenkonsistenz und referenzielle Integrität |
172 |
|
|
5.4 Explizites Sperren von Daten durch die Anwendung |
185 |
|
|
5.5 Verarbeitung einer SQL-Anweisung |
192 |
|
|
5.6 Die Sperrmechanismen von Oracle |
199 |
|
|
5.7 Datensicherheit |
200 |
|
|
5.8 Workshop: Einfluss der Programmierung |
203 |
|
|
Kapitel 6 Programmierung der Datenbank |
216 |
|
|
6.1 Erweiterung der Datenbankfunktionalität |
216 |
|
|
6.2 Programmierung der Datenkonsistenz |
218 |
|
|
6.3 Programmierung der Datensicherheit |
225 |
|
|
6.4 Anwendungsprogrammierung mit PL/SQL |
229 |
|
|
6.5 Unterstützung der Administration durch PL/SQL |
235 |
|
|
TEIL II |
240 |
|
|
Kapitel 7 Die Blockstruktur und Syntax von PL/SQL |
242 |
|
|
7.1 Das Grundgerüst: der PL/SQL-Block |
243 |
|
|
7.2 Prozeduren |
250 |
|
|
7.3 Funktionen |
265 |
|
|
7.4 Datenbanktrigger |
268 |
|
|
7.5 Packages |
271 |
|
|
7.6 Ausführungsrechte von PL/SQL-Blöcken |
276 |
|
|
7.7 Compiler-Anweisungen (Pragma) |
279 |
|
|
7.8 Best Practices |
281 |
|
|
Kapitel 8 Kontrollstrukturen |
284 |
|
|
8.1 Auswertende Anweisung 1 (»if then else«-Anweisung) |
284 |
|
|
8.2 Auswertende Anweisung 2 (CASE-Anweisung) |
286 |
|
|
8.3 Einfache Schleifen |
289 |
|
|
8.4 Konditionale Kompilierung |
296 |
|
|
8.5 Aus der Mottenkiste: Konzepte, die Sie nicht verwenden sollten |
302 |
|
|
Kapitel 9 Datentypen in PL/SQL |
306 |
|
|
9.1 PL/SQL-Datentypen |
306 |
|
|
9.2 Kollektionen in PL/SQL |
316 |
|
|
9.3 Cursor |
336 |
|
|
9.4 Pipelined Function |
364 |
|
|
Kapitel 10 Dynamisches SQL |
374 |
|
|
10.1 Dynamisches SQL |
374 |
|
|
10.2 Dynamisches SQL mit Cursor-Variablen |
378 |
|
|
10.3 Workshop: Erstellung einer Prozedur als Schnittstelle zu einem externen Programm |
378 |
|
|
10.4 DBMS_SQL-Package |
383 |
|
|
10.5 Sicherheit bei dynamischem SQL |
386 |
|
|
Kapitel 11 Events in der Datenbank: Programmierung von Triggern |
392 |
|
|
11.1 DML-Trigger |
392 |
|
|
11.2 Einsatzbereiche von DML-Triggern |
413 |
|
|
11.3 »instead of«-Trigger |
429 |
|
|
11.4 Wann Sie DML-Trigger nicht verwenden sollten |
438 |
|
|
11.5 Auditing mithilfe von Triggern |
440 |
|
|
11.6 Datenbanktrigger |
441 |
|
|
11.7 Zusammenfassung |
453 |
|
|
Kapitel 12 Packages |
456 |
|
|
12.1 Trennung von öffentlicher und privater Logik |
456 |
|
|
12.2 Überladung in Packages |
468 |
|
|
12.3 Packages und die Dependency Chain |
476 |
|
|
12.4 Verschlüsselung von Package-Code |
482 |
|
|
12.5 Oracle-Packages |
488 |
|
|
12.6 Workshop: Verwaltung von Anwendungsparametern |
501 |
|
|
Kapitel 13 Exception |
522 |
|
|
13.1 Oracle-Fehler |
522 |
|
|
13.2 Applikationsfehler erstellen und bearbeiten |
532 |
|
|
13.3 Workshop: Zentralisierter Fehler-Handler mit einem Trigger |
542 |
|
|
13.4 Zusammenfassung |
548 |
|
|
TEIL III |
550 |
|
|
Kapitel 14 Erweiterung von SQL |
552 |
|
|
14.1 Wann SQL erweitert werden sollte |
552 |
|
|
14.2 SQL mit eigenen Funktionen erweitern |
558 |
|
|
14.3 Workshop: Berechnung der Fakultät |
568 |
|
|
14.4 Gruppenfunktionen selbst erstellen |
577 |
|
|
14.5 Workshop: Code-Generator für Gruppenfunktionen |
588 |
|
|
Kapitel 15 Arbeiten mit LOBs (Large Objects) |
600 |
|
|
15.1 Technische Struktur |
601 |
|
|
15.2 Die Datentypen »CLOB«, »NCLOB«, »BLOB« und »BFILE« |
617 |
|
|
15.3 Das Package »DBMS_LOB« |
620 |
|
|
15.4 Workshop: Hilfsfunktionen zum Arbeiten mit LOBs |
626 |
|
|
Kapitel 16 Arbeiten mit XML |
636 |
|
|
16.1 Der Datentyp »XMLType« |
636 |
|
|
16.2 Die Speicherung von XML-Daten in der Datenbank |
646 |
|
|
16.3 XML aus relationalen Daten erzeugen |
649 |
|
|
16.4 Relationale Daten aus XML extrahieren |
664 |
|
|
16.5 XML mit PL/SQL verarbeiten |
671 |
|
|
16.6 Die XML-Datenbank |
684 |
|
|
Kapitel 17 Objektorientierung |
712 |
|
|
17.1 Einführung in die Objektorientierung |
714 |
|
|
17.2 Objektorientierte Datentypen |
725 |
|
|
17.3 Objektorientierte Datenmodelle |
736 |
|
|
17.4 Workshop: Der Datentyp »MoneyType« |
740 |
|
|
17.5 Objektorientierte Anwendungsentwicklung und relationale Datenbanken |
761 |
|
|
Kapitel 18 Integration von Oracle in Applikationen |
792 |
|
|
18.1 Sperrung von Daten bei der Datenänderung |
793 |
|
|
18.2 Speicherung von Session-Informationen |
811 |
|
|
18.3 Zugriff auf Daten über PL/SQL-Packages |
830 |
|
|
18.4 Workshop: Keimzelle einer sicheren Datenbankanwendung |
835 |
|
|
Kapitel 19 Code-Analyse und Performance-Tuning |
856 |
|
|
19.1 Optimierungsmöglichkeiten von PL/SQL |
856 |
|
|
19.2 Compiler-Warnungen |
868 |
|
|
19.3 PL/Scope |
872 |
|
|
19.4 PL/SQL Hierarchical Profiler |
878 |
|
|
19.5 Den Speicherverbrauch von PL/SQL überwachen |
891 |
|
|
19.6 Regeln zur Performance-Optimierung |
894 |
|
|
Kapitel 20 Workshop: PL/SQL Instrumentation Toolkit (PIT) |
904 |
|
|
20.1 Überblick: die Idee und die Architektur |
904 |
|
|
20.2 Beschreibung der einzelnen Komponenten |
911 |
|
|
20.3 Implementierung des PIT-Administrationspackages |
945 |
|
|
20.4 Weitere Ausgabemodule |
959 |
|
|
Index |
974 |
|