Ihr Standort: Kostenloses Kurse / Datenbankentwicklung mit PostgreSQL 9

Datenbankentwicklung mit PostgreSQL 9 - Der Kurs zum kostenlosen Lernen und Nachschlagen

Datenbankentwicklung mit PostgreSQL 9

Kurs starten >>
Beispiele Aufgaben Fragen
140 42 67

Aufgabe dieses Buches ist den Leser mit einer Reihe wichtiger Komponenten zur Anwendung des Open Source relationalen Datenbanksystems PostgreSQL vertraut zu machen. Hier wird Ihnen gezeigt, wie Sie mit der strukturierten Datenbanksprache PostgreSQL Datenbanken und Tabellen anlegen, ändern und löschen, Daten selektieren, löschen  und gruppieren. Erfahrene Datenbankentwickler werden die weitergehenden Möglichkeiten von PostgreSQL kennenlernen, um eigene Applikationen mit Hilfe von Prozeduren und Triggern zu entwickeln. Die Beispiele und die Aufgaben sind sowohl für den Einsatz in einem von einem Datenbank-Trainer geleiteten Kurs, als auch für das Selbststudium geeignet.

Inhalt

  • Datenbankentwicklung mit PostgreSQL 9
    • Vorwort
    • 1 Datenbanken
      • 1.1 Datenbanksysteme
      • 1.2 Relationale Datenbanksysteme
      • 1.3 Entwurf von Datenbanken
      • 1.4 Normalisierung von Tabellen
        • 1.4.1 Beispiel 1: Nicht-normalisierte Tabelle analysieren
        • 1.4.2 Beispiel 2: Tabelle so zerlegen, dass jedes Feld atomar ist (1. Normalform)
        • 1.4.3 Beispiel 3: Bildung der Tabellen mit Schlüsselfeldern (2. Normalform)
        • 1.4.4 Beispiel 4: Bildung der Tabellen Bestellung und Kunden mit Schlüsselfeldern (3. Normalform)
        • 1.4.5 Beispiel 5: Planung der Tabellen Adresse, Kunden und Adresstyp (Bildung 2NF und 3NF)
        • 1.4.6 Beispiel 6: Planung der Tabellen Artikel, Status, Kategorie und Organisation (3. Normalform)
      • 1.5 Beziehungen zwischen Tabellen
        • 1.5.1 Beispiel 7: 1:N-Beziehungen zwischen zwei Tabellen
        • 1.5.2 Beispiel 8: N:M-Beziehungen zwischen zwei Tabellen
      • 1.6 Beschreibung der Tabellen
      • 1.7 Übungsaufgaben
        • 1.7.1 Aufgabe 1: Planung einer neuen Datenbank Direktbestellung02
        • 1.7.2 Aufgabe 2: Beziehungen in der Datenbank Direktbestellung02 festlegen
      • 1.8 Verständnisfragen
    • 2 Datenbank anlegen
      • 2.1 Planung einer Datenbank
        • 2.1.1 Beispiel 9: Das Anwendungsbeispiel - die Datenbank für die Online-Bestellung
        • 2.1.2 PostgreSQL - Werkzeuge
        • 2.1.3 Beispiel 10: Eine neue Datenbank anlegen
      • 2.2 Tabellen der Beispieldatenbank erstellen
        • 2.2.1 Beispiel 11: Tabelle Kunden erzeugen
        • 2.2.2 Beispiel 12: Die abhängige Tabelle Bestellung erzeugen
      • 2.3 Datentypen
      • 2.4 Integritätsbedingungen
        • 2.4.1 Beispiel 13: Constraints in einer Tabelle definieren
      • 2.5 Referentielle Integrität
        • 2.5.1 Beispiel 14: 1:N-Beziehung mit referentieller Integrität
        • 2.5.2 Beispiel 15: Eine Verknüpfungstabelle für eine N:M-Beziehung einrichten
      • 2.6 Ausnahmeregeln bei Aktualisierungsanweisungen
        • 2.6.1 Beispiel 16: Ausnahmeregeln bei der Datenaktualisierung definieren
      • 2.7 Constraints nach der Tabellendefinition einfügen
        • 2.7.1 Beispiel 17: Constraints nach dem Anlegen einer Tabelle definieren
      • 2.8 Tabellen nachträglich erweitern und löschen
        • 2.8.1 Beispiel 18: Spalten einfügen, Tabelle löschen
      • 2.9 Übungsaufgaben
        • 2.9.1 Aufgabe 3: Eine neue Datenbank Direktbestellung02 anlegen
        • 2.9.2 Aufgabe 4: Constraints für die abhängigen Tabellen definieren
      • 2.10 Verständnisfragen
    • 3 Abfragen
      • 3.1 Einfache Abfragen
        • 3.1.1 Beispiel 19: Eine einfache SELECT-Abfrage
        • 3.1.2 Beispiel 20: SELECT mit arithmetischen Operatoren
      • 3.2 Die WHERE-Klausel
        • 3.2.1 Beispiel 21: Daten mit WHERE und den logischen Operatoren auswählen
      • 3.3 Die ORDER-Klausel
        • 3.3.1 Beispiel 22: Daten mit ORDER BY sortieren
        • 3.3.2 Beispiel 23: Daten mit ORDER BY und Spaltennummer sortieren
      • 3.4 Der LIKE-Operator
        • 3.4.1 Beispiel 24: Daten mit dem LIKE-Operator vergleichen
        • 3.4.2 Beispiel 25: Daten mit NOT LIKE vergleichen
      • 3.5 Der IN-Operator
        • 3.5.1 Beispiel 26: Anwendung des IN-Operators auf Zeichenspalten
        • 3.5.2 Beispiel 27: Anwendung des IN-Operators auf numerische Daten
      • 3.6 Der BETWEEN-Operator
        • 3.6.1 Beispiel 28: BETWEEN in einer Abfrage verwenden
        • 3.6.2 Beispiel 29: BETWEEN-Anwendung auf Datumsangaben
      • 3.7 Der NULL-Operator
        • 3.7.1 Beispiel 30: Untertitel in der Tabelle Artikel suchen
      • 3.8 Spaltenfunktionen
        • 3.8.1 Beispiel 31: Daten mit Spaltenfunktionen auswerten
      • 3.9 Die GROUP BY-Klausel
        • 3.9.1 Beispiel 32: mit GROUP BY-Klausel
      • 3.10 Die HAVING-Klausel
        • 3.10.1 Beispiel 33: mit HAVING-Klausel
      • 3.11 Komplexe Abfragen
        • 3.11.1 Beispiel 34: Eine einfache Abfrage ohne Unterabfrage
        • 3.11.2 Beispiel 35: Eine WHERE-Klausel mit einer Unterabfrage
        • 3.11.3 Beispiel 36: Mit einer korrelierten Unterabfrage suchen
      • 3.12 Der EXISTS-Operator
        • 3.12.1 Beispiel 37: Anzeige der Kunden mit Bestellungen
        • 3.12.2 Beispiel 38: Mit NOT EXISTS fehlende Bestellungen suchen
      • 3.13 Der IN-Operator
        • 3.13.1 Beispiel 39: Mit dem IN-Operator in einer Unterabfrage suchen
        • 3.13.2 Beispiel 40: Mit dem NOT IN-Operator in einer Unterabfrage suchen
      • 3.14 Der ANY-Operator
        • 3.14.1 Beispiel 41: Daten mit <ANY in einer Unterabfrage suchen
        • 3.14.2 Beispiel 42: Daten mit >ANY in einer Unterabfrage suchen
      • 3.15 Der ALL-Operator
        • 3.15.1 Beispiel 43: Daten mit dem ALL-Operator suchen
        • 3.15.2 Beispiel 44: Daten mit <ALL in Unterabfrage suchen
      • 3.16 Besonderheiten der Mengenoperatoren EXISTS und IN
        • 3.16.1 Beispiel 45: NOT EXISTS durch NOT IN ersetzen
        • 3.16.2 Beispiel 46: NULL-Wert bei NOT IN explizit abfragen
      • 3.17 Joins (Verbunde)
      • 3.18 Inner-Join
        • 3.18.1 Beispiel 47: Mit Inner-Join zwei Tabellen verknüpfen
        • 3.18.2 Beispiel 48: Mit Inner-Joins drei Tabellen verknüpfen
      • 3.19 Self-Join
        • 3.19.1 Beispiel 49: mit Selbst-Join
      • 3.20 Outer-Joins (äußere Verbunde)
        • 3.20.1 Beispiel 50: Left-Join in einer Abfrage mit zwei Tabellen verwenden
        • 3.20.2 Beispiel 51: Datensätze ohne Zuordnung mit Left-Join finden
        • 3.20.3 Beispiel 52: Einen Left-Outer-Join in einen Right-Outer-Join umwandeln
        • 3.20.4 Beispiel 53: Drei Tabellen mit Outer-Join verbinden
      • 3.21 Common Table Expressions (CTEs) und Recursive Queries
        • 3.21.1 Beispiel 54: Erstellen eines einfachen allgemeinen Tabellenausdrucks (CTEs)
        • 3.21.2 Beispiel 55: CTE und rekursive Abfragen
      • 3.22 Übungsaufgaben
        • 3.22.1 Aufgabe 5: Artikelauswahl mit zwei Bedingungen
        • 3.22.2 Aufgabe 6: Lieferbare Artikel anzeigen
        • 3.22.3 Aufgabe 7: Bestellwerte der einzelnen Bestellungen berechnen
        • 3.22.4 Aufgabe 8: Daten gruppieren und mit COUNT zählen
        • 3.22.5 Aufgabe 9: Kunden mit mehreren bestellten Artikeln anzeigen
        • 3.22.6 Aufgabe 10: Artikel mit niedrigsten Artikelpreisen selektieren
        • 3.22.7 Aufgabe11: Kunden ohne Lieferadresse anzeigen
        • 3.22.8 Aufgabe 12: Alle nicht-bestellte Artikel auswählen
      • 3.23 Verständnisfragen
    • 4 Standardfunktionen
      • 4.1 Mathematische Funktionen
        • 4.1.1 Beispiel 56: Zahlen runden und Zufallszahlen erstellen
      • 4.2 Zeichenkettenfunktionen
        • 4.2.1 Beispiel 57: Ein Text mit TRIM manipulieren
        • 4.2.2 Beispiel 58: Ein Text mit TRANSLATE übersetzen
        • 4.2.3 Beispiel 59: Text verschlüsseln
        • 4.2.4 Beispiel 60: Text verschlüsseln und entschlüsseln
      • 4.3 Datums- und Uhrzeitfunktionen
        • 4.3.1 Beispiel 61: Eine Datums-Zeichenkette in Datum umwandeln
        • 4.3.2 Beispiel 62: Eine Datums-Zeichenkette in Timestamp umwandeln
        • 4.3.3 Beispiel 63: Differenz zwischen Datumsangaben berechnen
        • 4.3.4 Beispiel 64: Anzahl der Tage bis Jahresende berechnen
        • 4.3.5 Beispiel 65: Teile aus Datumsangaben extrahieren
      • 4.4 DateTime-Arithmetik
        • 4.4.1 Beispiel 66: Ein Intervall zu einem Datum hinzufügen
        • 4.4.2 Beispiel 67: Ein Intervall zu einem Zeitstempel hinzufügen
        • 4.4.3 Beispiel 68: Differenz zwischen zwei Datumswerten bilden
      • 4.5 Übungsaufgaben
        • 4.5.1 Aufgabe 13: Position einer Teilzeichenkette im Text suchen
        • 4.5.2 Aufgabe 14: Zeichen übersetzen
        • 4.5.3 Aufgabe 15: Datumseinheiten aus dem Bestelldatum extrahieren
        • 4.5.4 Aufgabe 16: Datumsdifferenz bilden
      • 4.6 Verständnisfragen
    • 5 Datenaktualisierung
      • 5.1 INSERT-Dateneinführung
        • 5.1.1 Beispiel 69: Mit einer INSERT-Anweisung Daten einfügen
        • 5.1.2 Beispiel 70: Mit SELECT eine neue Tabelle erzeugen
        • 5.1.3 Beispiel 71: Aus zwei Tabellen eine neue Tabelle erzeugen
      • 5.2 UPDATE-Datenveränderung
        • 5.2.1 Beispiel 72: Mit UPDATE Daten ändern
        • 5.2.2 Beispiel 73: Eine Unterabfrage im UPDATE-Befehl verwenden
      • 5.3 DELETE-Datenlöschung
        • 5.3.1 Beispiel 74: Löschen eines bestimmten Artikels
        • 5.3.2 Beispiel 75: Mit DELETE mehrere Datensätze löschen
        • 5.3.3 Beispiel 76: Bestimmte Datensätzen löschen
      • 5.4 Übungsaufgaben
        • 5.4.1 Aufgabe 17: Mit UPDATE Daten ändern
        • 5.4.2 Aufgabe 18: Mit DELETE Daten löschen
      • 5.5 Verständnisfragen
    • 6 Sichten (Views)
      • 6.1 Eine Sicht aus einer oder mehreren Tabellen erstellen
        • 6.1.1 Beispiel 77: Sicht wie eine Tabelle verwenden
        • 6.1.2 Beispiel 78: Sicht mit selektierten Daten erstellen
        • 6.1.3 Beispiel 79: Sicht aus zwei Basistabellen erstellen
      • 6.2 Eine Sicht innerhalb einer anderen Sicht
        • 6.2.1 Beispiel 80: Sicht aus einer Basistabelle und einer Sicht erstellen
      • 6.3 Sichten mit Subselect
        • 6.3.1 Beispiel 81: Sicht mit Hilfe einer Unterabfrage erstellen
      • 6.4 Ändern von Sichten
        • 6.4.1 Beispiel 82: Daten in eine Sicht mit der INSERT-Regel einfügen
        • 6.4.2 Beispiel 83: Eine Sicht mit der UPDATE-Regel ändern
      • 6.5 Übungsaufgaben
        • 6.5.1 Aufgabe 19: Sicht mit einer Tabelle und Suchbedingungen erstellen
        • 6.5.2 Aufgabe 20: Sicht mit Daten aus zwei Tabellen erstellen
        • 6.5.3 Aufgabe 21: Sicht mit der Insert-Regel erweitern
      • 6.6 Verständnisfragen
    • 7 Funktionen
      • 7.1 PL/pgSQL-Funktionen mit Eingabeparametern und Rückgabewert
        • 7.1.1 Beispiel 84:  Eine Funktion definieren und anwenden
        • 7.1.2 Beispiel 85: Eine Funktion mit deklarierten Variablen definieren
      • 7.2 PL/pgSQL-Funktionen mit einer Tabelle als Eingabeparameter
        • 7.2.1 Beispiel 86: Artikelpreis ohne MwSt berechnen
      • 7.3 PL/pgSQL-Funktionen mit einer Tabelle als Rückgabewert
        • 7.3.1 Beispiel 87: Eine Zeile aus einer Tabelle lesen
        • 7.3.2 Beispiel 88: Mehrere Zeilen aus einer Tabelle lesen
      • 7.4 PL/pgSQL-Funktionen mit Datenaktualisierungsbefehlen
        • 7.4.1 Beispiel 89: Daten in einer Funktion ändern
      • 7.5 PL/pgSQL-Funktionen ohne Eingabeparameter und ohne Rückgabewert
        • 7.5.1 Beispiel 90: Funktion ohne Eingabeparameter und Rückgabewert definieren
      • 7.6 Übungsaufgaben
        • 7.6.1 Aufgabe 22: Aktuelle Bestellungen suchen
        • 7.6.2 Aufgabe 23: Lieferbare Artikel selektieren
      • 7.7 Verständnisfragen
    • 8 Kontrollstrukturen
      • 8.1 Verzweigungen
        • 8.1.1 Beispiel 91: Funktion mit IF-THEN-ELSE-Konstruktion
        • 8.1.2 Beispiel 92: Funktion mit IF-THEN-ELSEIF-Konstruktion
      • 8.2 CASE-Anweisung
        • 8.2.1 Beispiel 93: Mit CASE den Wochentag anzeigen
        • 8.2.2 Beispiel 94: CASE innerhalb einer SELECT-Abfrage
        • 8.2.3 Beispiel 95: CASE in einer WHERE-Klausel einer Abfrage
      • 8.3 CASE-Kurzformen
        • 8.3.1 Beispiel 96: Daten mit COALESCE selektieren
      • 8.4 Schleifen
        • 8.4.1 Beispiel 97: Daten mit einer einfachen FOR-Schleife lesen
        • 8.4.2 Beispiel 98: Daten mit einer WHILE-Schleife lesen
        • 8.4.3 Beispiel 99: Mit einer FOR-Schleife die Summe von geraden Zahlen bilden
        • 8.4.4 Beispiel 100: Ein Artikeldatensatz in eine Record-Variable aufnehmen
        • 8.4.5 Beispiel 101: Eine FOR-Schleife mit Bezug zu Tabellendaten
      • 8.5 Übungsaufgaben
        • 8.5.1 Aufgabe 24: Summe von geraden Zahlen bilden
        • 8.5.2 Aufgabe 25: Gesamtlänge von ISBN und Titel bilden
        • 8.5.3 Aufgabe 26: Zugehörigkeit der Kunden beim Verlag prüfen
        • 8.5.4 Aufgabe 27: Bücher eines Statuscodes mit Preis über 15 Euro finden
      • 8.6 Verständnisfragen
    • 9 Cursor
      • 9.1 Struktur des Cursors
        • 9.1.1 Beispiel 102: Mit ungebundenem Cursor den maximalen Preis suchen
      • 9.2 Der Cursor in Schleifen
        • 9.2.1 Beispiel 103: Eine Tabelle mit einem einfachen Cursor durchlesen
        • 9.2.2 Beispiel 104: Daten mit einem parametrisierten Cursor lesen
        • 9.2.3 Beispiel 105: Eine Cursor-Schleife via WHILE
        • 9.2.4 Beispiel 106: Artikeldaten mit Cursor-FOR-Schleife sequentiell lesen
      • 9.3 Cursor zurückgeben
        • 9.3.1 Beispiel 107: Ergebnis einer Funktion durch benutzerdefinierten Cursor zurückgeben
        • 9.3.2 Beispiel 108: Automatische Erzeugung eines Cursornamens
      • 9.4 Blättern durch die Ergebnistabelle
        • 9.4.1 Beispiel 109: Mit Cursor durch Ergebnistabelle blättern
      • 9.5 Übungsaufgaben
        • 9.5.1 Aufgabe 28: Mit einem einfachen Cursor den minimalen Artikelpreis finden
        • 9.5.2 Aufgabe 29: Mit einem parametrisierten Cursor bestimmte Kunden selektieren
        • 9.5.3 Aufgabe 30: Mit dem FOR-Cursor Kundenadressen suchen
        • 9.5.4 Aufgabe 31: Mit einem benutzerdefinierten Cursor bestimmte Artikel auswählen
      • 9.6 Verständnisfragen
    • 10 Trigger
      • 10.1 Definition eines Triggers und einer Triggerfunktion
        • 10.1.1 Beispiel 110: Tabelle mit Trigger Before-Insert prüfen
        • 10.1.2 Beispiel 111: Trigger mit BEFORE-UPDATE
        • 10.1.3 Beispiel 112: Trigger mit AFTER-UPDATE
        • 10.1.4 Beispiel 113: Trigger mit BEFORE-DELETE
        • 10.1.5 Beispiel 114: Trigger zur Kontrolle der referentiellen Integrität
        • 10.1.6 Beispiel 115: Der INSERT-Trigger mit drei Tabellen
        • 10.1.7 Beispiel 116: Daten in einer abhängigen Tabelle aktualisieren
        • 10.1.8 Beispiel 117: Daten in einer abhängigen Tabelle löschen oder ändern
      • 10.2 Übungsaufgaben
        • 10.2.1 Aufgabe 32: Mit dem Trigger BEFORE-INSERT einen Datensatz einfügen
        • 10.2.2 Aufgabe 33: Mit dem Trigger BEFORE-UPDATE einen Datensatz ändern
        • 10.2.3 Aufgabe 34: Mit einem BEFORE-Trigger die referentielle Integrität kontrollieren
        • 10.2.4 Aufgabe 35: Mit Triggern Daten in einer abhängigen Tabelle ändern bzw. löschen
      • 10.3 Verständnisfragen
    • 11 Transaktionen
      • 11.1 Transaktionskonzept
        • 11.1.1 Beispiel 118: Neue Tabelle für das Transaktionskonzept anlegen
        • 11.1.2 Beispiel 119: Ausführung von Änderungsanweisungen (implizite Transaktion)
        • 11.1.3 Beispiel 120: Datenbankänderungen mit ROLLBACK zurücksetzen
        • 11.1.4 Beispiel 121: Datenbankänderungen mit COMMIT festschreiben
      • 11.2 Sicherungspunkte
        • 11.2.1 Beispiel 122: Sicherungspunkte setzen
      • 11.3 Übungsaufgaben
        • 11.3.1 Aufgabe 36: Datenbankänderungen zurücknehmen
        • 11.3.2 Aufgabe 37: Datenbankänderungen festschreiben
        • 11.3.3 Aufgabe 38: Sicherungspunkte setzen und zurückrollen
      • 11.4 Verständnisfragen
    • 12 Datenbankoptimierung
      • 12.1 Auswahl von EXPLAIN
        • 12.1.1 Beispiel 123: Die gesamte Artikel-Tabelle sequentiell suchen
        • 12.1.2 Beispiel 124: Ein EXPLAIN für ein SELECT mit einer Beschränkung
        • 12.1.3 Beispiel 125: Zugriff auf Kundendaten über eine indizierte Spalte
      • 12.2 Wirkung von EXPLAIN
        • 12.2.1 Beispiel 126: Wirkung von EXPLAIN bei großen Datenmengen
        • 12.2.2 Beispiel 127: Anlegen und Analyse von größeren Tabellen
      • 12.3 EXPLAIN bei eingeschränkten Bedingungen
        • 12.3.1 Beispiel 128: Index-Auswirkung auf WHERE-Bedingung
        • 12.3.2 Beispiel 129: Einschränkung und Erweiterung der WHERE-Klausel
      • 12.4 EXPLAIN bei komplexen SELECT-Abfragen
        • 12.4.1 Beispiel 130: Nested-Loop-Join
        • 12.4.2 Beispiel 131: EXPLAIN und Hash-Join
        • 12.4.3 Beispiel 132: Berechnung der Ausführungskosten
      • 12.5 Übungsaufgaben
        • 12.5.1 Aufgabe 39: Mit EXPLAIN eine Tabelle analysieren und auswerten
        • 12.5.2 Aufgabe 40: Daten mit Nested-Loop- und Hash-Join auswerten
      • 12.6 Verständnisfragen
    • 13 SQL/XML
      • 13.1 Funktionen zum Erzeugen vom XML-Inhalt
        • 13.1.1 Beispiel 133: Generierung geschachtelter Elemente
        • 13.1.2 Beispiel 134: Spezifizierung von Element-Inhalt
        • 13.1.3 Beispiel 135: Generierung von Elementen mit Attributen
        • 13.1.4 Beispiel 136: Verketten von Elementen
        • 13.1.5 Beispiel 137: XML-Inhalte aus Spalten gruppieren
        • 13.1.6 Beispiel 138: XML-Felder gruppieren
        • 13.1.7 Beispiel 139: Erstellen von Elementwäldern mit XMLFOREST
        • 13.1.8 Beispiel 140: Umwandlung von Strings mit XMLPARSE
      • 13.2 Übungsaufgaben
        • 13.2.1 Aufgabe 41: Mit der XMLELEMENT-Funktion geschachtelte Elemente generieren
        • 13.2.2 Aufgabe 42: Mit der XMLAGG-Funktion Inhalte aus Spalten einer Tabelle gruppieren
      • 13.3 Verständnisfragen
    • Anhang A Verwendete Datenbankschemata
      • A.1 Schema der Datenbank Direktbestellung01
      • A.2 Tabellen der Datenbank Direktbestellung01
      • A.3 Datensätze für die Tabellen der Datenbank Direktbestellung01
    • Anhang B Lösungen zu den Aufgaben
      • B.1 Lösung Aufgabe 1
      • B.2 Lösung Aufgabe 2
      • B.3 Lösung Aufgabe 3
      • B.4 Lösung Aufgabe 4
      • B.5 Lösung Aufgabe 5
      • B.6 Lösung Aufgabe 6
      • B.7 Lösung Aufgabe 7
      • B.8 Lösung Aufgabe 8
      • B.9 Lösung Aufgabe 9
      • B.10 Lösung Aufgabe 10
      • B.11 Lösung Aufgabe 11
      • B.12 Lösung Aufgabe 12
      • B.13 Lösung Aufgabe 13
      • B.14 Lösung Aufgabe 14
      • B.15 Lösung Aufgabe 15
      • B.16 Lösung Aufgabe 16
      • B.17 Lösung Aufgabe 17
      • B.18 Lösung Aufgabe 18
      • B.19 Lösung Aufgabe 19
      • B.20 Lösung Aufgabe 20
      • B.21 Lösung Aufgabe 21
      • B.22 Lösung Aufgabe 22
      • B.23 Lösung Aufgabe 23
      • B.24 Lösung Aufgabe 24
      • B.25 Lösung Aufgabe 25
      • B.26 Lösung Aufgabe 26
      • B.27 Lösung Aufgabe 27
      • B.28 Lösung Aufgabe 28
      • B.29 Lösung Aufgabe 29
      • B.30 Lösung Aufgabe 30
      • B.31 Lösung Aufgabe 31
      • B.32 Lösung Aufgabe 32
      • B.33 Lösung Aufgabe 33
      • B.34 Lösung Aufgabe 34
      • B.35 Lösung Aufgabe 35
      • B.36 Lösung Aufgabe 36
      • B.37 Lösung Aufgabe 37
      • B.38 Lösung Aufgabe 38
      • B.39 Lösung Aufgabe 39
      • B.40 Lösung Aufgabe 40
      • B.41 Lösung Aufgabe 41
      • B.42 Lösung Aufgabe 42
    • Anhang C Lösungen zu den Verständnisfragen
    • Index