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