Automatische Erstellung von Soft-Indexen in PostgreSQL

Größe: px
Ab Seite anzeigen:

Download "Automatische Erstellung von Soft-Indexen in PostgreSQL"

Transkript

1 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Datenbanken und Informationssysteme DIPLOMARBEIT Automatische Erstellung von Soft-Indexen in PostgreSQL Karsten Schmidt Studiengang: Informatik Matrikelnummer: Technische Universität Ilmenau Ilmenau, den 10. Mai 2006 Betreuer: Prof. Dr.-Ing. habil. Kai-Uwe Sattler Inventarisierungsnummer: /IN99/2254

2 Danksagung An dieser Stelle möchte ich allen danken, die mir bei der Erstellung dieser Diplomarbeit geholfen habe. Ich danke meinem Betreuer Prof. Dr. Kai-Uwe Sattler für die Unterstützung und ständige Diskussionsbereitschaft während der Entwicklung dieses Werkes. Meinen Mitbewohnern und Freunden, im Besonderen Ralf Kästner und meiner Freundin Susanne Reitner, gebührt Dank dafür, mich immer aufgemuntert und unterstützt zu haben. Ich widme diese Arbeit meinen Eltern Klaus und Annelie Schmidt, die mir das Informatik Studium und damit auch diese Diplomarbeit erst ermöglicht haben.

3 Inhaltsverzeichnis Abbildungsverzeichnis 5 1. Einleitung Motivation Aufgabenstellung Aufbau Grundlagen der Indexauswahl und Nutzung Grundlagen zur Anfrageverarbeitung DBMS-Komponenten Operatoren Indexe Indexaufgaben Indexarten Indexnutzung Indexauswahl Kostenmodell Systemparameter Datenbankparameter und Kostenformeln Kostenberechnung Beispiel Zusammenfassung Einordnung und Abgrenzung Vorhandene Ansätze Index-Advisors QUIET Deferred Indexe Soft-Index-Einordnung Soft-Index-Komponenten Erweiterung Soft-Indexe Konzept und Anforderung Indexerzeugende Operatoren Indexbuilding-Scan Switch-Plan Kosten und Entscheidungsmodell Switch-Plan-Kosten Auswahl und Entscheidungsmodelle Regeln Karsten Schmidt, /IN99/2254

4 Inhaltsverzeichnis 5. Soft-Indexe in PostgreSQL Architektur von PostgreSQL Komponenten Baumstrukturen für die Verarbeitung Der Planner Der Executor Implementierung des Soft-Indexes Struktur der Soft-Index-Erweiterung Zusammenfassung Evaluierung Testumgebung TPC-H Datenbank-Schema Experimente Kategorie 1 - Korrektheit und Performance Kategorie 2 - Switch-Plan Anfragen Kategorie 3 - Simulation des Soft-Indexes Diskussion Zusammenfassung und Ausblick 88 A. Anhang 90 A.1. Explainausgabe für Nested-Loop-Join Anfrage auf den Relationen lineitem und orders A.2. Explainausgabe für Nested-Loop-Join Anfrage auf den Relationen part und partsupp A.3. Anfragen und Explainausgaben zum Vergleich der Festspeicherzugriffe A.3.1. Index p partkey A.3.2. deferred Index p partkey A.3.3. create Index ps partkey A.3.4. deferred Index ps partkey A.4. TPC-H Anfragen für Soft-Index-Simulation A.5. TPC-H Anfrage-Sets A.6. PostgreSQL compilieren und installieren A.6.1. Quelltext übersetzen A.6.2. Datenbank Initialisieren und Connecten A.6.3. TPC-H Datenbank installieren A.6.4. Steuerung des Switch-Plan-Operators Literaturverzeichnis 97 Karsten Schmidt, /IN99/2254

5 Abbildungsverzeichnis 2.1. Anfrageverarbeitung :1 Übersetzung der Anfrage in einen Operatorbaum Operatorbaum nach der algebraischen Optimierung Operatorbaum nach der physischen Optimierung Übersetzungsmöglichkeiten algebraischer Operatoren in physische Operatoren Bitmap-Index typisch dünn besetzter Bitmap-Index Vergleich zw. Balanciert und Nicht-Balancierten Bäumen Beispiel für ein B-Baum und ein B+ Baum verlinkte Blattseiten in einem B* Baum R-Baum mit nicht-disjunkten Knoten naiver Operatorbaum optimierter Operatorbaum indexgestützte Anfrage Sekundärspeicherzugriffe für Nested-Loop-, Merge- und Hash-Join Oracle s Index Wizard QUIET Architektur Soft-Index-Komponenten Soft-Index mit Switch-Plan Knoten und dem zugehörigen Unterbaum Soft-Index ersetzt mehrere Planoperatoren Iteratorschnittstelle des Switch-Plan-Operator Vergleich der Switch-Plan Varianten PostgreSQL - Struktur für die Anfrageverarbeitung Plan-Node Definition verkürzter PlanTree für die Beispielanfrage Quelltextstruktur des PostgreSQL-Backends Übersicht der Soft-Index-Erweiterung pg index Tabellenstruktur struct für den SeqScan Knoten struct für den IndexScan Knoten struct für den DynIndexScan Knoten Quelltextstruktur der Planner-Erweiterung Funktion cost index() Quelltextstruktur der Executor-Erweiterung struct für den DynIndexScanState Knoten Funktion ExecInitDynIndexScan() Funktion ExecProcNode() Version Funktion ExecProcNode() Version Funktion ExecEndNode() Version Karsten Schmidt, /IN99/2254

6 Abbildungsverzeichnis Funktion ExecEndNode() Version Das TPC-H Schema der Testdatenbank sequentielle Scans Zeit/Größe Index erstellen Zeit/Größe Indexbuilding-Scan vs. create Index Speicherzugriffe: CREATE INDEX vs. INDEXBUILDING SCAN Overhead des Indexbuilding-Scan bei Multi-Column Indexen Mehrere deferred Indexe gleichzeitig materialisieren Indexbuilding-Scan vs. parallel create Index Switch-Plan-Operator im UNION Statement Switch-Plan in Abhängigkeit der Subquery-Loops deferred Index l shipdate bei 600MHz deferred Index l shipdate bei 1300MHz deferred Index ps partkey bei 600MHz deferred Index ps partkey bei 1300MHz Kostenschätzung und Ausführungszeiten Diskzugriffe des Switch-Plan-Operators Diskzugriffe des Switch-Plan-Operators und Kostenschätzung Explain Ausgaben für den Nested-Loop-Anfrageteil Performance des Switch-Plan-Operators in TPC-H Anfrageserien Vergleich der Soft-Index-Testszenarien Karsten Schmidt, /IN99/2254

7 Abstract Der Durchsatz eines Datenbankmanagementsystems (DBMS) hängt von den Daten, der vorhandenen Hardware und den verwendeten Tuningmaßnahmen ab. Eine der bevorzugten Tuningmaßnahmen, zur Leistungssteigerung, ist das Indextuning. Aber gerade bei sich verändernden Datenbeständen und bei Platzbegrenzung sind dem unbegrenzten Indextuning Schranken gesetzt. Außerdem muss der Pflegeaufwand für die Aktualisierung der Indexe beachtet werden. Dazu kommt, dass die Bestimmung eines optimalen und platzbegrenzten Index-Sets für ein Anfrage-Set ein typisches NP-Problem darstellt. Es gibt heuristische Algorithmen zur Lösung des Index Selection Problem (ISP), doch diese Lösungsansätze werden kaum in das autonome Backend eines DBMS integriert. Als Ansatz zur Automatisierung des Indexmanagements, gibt es bereits die Soft-Indexe, welche durch das DBMS selbständig erstellt und verworfen werden. In dieser Arbeit wird die Idee der Soft-Indexe präsentiert und eine Erweiterung in Form eines Operators zur Indexerstellung vorgestellt. Für diesen Switch- Plan-Operator, welcher on-the-fly Indexe erstellen und benutzen kann, wird ein probates Kostenmodell, die nötigen Anpassungen des DBMS und eine Performanceanalyse vorgestellt. Performance in Database Management Systems (DBMS) majorly depends on the data, the hardware available and tuning approaches as applied to the system. Index tuning is one of the most popular approaches addressing the acceleration of query processing. Dynamic data sets and memory limits, however, constrain the success of index tuning methods. Moreover, maintenance costs arise from the necessity to keep indices up to date. Also, given a set of queries, determining an optimal and limited corresponding index set is known to be NP-complete. Heuristic algorithms solving the Index Selection Problem (ISP) exist, but are hardly found to be integrated into the autonomous backend of DBMSs. Soft Indices are an approach to the automation of index managament and are created and destroyed by the DBMS. This work presents the ideas behind soft indices and introduces a novel index building operator which creates and utilizes soft indices on-the-fly. A probate cost model for this so-called Switch-Plan operator will be proposed. It will be shown how the new operator can be integrated into an existing DBMS, and its performance will be evaluated. Karsten Schmidt, /IN99/2254

