Anfrageverarbeitung

Werbung
9 Grundlagen der
Anfrageverarbeitung
© Prof. Dr.-Ing. Wolfgang Lehner |
> Bestandteile eines Datenbanksystems
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
2
> 5-Schichten-Architektur
Übersicht über Funktionen
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
3
> 5-Schichten-Architektur (2)
Übersicht über Datenobjekte und Objektstrukturen
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
4
> 5-Schichten-Architektur (3)
MOS: mengenorientierte Schnittstelle
 deklarative Datenmanipulationssprache auf Tabellen und Sichten (etwa SQL)
SOS: satzorientierte Schnittstelle
 navigierender Zugriff auf interner Darstellung der Relationen
 manipulierte Objekte: typisierte Datensätze und interne Relationen sowie logische
Zugriffspfade (Indexe)
 Aufgaben des Datensystems: Übersetzung und Optimierung von SQL-Anfragen
ISS: interne Satzschnittstelle
 interne Tupel einheitlich verwalten, ohne Typisierung
 Speicherstrukturen der Zugriffspfade (konkrete Operationen auf B-Bäumen und
Hash-Tabellen), Mehrbenutzerbetrieb mit Transaktionen
SPS: Systempufferschnittstelle
 Umsetzung auf interne Seiten eines virtuellen linearen Adressraums
 Typische Operationen: Freigeben und Bereitstellen von Seiten,
Seitenwechselstrategien, Sperrverwaltung, Schreiben des Protokolls
DS: Dateischnittstelle -> Umsetzung auf Geräteschnittstelle
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
5
>
Anfrageverarbeitung
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
6
> Aufgabe der Anfrageverarbeitung
Realisierung eines mengenorientieren Zugriffs
 nicht mehr Rückgriff auf einzelne Sätze
 inhaltliche Adressierung von Mengen von Sätzen
Aufgaben
 Überprüfung der syntaktischen Korrektheit
von Anfrage
 Überprüfung von Zugriffsberechtigungen und
Integritätsbedingungen
 Referenzielle Integrität, Eindeutigkeits- und Wertebereichszusicherungen, …
 Erzeugung einer optimalen ausführbargen Folge
interner DBMS-Operationen
 Anfrageoptimierer ist (im Wesentlichen) für die effiziente
Abarbeitung verantwortlich
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
7
> Anfragespezifikation
Prozedurale Sprachen
 Direkte Adressierung und satzorientierter Zugriff auf die Datensätze, keine
mengenorientierte Verarbeitung
 Verantwortung für die Zugriffspfadwahl, d.h. Art und Reihenfolge der Zugriffe liegt
beim Programmierer
Deskriptive Sprachen
 Inhaltliche Adressierung und mengenorientierter Zugriff auf die Datensätze, kein
Rückgriff auf einzelne Sätze
 Verantwortung für die Zugriffspfadauswahl, d.h. Art und Reihenfolge der Zugriffe
liegt beim System, transparent für den Anwender
 Hohe Auswahlmächtigkeit
 an der Prädikatenlogik erster Stufe orientiert ist
 unabhängige oder korrelierte Teilanfragen zur Bestimmung von Suchargumenten in beliebiger
Schachtelungstiefe zulässig
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
8
> Beispiele für deskriptiven Anfrage
Anfrage auf eine einzelne Tabelle
SELECT
FROM
WHERE
AND
PNR, PNAME, GEHALT
PERS
BERUF = ‘Programmierer’
PROVISION > GEHALT
Verbundoperation
Anfrage mit Korrelation
SELECT
FROM
WHERE
AND
P.PNR, P.NAME, A.NAME
PERS P, ABT A
P.ANR = A.ANR
P.GEHALT < (SELECT MAX(PROVISION)
FROM PERS)
AND P.GEHALT > (SELECT AVG(PROVISION)
FROM PERS
WHERE A.ANR = P.ANR)
© Prof. Dr.-Ing. Wolfgang Lehner |
Unabhängige
Unteranfrage
Korrelierte
Unteranfrage
Grundlagen von Datenbanken - Anfrageverarbeitung
|
9
> Zerlegung der Anfrageverarbeitung
Anfrageverarbeitung (AV)
(im engeren Sinne)
 Logischer DB-Prozessor
(System R: relational data system)
 liefert einen Ausführungsplan
(query execution plan; QEP) zur Übersetzungszeit
Anfrageausführung (AE)
 Physischer DB-Prozessor
