Oracle SQL
Galileo Press (Verlag)
978-3-8362-1875-7 (ISBN)
- Titel erscheint in neuer Auflage
- Artikel merken
- Einführung, Grundlagen, Referenz
- Inkl. Transaktionen, Indizierung, Rechtevergabe
- Datenbank-Modellierung, Troubleshooting, SQL in Geschäftsprozessen u.v.m.
Er zeigt Ihnen, wie Oracle und SQL zusammenspielen und welche Strategien Sie nutzen können, um Daten in der Datenbank zu speichern, zu analysieren oder auch zu löschen.
Dabei stehen auch die Erläuterung von wichtigen Nebenthemen, wie der Transaktion, der Indizierung von Tabellen oder der Aufbau und die Leitidee relationaler Datenbanken, im Fokus. Erweitert wird das Buch durch einen Abschnitt über die Modellierung von Datenbanken, zeigt übliche Fehler und deren Behebung und gibt Anleitungen zur Lösung von Geschäftsproblemen mit SQL.
Sie wollen SQL in einer Oracle-Umgebung einsetzen? Dann ist dieses Buch das Richtige für Sie: Jürgen Sieben erläutert die grundsätzliche Arbeitsweise von Datenbanken und findet einen einfachen Einstieg in das Verständnis der Abfragesprache SQL, wofür sie da ist und was Sie mit ihr machen können.
1. Verstehen Sie die Arbeitsweise von SQL
Schritt für Schritt zur optimalen Arbeitsweise mit der Abfragesprache SQL: Sie lernen Zeilen- und Gruppenfunktionen in SQL kennen, aber auch fortgeschrittene Themen wie die analytischen Funktionen oder die MODEL-Klausel, die Ihnen helfen werden, auch schwierige Abfragen zu meistern.
2. Nutzen Sie SQL für leistungsfähige Abfragen
Sie werden an typische Abfrageprobleme aus dem Alltag herangeführt und lernen Techniken zur Erzeugung von XML, zur Abfrage hierarchischer Daten, zur Bewältigung von Datumsangaben und viele weitere Themen kennen.
3. Manipulieren Sie Daten in der Datenbank
So manipulieren Sie Daten und erzeugen Tabellen, Views und viele weitere Datenbankobjekte. Mit diesem Instrumentarium haben Sie die volle Kontrolle über die Daten Ihrer Datenbank.
4. Erweitern Sie Ihr Wissensspektrum
Jürgen Sieben gibt Ihnen einen Einblick in fortgeschrittene Themen wie Datenwarenhäuser, Modellierung von Datenbanken und grundlegende administrative Themen.
Themen sind u.a.:
- Einführung
- Grundlagen
- Referenz
- Transaktionen
- Indizierung
- Rechtevergabe
- Datenbank-Modellierung
- Troubleshooting
- SQL in Geschäftsprozessen
Jürgen Sieben ist inhabender Geschäftsführer der ConDeS GmbH. Er beschäftigt sich mit der Entwicklung und Parametrierung von Software, Computerberatung und Systemanalyse für namhafte Kunden wie T-Mobile und Metro AG. Zudem schult er Datenbanktechnologien, z. B. alle relevanten Oracle-Bereiche (Einführung, SQL, PL/SQL, Administration, Performance, Backup & Recovery, Datawarehousing etc.). Seit 2008 ist er Dozent an der Hochschule der Medien Stuttgart.
1 ... Einführung ... 19
1.1 ... Für wen ist dieses Buch geschrieben? ... 19
1.2 ... Aufbau des Buches ... 20
1.3 ... Danksagung ... 29
Teil I ... Einführung und Grundlagen ... 31
2 ... Verwendete Werkzeuge und Skripte ... 33
2.1 ... Aufsetzen einer Beispieldatenbank ... 33
2.1.1 ... Warum Sie eine Datenbank zum Testen haben sollten ... 34
2.1.2 ... Eine Datenbank herunterladen und installieren ... 34
2.2 ... SQL Developer ... 44
2.2.1 ... SQL Developer herunterladen und installieren ... 44
2.2.2 ... Übersicht SQL Developer ... 45
2.2.3 ... Eine Datenbankverbindung aufbauen ... 45
2.2.4 ... SQL-Anweisungen ausführen ... 48
2.3 ... Die Datenbankbenutzer ... 50
2.3.1 ... SYS und SYSTEM ... 50
2.3.2 ... SCOTT ... 50
2.3.3 ... HR ... 50
2.3.4 ... SH ... 51
2.3.5 ... OE ... 51
2.4 ... Die Beispielskripte ... 51
2.5 ... Online-Dokumentation und weiterführende Literatur ... 53
3 ... Konzept einer relationalen Datenbank ... 57
3.1 ... Die Idee der relationalen Speicherung ... 57
3.1.1 ... Aufteilung der Daten auf Tabellen ... 59
3.1.2 ... Die Spielregeln relationaler Datenbanken ... 60
3.1.3 ... Die 1:n-Beziehung und ihre Varianten ... 66
3.1.4 ... Die m:n-Beziehung ... 68
3.1.5 ... Zusammenfassung ... 73
3.2 ... SQL – die »Lingua franca« der Datenbank ... 75
3.2.1 ... Was ist SQL? ... 75
3.2.2 ... Von Daten und Informationen ... 77
3.2.3 ... Wozu wird SQL in der Datenbank verwendet? ... 78
3.2.4 ... Kurzübersicht: Die Standards und was davon zu halten ist ... 80
3.3 ... Analyse vorhandener Datenmodelle ... 82
3.3.1 ... Warum es nicht »das« Datenmodell gibt ... 82
3.3.2 ... Beispielanalyse: Der Benutzer HR ... 83
3.3.3 ... Ausblick ... 87
4 ... Aufbau einer Oracle-Datenbank ... 89
4.1 ... Wie arbeitet eine Oracle-Datenbank? ... 89
4.1.1 ... Eine SQL-Anweisung wird ausgeführt ... 89
4.1.2 ... Änderung von Daten und der Begriff der Transaktion ... 92
4.1.3 ... Daten- und Lesekonsistenz ... 93
4.2 ... Oracle-Datentypen ... 97
4.2.1 ... Texttypen ... 98
4.2.2 ... Datumstypen ... 100
4.2.3 ... Zahlentypen ... 105
4.2.4 ... Große Objekte ... 107
4.2.5 ... Sonstige Datentypen ... 110
4.3 ... Zusammenfassung ... 111
Teil II ... Die SELECT-Anweisung ... 113
5 ... Grundlagen: Auswahl und Projektion ... 115
5.1 ... Projektion ... 115
5.1.1 ... Spalten einschränken ... 116
5.1.2 ... Mit Spaltenwerten rechnen ... 119
5.1.3 ... Mit alphanumerischen Spalten arbeiten ... 121
5.1.4 ... Die Tabelle DUAL ... 124
5.1.5 ... Spalten- und Tabellenalias ... 125
5.2 ... Auswahl ... 130
5.2.1 ... Zeilen auswählen mit der WHERE-Klausel ... 130
5.2.2 ... Boolesche Operatoren ... 132
5.2.3 ... Einschränkungen mit LIKE, IN und BETWEEN ... 134
5.2.4 ... Duplikate filtern mit DISTINCT ... 142
5.3 ... Sortieren von Zeilenmengen ... 145
5.4 ... Fallunterscheidungen ... 149
5.4.1 ... CASE-Anweisung ... 150
5.4.2 ... DECODE-Funktion ... 154
5.5 ... Pseudospalten ... 157
5.5.1 ... ROWNUM ... 157
5.5.2 ... Sequenzwerte ... 159
5.5.3 ... ROWID ... 161
5.5.4 ... ORA_ROWSCN ... 162
5.5.5 ... Weitere Pseudospalten ... 163
5.6 ... Kommentare ... 163
5.6.1 ... Einzeiliger Kommentar ... 163
5.6.2 ... Mehrzeiliger Kommentar ... 163
5.6.3 ... Einige Anmerkungen zu Kommentaren ... 164
5.7 ... Der NULL-Wert ... 166
5.7.1 ... Was ist ein NULL-Wert bei Oracle? ... 166
5.7.2 ... Ein bisschen Quälerei mit NULL-Werten ... 168
5.7.3 ... Der NULL-Wert bei Booleschen Operatoren ... 169
5.8 ... Übungen ... 174
6 ... Daten aus mehreren Tabellen lesen: Joins ... 175
6.1 ... Einführung in Joins ... 176
6.1.1 ... Joins versus Datenbank-Constraints ... 177
6.1.2 ... Schreibweisen ... 178
6.2 ... Inner Join ... 179
6.2.1 ... Equi-Join ... 181
6.2.2 ... Non-Equi-Join ... 186
6.2.3 ... Oracle-proprietäre Schreibweise ... 188
6.3 ... Outer Join ... 189
6.3.1 ... Left und Right Outer Join ... 190
6.3.2 ... Full-Join ... 194
6.3.3 ... Cross-Join ... 196
6.3.4 ... Oracle-proprietäre Schreibweise ... 197
6.4 ... Anti-Join, Semi-Join und Self-Join ... 198
6.4.1 ... Anti-Join ... 198
6.4.2 ... Semi-Join ... 200
6.4.3 ... Self-Join ... 201
6.5 ... Mengenoperationen mit UNION, MINUS und INTERSECT ... 203
6.5.1 ... UNION und UNION ALL ... 203
6.5.2 ... MINUS ... 205
6.5.3 ... INTERSECT ... 207
6.5.4 ... Besonderheiten und Einsatzbeispiele ... 208
6.6 ... Übungen ... 210
7 ... Zeilenfunktionen ... 211
7.1 ... Grundsätzliches zu Funktionen ... 212
7.1.1 ... Funktionstypen ... 212
7.1.2 ... Funktionsparameter ... 213
7.1.3 ... Arten von Zeilenfunktionen ... 215
7.2 ... Datumsfunktionen ... 215
7.2.1 ... Erzeugung eines Datums ... 217
7.2.2 ... Erzeugung eines Intervalls ... 224
7.2.3 ... Rundungsfunktionen ... 225
7.2.4 ... Datumsarithmetik ... 227
7.2.5 ... Datumsfunktionen ... 229
7.2.6 ... Übungen ... 233
7.3 ... Textfunktionen ... 233
7.3.1 ... Funktionen zur Textsuche und -auswertung ... 233
7.3.2 ... Funktionen zur Textmanipulation ... 236
7.3.3 ... Reguläre Ausdrücke ... 243
7.3.4 ... Erzeugungs- und Konvertierungsfunktionen ... 253
7.3.5 ... Mister Q ... 254
7.3.6 ... Übungen ... 256
7.4 ... Mathematische Funktionen ... 257
7.4.1 ... Übersicht über die mathematischen Funktionen ... 257
7.4.2 ... Konvertierungsfunktionen und Zahlenformate ... 266
7.4.3 ... Übungen ... 271
7.5 ... Allgemeine Funktionen ... 271
7.5.1 ... Vergleichsfunktionen GREATEST und LEAST ... 272
7.5.2 ... Arbeiten mit dem NULL-Wert ... 273
7.5.3 ... Konvertierungsfunktionen ... 277
7.5.4 ... Funktionen für Spezialfelder von Oracle ... 278
7.5.5 ... Übungen ... 281
7.6 ... Eigene Funktionen erstellen: Berechnung der Fakultät ... 281
7.6.1 ... Anforderungen und Test ... 282
7.6.2 ... Implementierung in PL/SQL ... 282
8 ... Gruppenfunktionen ... 287
8.1 ... Die Standard-Gruppenfunktionen ... 288
8.1.1 ... AVG, MAX, MIN, SUM und COUNT ... 288
8.1.2 ... MEDIAN, VARIANCE und STDDEV ... 289
8.1.3 ... Gruppenfunktionen und NULL-Werte ... 291
8.1.4 ... Gruppenfunktion und die DISTINCT-/UNIQUE-Klausel ... 293
8.2 ... Gruppierung von Gruppenfunktionen ... 293
8.2.1 ... Die Klausel GROUP BY ... 294
8.2.2 ... Der NULL-Wert und die Gruppierung ... 295
8.2.3 ... Gruppieren nach mehreren Kriterien ... 296
8.2.4 ... Filtern der Gruppenergebnisse durch HAVING ... 299
8.2.5 ... Erweiterte Konzepte der Gruppierung: ROLLUP und CUBE ... 301
8.2.6 ... Geschachtelte Gruppenfunktionen ... 305
8.3 ... Spezielle Gruppenfunktionen ... 306
8.3.1 ... DENSE_RANK und RANK ... 307
8.3.2 ... FIRST und LAST ... 310
8.3.3 ... LISTAGG ... 313
8.4 ... Übungen ... 314
9 ... Analytische Funktionen ... 315
9.1 ... Die Idee der analytischen Funktionen ... 316
9.1.1 ... Allgemeine Syntax ... 316
9.1.2 ... Einsatzbereiche ... 321
9.2 ... Erweiterung von Gruppenfunktionen zu analytischen Funktionen ... 321
9.2.1 ... Einfache Beispiele ... 322
9.2.2 ... Kombination von analytischen Funktionen mit Gruppenfunktionen ... 329
9.2.3 ... Die WINDOWING-Klausel ... 336
9.2.4 ... RATIO_TO_REPORT ... 342
9.3 ... Analytische Rangfunktionen ... 343
9.3.1 ... RANK, DENSE_RANK und PERCENT_RANK ... 343
9.3.2 ... ROW_NUMBER ... 349
9.3.3 ... LAG und LEAD ... 351
9.4 ... Zusammenfassung ... 358
9.5 ... Übungen ... 359
10 ... Unterabfragen ... 361
10.1 ... Die Unterabfrage in der WHERE-Klausel ... 361
10.1.1 ... Unterabfragen, die einen Wert zurückliefern: Skalare Unterabfrage ... 361
10.1.2 ... Unterabfragen mit mehreren Zeilen ... 364
10.1.3 ... Unterabfragen mit mehreren Spalten ... 366
10.1.4 ... Paarweiser und nicht paarweiser Vergleich ... 367
10.1.5 ... Harmonisierte Unterabfrage ... 370
10.2 ... Die Unterabfrage in der FROM-Klausel (Inner View) ... 371
10.2.1 ... Beispiel ... 372
10.2.2 ... Vergleich zur harmonisierten Unterabfrage ... 373
10.2.3 ... Die WITH-Klausel ... 376
10.3 ... Die Unterabfrage in der SELECT-Klausel (skalare Unterabfrage) ... 377
10.4 ... Unterabfragen und Joins ... 382
10.4.1 ... Anti-Joins ... 382
10.4.2 ... Semi-Joins mit der EXISTS-Klausel ... 384
10.5 ... Übungen ... 385
Teil III ... Datenmanipulation und Erzeugung von Datenbankobjekten ... 387
11 ... Datenmanipulation ... 389
11.1 ... Ihr Sicherheitsnetz: Die Transaktion ... 389
11.1.1 ... Was ist eine Transaktion? ... 389
11.1.2 ... Zusammenfassung: Wozu brauche ich Transaktionen? ... 395
11.2 ... Die INSERT-Anweisung ... 397
11.2.1 ... Allgemeine Syntax ... 397
11.2.2 ... Variationen zum Thema ... 403
11.3 ... Die UPDATE-Anweisung ... 408
11.3.1 ... Allgemeine Syntax ... 408
11.3.2 ... Variationen zum Thema ... 410
11.4 ... Die DELETE-Anweisung ... 417
11.5 ... Die MERGE-Anweisung ... 419
11.5.1 ... Allgemeine Syntax ... 420
11.5.2 ... Variationen zum Thema ... 423
11.6 ... Erweiterung: Fehlerbehandlung während der Datenmanipulation ... 430
11.6.1 ... Die Klausel LOG ERRORS ... 430
11.6.2 ... Vorbereitung zum Einsatz ... 431
11.6.3 ... Verwendung der Klausel LOG ERRORS ... 434
11.6.4 ... Darstellung der Fehler ... 435
11.6.5 ... Einsatzszenarien ... 436
11.7 ... Erweiterung: Multi-Table-Insert ... 437
11.7.1 ... Kopieren von Daten in mehrere Zieltabellen ... 437
11.7.2 ... Fallweises Einfügen in jeweils eine Zieltabelle ... 439
11.7.3 ... Fallweises Einfügen in mehrere Zieltabellen ... 441
11.7.4 ... Verwendung von Sequenzen ... 442
12 ... Views erstellen ... 447
12.1 ... »Normale« Views ... 447
12.1.1 ... Was genau ist eine View? ... 448
12.1.2 ... Wie werden Views erstellt? ... 450
12.1.3 ... Einfache und komplexe Views ... 456
12.2 ... Einsatzbereiche von Views ... 458
12.2.1 ... Kapselung von Logik ... 458
12.2.2 ... Zugriffsschutz ... 458
12.2.3 ... Programmieren nach dem Gelbe-Seiten-Prinzip ... 459
12.2.4 ... Lösung komplexer Probleme in Teilschritten ... 459
12.3 ... Wer sollte Views verwenden? ... 460
12.4 ... Materialized View ... 461
12.4.1 ... Was ist eine Materialized View? ... 461
12.4.2 ... Erstellung von materialisierten Sichten ... 463
12.4.3 ... Grenzen der Aktualisierung ... 476
13 ... Tabellen erstellen ... 479
13.1 ... Einfache Tabellen erstellen ... 480
13.1.1 ... Allgemeine Syntax ... 482
13.1.2 ... Virtuelle Spalten ... 487
13.2 ... Weitere Tabellentypen ... 491
13.2.1 ... Indexorganisierte Tabelle ... 491
13.2.2 ... Temporäre Tabelle ... 493
13.2.3 ... Externe Tabelle ... 495
13.2.4 ... Partitionierte Tabelle ... 500
13.3 ... Erweiterung zur »aktiven Tabelle« ... 502
13.3.1 ... Die Idee der »aktiven Tabelle« ... 502
13.3.2 ... Zur Illustration: Beispiel eines Triggers ... 503
13.3.3 ... Bewertung dieses Verfahrens ... 507
14 ... Indizes erstellen ... 509
14.1 ... Was ist ein Index? ... 510
14.1.1 ... Einige Überlegungen zur Indizierung ... 510
14.1.2 ... Die Mythenbildung ... 515
14.2 ... Indextypen bei Oracle ... 518
14.2.1 ... B*-Baum-Index ... 518
14.2.2 ... Funktionsbasierter Index ... 521
14.2.3 ... Bitmap-Index ... 525
14.3 ... Spezielle Indextypen ... 530
14.3.1 ... Volltextindizierung ... 530
14.4 ... Zusammenfassung ... 541
15 ... Einführung in die Rechteverwaltung von Oracle ... 543
15.1 ... Datenbankbenutzer versus Schema ... 544
15.1.1 ... Was ist ein Datenbankbenutzer ... 544
15.1.2 ... Was macht einen Datenbankbenutzer zu einem Schema-Eigentümer? ... 546
15.2 ... Erstellung eines Datenbankbenutzers ... 546
15.2.1 ... Allgemeine Syntax ... 547
15.2.2 ... Grundlegende Rechte ... 547
15.2.3 ... Zugriff auf Festplattenspeicher ... 550
15.3 ... System- und Objektrechte ... 552
15.3.1 ... Systemberechtigungen ... 552
15.3.2 ... Objektberechtigungen ... 554
15.3.3 ... Die REVOKE-Anweisung ... 557
15.4 ... Rollen ... 557
15.5 ... Passwort- und Ressourcenrechte ... 559
Teil IV ... Spezielle Abfragetechniken ... 561
16 ... Hierarchische Abfragen ... 563
16.1 ... Das Problem ... 563
16.2 ... Lösung mit der Abfrage CONNECT BY ... 565
16.2.1 ... Die Pseudospalte LEVEL ... 570
16.2.2 ... Sortierung mit ORDER SIBLINGS BY ... 571
16.3 ... Erweiterungen zur Abfrage CONNECT BY ... 573
16.3.1 ... Weitere Pseudospalten ... 573
16.3.2 ... Operator CONNECT_BY_ROOT ... 576
16.3.3 ... Die Funktion SYS_CONNECT_BY_PATH ... 576
16.3.4 ... Ein etwas komplexeres Anwendungsbeispiel ... 578
16.4 ... Hierarchische Abfragen nach ISO-Standard ... 583
16.4.1 ... Grundform ... 584
16.4.2 ... Erweiterungen ... 588
17 ... XML-Abfragen ... 593
17.1 ... XML-Instanzen mit SQL/XML erzeugen ... 595
17.1.1 ... Ein einfaches Beispiel ... 595
17.1.2 ... Übersicht über weitere SQL/XML-Funktionen ... 602
17.2 ... Bearbeitung von XML-Instanzen in SQL ... 604
17.2.1 ... Grundlagen zu Zeilenfunktionen, die XML bearbeiten ... 605
17.2.2 ... Bestehende XML-Instanzen ändern ... 607
17.2.3 ... Löschen vorhandener Elemente ... 609
17.2.4 ... Einfügen neuer Elemente ... 610
17.3 ... Extrahieren von Daten aus XML-Instanzen mit SQL/XML ... 614
17.4 ... Arbeiten mit XQuery ... 620
17.4.1 ... Funktion XMLQUERY ... 621
17.4.2 ... Funktion XMLTABLE ... 625
17.4.3 ... Funktion XMLEXISTS ... 628
17.4.4 ... Die Funktion XMLCAST ... 629
17.5 ... Indizierung von XML-Instanzen ... 630
18 ... Die MODEL-Klausel ... 631
18.1 ... Lösung des Problems mit der MODEL-Klausel ... 635
18.2 ... Partitionierung, Dimension und Messung ... 638
18.2.1 ... Partitionierung mit PARTITION BY ... 639
18.2.2 ... Dimensionierung mit DIMENSION BY ... 640
18.2.3 ... Messung mit MEASURES ... 641
18.3 ... Regeln ... 641
18.3.1 ... UPSERT versus UPSERT ALL versus UPDATE ... 642
18.3.2 ... Referenzen auf Zellen ... 643
18.3.3 ... Positionale und symbolische Referenz ... 644
18.3.4 ... NULL-Werte versus fehlende Zellen ... 645
18.3.5 ... Funktionen und Klauseln für die MODEL-Klausel ... 647
18.3.6 ... Sortierung von Regeln und Zellen ... 650
18.4 ... Weitergehende Konzepte ... 652
18.4.1 ... Iterationen ... 653
18.4.2 ... Referenzen ... 655
18.5 ... Bewertung der MODEL-Klausel ... 659
19 ... Pivotieren von Daten ... 661
19.1 ... Pivotierung mit Gruppenfunktionen ... 662
19.2 ... Pivotierung mit der PIVOT-Klausel ... 664
19.2.1 ... Die Klausel FOR IN ... 664
19.2.2 ... Die XML-Klausel ... 669
19.3 ... Unpivotierung mit Gruppenfunktionen ... 673
19.4 ... Unpivotierung mit der UNPIVOT-Klausel ... 677
20 ... Umgang mit Datum und Zeit ... 681
20.1 ... Erzeugung von Datumstypen ... 681
20.1.1 ... Arbeiten mit Zeitzoneninformation ... 682
20.1.2 ... Nähere Angaben zu Zeitzonen ... 685
20.1.3 ... Zeitzonenangaben in Literalen ... 687
20.2 ... Erzeugung von Intervallen ... 688
20.2.1 ... Allgemeinere Einführung in die Syntax ... 688
20.2.2 ... Intervalle über lange Zeiträume erstellen ... 689
20.2.3 ... Intervalle aus Zahlen ermitteln ... 690
20.2.4 ... Datumsarithmetik mit Intervallen ... 691
20.3 ... Konvertierung von Zeichenketten in Datumstypen ... 692
20.3.1 ... Optionaler Parameter NLS_PARAM ... 692
20.3.2 ... Die Formatmasken ... 693
20.4 ... Zeilenfunktionen für Zeitstempel mit Zeitzonen ... 698
20.4.1 ... DBTIMEZONE, SESSIONTIMEZONE ... 698
20.4.2 ... FROM_TZ ... 698
20.4.3 ... NEW_TIME ... 699
20.4.4 ... SYS_EXTRACT_UTC ... 700
20.4.5 ... TZ_OFFSET ... 701
20.4.6 ... ORA_DST_* ... 701
20.5 ... Abfragen über die Zeit: Flashback ... 702
20.5.1 ... Verwendung von Flashback auf Tabellenebene ... 704
20.5.2 ... Zusammenfassung ... 707
21 ... Objektorientierung in der Oracle-Datenbank ... 709
21.1 ... Einführung in die Objektorientierung ... 710
21.1.1 ... Alles ist ein Objekt ... 710
21.1.2 ... Das zweite Reizwort: Vererbung! ... 712
21.1.3 ... Abstrakte und finale Klassen ... 713
21.1.4 ... Objektidentität versus Statement of Truth ... 714
21.1.5 ... Klassen haben komplexe Strukturen ... 716
21.2 ... SQL-Typen ... 717
21.2.1 ... TYPE ... 718
21.2.2 ... VARRAY ... 726
21.2.3 ... NESTED TABLE ... 729
21.3 ... Objektorientierte Tabellen ... 734
21.3.1 ... Anlage einer Tabelle, basierend auf einem Objekt ... 734
21.3.2 ... Eigenheiten der Speicherung von NESTED TABLE ... 737
21.3.3 ... Objektreferenzen ... 740
21.4 ... Objekttabellen als Speichermechanismus ... 743
21.5 ... Beurteilung ... 748
Teil V ... Datenbankmodellierung ... 751
22 ... Die Grundlagen der Datenmodellierung ... 753
22.1 ... Normalisierung ... 753
22.2 ... Tabellendesign ... 757
22.2.1 ... Tabellen für verschiedene Einsatzbereiche ... 757
22.2.2 ... Spalten, die in vielen Tabellen verwendet werden ... 758
22.3 ... Primärschlüssel ... 760
22.3.1 ... Primärschlüssel versus Geschäftsinformation? ... 761
22.3.2 ... Primärschlüssel im Umfeld von m:n-Verbindungen ... 762
22.3.3 ... Müssen Primärschlüssel Zahlen sein? ... 763
22.4 ... Fremdschlüssel ... 765
22.4.1 ... Fremdschlüssel und Indizes ... 765
22.5 ... Überlegungen zu Datentypen und zur Namenskonvention in Tabellen ... 767
22.5.1 ... Überlegungen zu Datentypen ... 767
22.5.2 ... Überlegungen zu Namenskonventionen ... 771
22.6 ... Zusammenfassung ... 774
23 ... Datenmodellierung von Datum und Zeit ... 777
23.1 ... Datumsbereiche ... 777
23.1.1 ... Speicherung von Datumsbereichen mit zwei Zeitpunkten ... 777
23.1.2 ... Speicherung von Datumsintervallen mit WMSYS.WM_PERIOD ... 786
23.1.3 ... Andere Datenmodelle zur Speicherung von Datumsbereichen ... 789
23.1.4 ... Analyse gegen eine Zeitdimension ... 793
23.2 ... Historisierung und Logging ... 796
23.2.1 ... Logging von Stammdatenänderungen ... 797
23.2.2 ... Historisierende Datenmodelle ... 802
23.2.3 ... Bitemporale Datenmodelle ... 809
24 ... Speicherung hierarchischer Daten ... 811
24.1 ... Hierarchie mittels zusätzlicher Hierarchietabelle ... 811
24.2 ... Closure Table ... 815
24.3 ... Weitere Modelle ... 819
24.4 ... Zusammenfassung ... 821
25 ... Data Warehouse ... 823
25.1 ... Star Schema ... 825
25.2 ... Dimensionen ... 828
25.2.1 ... Die Dimension PRODUCTS ... 828
25.2.2 ... Das Datenbankobjekt DIMENSION ... 829
25.2.3 ... Slowly Changing Dimensions ... 830
25.3 ... Arbeiten mit dem Star Schema ... 831
25.3.1 ... Analyse des Star Schemas mit SQL ... 831
25.3.2 ... Speicherung als multidimensionaler Würfel ... 832
25.4 ... Zusammenfassung ... 833
26 ... Abbildung objektorientierter Strukturen ... 835
26.1 ... Vererbung ... 836
26.1.1 ... Allgemeine Probleme ... 837
26.1.2 ... Table per Class ... 838
26.1.3 ... Table per Concrete Class ... 839
26.1.4 ... Table per Class Family ... 840
26.2 ... Kollektionen ... 841
26.3 ... Zusammenfassung ... 842
27 ... Internationalisierung ... 845
27.1 ... Oracle im multilingualen Kontext ... 845
27.1.1 ... Was ist das Problem? ... 846
27.1.2 ... Zeichensatzkodierungen ... 847
27.1.3 ... Datumsformate ... 851
27.1.4 ... Sortierung ... 853
27.1.5 ... National Language Support (NLS) ... 854
27.2 ... Datenmodelle zur Übersetzung von Stammdaten ... 854
27.2.1 ... Sprachtabelle ... 855
27.2.2 ... Übersetzung mit einer Übersetzungstabelle ... 857
27.2.3 ... Übersetzung mit einer zentralen Übersetzungstabelle ... 858
27.2.4 ... Entity-Attribute-Value-Tabellen ... 859
27.2.5 ... Übersetzung in einer Tabelle, reloaded ... 860
... Index ... 867
Insgesamt glänzt Jürgen Siebens Handbuch "Oracle PL/SQL" vor allem durch die vielen Praxisbezüge und Beispiele aus den Erfahrungen des Autor sowie den klaren, prägnanten Schreibstil, der den Leser zum Mitdenken auffordert. Ein sehr gelungenes Buch für alle, die ihre Kenntnisse im Bereich Datenbankenprogrammierung aufbessern wollen, über die Grundlagen aber bereits verfügen.
Erscheint lt. Verlag | 28.12.2012 |
---|---|
Reihe/Serie | Galileo Computing |
Sprache | deutsch |
Maße | 168 x 240 mm |
Gewicht | 1750 g |
Einbandart | gebunden |
Themenwelt | Informatik ► Datenbanken ► Oracle |
Schlagworte | Datenbanken • Oracle • PL/SQL • SQL • SQL (Structured Query Language) |
ISBN-10 | 3-8362-1875-5 / 3836218755 |
ISBN-13 | 978-3-8362-1875-7 / 9783836218757 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich