Skip to main content

Datenabfrage mit mehreren Relationen

  • Chapter
  • First Online:
Relationale Datenbanken und SQL in Theorie und Praxis

Part of the book series: eXamen.press ((EXAMEN))

  • 16k Accesses

Zusammenfassung

Um Redundanz in einer Datenbank zu vermeiden, bedarf es der Normalisierung von Relationen (siehe Kap. 11). Sachlich zusammengehörige Informationen werden dadurch in mehrere Basistabellen zerlegt. Unsere Beispieldatenbank besteht daher aus 6 Tabellen. Um die Daten aber wieder ordnungsgemäß und für die Bedürfnisse der Nutzer passend zusammen zu setzen, sind oft Abfragen nötig, die gleichzeitig mehrere Tabellen betreffen.

Bei einem Verbund von Relationen, englisch Join, verbinden wir Tupel verschiedener Relationen zu einem zusammenhängenden Tupel. Die Ergebnisrelation umfasst Attribute aus den beteiligten Basistabellen. In Kap. 7 haben wir den Verbund als eine der Operationen der Relationenalgebra erklärt. Dort sind auch die Spezialfälle und die äußeren Verbunde definiert.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 29.95
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 39.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Vgl. Abschn. 8.3.4.

  2. 2.

    Diese Variante steht bei Sybase und Oracle nicht zur Verfügung.

  3. 3.

    Dies können, wie beim inneren Join, natürlich mehrere Spalten sein.

  4. 4.

    Außerdem ist zu berücksichtigen, dass bei einer Verknüpfung von mehr als zwei Tabellen unter Verwendung verschiedener (äußerer und innerer) Verbunde eventuell Klammern zu setzen sind, um die richtige Verarbeitung sicherzustellen. Das kann sehr schnell unübersichtlich werden. Einen Verbund von mehr als zwei Tabellen können wir so darstellen, dass wir zuerst zwei Tabellen verbinden, mit dem Resultat dann die dritte usw. Wir haben dies in Abschn. 7.1.1.

  5. 5.

    Diese Variante wird nur von sehr wenigen DBMS unterstützt.

  6. 6.

    Vgl. Abschn. 6.5.

  7. 7.

    Eine ausführliche Darstellung dieses Problems findet sich in [Date90a S. 339 ff].

  8. 8.

    Vgl. Abschn. 6.5.

  9. 9.

    Das Resultat erhielte man einfacher, wenn man die äußere SQL-Anweisung SELECT * einfach wegließe. Aber hier wollen wir zeigen, dass eine SELECT-Anweisung in der FROM-Klausel möglich ist.

  10. 10.

    Mit nicht-rekursiven SQL-Abfragen können wir alles das ausdrücken, was in der Prädikatenlogik erster Ordnung möglich ist – aber nicht alles, was berechenbar ist. Wenn wir eine Datenbank haben, in der für Personen jeweils – falls bekannt – ein Fremdschlüssel für den Vater und ein Fremdschlüssel für die Mutter eingetragen ist, können wir ohne Probleme Relationen wie „a ist Großvater von b“, „a ist Urgroßvater von b“, aber auch „a ist Onkel von b“ ausdrücken. Wir können auch noch „a ist Ururgroßvater von b“ oder „a ist Urururgroßvater von b“ ausdrücken (für jedes „ur“ wird der Join um eine Relation erweitert). Wir können aber nicht darstellen „a ist vorfahre von b“, obwohl das (effizient) berechenbar ist. Da hier die Anzahl der „ur“ nicht beschränkt ist, kann auch die Anzahl der Relationen in dem Join nicht beschränkt sein – unendliche Abfragen aber gibt es nicht. Durch die Einführung von Rekursion können wir das auch ausdrücken. Umgangssprachlich ausgedrückt ist ein Ahn entweder ein Elternteil oder ein Ahn eines Elternteils.

  11. 11.

    Genau genommen, handelt es sich hierbei um Operationen auf Tabellen (vgl. Abschn. 7.2), die im SQL-Standard als multisets bezeichnet werden.

  12. 12.

    Zur Erinnerung: Bei der Projektion werden Dubletten unter SQL nicht automatisch entfernt, dies muss vielmehr mit dem DISTINCT-Operator extra angefordert werden (Vgl. Abschn. 6.5).

  13. 13.

    Vgl. hierzu Abschn. 8.3.4.

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Michael Unterstein Prof. Dr. or Günter Matthiessen Prof. Dr. .

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Unterstein, M., Matthiessen, G. (2012). Datenabfrage mit mehreren Relationen. In: Relationale Datenbanken und SQL in Theorie und Praxis. eXamen.press. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-28986-6_8

Download citation

Publish with us

Policies and ethics