(System R: relational storage system)
 tatsächliche Ausführung des Anfrageplanes zur Laufzeit
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
10
> Phasen der Anfrageverarbeitung
Anfrageoptimierung
Anfrage
Ergebnis
Interndarstellung
Ergebnisbereitstellung
© Prof. Dr.-Ing. Wolfgang Lehner |
Zugriffs- &
Integritätskontrolle
Ausführungskontrolle
Anfragerestrukturierung
Codeerzeugung
Anfragetransformation
Logischer
DB-Prozessor
(Anfrageprozessor)
Anfrageausführungsplan (QEP)
Übersetzungszeit
Planparametrierung
Laufzeit
Physischer
DB-Prozessor
(Anfrageausführer)
Grundlagen von Datenbanken - Anfrageverarbeitung
|
11
> Phasen der Anfrageverarbeitung (2)
Überführung in Interndarstellung
 Wie ist eine Anfrage intern repräsentiert? -> Operatorengraph
 Lexikalische und syntaktische Analyse
 Überprüfung auf korrekte Syntax (Parsing)
 Erstellung eines Anfragegraphen für die nachfolgenden Übersetzungsschritte (Überführung in
Interndarstellung)
 Semantische Analyse
 Feststellung der Existenz und Gültigkeit der referenzierten Relationen und Attribute
 Ersetzen der externen durch interne Namen (Namensauflösung)
 Konversion vom externen Format in interne Darstellung
Zugriffs- und Integritätskontrolle
 Durchführung einfacher Integritätskontrollen (Kontrolle von Formaten und
Konversion von Datentypen)
 Generierung von Laufzeitaktionen für werteabhängige Kontrollen
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
12
> Interndarstellung
Wie ist eine Anfrage intern repräsentiert?
 Strukturelle Betrachtung: Relationen, visualisiert als Tabellen
 Operationelle Betrachtung: Operatoren der Relationalen Algebra
Selektion - Auswahl von ‚Zeilen‘: pred()(R)
Projektion - Auswahl von ‚Spalten‘: {A1,…,Ak}(R)
Gruppierung - Auswahl von ‚Spalten‘ und Aggregatbildung auf Duplikaten: {G1,…,Gn:A1,…,Ak}(R)
Verbund - Verbinden von Relationen R und S: RP(Ai,Bj)⋈S
auf logischer Ebene: n-äre Verbundoperationen
 Beispiel SQL-Server: ca. 200 logische DB-Operatoren




 Umsetzung in relationalen Operatoren





effiziente Datenstruktur mit geeigneten Zugriffsfunktionen
prozedurale Darstellung einer deskriptiven, mengenorientierten Anfrage
Knoten sind Operatoren der Relationalen Algebra
Operatorengraph
Blattknoten sind (üblicherweise) Relationen
gerichtete Kanten repräsentieren den Datenfluss
Beispiel
SELECT
FROM
WHERE
AND
AND
Name, Beruf
ABT a, PERS p, PM pm, PROJ pj
a.Anr = p.Anr AND a.Aort = ‘Erlangen’
p.Pnr = pm.Pnr AND pm.Jnr = pj.Jnr
pj.Port = ‘Erlangen’
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
13
> Interndarstellung – Beispiele
Mono-Block-Anfrage
SELECT
FROM
WHERE
AND
C_NAME, C_ADDRESS
TPCD.CUSTOMER, TPCD.SUPPLIER
C_NAME = S_NAME
C_MKTSEGMENT = ’MACHINERY’;
Projektion
Selektion
Verbundoperation
Quellrelationen
Star-Query
SELECT
P_BRAND, O_SHIPPRIORITY,
SUM(L_QUANTITY*L_EXTENDEDPRICE)
AS TURNOVER
FROM
TPCD.LINEITEM, TPCD.ORDERS, TPCD.PART
WHERE L_ORDERKEY = O_ORDERKEY
AND L_PARTKEY = P_PARTKEY
AND O_ORDERSTATUS = ’F’
AND P_CONTAINER = ’LG_BAG’
GROUP BY
P_BRAND, O_SHIPPRIORITY
HAVING
AVG(L_QUANTITY) > 250;
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
14
> Phasen der Anfrageverarbeitung (2)
Anfragerestrukturierung: algebraische bzw. logische Optimierung
 Anwendung von heuristischen Regeln
 zielt auf globale Verbesserung des Anfragegraphen ab
Anfragetransformation: nicht-algebraische bzw. physischer Optimierung
 Berücksichtigung ausführbarer Operationen
 Ersetzung und ggf. Zusammenfassen der logischen Operatoren durch Planoperatoren
 Auswahl der günstigsten Planalternative
 meist sind mehrere Planoperatoren als Implementierung eines logischen Operators verfügbar
 meist sind viele Ausführungsreihenfolgen oder Zugriffspfade auswählbar
 Bewertung der Kosten und Auswahl des günstigsten Ausführungsplanes
