|
1 Einführung |
20 |
|
|
1.1 Für wen ist dieses Buch geschrieben? |
20 |
|
|
1.2 Aufbau des Buches |
21 |
|
|
1.3 Danksagung |
30 |
|
|
2 Verwendete Werkzeuge und Skripte |
34 |
|
|
2.1 Aufsetzen einer Beispieldatenbank |
34 |
|
|
2.2 SQL Developer |
45 |
|
|
2.3 Die Datenbankbenutzer |
51 |
|
|
2.4 Die Beispielskripte |
52 |
|
|
2.5 Online-Dokumentation und weiterführende Literatur |
54 |
|
|
3 Konzept einer relationalen Datenbank |
58 |
|
|
3.1 Die Idee der relationalen Speicherung |
58 |
|
|
3.2 SQL - die »Lingua franca« der Datenbank |
76 |
|
|
3.3 Analyse vorhandener Datenmodelle |
83 |
|
|
4 Aufbau einer Oracle-Datenbank |
90 |
|
|
4.1 Wie arbeitet eine Oracle-Datenbank? |
90 |
|
|
4.2 Oracle-Datentypen |
98 |
|
|
4.3 Zusammenfassung |
112 |
|
|
5 Grundlagen: Auswahl und Projektion |
116 |
|
|
5.1 Projektion |
116 |
|
|
5.2 Auswahl |
131 |
|
|
5.3 Sortieren von Zeilenmengen |
146 |
|
|
5.4 Fallunterscheidungen |
150 |
|
|
5.5 Pseudospalten |
158 |
|
|
5.6 Kommentare |
164 |
|
|
5.7 Der NULL-Wert |
167 |
|
|
5.8 Übungen |
175 |
|
|
6 Daten aus mehreren Tabellen lesen: Joins |
176 |
|
|
6.1 Einführung in Joins |
177 |
|
|
6.2 Inner Join |
180 |
|
|
6.3 Outer Join |
190 |
|
|
6.4 Anti-Join, Semi-Join und Self-Join |
199 |
|
|
6.5 Mengenoperationen mit UNION, MINUS und INTERSECT |
204 |
|
|
6.6 Übungen |
211 |
|
|
7 Zeilenfunktionen |
212 |
|
|
7.1 Grundsätzliches zu Funktionen |
213 |
|
|
7.2 Datumsfunktionen |
216 |
|
|
7.3 Textfunktionen |
234 |
|
|
7.4 Mathematische Funktionen |
258 |
|
|
7.5 Allgemeine Funktionen |
272 |
|
|
7.6 Eigene Funktionen erstellen: Berechnung der Fakultät |
282 |
|
|
8 Gruppenfunktionen |
288 |
|
|
8.1 Die Standard-Gruppenfunktionen |
289 |
|
|
8.2 Gruppierung von Gruppenfunktionen |
294 |
|
|
8.3 Spezielle Gruppenfunktionen |
307 |
|
|
8.4 Übungen |
315 |
|
|
9 Analytische Funktionen |
316 |
|
|
9.1 Die Idee der analytischen Funktionen |
317 |
|
|
9.2 Erweiterung von Gruppenfunktionen zu analytischen Funktionen |
322 |
|
|
9.3 Analytische Rangfunktionen |
344 |
|
|
9.4 Zusammenfassung |
359 |
|
|
9.5 Übungen |
360 |
|
|
10 Unterabfragen |
362 |
|
|
10.1 Die Unterabfrage in der WHERE-Klausel |
362 |
|
|
10.2 Die Unterabfrage in der FROM-Klausel (Inner View) |
372 |
|
|
10.3 Die Unterabfrage in der SELECT-Klausel (skalare Unterabfrage) |
378 |
|
|
10.4 Unterabfragen und Joins |
383 |
|
|
10.5 Übungen |
386 |
|
|
11 Datenmanipulation |
390 |
|
|
11.1 Ihr Sicherheitsnetz: Die Transaktion |
390 |
|
|
11.2 Die INSERT-Anweisung |
398 |
|
|
11.3 Die UPDATE-Anweisung |
409 |
|
|
11.4 Die DELETE-Anweisung |
418 |
|
|
11.5 Die MERGE-Anweisung |
420 |
|
|
11.6 Erweiterung: Fehlerbehandlung während der Datenmanipulation |
431 |
|
|
11.7 Erweiterung: Multi-Table-Insert |
438 |
|
|
12 Views erstellen |
448 |
|
|
12.1 »Normale« Views |
448 |
|
|
12.2 Einsatzbereiche von Views |
459 |
|
|
12.3 Wer sollte Views verwenden? |
461 |
|
|
12.4 Materialized View |
462 |
|
|
13 Tabellen erstellen |
480 |
|
|
13.1 Einfache Tabellen erstellen |
481 |
|
|
13.2 Weitere Tabellentypen |
492 |
|
|
13.3 Erweiterung zur »aktiven Tabelle« |
503 |
|
|
14 Indizes erstellen |
510 |
|
|
14.1 Was ist ein Index? |
511 |
|
|
14.2 Indextypen bei Oracle |
519 |
|
|
14.3 Spezielle Indextypen |
531 |
|
|
14.4 Zusammenfassung |
542 |
|
|
15 Einführung in die Rechteverwaltung von Oracle |
544 |
|
|
15.1 Datenbankbenutzer versus Schema |
545 |
|
|
15.2 Erstellung eines Datenbankbenutzers |
547 |
|
|
15.3 System- und Objektrechte |
553 |
|
|
15.4 Rollen |
558 |
|
|
15.5 Passwort- und Ressourcenrechte |
560 |
|
|
16 Hierarchische Abfragen |
564 |
|
|
16.1 Das Problem |
564 |
|
|
16.2 Lösung mit der Abfrage CONNECT BY |
566 |
|
|
16.3 Erweiterungen zur Abfrage CONNECT BY |
574 |
|
|
16.4 Hierarchische Abfragen nach ISO-Standard |
584 |
|
|
17 XML-Abfragen |
594 |
|
|
17.1 XML-Instanzen mit SQL/XML erzeugen |
596 |
|
|
17.2 Bearbeitung von XML-Instanzen in SQL |
605 |
|
|
17.3 Extrahieren von Daten aus XML-Instanzen mit SQL/XML |
615 |
|
|
17.4 Arbeiten mit XQuery |
621 |
|
|
17.5 Indizierung von XML-Instanzen |
631 |
|
|
18 Die MODEL-Klausel |
632 |
|
|
18.1 Lösung des Problems mit der MODEL-Klausel |
636 |
|
|
18.2 Partitionierung, Dimension und Messung |
639 |
|
|
18.3 Regeln |
642 |
|
|
18.4 Weitergehende Konzepte |
653 |
|
|
18.5 Bewertung der MODEL-Klausel |
660 |
|
|
19 Pivotieren von Daten |
662 |
|
|
19.1 Pivotierung mit Gruppenfunktionen |
663 |
|
|
19.2 Pivotierung mit der PIVOT-Klausel |
665 |
|
|
19.3 Unpivotierung mit Gruppenfunktionen |
674 |
|
|
19.4 Unpivotierung mit der UNPIVOT-Klausel |
678 |
|
|
20 Umgang mit Datum und Zeit |
682 |
|
|
20.1 Erzeugung von Datumstypen |
682 |
|
|
20.2 Erzeugung von Intervallen |
689 |
|
|
20.3 Konvertierung von Zeichenketten in Datumstypen |
693 |
|
|
20.4 Zeilenfunktionen für Zeitstempel mit Zeitzonen |
699 |
|
|
20.5 Abfragen über die Zeit: Flashback |
703 |
|
|
21 Objektorientierung in der Oracle-Datenbank |
710 |
|
|
21.1 Einführung in die Objektorientierung |
711 |
|
|
21.2 SQL-Typen |
718 |
|
|
21.3 Objektorientierte Tabellen |
735 |
|
|
21.4 Objekttabellen als Speichermechanismus |
744 |
|
|
21.5 Beurteilung |
749 |
|
|
22 Die Grundlagen der Datenmodellierung |
754 |
|
|
22.1 Normalisierung |
754 |
|
|
22.2 Tabellendesign |
758 |
|
|
22.3 Primärschlüssel |
761 |
|
|
22.4 Fremdschlüssel |
766 |
|
|
22.5 Überlegungen zu Datentypen und zur Namenskonvention in Tabellen |
768 |
|
|
22.6 Zusammenfassung |
775 |
|
|
23 Datenmodellierung von Datum und Zeit |
778 |
|
|
23.1 Datumsbereiche |
778 |
|
|
23.2 Historisierung und Logging |
797 |
|
|
24 Speicherung hierarchischer Daten |
812 |
|
|
24.1 Hierarchie mittels zusätzlicher Hierarchietabelle |
812 |
|
|
24.2 Closure Table |
816 |
|
|
24.3 Weitere Modelle |
820 |
|
|
24.4 Zusammenfassung |
822 |
|
|
25 Data Warehouse |
824 |
|
|
25.1 Star Schema |
826 |
|
|
25.2 Dimensionen |
829 |
|
|
25.3 Arbeiten mit dem Star Schema |
832 |
|
|
25.4 Zusammenfassung |
834 |
|
|
26 Abbildung objektorientierter Strukturen |
836 |
|
|
26.1 Vererbung |
837 |
|
|
26.2 Kollektionen |
842 |
|
|
26.3 Zusammenfassung |
843 |
|
|
27 Internationalisierung |
846 |
|
|
27.1 Oracle im multilingualen Kontext |
846 |
|
|
27.2 Datenmodelle zur Übersetzung von Stammdaten |
855 |
|
|
Index |
868 |
|