www.wikidata.de-de.nina.az
Ein Datenbankoperator ist Teil einer Datenbankanfrage der fur die Ausfuhrung eines einzelnen Teilschrittes der Anfrage zustandig ist Fur eine Anfrage erstellt eine Datenbank einen Auswertungsplan dessen Ausfuhrung das angeforderte Ergebnis liefert Schematisch ist ein Auswertungsplan dabei ein Baum der die Datenbankoperatoren als Knoten beinhaltet An den Blattern des Baumes befinden sich die gespeicherten Datentabellen Von dort werden sie von Operator zu Operator nach oben weitergereicht bis an der Wurzel das Anfrageergebnis bereitsteht Der Baum wird auch als Operatorbaum bezeichnet Inhaltsverzeichnis 1 Bearbeiten einer Anfrage 2 Logische und physische Operatoren 3 Optimierung 3 1 Logische Optimierung 3 2 Physische Optimierung 4 ONC 5 Beispiel 6 Sonstiges 7 Literatur 8 Weblinks 9 EinzelnachweiseBearbeiten einer Anfrage BearbeitenEine Anfrage an eine Datenbank wird bei Relationalen Datenbanken typischerweise als SQL Anfrage an das Datenbankmanagementsystem gesendet Hier wird die Anfrage von einem Parser in die relationalen Operationen zerlegt die notig sind um die Anfrage zu beantworten Logische und physische Operatoren BearbeitenMan unterscheidet dabei die Logischen Operatoren Physischen OperatorenWahrend die logischen Operatoren die mathematischen Operationen der relationalen Algebra reprasentieren befinden sich hinter den physischen Operatoren ausfuhrbare Algorithmen die den logischen Operator implementieren Die relationale Algebra definiert die folgenden logischen Operatoren mit denen alle weiteren Operatoren gebildet werden konnen Projektion Selektion Kreuzprodukt Umbenennung Vereinigung DifferenzJeder logische Operator kann dabei durch sehr unterschiedliche physische Operatoren ausgefuhrt werden Das Datenbankmanagementsystem kann zur Laufzeit entscheiden welche Implementierung in einem speziellen Fall die beste ist Ausserdem gibt es abgeleitete Operatoren die sich aus den logischen Operatoren durch Verschachtelung ableiten lassen Ein spezialisierter abgeleiteter Operatoren ist der Join Operator der Selektion und Kreuzprodukt hintereinander durchfuhrt um diese wichtige Operation so effizient wie moglich umzusetzen Ausserdem sind der Differenz Operator und der Divisions Operator weitere abgeleitete Operatoren Optimierung BearbeitenIn der Regel kann dieselbe Anfrage auf sehr unterschiedliche Weisen berechnet werden die abhangig von der Anfrage und den vorhandenen Daten sehr unterschiedlich schnell sein konnen Das heisst beide Ausfuhrungsplane haben mengenmassig das gleiche Ergebnis und sind daher mathematisch gesehen aquivalent Moderne Datenbankmanagementsysteme haben daher komplexe Anfrageoptimierer die aus der Menge aller moglichen Ausfuhrungsplane den effizientesten auswahlen Logische Optimierung Bearbeiten Zunachst wird hier eine logische Optimierung vorgenommen Es wird untersucht ob sich eine Anfrage mathematisch vereinfachen lasst ohne das Ergebnis zu beeinflussen Das heisst der Operatorbaum wird in einen aquivalenten Baum transformiert Typischerweise werden hier mehrfache Selektionsoperatoren auf der gleichen Datenquelle eliminiert oder Selektionsoperatoren die immer zu einer Reduktion des Aufwands fuhren so weit wie moglich im Baum nach unten bewegt Physische Optimierung Bearbeiten Im nachsten Schritt findet die physische Optimierung statt Nun wahlt der Optimierer den bestmoglichen Algorithmus fur eine Operation aus Dabei berucksichtigt er die Kardinalitat einer Datenquelle also die Anzahl der Elemente die verarbeitet werden mussen sowie vorhandene Indizes auf einer Relation So gibt es Algorithmen die nur dann sehr schnell sind wenn ein Index vorhanden ist wie beispielsweise der Index Join ONC BearbeitenJeder Operator ist ein Knoten in einem Operatorbaum Daher hat er ein oder zwei Datenquellen und genau eine Datenausgabe mit dem Daten an einen anderen Operator weitergegeben werden kann Die Operatoren sind typischerweise als Iteratoren mit einer ONC Schnittstelle implementiert ONC steht hier fur Open Next Close Der Operator wird also mit Open initial geoffnet Dann kann mit Next uber die Elemente die der Operator liefert iteriert werden Bei jedem Iterationsschritt fordert der Operator so viele Elemente von seinen Datenquellen an die er benotigt um ein neues Ergebniselement der Ergebnisrelation zu berechnen Abschliessend kann zur Freigabe von Systemressourcen der Operator mittels Close geschlossen werden Beispiel Bearbeiten nbsp Operatorbaum der BeispielanfrageAngenommen es sind zwei Relationen person und anschrift mit den folgenden Attributen gegeben person id person vorname person name person geburtsdatumanschrift id anschrift personen id anschrift strasse anschrift ortDann wurde die Anfrage nach allen Personen aus Marburg wie folgt aussehen select p name from person p anschrift a where a ort Marburg AND p id a personen id Das Bild rechts zeigt wie die Anfrage als ein Operatorbaum dargestellt wird Das Tool SELECT2OBaum 1 bietet die Moglichkeit SELECT Abfragen interaktiv in Operatorbaume umzuwandeln Sonstiges BearbeitenBemerkenswert ist dass die Umsetzung der Datenbankoperatoren bis heute erklarbar durch die grossen Geschwindigkeitsunterschiede bei Zugriffen auf Hauptspeicherplatz beziehungsweise Festplattenplatz selbst wieder durch Operationen auf baumartigen Datenstrukturen in der Regel B Baume oder B Baume implementiert wurden In dem Masse wie solche Geschwindigkeitsflaschenhalse beseitigt werden konnen auch weniger performante oder problemahnliche Datenstrukturen benutzt werden Die Geschwindigkeitsflaschenhalse in der Speicherorganisation ahneln den Flaschenhalsen nach von Neumann siehe auch Speicherhierarchie Literatur BearbeitenAlfons Kemper Andre Eickler Datenbanksysteme Eine Einfuhrung ISBN 3 486 27392 2Weblinks BearbeitenXXL in Java Datenbankbibliothek zu Lehr und ForschungszweckenEinzelnachweise Bearbeiten SELECT2OBaum bei der fh koeln de Abgerufen von https de wikipedia org w index php title Datenbankoperator amp oldid 216412707