Code-Generierung
 Generierung eines zugeschnittenen Programms für die vorgegebene (SQL-) Anfrage
 Erzeugung eines ausführbaren Zugriffsmoduls
 Verwaltung der Zugriffsmodule in einer DBVS-Bibliothek
... zusätzlich bei verteilten Datenbanksystemen ...
 Anfragetransformation, Datenlokalisierung, globale Optimierung
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
15
>
Anfrageoptimierung
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
16
> Einordnung und Phasen
Aufgabeoptimierung erfolgt in zwei Phasen
Anfragerestrukturierung
Zugriffs- &

Algebraische/logische
Optimierung
InternAnfrage
Integritätsdarstellung& Vereinfachung
 Standardisierung
kontrolle
 Restrukturierungsregel
Anfrageoptimierung
Anfragerestrukturierung
Anfragetransformation
 nicht-algebraische/physischer Optimierung
 Kostenbasierte
Planerstellung
ErgebnisAusführungsCodeErgebnis
bereit Realisierungsansätze:
kontrolle
erzeugung
stellung
 Greedy-Ansatz,
 Dynamic Programming,
 Randomisierte Verfahren
© Prof. Dr.-Ing. Wolfgang Lehner |
Anfragetransformation
Logischer
DB-Prozessor
(Anfrageprozessor)
Anfrageausführungsplan (QEP)
Übersetzungszeit
Planparametrierung
Laufzeit
Physischer
DB-Prozessor
(Anfrageausführer)
Grundlagen von Datenbanken - Anfrageverarbeitung
|
17
> Anfrageoptimierung
Ziel
 von der Anfrage (WAS?) zur Auswertung (WIE?)
 Ermittlung des kostengünstigsten Auswerteweges
Zentrales Problem
 globale Optimierung ist im Allgemeinen zu aufwändig
 Fehlen von exakten statistischen Informationen
 Einsatz von Heuristiken
Optimierungsziel
 entweder Maximierung des Outputs bei gegebenen Ressourcen:
Durchsatzmaximierung
 oder Minimierung der Ressourcennutzung für gegebenen Output:
Antwortzeitminimierung für eine gegebene Anfragesprache, einem Mix von
Anfragen verschiedenen Typs und einer gegebenen Systemumgebung!
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
18
>
Anfragerestrukturierung
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
19
> Anfragerestrukturierung
Algebraische bzw. logische Optimierung
 Modellbasierte algebraische Umformung für effizientere Ausführung
 Zielt auf globale Verbesserung des Anfragegraphen ab
 Anwendung von heuristischen Regeln
Basis
 Äquivalenzen in der relationalen Algebra
Schritte




Standardisierung von Prädikaten
Vereinfachung von Prädikaten
Auflösen von Verschachtelungen
Anwenden Restrukturierungsregeln
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
20
> Beispiele für Restrukturierungen
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
21
> Algorithmus
Algorithmus zur Anfragerestrukturierung - vereinfachte Vorgehensweise
 Zerlegen von komplexen Verbundoperationen in binäre Verbunde
(Bilden von binären Verbunden)
 Separiere Selektionen mit mehreren Prädikatstermen in separate Selektionen mit
jeweils einem Prädikatsterm
 Führe Selektionen so früh wie möglich aus, d.h., schiebe Selektionen hinunter zu den
Blättern des Anfragegraphen (engl. selection push-down)
 Fasse einfache Selektionen zusammen, d.h. gruppiere aufeinanderfolgende
Selektionen (derselben Relation)
 Führe Projektionen so früh wie möglich aus, d.h. schiebe Projektionen hinunter zu
den Blättern des Anfragegraphen (engl. projection push-down)
 vermeide dabei die teure Duplikateliminierung!
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
22
>
Anfragetransformation
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
23
> Einordnung und Phasen
Aufgabeoptimierung erfolgt in zwei Phasen
Anfragerestrukturierung
Zugriffs- &

Algebraische/logische
Optimierung
InternAnfrage
Integritätsdarstellung& Vereinfachung
 Standardisierung
kontrolle
 Restrukturierungsregel
Anfrageoptimierung
Anfragerestrukturierung
Anfragetransformation
 nicht-algebraische/physischer Optimierung
 Kostenbasierte
Planerstellung
ErgebnisAusführungsCodeErgebnis
bereit Realisierungsansätze:
kontrolle
erzeugung
stellung
 Greedy-Ansatz,
 Dynamic Programming,
 Randomisierte Verfahren