8 1. Einleitung 1.1. Motivation Wissen ist Macht - (17 Jh. Bacon Phil.). Schon im 17 Jh. wollte der Philosoph Francis Bacon königliche Gesetzestexte sammeln. Was ihm damals vom König verboten wurde, setzt sich in heutiger Zeit immer mehr durch. Der Bedarf an zu sammelnden Daten kennt anscheinend keine Grenzen mehr. Egal ob zur späteren Verarbeitung und Auswertung oder zum reinen Archivieren, das sich anhäufende Datenvolumen wird stetig größer. Die Verwaltung solcher riesigen Datenbestände wird immer schwieriger, genau wie das schnelle Finden von relevanten Informationen. Computergestützte Datenbanken bis hin zu sogenannten Datawarehouses (DWH), welche große Datenmengen effektiv verwalten, sind die Businesslösungen zur Datenhaltung, Verarbeitung und Analyse. Hier ist das relationale Datenmodell in Form von relationalen Datenbankmanagementsystemen (RDBMS) am weitesten verbreitet. Die Daten werden in zweidimensionalen Tabellen (Relationen) repräsentiert und über Schlüssel verknüpft. Speziell Datawarehouses wurden auf Basis solcher Datenbankmanagementsysteme (DBMS) entwickelt, um Daten zu sammeln und zu Analysezwecken zu verarbeiten. Dem entgegen stehen die transaktionsorientierten Systeme, zur effektiven Verarbeitung von Datenmanipulationen. Die Forderungen an heutige Datenbankmanagementsysteme sind ein hoher Durchsatz an Transaktionen und gleichzeitig niedrige Anwortzeiten für gestellte Anfragen. Es gibt viele Ansätze zur Steigerung der Leistung, dabei steht massives Hardwareaufrüsten konzeptionellen Ideen entgegen. Optimal ist die Kombination von beiden. Für das konzeptionielle Datenbanktuning ist es wichtig, ein Wissen über die Daten, die verwendeten Applikationen und die gestellten Anfragen zu besitzen. Da sich aber alle diese Parameter während der Benutzung eines optimierten Systems verändern können, sollte es möglich sein, auf solche Veränderung in kürzester Zeit effektiv zu reagieren. In dieser Arbeit geht es um die Möglichkeiten des Datenbankentunings und im Speziellen um das Indextuning. Indexe sind redundante Informationen über den Datenbestand und dessen physische Verteilung und werden zum schnellen Zugriff auf die Daten eingesetzt. Es obliegt dem Datenbankverwalter, anfrageunterstüzende Indexe zu definieren und zu erstellen. Das kostet nicht nur Zeit und Arbeit, sondern erfordert ein intensives Verständnis für die Arbeitsweise des DBMS, sowie Kenntnisse über die Datenbeschaffenheit und die zu erwartenden Anfragen. In kleineren Datenbanken ist eine manuelle Optimierung durchaus möglich, doch in größeren Systemen, wie z.b. SAP mit mehreren hundert Relationen (Tabellen) und mehreren gleichzeitig laufenden Anfragen, wird automatisierte Hilfe benötigt. Hilfe bieten Analyse-Tools zum Finden von durchsatzsteigernden Indexen. Diese Index- Wizards analysieren eine definierte Menge von Anfragen. Nach der Analyse geben sie einen Vorschlag für ein optimales Index-Set, basierend auf den Anfragen, wieder. Aus den Vorschlägen erstellte Indexe müssen, genau wie alle bestehenden Indexe, gepflegt werden. Das bedeutet bei Änderungen des Datenbestands muss auch die redundante Information des Indexes aktualisiert werden. Dies kostet Zeit und kann dazu führen, dass die Wartungskosten (Zeit) für einen Index den Gewinn (Zeitersparnis) bei der Verarbeitung der Anfrage überschreiten. Dazu kommt, dass der Index Platz verbraucht und bei Ressourcenknappheit eine Untermenge der empfohlenen Indexe auszuwählen wäre. Das sind nur einige Probleme, die Karsten Schmidt, /IN99/2254

9 1 Einleitung bei der Indexerstellung zu beachten sind. Aus der Dynamik und dem Platzverbrauch lassen sich die Herausforderungen für das Indextuning ableiten. In dieser Diplomarbeit wird das Konzept der Soft-Indexe vorgestellt, welches versucht, das Problem der Dynamik und zum Teil des Platzverbrauchs zu lösen. Dafür wird gezeigt, wie es mit automatisch erzeugten Soft-Indexen möglich ist, die Anfragebearbeitung zu verkürzen. Das DBMS soll hierbei selbständig entscheiden, ob es einen Indexkandidaten erstellt, indem es den Kostenunterschied für die Anfrageausführung mit und die Ausführung ohne den Index abschätzt. Es soll möglich sein, dass ein Index während der normalen Anfragebearbeitung erstellt und benutzt wird, ohne das ein Datenbankadministrator eingreifen muss. Ein wichtiges Ziel ist es, den Durchsatz des Systems zu erhöhen und nicht nur eine einzelne Anfrage zu beschleunigen. Dazu wird ein modifiziertes Kostenmodell erarbeitet sowie ein Operator der anfragebegleitend Indexe materialisiert. Dieses Kostenmodell und der neue Operator werden in das Backend des Open-Source-DBMS PostgreSQL implementiert. Anschließend soll der erwartete Vorteil des Operators durch geeignete Testszenarien evaluiert werden. Als Ergebnis wird ein Schritt zu selbst-optimierenden Datenbankmanagementsystemen erwartet Aufgabenstellung Ziel der Arbeit ist es, das Konzept des Soft-Indexes vorzustellen und einen passenden Datenbank- Operator zur Umsetzung zu entwickeln. Anschließend soll eine funktionierende Beispielimplementierung in PostgreSQL erarbeitet und getestet werden. Dabei soll auf dem Konzept der deferred Indexe, welches unter genauer erläutert wird, aufgebaut werden. Zum Abschluss müssen Regression- und Performancetests die korrekte Arbeitsweise des implementierten Operators zeigen Aufbau In diesem Kapitel wird die Problematik vorgestellt und ein Einstieg in die Welt der Datenbankoptimierung gegeben. Darauf folgt im 2. Kapitel eine Erläuterung der grundsätzlichen Datenbankmanagementkomponenten, der Indexstrukturen und des integrierten Kostenmodells. Nachdem die Grundlagen für diese Arbeit dargestellt wurden, beschäftigt sich das 3. Kapitel mit vorhandenen Ansätzen zur Lösung der Indexproblematik und zeigt auf, an welcher Stelle sich diese Arbeit einordnen lässt. Der eigentliche Hauptteil dieser Arbeit folgt in Kapitel 4 mit der Soft-Index-Theorie und dem neu entwickelten Switch-Plan-Operator, und dem Kapitel 5 mit der Umsetzung des Operators in PostgreSQL. Abschließend untersucht das 6. Kapitel die Funktionstauglichkeit der Implementierung, bevor im 7. Kapitel mit einem kurzen Fazit und Ausblick für Weiterentwicklungsmöglichkeiten die Arbeit abgeschlossen wird. Karsten Schmidt, /IN99/2254

10 2. Grundlagen der Indexauswahl und Nutzung Um den Einsatz von Indexen in einem DBMS zu verstehen, soll der Abschnitt 2.1 einen kurzen Einblick in die Arbeitsweise des DBMS geben. Dafür werden die wichtigsten Komponenten eines DBMS vorgestellt und deren Aufgaben im Hinblick auf die Indexe gezeigt. Der restliche Teil des Kapitels behandelt verschiedene Indexarten und die Nutzung der Indexe anhand eines gezeigten Kostenmodells. Die hier erarbeiteten Grundlagen und das Kostenmodell sind Ausgangspunkt für das Soft-Index-Konzept in Kapitel Grundlagen zur Anfrageverarbeitung DBMS-Komponenten Anfragen an ein DBMS werden aus Anwender-Sicht in einer Hochsprache wie SQL (Structured Query Language) gestellt. Dabei werden die Anfragen über bestimmte Keywords systematisch formuliert und vom DBMS autonom verarbeitet. Die Schritte der Verarbeitung sind in Abb. 2.1 dargestellt. Abbildung 2.1.: Anfrageverarbeitung Anhand eines Beispiels werden anschließend die einzelnen Schritte der Anfrageverarbeitung gezeigt. Hierzu werden der Parser und der Optimierer als DBMS-Komponenten sowie die Operatoren, Iteratoren und die Zugriffsmethoden als Hilfsmittel zur Anfragebearbeitung vorgestellt. Karsten Schmidt, /IN99/2254

