Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
1 Einführung
21
1.1 Für wen ist dieses Buch geschrieben?
21
1.2 Aufbau des Buches
22
1.2.1 Teil I – Einführung und Grundlagen
22
1.2.2 Teil II – Die SELECT-Anweisung
23
1.2.3 Teil III – Datenmanipulation und Erzeugung von Datenbankobjekten
25
1.2.4 Teil IV – spezielle Abfragetechniken
27
1.2.5 Teil V – Datenbankmodellierung
29
1.3 Anmerkung zur zweiten Auflage
31
1.4 Danksagung
32
Teil I Einführung und Grundlagen
35
2 Verwendete Werkzeuge und Skripte
37
2.1 Aufsetzen einer Beispieldatenbank
37
2.1.1 Warum Sie eine Datenbank zum Testen haben sollten
38
2.1.2 Eine Datenbank herunterladen und installieren
38
2.2 SQL Developer
49
2.2.1 SQL Developer herunterladen und installieren
50
2.2.2 Übersicht SQL Developer
50
2.2.3 Eine Datenbankverbindung aufbauen
50
2.2.4 SQL-Anweisungen ausführen
54
2.3 Die Datenbankbenutzer
55
2.3.1 SYS und SYSTEM
55
2.3.2 SCOTT
56
2.3.3 HR
56
2.3.4 SH
56
2.3.5 OE
56
2.4 Die Beispielskripte
56
2.5 Online-Dokumentation und weiterführende Literatur
58
3 Konzept einer relationalen Datenbank
65
3.1 Die Idee der relationalen Speicherung
65
3.1.1 Aufteilung der Daten auf Tabellen
67
3.1.2 Die Spielregeln relationaler Datenbanken
68
3.1.3 Die 1:n-Beziehung und ihre Varianten
74
3.1.4 Die m:n-Beziehung
76
3.1.5 Zusammenfassung
80
3.2 SQL – die »Lingua franca« der Datenbank
82
3.2.1 Was ist SQL?
83
3.2.2 Von Daten und Informationen
84
3.2.3 Wozu wird SQL in der Datenbank verwendet?
86
3.2.4 Kurzübersicht: die Standards und was davon zu halten ist
88
3.3 Analyse vorhandener Datenmodelle
90
3.3.1 Warum es nicht »das« Datenmodell gibt
90
3.3.2 Beispielanalyse: Der Benutzer HR
91
3.3.3 Ausblick
95
4 Aufbau einer Oracle-Datenbank
97
4.1 Wie arbeitet eine Oracle-Datenbank?
97
4.1.1 Eine SQL-Anweisung wird ausgeführt
97
4.1.2 Änderung von Daten und der Begriff der Transaktion
100
4.1.3 Daten- und Lesekonsistenz
101
4.2 Datentypen
105
4.2.1 Texttypen
106
4.2.2 Zahlentypen
106
4.2.3 Datumstypen
106
4.2.4 Sonstige Datentypen
107
4.3 Zusammenfassung
107
Teil II Die SELECT-Anweisung
109
5 Grundlagen: Auswahl und Projektion
111
5.1 Projektion
111
5.1.1 Spalten einschränken
112
5.1.2 Mit Spaltenwerten rechnen
115
5.1.3 Mit alphanumerischen Spalten arbeiten
117
5.1.4 Die Tabelle DUAL
120
5.1.5 Spalten- und Tabellenalias
121
5.2 Auswahl
125
5.2.1 Zeilen auswählen mit der WHERE-Klausel
125
5.2.2 Boolesche Operatoren
128
5.2.3 Einschränkungen mit LIKE, IN und BETWEEN
130
5.2.4 Duplikate filtern mit DISTINCT
138
5.3 Sortieren von Zeilenmengen
140
5.3.1 ORDER BY
141
5.3.2 ASC/DESC
142
5.3.3 NULLS FIRST und NULLS LAST
143
5.3.4 Einfluss der Sortierung auf die Datenbankleistung
144
5.4 Fallunterscheidungen
144
5.4.1 CASE-Anweisung
145
5.4.2 DECODE-Funktion
149
5.5 Die Klausel ROW LIMITING
151
5.6 Pseudospalten
154
5.6.1 ROWNUM
154
5.6.2 Sequenzwerte
157
5.6.3 ROWID
158
5.6.4 ORA_ROWSCN
159
5.6.5 Weitere Pseudospalten
160
5.7 Kommentare
160
5.7.1 Einzeiliger Kommentar
160
5.7.2 Mehrzeiliger Kommentar
160
5.7.3 Einige Anmerkungen zu Kommentaren
161
5.8 Der NULL-Wert
163
5.8.1 Was ist ein NULL-Wert bei Oracle?
163
5.8.2 Ein bisschen Quälerei mit NULL-Werten
165
5.8.3 Der NULL-Wert bei booleschen Operatoren
166
5.9 Übungen
170
6 Daten aus mehreren Tabellen lesen: Joins
173
6.1 Einführung in Joins
174
6.2 Inner Join
175
6.2.1 Equi-Join
177
6.2.2 Reihenfolge der Tabellen
183
6.2.3 Non-Equi-Join
184
6.2.4 Oracle-proprietäre Schreibweise
186
6.2.5 Joins versus Datenbank-Constraints
188
6.3 Outer Join
189
6.3.1 Left und Right Outer Join
190
6.3.2 Oracle-proprietäre Schreibweise
194
6.3.3 Full Join
195
6.3.4 Oracle-proprietäre Schreibweise
197
6.3.5 Cross-Join
197
6.3.6 Oracle-proprietäre Schreibweise
198
6.4 Anti-Join, Semi-Join, Self-Join und Natural Join
198
6.4.1 Anti-Join
198
6.4.2 Semi-Join
200
6.4.3 Self-Join
202
6.4.4 Natural Join
203
6.5 Mengenoperationen mit UNION, MINUS und INTERSECT
204
6.5.1 UNION und UNION ALL
204
6.5.2 MINUS
207
6.5.3 INTERSECT
208
6.5.4 Besonderheiten und Einsatzbeispiele
209
6.6 Übungen
211
6.7 Zusatz: Weiterführende Join-Konzepte
211
6.7.1 Datenverdichtung mit partitionierten Joins
212
6.7.2 CROSS APPLY, OUTER APPLY und LATERAL
216
7 Zeilenfunktionen
219
7.1 Grundsätzliches zu Funktionen
220
7.1.1 Funktionstypen
220
7.1.2 Funktionsparameter
221
7.1.3 Arten von Zeilenfunktionen
222
7.2 Datumsfunktionen
223
7.2.1 Erzeugung eines Datums
227
7.2.2 Erzeugung eines Intervalls
234
7.2.3 Rundungsfunktionen
235
7.2.4 Datumsarithmetik
237
7.2.5 Datumsfunktionen
239
7.2.6 Übungen
243
7.3 Textfunktionen
243
7.3.1 Funktionen zur Textsuche und -auswertung
243
7.3.2 Funktionen zur Textmanipulation
246
7.3.3 Reguläre Ausdrücke
253
7.3.4 Erzeugungs- und Konvertierungsfunktionen
263
7.3.5 Mister Q
264
7.3.6 Übungen
266
7.4 Mathematische Funktionen
267
7.4.1 Übersicht über die mathematischen Funktionen
267
7.4.2 Konvertierungsfunktionen und Zahlenformate
277
7.4.3 Spezielle mathematische Funktionen
280
7.4.4 Übungen
282
7.5 Allgemeine Funktionen
283
7.5.1 Vergleichsfunktionen GREATEST und LEAST
283
7.5.2 Arbeiten mit dem NULL-Wert
284
7.5.3 Konvertierungsfunktionen
288
7.5.4 Funktionen für Spezialfelder von Oracle
289
7.5.5 Hashcodes erstellen
292
7.5.6 Übungen
294
7.6 Eigene Funktionen erstellen: Berechnung der Fakultät
294
7.6.1 Anforderungen und Test
295
7.6.2 Implementierung in PL/SQL
295
8 Gruppenfunktionen
299
8.1 Die Standard-Gruppenfunktionen
300
8.1.1 AVG, MAX, MIN, SUM und COUNT
300
8.1.2 MEDIAN, VARIANCE und STDDEV
301
8.1.3 Gruppenfunktionen und NULL-Werte
303
8.1.4 Gruppenfunktion und die DISTINCT-/UNIQUE-Klausel
305
8.2 Gruppierung von Gruppenfunktionen
306
8.2.1 Die Klausel GROUP BY
306
8.2.2 Der NULL-Wert und die Gruppierung
307
8.2.3 Gruppieren nach mehreren Kriterien
308
8.2.4 Wozu dient die Gruppierung?
311
8.2.5 Filtern der Gruppenergebnisse durch HAVING
312
8.2.6 Erweiterte Konzepte der Gruppierung: ROLLUP und CUBE
313
8.2.7 Geschachtelte Gruppenfunktionen
319
8.3 Spezielle Gruppenfunktionen
320
8.3.1 DENSE_RANK und RANK
320
8.3.2 FIRST und LAST
324
8.3.3 LISTAGG
327
8.4 Übungen
327
9 Analytische Funktionen
329
9.1 Die Idee der analytischen Funktionen
330
9.1.1 Allgemeine Syntax
330
9.1.2 Einsatzbereiche
335
9.2 Erweiterung von Gruppenfunktionen zu analytischen Funktionen
335
9.2.1 Einfache Beispiele
336
9.2.2 Kombination von analytischen Funktionen mit Gruppenfunktionen
343
9.2.3 Die WINDOWING-Klausel
351
9.2.4 RATIO_TO_REPORT
356
9.3 Analytische Rangfunktionen
357
9.3.1 RANK, DENSE_RANK und PERCENT_RANK
357
9.3.2 ROW_NUMBER
364
9.3.3 LAG und LEAD
365
9.4 Zusammenfassung
372
9.5 Übungen
373
10 Unterabfragen
375
10.1 Die Unterabfrage in der WHERE-Klausel
375
10.1.1 Unterabfragen, die einen Wert zurückliefern: Skalare Unterabfrage
376
10.1.2 Unterabfragen mit mehreren Zeilen
378
10.1.3 Unterabfragen mit mehreren Spalten
380
10.1.4 Paarweiser und nicht paarweiser Vergleich
381
10.1.5 Harmonisierte Unterabfrage
384
10.2 Die Unterabfrage in der FROM-Klausel (Inner View)
386
10.2.1 Beispiel
386
10.2.2 Vergleich zur harmonisierten Unterabfrage
388
10.2.3 Die WITH-Klausel
391
10.3 Die Unterabfrage in der SELECT-Klausel (skalare Unterabfrage)
392
10.4 Unterabfragen und Joins
395
10.4.1 Anti-Joins
396
10.4.2 Semi-Joins mit der EXISTS-Klausel
397
10.5 Funktionen in der WITH-Klausel
399
10.6 Übungen
401
Teil III Datenmanipulation und Erzeugung von Datenbankobjekten
403
11 Datenmanipulation
405
11.1 Ihr Sicherheitsnetz – die Transaktion
405
11.1.1 Was ist eine Transaktion?
405
11.1.2 Zusammenfassung: Wozu brauche ich Transaktionen?
411
11.2 Die INSERT-Anweisung
413
11.2.1 Allgemeine Syntax
413
11.3 Die UPDATE-Anweisung
419
11.3.1 Allgemeine Syntax
419
11.3.2 Variationen zum Thema
421
11.4 Die DELETE-Anweisung
428
11.5 Variationen zum Thema: Sequenzen und Trigger
430
11.5.1 Sequenzen
430
11.5.2 Datenbank-Trigger
434
11.6 Die MERGE-Anweisung
435
11.6.1 Allgemeine Syntax
436
11.6.2 Variationen zum Thema
440
11.7 Erweiterung: Fehlerbehandlung während der Datenmanipulation
446
11.7.1 Die Klausel LOG ERRORS
447
11.7.2 Vorbereitung zum Einsatz
448
11.7.3 Verwendung der Klausel LOG ERRORS
450
11.7.4 Darstellung der Fehler
452
11.7.5 Einsatzszenarien
453
11.8 Erweiterung: Multi-Table-Insert
454
11.8.1 Kopieren von Daten in mehrere Zieltabellen
454
11.8.2 Fallweises Einfügen in jeweils eine Zieltabelle
455
11.8.3 Fallweises Einfügen in mehrere Zieltabellen
457
11.8.4 Verwendung von Sequenzen
459
12 Views erstellen
465
12.1 »Normale« Views
465
12.1.1 Was genau ist eine View?
466
12.1.2 Wie werden Views erstellt?
468
12.1.3 Einfache und komplexe Views
476
12.2 Einsatzbereiche von Views
478
12.2.1 Kapselung von Logik
478
12.2.2 Zugriffsschutz
479
12.2.3 Programmieren nach dem Gelbe-Seiten-Prinzip
479
12.2.4 Lösung komplexer Probleme in Teilschritten
480
12.3 Wer sollte Views verwenden?
480
12.4 Materialized View
482
12.4.1 Was ist eine Materialized View?
482
12.4.2 Erstellung von materialisierten Sichten
484
12.4.3 Grenzen der Aktualisierung
496
13 Tabellen erstellen
499
13.1 Einfache Tabellen erstellen
500
13.1.1 Allgemeine Syntax
502
13.1.2 Virtuelle Spalten
507
13.1.3 Identity Column (Autowertspalten)
512
13.1.4 Standardwerte für Spalten
515
13.2 Weitere Tabellentypen
516
13.2.1 Indexorganisierte Tabelle
516
13.2.2 Temporäre Tabelle
518
13.2.3 Externe Tabelle
519
13.2.4 Partitionierte Tabelle
525
13.3 Erweiterung zur »aktiven Tabelle«
527
13.3.1 Die Idee der »aktiven Tabelle«
527
13.3.2 Zur Illustration: Beispiel eines Triggers
528
13.3.3 Bewertung dieses Verfahrens
532
14 Indizes erstellen
535
14.1 Was ist ein Index?
536
14.1.1 Einige Überlegungen zur Indizierung
536
14.2 Indextypen bei Oracle
541
14.2.1 B*-Baum-Index
542
14.2.2 Funktionsbasierter Index
543
14.2.3 Bitmap-Index
547
14.3 Spezielle Indextypen
549
14.3.1 Volltextindizierung
549
14.4 Zusammenfassung
565
15 Einführung in die Rechteverwaltung von Oracle
567
15.1 Datenbankbenutzer versus Schema
568
15.1.1 Was ist ein Datenbankbenutzer?
569
15.1.2 Was macht einen Datenbankbenutzer zu einem Schema-Eigentümer?
570
15.2 Erstellung eines Datenbankbenutzers
571
15.2.1 Allgemeine Syntax
571
15.2.2 Grundlegende Rechte
571
15.2.3 Zugriff auf Festplattenspeicher
574
15.3 System- und Objektrechte
576
15.3.1 Systemberechtigungen
576
15.3.2 Objektberechtigungen
578
15.3.3 Die REVOKE-Anweisung
581
15.4 Rollen
581
15.5 Passwort- und Ressourcenrechte
583
Teil IV Spezielle Abfragetechniken
585
16 Hierarchische Abfragen
587
16.1 Das Problem
587
16.2 Lösung mit der Abfrage CONNECT BY
589
16.2.1 Die Pseudospalte LEVEL
594
16.2.2 Sortierung mit ORDER SIBLINGS BY
595
16.3 Erweiterungen zur Abfrage CONNECT BY
597
16.3.1 Weitere Pseudospalten
597
16.3.2 Operator CONNECT_BY_ROOT
600
16.3.3 Die Funktion SYS_CONNECT_BY_PATH
601
16.3.4 Ein etwas komplexeres Anwendungsbeispiel
602
16.3.5 Ein weiteres Beispiel
607
16.4 Hierarchische Abfragen nach ISO-Standard
610
16.4.1 Grundform
610
16.4.2 Erweiterungen
614
17 Pivotieren von Daten
621
17.1 Pivotierung mit Gruppenfunktionen
622
17.2 Pivotierung mit der PIVOT-Klausel
624
17.2.1 Die Klausel FOR IN
624
17.2.2 Die XML-Klausel
629
17.3 Unpivotierung mit Gruppenfunktionen
633
17.4 Unpivotierung mit der UNPIVOT-Klausel
638
18 Umgang mit Datum und Zeit
641
18.1 Erzeugung von Datumstypen
641
18.1.1 Arbeiten mit Zeitzoneninformation
642
18.1.2 Nähere Angaben zu Zeitzonen
645
18.1.3 Zeitzonenangaben in Literalen
647
18.2 Erzeugung von Intervallen
648
18.2.1 Allgemeinere Einführung in die Syntax
648
18.2.2 Intervalle über lange Zeiträume erstellen
649
18.2.3 Intervalle aus Zahlen ermitteln
650
18.2.4 Datumsarithmetik mit Intervallen
651
18.3 Konvertierung von Zeichenketten in Datumstypen
652
18.3.1 Optionaler Parameter NLS_PARAM
652
18.3.2 Die Formatmasken
653
18.4 Zeilenfunktionen für Zeitstempel mit Zeitzonen
658
18.4.1 DBTIMEZONE, SESSIONTIMEZONE
658
18.4.2 FROM_TZ
658
18.4.3 NEW_TIME
659
18.4.4 SYS_EXTRACT_UTC
660
18.4.5 TZ_OFFSET
661
18.4.6 ORA_DST_*
662
18.5 Abfragen über die Zeit: Flashback
663
18.5.1 Verwendung von Flashback auf Tabellenebene
665
18.5.2 Zusammenfassung
668
19 XML-Abfragen und JSON
669
19.1 XML-Instanzen mit SQL/XML erzeugen
671
19.1.1 Ein einfaches Beispiel
671
19.1.2 Übersicht über weitere SQL/XML-Funktionen
680
19.2 Bearbeitung von XML-Instanzen in SQL/XML
681
19.2.1 Vorbereitung von Testdaten
682
19.2.2 XQuery
683
19.2.3 Funktion XMLQUERY
683
19.2.4 Funktion XMLTABLE
689
19.2.5 Funktion XMLEXISTS
694
19.2.6 Die Funktion XMLCAST
695
19.3 Speicherung von XML in der Datenbank
696
19.3.1 Wann wird XML in der Datenbank gespeichert?
696
19.3.2 Speicherformen von XML in der Datenbank
697
19.3.3 Registrieren eines XML-Schemas
698
19.3.4 Indizierung von XML-Instanzen
704
19.4 Der Datentyp »XMLType«
705
19.4.1 Verwendung von »XMLType« als Tabellen- oder Spaltentyp
705
19.4.2 XMLType-Member Functions
707
19.4.3 Umformung von XML mittels XSLT
708
19.4.4 Lesen und Schreiben von XMLType in das Dateisystem
713
19.5 New kid on the block: JSON
714
19.5.1 Übersicht über JSON
714
19.5.2 Oracles JSON-Unterstützung
715
19.5.3 JSON-Funktionen und -Operatoren
718
19.5.4 Beurteilung
725
20 Die MODEL-Klausel
727
20.1 Lösung des Problems mit der MODEL-Klausel
731
20.2 Partitionierung, Dimension und Messung
734
20.2.1 Partitionierung mit PARTITION BY
735
20.2.2 Dimensionierung mit DIMENSION BY
736
20.2.3 Messung mit MEASURES
737
20.3 Regeln
737
20.3.1 UPSERT versus UPSERT ALL versus UPDATE
738
20.3.2 Referenzen auf Zellen
739
20.3.3 Positionale und symbolische Referenz
740
20.3.4 NULL-Werte versus fehlende Zellen
741
20.3.5 Funktionen und Klauseln für die MODEL-Klausel
743
20.3.6 Sortierung von Regeln und Zellen
746
20.4 Weitergehende Konzepte
749
20.4.1 Iterationen
749
20.4.2 Referenzen
751
20.5 Bewertung der MODEL-Klausel
755
21 Row Pattern Matching
757
21.1 Die Grundlagen
757
21.2 Syntaktische Grundlagen
760
21.3 Erweiterungen zur Grundsyntax
766
21.3.1 Implementierung der regulären Ausdrücke
766
21.3.2 Die Klausel AFTER MATCH SKIP
767
21.3.3 Die Klauseln ONE ROW und ALL ROWS PER MATCH
771
21.3.4 Subsets
773
21.3.5 Weitere Optionen
774
21.4 Zusammenfassung
780
22 Objektorientierung in der Oracle-Datenbank
783
22.1 Einführung in die Objektorientierung
784
22.1.1 Alles ist ein Objekt
784
22.1.2 Das zweite Reizwort: Vererbung!
786
22.1.3 Abstrakte und finale Klassen
788
22.1.4 Objektidentität versus Statement of Truth
788
22.1.5 Klassen haben komplexe Strukturen
790
22.2 SQL-Typen
792
22.2.1 TYPE
792
22.2.2 VARRAY
800
22.2.3 NESTED TABLE
803
22.3 Objektorientierte Tabellen
808
22.3.1 Anlage einer Tabelle, basierend auf einem Objekt
808
22.3.2 Eigenheiten der Speicherung von NESTED TABLE
811
22.3.3 Objektreferenzen
814
22.4 Objekttabellen als Speichermechanismus
817
22.5 Beurteilung
822
23 Performanzoptimierung von SQL
825
23.1 Sagen Sie der Datenbank, was Sie wollen!
825
23.2 Nutzen Sie alle verfügbaren Optionen von SQL
829
23.3 Vermeiden Sie Umgebungswechsel
833
23.3.1 Funktionsaufrufe aus SQL
833
23.3.2 Zeilen-Trigger
837
23.3.3 Verdeckte Umgebungswechsel
839
23.4 Die Verwendung von Indizes
839
23.4.1 Mythen über Indizes
839
23.4.2 Indizes auf Fremdschlüsselspalten
842
23.4.3 Indizes über mehrere Spalten
848
23.4.4 Bitmap-Join-Index
849
Teil V Datenbankmodellierung
853
24 Die Grundlagen der Datenmodellierung
855
24.1 Normalisierung
855
24.2 Tabellendesign
859
24.2.1 Tabellen für verschiedene Einsatzbereiche
859
24.2.2 Spalten, die in vielen Tabellen verwendet werden
861
24.3 Primärschlüssel
862
24.3.1 Primärschlüssel versus Geschäftsinformation?
863
24.3.2 Primärschlüssel im Umfeld von m:n-Verbindungen
864
24.3.3 Müssen Primärschlüssel Zahlen sein?
865
24.4 Fremdschlüssel
867
24.4.1 Fremdschlüssel und Indizes
867
24.5 Überlegungen zu Datentypen und zur Namenskonvention in Tabellen
868
24.5.1 Überlegungen zu Datentypen
868
24.5.2 Überlegungen zu Namenskonventionen
873
24.6 Zusammenfassung
876
25 Datenmodellierung von Datum und Zeit
879
25.1 Datumsbereiche
879
25.1.1 Speicherung von Datumsbereichen mit zwei Zeitpunkten
879
25.1.2 Speicherung von Datumsintervallen mit WMSYS.WM_PERIOD
888
25.1.3 Andere Datenmodelle zur Speicherung von Datumsbereichen
890
25.1.4 Analyse gegen eine Zeitdimension
895
25.2 Historisierung und Logging
898
25.2.1 Logging von Stammdatenänderungen
900
25.2.2 Historisierende Datenmodelle
906
25.2.3 Weitere historisierende Datenmodellierungsoptionen
912
25.2.4 Bitemporale Datenmodelle
916
26 Speicherung hierarchischer Daten
919
26.1 Hierarchie mittels zusätzlicher Hierarchietabelle
919
26.2 Closure Table
923
26.3 Weitere Modelle
927
26.4 Zusammenfassung
929
27 Data Warehouse
931
27.1 Star-Schema
933
27.2 Dimensionen
936
27.2.1 Die Dimension PRODUCTS
936
27.2.2 Das Datenbankobjekt DIMENSION
937
27.2.3 Slowly Changing Dimensions
938
27.3 Arbeiten mit dem Star-Schema
939
27.3.1 Analyse des Star-Schemas mit SQL
939
27.3.2 Anwendungsbeispiel
940
27.3.3 Speicherung als multidimensionaler Würfel
943
27.4 Zusammenfassung
944
28 Abbildung objektorientierter Strukturen
945
28.1 Vererbung
946
28.1.1 Allgemeine Probleme
947
28.1.2 Table per Class
949
28.1.3 Table per Concrete Class
949
28.1.4 Table per Class Family
950
28.2 Kollektionen
951
28.3 Alternative Lösungsansätze
952
28.4 Zusammenfassung
954
29 Internationalisierung
955
29.1 Oracle im multilingualen Kontext
955
29.1.1 Was ist das Problem?
956
29.1.2 Zeichensatzkodierungen
957
29.1.3 Datumsformate
959
29.1.4 Sortierung
962
29.1.5 National Language Support (NLS)
962
29.2 Datenmodelle zur Übersetzung von Stammdaten
963
29.2.1 Sprachtabelle
964
29.2.2 Übersetzung mit einer Übersetzungstabelle
966
29.2.3 Übersetzung mit einer zentralen Übersetzungstabelle
967
29.2.4 Entity-Attribute-Value-Tabellen
968
29.2.5 Übersetzung in einer Tabelle, reloaded
969
29.2.6 Übersetzung in einer Tabelle, noch einmal reloaded
974
Anhang
979
A Oracle-Datentypen
979
B Zeichensatzkodierung
993
Index
999