diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index f760caa..36aa72a 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -229,6 +229,7 @@ }, "active": "25f5b25d5eca7203", "lastOpenFiles": [ + "SS2026/Datenbanken und Informationssysteme/5. Relationale Anfragebearbeitung/Anhänge/Pasted image 20260723134219.png", "SS2026/Datenbanken und Informationssysteme/5. Relationale Anfragebearbeitung/Anhänge/5-RelQuery.pdf", "SS2026/Datenbanken und Informationssysteme/4. SQL/Anhänge/sql_merged.pdf", "SS2026/Datenbanken und Informationssysteme/5. Relationale Anfragebearbeitung/Relationale Anfragebearbeitung.md", diff --git a/SS2026/Datenbanken und Informationssysteme/5. Relationale Anfragebearbeitung/Anhänge/Pasted image 20260723134219.png b/SS2026/Datenbanken und Informationssysteme/5. Relationale Anfragebearbeitung/Anhänge/Pasted image 20260723134219.png new file mode 100644 index 0000000..31018e7 Binary files /dev/null and b/SS2026/Datenbanken und Informationssysteme/5. Relationale Anfragebearbeitung/Anhänge/Pasted image 20260723134219.png differ diff --git a/SS2026/Datenbanken und Informationssysteme/5. Relationale Anfragebearbeitung/Relationale Anfragebearbeitung.md b/SS2026/Datenbanken und Informationssysteme/5. Relationale Anfragebearbeitung/Relationale Anfragebearbeitung.md index dc6f9fc..c65daf7 100644 --- a/SS2026/Datenbanken und Informationssysteme/5. Relationale Anfragebearbeitung/Relationale Anfragebearbeitung.md +++ b/SS2026/Datenbanken und Informationssysteme/5. Relationale Anfragebearbeitung/Relationale Anfragebearbeitung.md @@ -18,4 +18,20 @@ Algebra Ausdruck in einen effizienteren Ausdruck umwandeln 5. Commute - $\sigma_A(\sigma_B(R)) = \sigma_B(\sigma_A(R))$ Reihenfolge flexibel 6. Push - $\sigma_B(R \times S) = \sigma_B(R) \times S$ Tupelanzahl reduzieren 7. Push Projection - Projizieren vor Joinen -8. Combine Operations - Select von Kreuzprodukt zu Join zusammenfassen \ No newline at end of file +8. Combine Operations - Select von Kreuzprodukt zu Join zusammenfassen +#### Heuristischer Algorithmus +![[Pasted image 20260723134219.png]] + +Regelbasierte Optimierung weiß nicht welcher Plan tatsächlich der schnellste ist! + + +### Kostenbasierte Optimierung +Auswahl guter Join-Reihenfolge + beste konkrete Algorithmen +Kosten eines Operators hängen ab von: +1. Größe der Eingabedaten +2. Implementierungsalgorithmus +3. Physischen Parametern +**Selektivität** *sel* ist der Anteil der Eingabeobjekte der zum Ergebnis gehört. +KEIN Kostenmaß - trägt nur dazu bei + +#### Join Reihenfolgen