• Produktbild: SQL-Anfragen
  • Produktbild: SQL-Anfragen

SQL-Anfragen Optimierung für parallele Bearbeitung

Aus der Reihe FZI-Berichte Informatik

54,99 €

inkl. gesetzl. MwSt., Versandkostenfrei


Beschreibung

Produktdetails

Einband

Taschenbuch

Erscheinungsdatum

16.01.1992

Verlag

Springer Berlin

Seitenzahl

245

Maße (L/B/H)

23,5/15,5/1,5 cm

Gewicht

410 g

Sprache

Deutsch

ISBN

978-3-540-54252-0

Beschreibung

Produktdetails

Einband

Taschenbuch

Erscheinungsdatum

16.01.1992

Verlag

Springer Berlin

Seitenzahl

245

Maße (L/B/H)

23,5/15,5/1,5 cm

Gewicht

410 g

Sprache

Deutsch

ISBN

978-3-540-54252-0

Herstelleradresse

Springer-Verlag GmbH
Tiergartenstr. 17
69121 Heidelberg
DE

Email: ProductSafety@springernature.com

Ein neues Kapitel für Ihre Bücher

Ein neues Kapitel für Ihre Bücher

Schenken Sie Ihren alten Schätzen ein zweites Leben: Einfach Barcode scannen, Versandetikett ausdrucken, Bücher verschicken und Thalia Geschenkkarte erhalten.

Jetzt verkaufen
Jetzt verkaufen

Kundinnen und Kunden meinen

0 Bewertungen

Informationen zu Bewertungen

Zur Abgabe einer Bewertung ist eine Anmeldung im Konto notwendig. Die Authentizität der Bewertungen wird von uns nicht überprüft. Wir behalten uns vor, Bewertungstexte, die unseren Richtlinien widersprechen, entsprechend zu kürzen oder zu löschen.

Die Bewertungen sind nach Format, Anzahl Sterne und Datum sortiert.

Verfassen Sie die erste Bewertung zu diesem Artikel

Helfen Sie anderen Kund*innen durch Ihre Meinung

Kundinnen und Kunden meinen

0 Bewertungen filtern