11 2 Grundlagen der Indexauswahl und Nutzung Beispiel Zum besseren Verständnis werden die einzelnen Abarbeitungsschritte des DBMS mit Hilfe einer geeigneten Beispielanfrage gezeigt. Angenommen, es gibt 2 Relationen,,Mitarbeiter und,,abteilung in einer Datenbank: (Mitarbeiter wird durch M, und Abteilung durch A verkürzt geschrieben) M Name Geschlecht AbtID A ID Lokation AbtName Müller m 1 Schulz w 1 Feldmann m 2 Maier m 4 1 Europa Vertrieb 2 Amerika Einkauf 3 Europa Forschung 4 Asien Support Auf diesen Relationen soll eine SQL-Anfrage ausgeführt werden, die die Namen der männlichen Mitarbeiter und die zugehörigen Abteilungsnamen ausgibt, welche sich in Europa befinden. Die dazu passende SQL-Anfrage sieht folgendermaßen aus: SELECT Name,AbtName FROM Mitarbeiter AS m,abteilung AS a WHERE m.geschlecht = m AND a.lokation = Europa AND m.abtid = a.id Als Ergebnis liefert die Anfrage auf der Beispieldatenbank folgendes: Name Müller AbtName Vertrieb Parser Zu Beginn der Anfrageverarbeitung wird die syntaktische Korrektheit der Anfrage durch den Parser gewährleistet. Der Parser kann dabei einfache Ersetzungen (Auflösen von Views 1 ) vornehmen, die Anfrage gegen das Data Dictonary 2 validieren und die Existenz aller referenzierten Objekte überprüfen. In diesem Schritt wird die Anfrage gescannt und in eine interne Form übersetzt. Diese interne Form besteht aus algebraischen Ausdrücken und sieht für die Beispielanfrage folgendermaßen aus: π Name,AbtName (σ (M.Geschlecht=m A.Lokation=Europa M.AbtID=A.ID) (M A)) Der SELECT -Ausdruck findet sich in dem Projektionssymbol (π) wieder, die W HERE- Klauseln werden durch die Selektion (σ) ausgedrückt und der Verbund über die 2 Relationen - F ROM - durch das Kreuzprodukt ( ) dargestellt. Optimierer Der Optimierer benötigt zur internen Repräsentation des algebraischen Ausdrucks eine andere Darstellungsform. Deshalb wird die Anfrage von dem Parser in Form eines Operatorbaums an die nachfolgende Optimierer-Komponente übergeben. Der zur Beispielanfrage passende Operatorbaum wird in Abb. 2.2 gezeigt. Dabei stellt der Operatorbaum eine algebraische Baumstruktur dar, wobei die Knoten des Baums die Operatoren und die Blätter die Operanden repräsentieren. Der Datenfluss zwischen den Knoten 1 Views bieten eine Sicht auf die Daten und können dabei Bedingungen prüfen. 2 Diese Meta-Daten beschreiben die Struktur der hinterlegten Daten / Datenbank. Karsten Schmidt, /IN99/2254

12 2 Grundlagen der Indexauswahl und Nutzung π Name,AbtName σ (M.Geschlecht=m A.Lokation=Europa M.AbtID=A.ID) M itarbeiter(m) Abteilung(A) Abbildung 2.2.: 1:1 Übersetzung der Anfrage in einen Operatorbaum wird durch die Kanten symbolisiert. Die Abbildung zeigt, dass die Eingangsrelationen M und A der Beispielanfrage sich in den Blättern des Baums befinden. Dagegen werden die Verarbeitungsschritte (Verbund und Selektion) in den inneren Knoten des Baums abgebildet. Die Projektion des Ergebnisses, als finaler Operator in der Verarbeitungskette, geschieht zuletzt und befindet sich dementsprechend in der Wurzel des Baums. Der Optimierer arbeitet typischerweise in 3 Schritten, welche folgend einzeln dargestellt werden: algebraischer Optimierer Bei der sogenannten High-Level-Optimierung werden syntaktische Umformungen und Termersetzungen auf dem Anfrageausdruck ausgeführt. Umformungen und Ersetzungen erfolgen nach einem vorgegebenen Regelsatz und basieren auf der relationalen Algebra. Der algebraische Optimierer ist unabhängig von Datenbankinformationen wie Relationsgröße, Selektivität oder dem zugrundeliegenden Speichermodell. Mit Hilfe einer Hochsprache (z.b. SQL) oder einer deklarativen Sprache lässt sich die Arbeitsweise des algebraischen Optimierers beeinflussen. Für die Beispielanfrage werden die Selektionen nach unten verschoben, denn dadurch werden die Zwischenergebnisse verringert und ein Kreuzprodukt der Relationen M und A vermieden. Der resultierende algebraisch optimierte Operatorbaum wird in der Abb. 2.3 gezeigt. Somit bedarf es nur noch eines Verbundes der bereits selektierten Eingangsrelationen. π Name,AbtName Mitarbeiter.AbtID=Abteilung.ID σ (M.Geschlecht=m) σ (A.Lokation=Europa) M itarbeiter(m) Abteilung(A) Abbildung 2.3.: Operatorbaum nach der algebraischen Optimierung physischer Optimierer Beginnend mit dem ersten Teil der sogenannten Low-Level-Optimierung werden in diesem Schritt die konkreten Speicher- und Zugriffstechniken (Indexe, Cluster, Scans) mit Hilfe des DD (Data Dictonary) evaluiert, um sie in semantisch äquivalenten Anfrageplänen verwenden zu können. Deshalb übersetzt der physische Optimierer die algebraischen Operatoren in verschiedene Implementierungsalternativen (physische Operatoren) und gibt die entstehenden Zugriffspläne an den zweiten Teil der Low-Level- Optimierung, dem kostenbasierten Optimierer, weiter. Karsten Schmidt, /IN99/2254

13 2 Grundlagen der Indexauswahl und Nutzung Die Abbildung 2.4 zeigt den physisch optimierten Operatorbaum der Beispielanfrage. Voraussetzung für das Beispiel sind die Indexe auf dem Attribut Geschlecht der Relation Mitarbeiter und dem Attribut ID der Relation Abteilung. Aufgrund dieser Indexe können sogenannte Relationen-Scans vermieden, und statt dessen ein Verbund mit Indexnutzung angewendet werden. Die doppelten Kanten des Graphen symbolisieren das Pipelining (durchreichen) der Tupel. Dieses platzsparende Pipelining wird bis auf den rechten Teil des Verbunds überall im Operatorbaum angewendet. π Name,AbtName σ (Abteilung.Lokation=Europa) Mitarbeiter.AbtID=Abteilung.ID σ (Mitarbeiter.Geschlecht=m) σ(id=outer.id) index M itarbeiter Abteilung Abbildung 2.4.: Operatorbaum nach der physischen Optimierung kostenbasierte Optimierer Um eine Entscheidung treffen zu können, welcher der Zugriffspläne am effektivsten (preiswertesten) ist und ausgewählt werden soll, schätzt der kostenbasierte Optimierer für jeden Plan die Kosten und vergleicht diese. Die Schwierigkeiten der Optimierung liegen in der Komplexität der Anfragen und entstehen beim Schätzen der Kosten. Für komplexe Anfragen, sei es durch viele Relationen die miteinander verbunden werden müssen, gibt es zu viele verschiedene Anfragepläne, als dass alle Varianten betrachtet werden können. Deshalb grenzen heutige Verfahren frühzeitig die Suche nach dem optimalen Plan ein. Die Beschränkung des Suchraums und das Kostenschätzen haben einen gewissen Fehler zur Folge, welcher nur durch unterstützende Statistiken und Heuristiken minimiert werden kann. Executor Der durch den Optimierer erstellte Ausführungsplan QEP (Query Execution Plan) wird vom Executor abgearbeitet. Während der Abarbeitung des QEP nimmt der Executor keinen Einfluss mehr auf die Planstruktur, sondern arbeitet sie konsequent ab. Somit hängt die Performance des Executors, und damit des gesamten DBMS, fast ausschließlich von der Qualität der optimierenden Komponente ab. Nachdem der Executor die Anfrage bearbeitet hat, gibt er das Ergebnis der Anfrage an den Anwender oder die Anwendung zurück und beendet die Verarbeitungspipeline für diese Anfrage Operatoren Im Abschnitt wurden die Optimierer als Komponente zum Übersetzen des algebraischen Anfrageausdrucks in äquivalente Zugriffspläne vorgestellt. Um die Soft-Indexe später erklären zu können, werden an dieser Stelle die logischen und physischen Operatoren und deren Übersetzung behandelt. Karsten Schmidt, /IN99/2254