© Prof. Dr.-Ing. Wolfgang Lehner |
Anfragetransformation
Logischer
DB-Prozessor
(Anfrageprozessor)
Anfrageausführungsplan (QEP)
Übersetzungszeit
Planparametrierung
Laufzeit
Physischer
DB-Prozessor
(Anfrageausführer)
Grundlagen von Datenbanken - Anfrageverarbeitung
|
24
> Anfragetransformation
Nicht-algebraische/physischer Optimierung
 Abbildung eines relationalen Operatorengraphen auf physisch ausführbare
Operatoren und deren Ausführungsreihen folge
-> also Erstellung eines Ausführungsplans
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
25
> Beispiel für Anfrageausführungsplan
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
26
> Anfragetransformation (2)
Problem
 Unterschiedliche Implementierungen (z.B. Join) bzw. Abbildungsvarianten (z.B.
Indexnutzung)
Teilprobleme
 Gruppierung von direkt benachbarten Operatoren zur Auswertung durch einen
Planoperator
 Beispiel: Verbund mit Selektionen und/oder Projektionen auf den beteiligten Relationen lässt sich
durch einen speziellen Planoperator ersetzen
 Verknüpfungsreihenfolge bei Verbundoperationen
 Ziel: minimale Kosten für die Operationsfolge
 Heuristik: Minimierung der Größe der Zwischenergebnisse, d. h. die kleinsten (Zwischen)Relationen immer zuerst zu verknüpfen
 Erkennung gemeinsamer Teilbäume
 Einmalige Berechnung
 dafür nötig: Zwischenspeichung der Ergebnisrelation
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
27
> Anfragetransformation (3)
Eingabe
 Algebraisch optimierter Anfragegraph
 Existierende Speicherungsstrukturen und Zugriffspfade
 Kostenmodell
Ausgabe
 optimaler (zumindest: guter) Ausführungsplan
Rahmenbedingungen
 Fatale Annahmen




Alle Datenelemente und alle Attributwerte sind gleichverteilt
Suchprädikate in Anfragen sind unabhängig
beide Annahmen sind (im allgemeinen Fall) falsch!
Beispiel:
(GEHALT ≥ ‘100K’) AND (ALTER BETWEEN 20 AND 30)
mit Gehalt: [10K - 1M] und Alter: [20 - 65]
-> lineare Interpolation, Multiplikation von Wahrscheinlichkeiten
 Riesiger Suchraum
 Beispiel:
Für n-ären Verbund gibt es n! mögliche Verbundreihenfolgen
 Begrenzte Ressourcen
 Kosten der Anfrageoptimierung sollen nicht die erzielte Reduktion von Ausführungskosten
überschreiten
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
28
>
Planoperatoren
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
29
> Planoperatoren
Was sind Planoperatoren
 Physisch ausführbare Operatoren
 Physische Realisierung der logischen Operatoren der Relationalen Algebra
 Basis des Anfrageausführungsplans
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
30
> Selektion und Projektion
Planoperatoren für die Projektion
 Spalteneliminierung ist trivial
 wird typischerweise in Kombination mit Sortierung, Selektion oder Verbund durchgeführt
 Duplikateliminierung wird durch Gruppieren auf allen distinkten Attributen ohne
zusätzliche Aggregation realisiert
Planoperatoren zur Selektion
 Nutzung des Scan-Operators
 Definition von Start- und Stopp-Bedingung
 Definition von einfachen Suchargumenten
 Relationen-Scan
 Index-Scan
 Auswahl des kostengünstigsten Index
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
31
> Selektion und Projektion (3)
Beispiel
SELECT *
FROM Umsätze
WHERE Monat BETWEEN 1 AND 6
 Umsetzung durch Relationen-Scan
aktuellerScanID := open-rel-scan(Umsätze-RelationID);
aktuellerTID := next-TID(aktuellerScanID);
while (not end-of-scan(aktuellerScanID))
aktuellesTupel := fetch-tuple(Personen-RelationID, aktuellerTID);
if aktuellesTupel.Monat >= 1 and aktuellesTupel.Monat <= 6
return(aktuellesTupel);
aktuellerTID := next-TID(aktuellerScanID);
close-scan (aktuellerScanID);
 Umsetzung durch Index-Scan
aktuellerScanID := open-index-scan(Umsätze-Monat-IndexID, 1, 6);
aktuellerTID := next-TID(aktuellerScanID);
while (not end-of-scan(aktuellerScanID))
aktuellesTupel := fetch-tuple(Umsätze-RelationID, aktuellerTID);
return(aktuellesTupel);
aktuellerTID := next-TID(aktuellerScanID);
close-scan (aktuellerScanID);
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
32
> Verbundoperatoren
Eigenschaften der Verbundoperation
 teuer und häufig -> Optimierungskandidat !!!
 typisch: Gleichheitsverbund; allgemeines Verbundprädikat eher selten
 Standardszenario