Weitere Artikel finden Sie in

  • Produktbild: SQL-Anfragen
  • Produktbild: SQL-Anfragen
  • 1 Einleitung.- 1.1 Einführung des Optimierungsproblems.- 1.1.1 Anfragen.- 1.1.2 Parallele Anfragebearbeitung.- 1.1.3 Optimierungsziel.- 1.2 Techniken der Anfrageoptimierung.- 1.2.1 Komplexitätsaspekte.- 1.2.2 Regelbasierte Optimierung.- 1.2.3 Anfragedarstellung.- 1.2.4 Transformationsregeln.- 1.2.5 Suchraum und Suchstrategie.- 1.2.6 Kostenbewertung.- 1.3 Kernprobleme der Arbeit.- 1.4 Vorgehensweise.- 1.5 Abgrenzung gegenüber anderen Problemstellungen.- 2 Grundlagen und Literaturüberblick.- 2.1 Relationale Anfragesprachen.- 2.1.1 Relationales Datenmodell.- 2.1.2 Relationale Algebra.- 2.1.3 Relationaler Kalkül.- 2.1.4 Erweiterung um Aggregatfunktionen.- 2.1.5 SQL.- 2.2 Parallele Anfragebearbeitung.- 2.2.1 Klassifikation von Systemumgebungen.- 2.2.2 Datenverteilung.- 2.2.3 Bearbeitungsmethoden.- 2.2.3.1 Zugriff auf eine Basisrelation.- 2.2.3.2 Verbund zweier Relationen (Join).- 2.2.3.3 Zusammenfassung.- 2.2.4 Bearbeitungsplan.- 2.2.4.1 Datenflußprogramm.- 2.2.4.2 Parallelisierung.- 2.2.4.3 Zuordnungsentscheidungen.- 2.3 Anfragetransformation.- 2.3.1 Transformation in der Algebra.- 2.3.2 Transformation im Kalkül.- 2.3.3 Transformation vom Kalkül in die Algebra.- 2.3.4 Transformation und Übersetzung von SQL-Anfragen.- 2.4 Parallelisierung.- 2.4.1 Ansätze zur Parallelisierung während der Optimierung.- 2.4.2 Theorie der Ablaufplanung.- 2.4.2.1 Problemstellung.- 2.4.2.2 Konstruktion von Ablaufplänen minimaler Länge.- 3 Grundkonzept des Optimierers.- 3.1 Lösungsansatz.- 3.1.1 Regelbasierte Optimierung.- 3.1.2 Anforderungen an Anfragerepräsentation und Transformationsregeln.- 3.1.3 Konkretisierung der Vorgehensweise.- 3.1.4 Präzisierung der Optimierungsphasen.- 3.2 Anfragerepräsentation.- 3.2.1 Funktionale Darstellungsform.- 3.2.2 Erweiterte relationale Algebra.- 3.2.3 Bearbeitungspläne.- 3.3 Anfragetransformation und Generierung algebraischer Ausdrücke.- 3.4 Generierung paralleler Bearbeitungspläne.- 3.4.1 Transformationsregeln.- 3.4.2 Parallefisierungsstrategien.- 4 Erweiterte relationale Algebra und SQL.- 4.1 Spezifikation der erweiterten relationalen Algebra.- 4.1.1 Definition der Werte und Typen.- 4.1.2 Definition der Grundfunktionen.- 4.1.2.1 Komposition von Funktionen.- 4.1.2.2 Funktionen auf atomaren Datentypen.- 4.1.2.3 Tupelfunktionen.- 4.1.2.4 Mengenfunktionen.- 4.1.3 Relationale Operatoren.- 4.1.4 Ausdrücke.- 4.1.5 Weitere Schreibweisen.- 4.1.5.1 Kompakte Darstellung von Tupelkonstruktoren.- 4.1.5.2 Kompakte Darstellung von Prädikaten.- 4.1.5.3 Ableitbare relationale Operatoren.- 4.1.6 Einordnung der bisherigen Darstellungsformen.- 4.2 Die Anfragesprache SQL.- 4.2.1 Datenmodell.- 4.2.2 Syntax.- 4.2.3 Semantik: Übersetzung in die erweiterte relationale Algebra.- 4.2.3.1 Terme.- 4.2.3.2 Prädikate.- 4.2.3.3 Anfragen.- 4.2.3.4 Unteranfragen.- 4.3 Beispiele für die Übersetzung von SQL-Anfragen.- 5 Grundlagen der Anfragetransformation.- 5.1 Überblick.- 5.2 Prädikat-Transformation.- 5.3 Gruppierende Abbildungen.- 5.3.1 Definition.- 5.3.2 Konstruktion.- 5.4 Ersetzung nicht geschlossener Ausdrücke.- 5.4.1 Korrekte Ersetzung.- 5.4.2 Verlustfreie Ersetzung.- 5.4.3 Auflösung von Unteranfrage-Prädikaten.- 5.4.3.1 Korrekte Auflösung einer Selektion.- 5.4.3.2 Verbesserungsmöglichkeiten.- 5.4.3.3 Korrekte Auflösung einer Outer-Selektion.- 5.5 Algebraische Transformationsregeln.- 5.5.1 Distributiv- und Kommutativgesetze.- 5.5.2 Einsparung von Joins.- 5.6 Zusammenfassung.- 6 Anfragetransformation und Generierung algebraischer Ausdrücke.- 6.1 Überblick.- 6.2 Standardisierung.- 6.2.1 Prädikat-Transformation.- 6.2.2 Auflösung von Existenzquantoren.- 6.2.3 Auflösung von Allquantoren.- 6.2.4 Auflösung von Aggregatfunktionen.- 6.2.5 Ergebnis der Standardisierung.- 6.3 Verbesserung algebraischer Ausdrücke.- 6.3.1 Durchschieben der Projektion.- 6.3.2 Einsparung von Joins.- 6.4 Beispiele für Standardisierung und Verbesserung.- 6.5 Aufzählung algebraischer Ausdrücke.- 6.5.1 Zielsetzung.- 6.5.2 Plazierung und Integration von Auflösungen.- 6.5.3 Join-Reihenfolge.- 6.5.4 Ergebnis der Aufzählung.- 7 Implementierung relationaler Operatoren.- 7.1 Grundlagen.- 7.1.1 Tupellisten.- 7.1.2 Korrekte Implementierung relationaler Operatoren.- 7.1.3 Eigenschaften von Tupellisten.- 7.2 Zugriffspfade.- 7.2.1 Zugriff auf Basisrelationen.- 7.2.1.1 Physisches Datenbankschema.- 7.2.1.2 Sequentieller Zugriff.- 7.2.1.3 Selektiver Zugriff.- 7.2.2 Zugriff auf Tupellisten.- 7.2.3 Zugriff auf atomare Werte und Tupel.- 7.3 Sequentielle Bearbeitung relationaler Operatoren.- 7.3.1 Konkatenation.- 7.3.2 Filterung.- 7.3.3 Join.- 7.3.4 Aggregierung.- 7.3.5 Division.- 7.3.6 Ergebnisbildung.- 7.3.7 Beispiel für eine sequentielle Implementierung.- 7.4 Einsatz von Indizes.- 7.5 Ausnutzung einer Sortierung.- 7.5.1 Merge-Join.- 7.5.2 Aggregierung.- 7.5.3 Beispiel für die Ausnutzung einer Sortierung.- 7.6 Verwendung von Hashing.- 7.6.1 Hashing-Join.- 7.6.2 Aggregierung.- 7.6.3 Beispiel für den Einsatz von Hashing.- 7.7 Zerlegung von Operationen in Phasen.- 7.8 Zusammenfassung.- 8 Grundlagen der Parallelisierung.- 8.1 Überblick.- 8.2 Datenflußprogramm.- 8.2.1 Struktur.- 8.2.2 Konstruktion.- 8.3 Meta-Datenflußprogramm.- 8.3.1 Struktur.- 8.3.2 Konstruktion des Meta-Datenflußprogramms: Node Splitting.- 8.3.2.1 Zugriff auf eine Basisrelation.- 8.3.2.2 Filterung.- 8.3.2.3 Existenzquantor.- 8.3.2.4 Join und Semijoin.- 8.3.2.5 Merge-Join.- 8.3.2.6 Aggregierung.- 8.3.3 Konstruktion des Meta-Datenflußprogramms: Pipelining.- 8.3.4 Beispiel für die Konstruktion eines Meta-Datenflußprogramms.- 8.4 Transformationen auf dem Meta-Datenflußprogramm.- 8.4.1 Node Splitting.- 8.4.2 Pipelining.- 8.4.3 Beispiel für den Einsatz von Node Splitting und Pipelining.- 8.5 Abbildung des Meta-Datenflußprogramms auf ein Datenflußprogramm.- 8.5.1 Generierung der Teilknoten.- 8.5.2 Vorliegende Zerlegung der Operanden.- 8.5.3 Partitionierung und Anpassung des Operandenzugriffs.- 8.5.4 Beispiel für die Abbildung auf ein Datenflußprogramm.- 8.5.5 Einsparung überflüssiger Knoten.- 8.6 Generierung eines parallelen Bearbeitungsplans.- 8.7 Zusammenfassung.- 9 Kostenmodell.- 9.1 Zielsetzung und Vorgehensweise.- 9.2 Kostenarten.- 9.3 Kostenanteile.- 9.4 Kostenfaktoren.- 9.5 Kostenfunktionen.- 9.5.1 Kosten der Zugriffsoperationen.- 9.5.2 Kosten der Bearbeitungsoperationen.- 9.5.3 Kosten der Ergebnisübermittlung.- 9.6 Bewertung eines parallelen Bearbeitungsplans.- 9.6.1 Definition und Kennzahlen eines Parallelitätsprofils.- 9.6.2 Konstruktion eines Parallelitätsprofils.- 9.6.3 Bestimmung der Bearbeitungskosten und der Bearbeitungszeit.- 9.7 Bewertung eines Meta-Datenflußprogramms.- 9.7.1 Ausgangspunkt.- 9.7.2 Kosten der Teilknoten eines Metaknotens.- 9.7.3 Initiale Verteilung von Teilknoten auf Prozessoren.- 9.7.4 Konstruktion von Pipeboxen.- 9.7.5 Zusammensetzen der Pipeboxen zu einem Parallelitätsprofil.- 9.7.6 Bestimmung der Bearbeitungskosten und der Bearbeitungszeit.- 9.7.7 Neubewertung nach einem Parallelisierungsschritt.- 9.7.8 Beispiel für die Bewertung anhand des Parallelitätsprofils.- 10 Parallelisierungsstrategien.- 10.1 Aufgaben einer Parallelisierungsstrategie.- 10.2 Heuristiken zur Erzeugung eines Meta-Datenflußprogramms.- 10.2.1 Konstruktion des Meta-Datenflußprogramms.- 10.2.1.1 Auswahl des Parallelisierungsschemas beim Join.- 10.2.1.2 Auswahl des Parallelisierungsschemas bei der Aggregierung.- 10.2.1.3 Beispiel.- 10.2.2 Phasenzerlegung: Vermeidung von Hauptspeicherüberlauf.- 10.2.3 Node Splitting und Pipelining zur Vermeidung von Auslagerungen.- 10.2.4 Kopplung der Parallelisierung aufeinanderfolgender Knoten.- 10.3 Heuristiken auf der Basis des Parallelitätsprofils.- 10.3.1 Betrachtung zeitkritischer Meta-Pipes.- 10.3.2 Auswahl von Meta-Pipes für den Einsatz von Node Splitting.- 10.3.3 Parallelisierung einer Meta-Pipe durch Node Splitting.- 10.3.4 Auswahl von Meta-Pipes für den Einsatz von Pipelining.- 10.4 Heuristiken für die Zuordnung.- 10.5 Zusammenfassung.- 11 Zusammenfassung und Ausblick.- 11.1 Hauptergebnisse der Arbeit.- 11.2 Weiterführende Arbeiten.