14 2 Grundlagen der Indexauswahl und Nutzung Nachdem der Parser die Anfrage in einen Operatorbaum übersetzt hat, müssen die Join-, Selektions- σ und Projektions- π Operatoren vom physischen Optimierer in äquivalente physische Operatoren übersetzt werden. Die physischen Operatoren stellen Implementierungen dar, um auf die Relationen der Datenbank oder auf Zwischenergebnisse, die während der Anfrageverarbeitung entstehen, zugreifen zu können. Die Scan-Methoden zum Einlesen einer Relation werden auch Zugriffsmethoden genannt. Dabei kann es zu einem logischen Operator mehrere physische Operatoren geben, siehe Übersicht 2.5 für die Selektion, die Projektion und die Verbundoperation. Im Gegensatz dazu gibt es nicht zu jedem physischen Operator einen logisch äquivalenten Operator, wie z.b. für die Sortierung und die Indexerstellung. algebraischer Operator σ p (R) π l (R) physischer Operator σ Scan (R) σ Index (R) π Scan (R) mit Duplikateliminierung π Scan (R) ohne Duplikateliminierung p (R1, R2) NestedLoop (R1, R2) NestedLoop (R2, R1) Merge (R1, R2), R1 und R2 liegen sortiert vor Index (R1, R2) auf R1.p liegt ein Index Hash (R1, R2) Abbildung 2.5.: Übersetzungsmöglichkeiten algebraischer Operatoren in physische Operatoren Während die Anfrage bearbeitet wird und die einzelnen Knoten des Operatorbaums abgearbeitet werden, fallen in den inneren Knoten Zwischenergebnisse an. Dabei entsteht ein Problem, wenn große Zwischenergebnisse, die z.b. noch durch eine Verbundoperation oder Projektion weiterverarbeitet und dabei auch verkleinert werden, zwischengespeichert werden müssten. Dieser Aufwand des Speicherns und Wiedereinlesens zur Weitergabe an den nächsthöheren Operator im Baum wird durch die sogenannten Iteratoren reduziert. Hierzu folgt ein kurzer Überblick über die Funktionsweise von Iteratoren und Iteratorbäumen. Iteratoren und Iteratorbäume Die Iteratoren in den Knoten des Operatorbaums können die Ergebnisse des eigenen Knotens direkt an den nächsten Knoten weiterleiten (pipen). Dabei werden die Tupel einzeln weitergereicht und es brauchen keine kompletten Relationen (Zwischenergebnisse) gespeichert zu werden. Das funktioniert nur mit Operatoren, die eine tupelweise Weitergabe des Ergebnisses unterstützen. Ein (reiner) Sortierungsoperator kann diese Technik nicht nutzen, da die Tupel erst sortiert werden müssen bevor sie weitergegeben werden können. Und trotzdem wird der Operator als Iterator implementiert, um konforme Schnittstellen zwischen den Knoten im Operatorbaum zu gewährleisten. Das heißt, dass nach außen hin der Sortierungsknoten wie ein Iterator arbeitet, indem er blockierend das Ergebnis berechnet und hinterher tupelweise weitergeben kann, ohne das dabei das Konzept zum pipen von Tupeln genutzt wird. Um tupelweise arbeiten zu können, unterstützen die Iteratoren 3 Grundfunktionen : ˆ open - öffnet einen Iterator und bereitet ihn zum Lesen der Tupel vor ˆ next - fordert das nächste Tupel an Karsten Schmidt, /IN99/2254

15 2 Grundlagen der Indexauswahl und Nutzung ˆ close - schließt den Iterator, wenn keine weiteren Tupel gefordert werden Durch die Verwendung der Iteratoren werden die einzelnen Tupel wie auf einer Kette durch den Baum gereicht. Jeder Operator wartet bis sein aktuelles Ausgabetupel angefordert wird, bevor er das nächste Ausgabetupel aus seinen Eingangstupeln berechnet. Zugriffsmethoden Unter den Zugriffsmethoden werden die physischen Zugriffe auf die Basisrelationen (Tabellen) der Anfrage verstanden. Im Operatorbaum werden die Basisrelationen als Operanden in den Blättern abgebildet. Dabei unterteilen sich die Zugriffsmethoden in 3 Bereiche: die Scan- Methoden, die Mengen-Operatoren und die Verbund-Methoden. Die Scan-Methoden arbeiten auf einer Relation, entweder als sequentieller Scan oder als Index-Scan. Angewendet werden die Scans bei der Selektion σ und der Projektion π. 1. Bei einem sequentiellen Scan werden alle Diskseiten des Files, in dem die Relation gespeichert ist, eingelesen und verarbeitet. 2. Dagegen wird bei einem Index-Scan immer erst im Index nach der referenzierten Diskseite der Basisrelation gesucht und diese Diskseite anschließend gelesen. Deshalb wird dieses Zugriffsverfahren auch als willkürlicher Zugriff auf die Diskseiten bezeichnet, denn es gibt keinen physisch geordneten Zugriff, sondern einen logisch geordneten. An dieser Stelle fällt auf, dass bei einer Anfrage der Form SELECT F ROM R W HERE ϕ wobei das ϕ das Ergebnis einschränkt, die beiden Scan-Methoden unterschiedlichen Aufwand betreiben müssen. Genauer wird dieser Sachverhalt im Abschnitt 2.4 erläutert. Hinweis: Der Soft-Index-Operator in Kapitel 4 baut auf beiden Scan-Methoden auf. Die Verbund-Methoden (auch Joins genannt) verknüpfen 2 Relationen 3 miteinander und erzeugen eine Ausgaberelation. Dabei werden Tupel der Eingaberelationen verbunden, wenn das Joinprädikat auf die beteiligten Tupel passt. Das Joinprädikat steht für die logische Verknüpfung der Relationen auf Attributebene. So verbindet z.b. ein Prädikat W HERE R.A = S.B auf den Relationen R und S alle Tupelpaare, in denen der Wert des Attributs A (A R) und der Wert des Attributs B (B S) gleich sind. Das Kreuzprodukt stellt eine besondere Form dar, bei der das Verbundprädikat true ist und somit alle möglichen Tupelpaarungen gebildet werden müssen. Abhängig von der Verbundart sind verschiedene Verbund-Methoden anwendbar. Für einen Gleichheitsverbund (Equi-Join) können die Nested-Loop-Joins, die Index-Nested-Loop-Joins, die Merge-Joins und die Hash- Joins verwendet werden. Dagegen kann bei einem Ungleichheitsverbund (Non-Equi- Join) nicht auf einen Hash-Join zurückgegriffen werden. Anderereits unterstützt nur der Nested-Loop-Join uneingeschränkt den Intervallverbund und macht ihn so zur universellsten Join-Methode. Hierzu eine kurze Übersicht über die Funktionsweisen der einzelnen Verbund-Methoden: 3 Bei Joins über mehr als 2 Relationen, lässt sich der Verbund auf Joins mit 2 Relationen zurückzuführen, indem das Ergebnis eines Joins mit der nächsten Relation verbunden wird usw. Karsten Schmidt, /IN99/2254