SELECT *
FROM R, S
WHERE R.VA Θ S.VA // Verbundprädikat
AND P(R.SA) // lokale Selektionen
AND P(S.SA)
Mögliche Zugriffspfade
 DB-Scan über R uns S
 Scans über IR(R.VA) und IS(S.VA)
 Sortierreihenfolge nach R.VA und S.VA !!!
 Scans über IR(R.SA) und/oder IS(S.SA)
 schnelle Selektion für R.SA und S.SA !!!
 ... beliebige andere Kombinationen
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
33
> Nested-Loop Verbund
Annahmen
 Sätze in R und S sind nicht nach den Verbundattributen geordnet
 es sind keine Indexstrukturen IR(VA) und IS(VA) vorhanden
Algorithmus für Θ-Verbund
Scan über S
für jeden Satz s, falls PS gilt:
Scan über R
für jeden Satz r, falls PR AND (r.VA Θ s.VA) gilt:
übernehme kombinierten Satz (r, s) in das Ergebnis
Komplexität
 O(N2)
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
34
> Nested-Loop Verbund (2)
Beispiel
 Annahme: Fremdschlüssel-Primärschlüssel-Beziehung!
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
35
> Sort-Merge Verbund
Annahmen
 es sind Indexstrukturen IR(VA) und IS(VA) vorhanden
Algorithmus zum Ausnützen von Indexstrukturen IR(R.VA) und IS(S.VA)
 Phase 1:
Sortierung von R und S nach R.VA und S.VA (falls nicht bereits vorhanden), dabei
frühzeitige Eliminierung nicht benötigter Tupel (durch Überprüfung von PR, PS)
 Phase 2:
Schritthaltende Scans über sortierte R- und S-Relationen mit Durchführung des
Verbundes bei r.VA = s.VA
 Pseudocode:
Schritthaltende Scans über IR(VA) und IS(VA):
für jeweils zwei Schlüssel aus IR(VA) und IS(VA), falls r.VA = s.VA:
hole mit den zugehörigen TIDs die Tupel, falls PR und PS:
übernehme kombinierten Satz (r, s) in das Ergebnis
Komplexität
 O(N log N)
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
36
> Sort-Merge Verbund (2)
Beispiel
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
37
> Hash-Verbund – Classic Hashing
Schritt 1
 Abschnittsweises Lesen der (kleineren) Relation R
 Aufbau einer Hash-Tabelle mit hA(r(VA)) nach Werten von R(VA)
 Aufteilen in p Abschnitte Ri (1 ≤ i ≤ p) derart, dass
 jeder der p Abschnitte in den verfügbaren Hauptspeicher passt
 jeder Satz, der gehasht wird, PR erfüllt
Schritt 2
 Überprüfung (Probing) für jeden Satz von S mit PS
 im Erfolgsfall Durchführung des Verbundes
Schritt 3
 Wiederhole Schritt 1 und 2 solange, bis alle p Abschnitte bearbeitet
Komplexität
 O(p * N)
 Idealfall: R passt in den Hauptspeicher, d.h. p=1
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
38
> Hash-Verbund – classic hashing (3)
Aufbau der Hash-Tabelle und Probing
 Hash-Tabellen Hi(1 ≤ i ≤ p) werden schrittweise im Hauptspeicher aufgebaut
 nach jedem Durchlauf von S wird die aktuelle Hash-Tabelle wieder gelöscht
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
39
> Hash-Verbund – classic hashing (4)
Beispiel
 Voraussetzung: Hauptspeicherkapazität = 3 Tupel
 Hashing von R1 mit h(x) = x mod 3
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
40
>
Zusammenfassung
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
41
> Zusammenfassung
5-Schichtenarchitektur von Datenbanksystemen





mengenorientierte Schnittstelle
satzorientierte Schnittstelle
interne Satzschnittstelle
Systempufferschnittstelle
Dateischnittstelle
Anfrageverarbeitung
 logischer/physischer DB-Prozessor (Compile/Runtime)
 Phasen: Interndarstellung – Anfrageoptimierung
 Anfragerestrukturierung
 Anfragetransformation
 Planoperatoren
 Unäre Operatoren
 Selektion und Projektion
 Verbundoperatoren
 Nested-Loop Verbund
 Sort-Merge Verbund
 Hash-Verbund
© Prof. Dr.-Ing. Wolfgang Lehner |
Grundlagen von Datenbanken - Anfrageverarbeitung
|
42
Herunterladen