16 2 Grundlagen der Indexauswahl und Nutzung ˆ Um 2 Relationen miteinander zu verbinden, bietet sich als erstes die Nested- Loop-Join (geschachtelte Schleifen) Variante an. Dabei durchläuft die äußere Schleife alle Seiten b der äußeren Relation R, und für jede Seite b R R erfolgt ein vollständiger, seitenweiser sequentieller Scan der inneren Relation S. Für jede Seite aus R und S werden alle Tupelkombinationen gebildet und bei Erfüllen der Joinbedingung, zusammengesetzt und zurückgegeben. Dieser Algorithmus kann verbessert werden, indem die Tupel blockweise verglichen werden. ˆ Ein Index-Nested-Loop-Join kann angewendet werden, wenn mindestens ein Joinattribut von einer oder beiden Eingangsrelationen indiziert vorliegt. Dafür wird die indizierte Relation zur inneren Relation S deklariert, und für jedes Tupel aus R wird nach Verbundpartnern (Jointupel) in S unter Benutzung des Indexes gesucht. Dadurch wird nicht mehr das vollständige kartesische Produkt verglichen, sondern nur Teile aus der inneren Relation S. Es gibt auch Situationen, in denen die indizierte Relation als äußere Relation R benutzt wird, z.b. wenn die 2. Relation komplett in den Arbeitsspeicher passt und somit nur einmal per sequentiellen Scan gelesen werden muss. ˆ Für den Gleichheitsverbund oder den natürlichen Verbund kann der Merge-Join oder Sort-Merge-Join angewendet werden. Dabei ist es nötig, dass im Falle des Merge-Joins die beteiligten Relationen vorsortiert vorliegen. Ist das nicht der Fall, muss vorab die nicht sortierte(n) Relation(en) nach dem Verbundattribut X sortiert werden (Sort-Merge-Join). Das Mischen (Merge) der Relationen R und S funktioniert folgendermaßen: Beide Relationen werden parallel und in der gleichen Richtung durchlaufen. Falls das Tupel t R aus R, für die Joinbedingung X, kleiner ist als das Tupel t S aus S, so wird das nächste Tupel t R aus R gelesen. Das gleiche gilt auch für die Relation S, wenn t S (X) < t R (X) wird das nächste Tupel t S aus S gelesen. Wenn t R (X) = t S (X) werden die Tupel verbunden, das gilt auch für alle Nachfolger aus t R und t S mit dem selben Wert t R (X). Zusätzlich gilt für den (Sort-)Merge-Join, dass wenn mindestens eine der Relationen sortiert vorliegt, er sich als sehr effizient erweist. Die Anzahl der Vergleichsoperationen (Joinpaare) hängt von der Datenverteilung der jeweiligen Joinattribute ab. Genauer wird das im Kostenmodell (Abschnitt 2.4) beschrieben. ˆ Wiederum nur für den Gleichheitsverbund geeignet sind die Hash-Joins. Der Hash-Join verwendet eine dynamisch aufgebaute Hashtabelle zum schnellen Finden von Joinpartnern. Dafür wird die kleinere Relation mit Hilfe einer Hashfunktion in eine Hashtabelle geschrieben, und die 2. Relation sucht für jedes Tupel mit der gleichen Hashfunktion nach einem Joinpartner im entsprechenden Hash- Bucket. Falls die kleinere Relation nicht komplett in den Arbeitsspeicher passt, wird sie in Partitionen unterteilt und für jede Partition der Hash-Join durchgeführt. Zu den Mengen-Operatoren zählen das Produkt, die Differenz, die Vereinigung und der Durchschnitt. Alle diese Operatoren sind auf Verbundoperationen (Verbund-Methoden) zurückzuführen und setzen das gleiche Schema der Eingaberelationen voraus. Quelle : [Sch04] Karsten Schmidt, /IN99/2254

17 2 Grundlagen der Indexauswahl und Nutzung Zusammenfassung In diesem Abschnitt wurden die wichtigsten Komponenten eines DBMS und deren Verarbeitungsreihenfolge vorgestellt. Die Beispielanfrage wurde vom Parser in einen algebraischen Ausdruck übersetzt und anschließend vom Optimierer zu einem QEP, passend für den Executor, übersetzt und optimiert. Dabei wurde ersichtlich, welchen Anteil die Anfrageplanung im Kontext von Datenbankmanagementsystemen einnimmt. Genauer wird die Anfrageplanung im Abschnitt 2.4 mit einer Einführung in die Kostenberechnung für Anfragepläne untersucht. Damit wird gleichzeitig die Grundlage für das Kapitel 4 Soft-Indexe geschaffen. Karsten Schmidt, /IN99/2254

18 2 Grundlagen der Indexauswahl und Nutzung 2.2. Indexe Indexaufgaben Der Durchsatz 4 der Datenbank soll, durch den Index-Einsatz in einem DBMS, erhöht werden. Dabei nutzt der Datenbankserver die Indexe aus, um Anfragen zu beantworten und zu bearbeiten. Allein für das lineare Durchsuchen (Full-Table-Scan) einer 10GB großen Relation würde es bei einer Lesegeschwindigkeit von 20MB/s über 8 Minuten dauern, die gesamte Relation abzusuchen. Typischerweise sind nur ein geringer Teil der Daten für eine Anfrage interessant, und mit Hilfe von Indexstrukturen muss auch nur dieser Bruchteil der Relation gelesen werden. Indexe einer Datenbank sind vergleichbar mit dem Stichwortverzeichnis eines Buches. Der Index (Stichwortverzeichnis) erleichtert es dem Leser, die gewünschten Informationen zu finden, indem er direkt zu der referenzierten Seite springen kann. Dieses Prinzip entspricht im Datenbankkontext der Indexnutzung. Wenn es geeignete Indexe mit direkten Sprungadressen gibt, ist es nicht nötig, dass das DBMS die gesamte Relation durchsucht. Weiterhin bieten Indexe Vorteile beim Joinen, Aggregieren und für die Überprüfung von Selektionsbedingungen. Abhängig von der Art des Indexes ergeben sich unter Umständen auch Vorteile für Bereichsanfragen und für geschachtelte Anfragen. Es gibt aber auch Nachteile bei der Verwendung von Indexen in einem DBMS. Zum einen werden Indexe im persistenten Speicher abgelegt und verbrauchen Platz, und zum anderen müssen sie durch das DBMS gepflegt werden. Sobald sich der Datenbestand durch Update-, Delete- oder Insert- 5 Anfragen ändert, müssen relevante Indexe aktualisiert werden. In transaktionslastigen DBMS-Umgebungen kann sich dieser Pflegebedarf durchaus negativ auswirken, wenn die für Abfragen typische Performancesteigerung durch einen höheren Pflegeaufwand des Indexes egalisiert wird. Dem entgegen stehen die DBMS, welche vorrangig für Abfragen und Analysen des Datenbestandes genutzt werden. Durch die verhältnismäßig geringe Anzahl an Datenänderungen kann der Pflege- und Platzbedarf als Kostenfaktor für die Anfrageverarbeitung deutlich geringer eingestuft werden. Das Szenario einer reinen Abfrage- Datenbank stellen zumeist die Datawarehouses dar. Diese Datensammelstellen bekommen fast ausschließlich Informationen hinzugefügt und unterliegen nur geringen Modifikationen bestehender Daten. Reale Anwendungen erreichen heutzutage Datenbestände im Terrabyte Bereich. Hier kann kein onlinefähiges Tool in vertretbarer Zeit den Datenbestand nach einem bestimmten Schlüssel parsen und filtern. Deshalb werden Indexe als Hilfsstrukturen zum schnellen direkten Zugriff eingesetzt. Während der Anfragebearbeitung erkennt das DBMS selbständig ob es die Datenbasis scannen soll oder ob die Benutzung eines vorhandenen Indexes schneller ist. Somit bilden Indexe eine parallele Schnittstelle zu den Daten und enthalten ausschließlich redundante Informationen. Sie bringen deshalb keinen Informationsgewinn und müssen zusätzlich aus Konsistenzgründen aktuell gehalten werden Indexarten Entsprechend der Verwendung, der Datenverteilung und des Datentyps der zu indizierenden Tupel gibt es verschiedene Indexarten. Denn es eignet sich nicht jede Indexart für jeden 4 Darunter wird die Anzahl an Transaktionen/Anfragen welche in einer bestimmten Zeit bearbeitet werden können verstanden. 5 Die Befehle Update, Delete und Insert gehören zu der DML - Data Modification Language und werden zum verändern der Daten benötigt. Karsten Schmidt, /IN99/2254

19 2 Grundlagen der Indexauswahl und Nutzung Datentyp. Dazu soll dieser Abschnitt eine Übersicht über die in heutigen DBMS Systemen am häufigsten eingesetzten Indexarten geben. Bitmap-Index Die Bitmap-Indexe (BI) repräsentieren die Attributwerte des Indexes in Bit-Listen (Bitmaps). Für jeden Attributwert wird ein Array von Bits reserviert. Dabei entspricht die Länge des Arrays der Zeilenanzahl der zugehörigen Relation. Das Bit in dem Array, welches den Wert des Tupelattributs repräsentiert, wird auf 1 gesetzt und alle anderen Bits in der Zeile auf 0. (NULL-Werte werden durch ein eigenes Bit dargestellt). Person Marcus Dieter Maria Claus Claudia Geschlecht m m w m w = Person m w Marcus 1 0 Dieter 1 0 Maria 0 1 Claus 1 0 Claudia 0 1 Abbildung 2.6.: einfacher Bitmap-Index In der Abbildung 2.6 wird beispielhaft ein Bitmap-Index für das Attribut Geschlecht gezeigt. Dabei werden alle möglichen Attributwerte m und w in eigenen Bitmaps dargestellt (rechts). Der Vorteil der Bitmaps liegt in dem geringen Speicherplatzverbrauch und der Möglichkeit zur einfachen Filterung nach bestimmten Attributwert(en). Weiterhin können die Bitmaps mit einander per AND und OR verknüpft werden. Durch die logischen Operationen ist ein Bitmap-Index effektiv beim Joinen und beim Prüfen auf Selektionsbedingungen einsetzbar. Die Effektivität der Bitmap-Indexe hängt von der Ausprägung des Attributs ab. Denn da für jeden Wert eine Bitmap reserviert werden muss, steigt mit der Anzahl verschiedener Attributwerte auch die Anzahl der Bitmaps. Diese Bitmaps verbrauchen Speicherplatz, können nicht effizient verändert werden und sind, wie die Abbildung 2.7 zeigt, zumeist dünn besetzt. Das heißt, bei einem Index mit mehr als 2 Bitmaps für ein Attribut überwiegt der Anteil an Nullwerten. ID BM 1 BM 2 BM 3 BM Abbildung 2.7.: typisch dünn besetzter Bitmap-Index Es gibt einige Techniken, die versuchen diese Probleme der Bitmap-Indexe zu kompensieren. Dazu zählen die Mehrkomponenten-Indexe, die Runlength-Compression und Bereichskodiertenoder Intervallkodierten-Bitmap-Indexe. Für weitere Informationen und Optimierungsmöglichkeiten der Bitmap-Indexe sei auf die Literatur verwiesen. Zusammenfassend sind Bitmap-Indexe für Punktanfragen und bei mehrdimensionaler Benutzung vorteilhaft. Schwächen dagegen gibt es beim Pflegeaufwand und den Kosten zur Berechnung der Kodierung/Dekodierung. Dazu kommt, dass Bitmap-Indexe bei zunehmender Kardinalität der Attribute an Komplexität gewinnen und an Performance verlieren. Karsten Schmidt, /IN99/2254

20 2 Grundlagen der Indexauswahl und Nutzung Abbildung 2.8.: Vergleich zw. Balanciert und Nicht-Balancierten Bäumen Baumbasierte Indexstrukturen Alle auf einer Baumstruktur basierenden Indexe sind vom Aufbau her ähnlich. Die meisten Varianten basieren auf den B-Bäumen und sind von diesen abgeleitet. Der B-Baum selber ist eine Verallgemeinerung des binären balancierten Suchbaums [BM]. Diese Strukturen eignen sich insbesondere zum Zugriff auf Basisrelationen in einem DBMS und werden im Folgenden genauer betrachtet. Für schnelle Zugriffe sorgt die Eigenschaft, dass ein B-Baum balanciert ist. Das bedeutet, die Tiefe (auch Höhe) bzw. Pfadlänge des Baums ist von der Wurzel zu allen Blättern gleich. Damit gibt es keine langen und kurzen, sondern nur gleichlange Suchpfade. (siehe Abb. 2.8) Darüber hinaus gibt es domänenspezifische Baumstrukturen, wie den R-Baum oder den KdB-Baum, um noch 2 weitere Varianten aufzuzeigen. B-Bäume Quelle : [HR01] Neben dem einfachen B-Baum (siehe Abb.2.9 links), welcher die Daten direkt in den Knoten und Blättern speichert, gibt es noch den B+ Baum. Der B+ Baum (siehe Abb. 2.9 rechts) beinhaltet in den inneren Knoten ausschließlich Zeiger zu tiefer gelegenen Knoten oder Blättern, die zum Routen benutzt werden. Dafür liegen die Daten (bzw. Zeiger zu den Datenzeilen) ausschließlich in den Blattknoten. Es ist sehr aufwendig, von einem Blatt zum nächsten Blatt (durch Ordnungsrelation das logisch nächste Blatt) zu kommen, da der Baum hierfür aufwärts und wieder abwärts traversiert werden muss. Zur Lösung dieses Problems gibt es noch den B* Baum (siehe Abb.2.10), welcher die Blattknoten untereinander mit Zeigern verknüpft. Dadurch sind Bereichssuchen beginnend am oberen oder unteren Ende des Bereichs mit einem sequentiellen Zugriff möglich. Für ein DBMS gilt der B* Baum-Index als universeller Standardtyp und ist ordnungs- und verteilungsabhängig. Das bedeutet, die zu indizierenden Werte müssen bezüglich einer Ordnungsfunktion z.b.,,< oder,,>, einer Reihenfolge unterliegen. Die Verteilungsabhängigkeit bezieht sich darauf, wie effektiv ein B* Baum arbeitet. Eine genauere Analyse der B-Baumstruktur umfasst das Kapital 2.4 auf Seite 26. Aufbau Eigenschaften des B-Baum der Ordnung k (nach Beyer/McCreight 1972): Karsten Schmidt, /IN99/2254

21 2 Grundlagen der Indexauswahl und Nutzung Abbildung 2.9.: Beispiel für ein B-Baum und ein B+ Baum Abbildung 2.10.: verlinkte Blattseiten in einem B* Baum ˆ Die Wurzel hat mindestens 2 Kind-Knoten oder ist selber einziger Blattknoten. ˆ Je Knoten gibt es maximal 2k Elemente und mindestens k Elemente, außer in der Wurzel. ˆ Bis auf die Wurzel und die Blätter hat jeder Knoten mindestens k Kind-Knoten oder Blattknoten. ˆ Alle Blätter befinden sich auf einer Ebene. ˆ Jeder innere Knoten mit n Kind-Knoten besitzt n 1 Elemente. ˆ Maximal log k (Elemente) Zugriffe sind nötig, also O(log k (n)) (Pfad) für das Suchen, das Löschen und das Einfügen in einem B-Baum für n Elemente. ˆ Der B-Baum ist balanciert (beim Löschen und Einfügen evtl. rebalancieren nötig). ˆ Er garantiert einen Füllfaktor von mind. 50%. Quelle : [KE01, Seite 207f] Speziell für Datawarehouses lohnt es sich, einen hohen Füllfaktor anzugeben/zu fordern, da es hier nicht nötig ist, Platz für Indexänderungen zu reservieren. Zum einen reduziert das den Platzverbrauch des Indexes, und zum anderen benötigen die Zugriffe minimale Pfadund Lesekosten. Falls ein B-Baum basierter Index in einer sich ständig ändernden Datenbank zum Einsatz kommt, ist es vorteilhaft, freie Kapazitäten im Baum zu haben. Damit wird die Häufigkeit für Split- und Merge-Operationen, sobald eine Seite überläuft 6 oder unterläuft 7, verringert. 6 Blattseite beim Einfügen von neuen Elementen überfüllt 7 Blattseite fällt unter die 50% Füllmarke beim Entfernen von Elementen Karsten Schmidt, /IN99/2254

22 2 Grundlagen der Indexauswahl und Nutzung Abbildung 2.11.: R-Baum mit nicht-disjunkten Knoten R-Bäume Der R-Baum z.b. wird für das Indizieren von geometrischen Objekten eingesetzt. Denn er eignet sich um mehrdimensionale Datenstrukturen abzubilden. Die Wurzel und jeder Knoten des Baums umfassen dabei alle darunterliegenden Knoten und Objektzeiger minimum bounding box. Bei d-dimensionalen Daten hat jedes Blatt außer der Wurzel [d + 1 <= x <= 2d + 1] Elemente. Für 2-dimensionale Strukturen würde in der Wurzel ein umfassendes Rechteck gespeichert werden. Genauso werden die einzelnen Objekte mit einem umfassenden Rechteck repräsentiert. Die routende Indexstruktur kann überlappende Regionen haben, und somit kann nicht immer jedes Objekt eindeutig zu einer Region zugeordnet werden. (Vgl. Abbildung 2.11) Suchoperationen müssen alle Regionen durchsuchen, die den Suchbereich streifen. Als Ausweg gibt es die Erweiterung in Form der R+ Bäume, welche nicht überlappende Regionen im Index speichern. Jedes Objekt, das mehrere Regionen streift, wird mehrfach im Index eingetragen. Dadurch verbraucht der Index mehr Speicherplatz, aber Suchoperationen erfolgen nur noch auf einem Pfad des Baums. Bedingt durch den Aufbau empfiehlt es sich, den Index bottom-up zu erstellen, da dies effizienter ist als ein top-down Aufbau. Denn die Regionsgrenzen beim bottom-up Verfahren sind näher an den Objekten, und es entstehen weniger leere Zwischenräume. Primär- und Sekundärindexe Primärindexe werden auf dem Primärschlüssel einer Relation angewendet. Der Primärschlüssel garantiert Duplikatfreiheit der Werte der entsprechenden Tupel. Deshalb ist ein Primärschlüssel (Primary Key) insbesondere für Joinoperationen geeignet und wird sehr häufig dafür verwendet. Mit einem Primärindex wird der Zugriff auf solch einen Primärschlüssel unterstützt. Somit besitzt auch der Primärindex die Eigenschaft der Duplikatfreiheit. Doch der Primärindex kann auch auf nicht Primärschlüsseln einer Relation definiert werden, solange die zu indizie- Karsten Schmidt, /IN99/2254

23 2 Grundlagen der Indexauswahl und Nutzung renden Attribute wiederum Schlüsseleigenschaft besitzen. Sekundärindexe werden für Sekundärschlüssel aufgebaut, wobei der Sekundärschlüssel einer Relation keine Schlüsseleigenschaft hat. Das bedeutet für die indizierten Attribute, dass der Sekundärindex Duplikate enthalten kann. Solch ein Sekundärindex kann auf jedem Attribut und jeder Attributkombination erstellt werden, um Joins und Selektionen zu unterstützen. 8 Clustered- und Non-Clustered-Index Die geclusterteten Indexe nutzen die sortierte Reihenfolge der Relation, auf die der Index verweist. Wenn z.b. eine Relation mit Artikeldaten fortlaufend nach Artikelnummern sortiert ist, dann ist eine Indexdatei auf dem Attribut Artikelnummer üblicherweise geclustert. Aufgrund der Reihenfolge des Indexes und der Relation unterstützen Clustered-Indexe insbesondere Bereichsanfragen. Non-Clustered-Indexe nutzen nicht die Reihenfolge der Relation aus. Sie sind anders organisiert als die Relation und verweisen somit nicht fortlaufend auf die Relationstupel. Für Punktanfragen ist der Non-Clustered-Index genauso effektiv wie ein Clustered-Index (vorausgesetzt die gewünschten Tupel liegen alle auf einer Seite im externen Speicher) Indexnutzung In einem DBMS gibt es für die physische Ebene verschiedene Ausführungsprimitiven, die den Zugriff auf Datenquellen ermöglichen. Der sequentielle Scan, auch Table-Scan oder Relationen- Scan genannt, liest eine Relation sequentiell ein. Dabei können zusätzlich Selektionsfilter für jedes Tupel prüfen, ob es zur Weiterverarbeitung verwendet werden soll. Auch kann jedes Tupelattribut projiziert werden, aber ohne das dabei Distinct-Bedingungen 9 geprüft werden können. Der Relationen-Scan ist auf jeder Relation möglich, wenngleich er nicht immer sinnvoll (der Schnellste) ist. Falls die RowID, die Zeilennummer eines Tupels, bekannt ist, kann mit Hilfe des TID-Scan direkt auf die Seite und Zeile des zu lesenden Tupels gesprungen werden. Dabei können, genau wie bei einem Relationen-Scan, Selektionsfilter und Projektion angewendet werden. Die indirekte Ausführungsprimitve Index-Scan benötigt einen zusätzlichen Index, und der Zugriff auf die Relation erfolgt indirekt über den Index. Das DBMS entscheidet selbständig, ob es die Vorteile des Indexes nutzen kann (siehe Kapitel 2.4 Kostenmodell). Zu den Vorteilen zählt die Unterstützung von Range-Queries (Bereichsanfragen). Das bedeutet, es wird nicht wie bei einem TID-Scan auf Gleichheit der Werte geprüft. Als Selektion ist die Form Anfangswert <= Key <= Endwert möglich. Dabei ist Key der Suchschlüssel des Indexes. Weiterhin unterliegen Indexe einer Ordnung und sind somit sortiert. Falls z.b. die Ausgabe der Anfrage in sortierter Form auf dem indizierten Attribut(en), durch eine OR- DER BY Klausel definiert, erfolgen soll, spart das DBMS die Sortierung der Ausgabetupel bei Nutzung der vorhandenen Sortierung des Indexes. Auch können Constraints 10 mit Hilfe eines Indexes einfacher und schneller beim Einfügen und Bearbeiten von Tupeln überprüft werden. Deutlich wird das bei einem Unique-Constraint, welches auch beim Primary Key zum Einsatz kommt und fordert, dass kein Wert mehrfach vorhanden sein darf. Hier kann ein Index-Lookup mit einigen wenigen Lesezugriffen entscheiden, ob der Key gegen ein Constraint verstößt oder nicht. Ein weiterer Vorteil der Verfügbarkeit von Indexen besteht in der Selektivitätsschätzung mit Hilfe partieller Index-Scans. Gerade beim Joinen oder beim Evaluieren von alternativen 8 Die meisten Datenbanken schränken die indizierbaren Attribute auf nicht binäre Datentypen ein. 9 Distinct bedeutet Duplikatfreiheit der Attributwerte. 10 Legen Bedingungen unter denen ein Attribut einen bestimmten Wert erhalten darf fest. Diese Constraints können auch in Abhängigkeit zu anderen Attributen definiert werden. Karsten Schmidt, /IN99/2254

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Aufgabe 1: [Logische Modellierung]

Aufgabe 1: [Logische Modellierung] Aufgabe 1: [Logische Modellierung] a) Entwerfen Sie für das von Ihnen entworfene Modell aus Aufgabe 2 des 1. Übungsblattes ein Star-Schema. b) Entwerfen Sie für das vorangegangene Modell einen Teil eines

Mehr

Kapitel 8: Physischer Datenbankentwurf

Kapitel 8: Physischer Datenbankentwurf 8. Physischer Datenbankentwurf Seite 1 Kapitel 8: Physischer Datenbankentwurf Speicherung und Verwaltung der Relationen einer relationalen Datenbank so, dass eine möglichst große Effizienz der einzelnen

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

SEMINAR Modifikation für die Nutzung des Community Builders

SEMINAR Modifikation für die Nutzung des Community Builders 20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY Data Cube On-line Analytical Processing (OLAP). Einführung Ziel: Auffinden interessanter Muster in großen Datenmengen 2. Aggregation in SQL, GROUP BY 3. Probleme mit GROUP BY 4. Der Cube-Operator! Formulierung

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger Grundlegendes Oracle9i PostgreSQL Prevayler Memory mywms bietet umfangreiche Konfigurationsmöglichkeiten um die Daten dauerhaft zu speichern.

Mehr

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Auch wenn die Messungsmethoden ähnlich sind, ist das Ziel beider Systeme jedoch ein anderes. Gwenolé NEXER g.nexer@hearin gp

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken Version 2.0 1 Original-Application Note ads-tec GmbH IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken Stand: 27.10.2014 ads-tec GmbH 2014 IRF2000 2 Inhaltsverzeichnis

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Vorlesung Dokumentation und Datenbanken Klausur

Vorlesung Dokumentation und Datenbanken Klausur Dr. Stefan Brass 5. Februar 2002 Institut für Informatik Universität Giessen Vorlesung Dokumentation und Datenbanken Klausur Name: Geburtsdatum: Geburtsort: (Diese Daten werden zur Ausstellung des Leistungsnachweises

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Leitfaden #1a. "zanox Publisher-Statistik" (next generation)

Leitfaden #1a. zanox Publisher-Statistik (next generation) Leitfaden #1a "zanox Publisher-Statistik" (next generation) Thema: Sortieren von Leads und Sales nach dem Bearbeitungsdatum (inklusive Abschnitt "Filterung nach Transaktionsstatus") 1/8 Leitfaden "Sortieren

Mehr

Datenübernahme easyjob 3.0 zu easyjob 4.0

Datenübernahme easyjob 3.0 zu easyjob 4.0 Datenübernahme easyjob 3.0 zu easyjob 4.0 Einführung...3 Systemanforderung easyjob 4.0...3 Vorgehensweise zur Umstellung zu easyjob 4.0...4 Installation easyjob 4.0 auf dem Server und Arbeitsstationen...4

Mehr

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

Mehr

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor: Ergebnisreport: mehrere Lehrveranstaltungen zusammenfassen 1 1. Ordner anlegen In der Rolle des Berichterstellers (siehe EvaSys-Editor links oben) können zusammenfassende Ergebnisberichte über mehrere

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 7 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws1314/dbsys/exercises/

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

SharePoint Demonstration

SharePoint Demonstration SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit

Mehr

Translation Memory Leistungsstarke Technologie, die Zeit und Geld spart

Translation Memory Leistungsstarke Technologie, die Zeit und Geld spart Translation Memory Leistungsstarke Technologie, die Zeit und Geld spart Version 1.1 2015 Gemino Fachartikel Translation Memory Leistungsstarke Technologie, die Zeit und Geld spart Version 1.1 2015 Seite

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

Anwenderdokumentation AccountPlus GWUPSTAT.EXE AccountPlus Inhaltsverzeichnis Inhaltsverzeichnis Anwenderdokumentation AccountPlus GWUPSTAT.EXE (vorläufig) ab Version 6.01 INHALTSVERZEICHNIS...1 1 ALLGEMEINES...2 2 INSTALLATION UND PROGRAMMAUFRUF...2

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner

Mehr

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Hauptseminar: Nichtrelationale Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Mai 2006 Was ist eine Datenbank? Erweiterung relationaler um eine Deduktionskomponente Diese

Mehr

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage. Integration mit Die Integration der AristaFlow Business Process Management Suite (BPM) mit dem Enterprise Information Management System FILERO (EIMS) bildet die optimale Basis für flexible Optimierung

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Outlook 2003 - Aufbaukurs 19 Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Wie kann ich die Bearbeitung von Nachrichten automatisieren? Wie kann ich Nachrichten automatisch

Mehr

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren Verwaltungsdirektion Informatikdienste Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren Inhaltsverzeichnis Einleitung... 3 Installation WSUS Server... 4 Dokumente... 4 Step by Step Installation...

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

DB2 Kurzeinführung (Windows)

DB2 Kurzeinführung (Windows) DB2 Kurzeinführung (Windows) Michaelsen c 25. Mai 2010 1 1 Komponenten von DB2 DB2 bietet zahlreiche graphische Oberflächen für die Verwaltung der verschiedenen Komponenten und Anwendungen. Die wichtigsten

Mehr

Dateiorganisation und Zugriffsstrukturen

Dateiorganisation und Zugriffsstrukturen Dateiorganisation und Zugriffsstrukturen Prof. Dr. T. Kudraß 1 Mögliche Dateiorganisationen Viele Alternativen existieren, jede geeignet für bestimmte Situation (oder auch nicht) Heap-Dateien: Geeignet

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen walker radio tv + pc GmbH Flüelerstr. 42 6460 Altdorf Tel 041 870 55 77 Fax 041 870 55 83 E-Mail info@walkerpc.ch Wichtige Informationen Hier erhalten sie einige wichtige Informationen wie sie ihren Computer

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Migration der Abteilungslaufwerke von UKKSRVFILE011 nach FILER2. Anleitung zur Lösung verschiedener Probleme durch den Anwender selber

Migration der Abteilungslaufwerke von UKKSRVFILE011 nach FILER2. Anleitung zur Lösung verschiedener Probleme durch den Anwender selber Migration der Abteilungslaufwerke von UKKSRVFILE011 nach FILER2 Anleitung zur Lösung verschiedener Probleme durch den Anwender selber Inhaltsverzeichnis 1. Migration der Abteilungsordner...2 1.1 Änderung

Mehr

Data Mining-Projekte

Data Mining-Projekte Data Mining-Projekte Data Mining-Projekte Data Mining stellt normalerweise kein ei nmaliges Projekt dar, welches Erkenntnisse liefert, die dann nur einmal verwendet werden, sondern es soll gewöhnlich ein

Mehr

SQL Performance - Tips Do's & Don'ts

SQL Performance - Tips Do's & Don'ts SQL Performance - Tips Do's & Don'ts S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis I. Richtlinien bei der Verwendung von SQL 1.1. In Programmen "verbotene" SQL- Anweisungen 1.2 SQL

Mehr

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Computergrafik Bilder, Grafiken, Zeichnungen etc., die mithilfe von Computern hergestellt oder bearbeitet werden, bezeichnet man allgemein als Computergrafiken. Früher wurde streng zwischen Computergrafik

Mehr

dpa-infocom - Datenlieferung

dpa-infocom - Datenlieferung dpa-infocom - Datenlieferung Copyright 2006 von dpa-infocom GmbH Status des Dokuments: FINAL Inhaltsverzeichnis Inhaltsverzeichnis...1 1. Verzeichnisstrukturen...2 2. Nachrichtenmanagement...2 3. Datenübertragung...3

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb CashPro basiert auf Accesstechnologie 2003 und ist auch unter den aktuellen Accessversionen 2007 bis 2013 einsetzbar und Mehrbenutzerfähig.

Mehr

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift. Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Ein Ausflug zu ACCESS

Ein Ausflug zu ACCESS Ein Ausflug zu ACCESS Die folgenden Folien zeigen beispielhaft, wie man sein DB- Wissen auf ACCESS übertragen kann betrachtet wird ACCESS 2002, da gerade im Bereich der Nutzung von SQL hier einiges nachgearbeitet

Mehr

Agile Software Development

Agile Software Development Dipl. Wirtsch. Ing. Alexander Werth Methoden der Softwareentwicklung 6-1 Agile Manifest Individuen und Interaktion statt Prozessen und Tools. Funktionierende Software statt umfangreicher Dokumentation.

Mehr

Data Quality Management: Abgleich großer, redundanter Datenmengen

Data Quality Management: Abgleich großer, redundanter Datenmengen Data Quality Management: Abgleich großer, redundanter Datenmengen Westendstr. 14 809 München Tel 089-5100 907 Fax 089-5100 9087 E-Mail Datras@Datras.de Redundanz und relationales Datenbankmodell Redundanz:

Mehr

3. Das Relationale Datenmodell

3. Das Relationale Datenmodell 3. Das Relationale Datenmodell Das Relationale Datenmodell geht zurück auf Codd (1970): E. F. Codd: A Relational Model of Data for Large Shared Data Banks. Comm. of the ACM 13(6): 377-387(1970) DBMS wie

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Beispiel zu Datenstrukturen

Beispiel zu Datenstrukturen zu Datenstrukturen Passend zum Kurs 01661 Version Juni 2008 Dieter Hoffmann Dipl.-Inform. Diese Kurshilfe zum Kurs Datenstrukuren I (Kursnummer 01661) bei Prof. Dr. Güting (Lehrgebiet Praktische Informatik

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

Access Verbrecherdatenbank Teil 3

Access Verbrecherdatenbank Teil 3 Access Verbrecherdatenbank Teil 3 Allgemeines Im letzten Teil des Lehrgangs zu Microsoft Access erfährst du, wie man aus einer Datenbank Informationen herausfiltert, indem an Filter und Abfragen anwendet.

Mehr

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

GeoPilot (Android) die App

GeoPilot (Android) die App GeoPilot (Android) die App Mit der neuen Rademacher GeoPilot App machen Sie Ihr Android Smartphone zum Sensor und steuern beliebige Szenen über den HomePilot. Die App beinhaltet zwei Funktionen, zum einen

Mehr

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost Adobe Photoshop Lightroom 5 für Einsteiger Bilder verwalten und entwickeln Sam Jost Kapitel 2 Der erste Start 2.1 Mitmachen beim Lesen....................... 22 2.2 Für Apple-Anwender.........................

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Schlüssel bei temporalen Daten im relationalen Modell

Schlüssel bei temporalen Daten im relationalen Modell Schlüssel bei temporalen Daten im relationalen Modell Gesine Mühle > Präsentation > Bilder zum Inhalt zurück weiter 322 Schlüssel im relationalen Modell Schlüssel bei temporalen Daten im relationalen Modell

Mehr

Datenbanksysteme 2 Frühjahr-/Sommersemester 2014 28. Mai 2014

Datenbanksysteme 2 Frühjahr-/Sommersemester 2014 28. Mai 2014 Lehrstuhl für Praktische Informatik III Prof. Dr. Guido Moerkotte Email: moer@db.informatik.uni-mannheim.de Marius Eich Email: marius.eich@uni-mannheim.de Datenbanksysteme 2 8. Übungsblatt Frühjahr-/Sommersemester

Mehr

Anlegen eines DLRG Accounts

Anlegen eines DLRG Accounts Anlegen eines DLRG Accounts Seite 1 von 6 Auf der Startseite des Internet Service Centers (https:\\dlrg.de) führt der Link DLRG-Account anlegen zu einer Eingabemaske, mit der sich jedes DLRG-Mitglied genau

Mehr

2.5.2 Primärschlüssel

2.5.2 Primärschlüssel Relationale Datenbanken 0110 01101110 01110 0110 0110 0110 01101 011 01110 0110 010 011011011 0110 01111010 01101 011011 0110 01 01110 011011101 01101 0110 010 010 0110 011011101 0101 0110 010 010 01 01101110

Mehr

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Dieser Fragenkatalog wurde aufgrund das Basistextes und zum Teil aus den Prüfungsprotokollen erstellt, um sich auf mögliche

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr