Plangenerierung zur Anfrageauswertung in nativen XML-Datenbankverwaltungssystemen

Größe: px
Ab Seite anzeigen:

Download "Plangenerierung zur Anfrageauswertung in nativen XML-Datenbankverwaltungssystemen"

Transkript

1 Technische Universität Kaiserslautern Fachbereich Informatik AG Datenbanken und Informationssysteme Prof. Dr.-Ing. Dr. h. c. Theo Härder Plangenerierung zur Anfrageauswertung in nativen XML-Datenbankverwaltungssystemen Diplomarbeit im Studiengang Angewandte Informatik vorgelegt von Andreas Matthias Weiner Betreuer: Prof. Dr.-Ing. Dr. h. c. Theo Härder Dipl.-Inf. Christian Mathis Tag der Ausgabe: 30. Januar 2007 Tag der Abgabe: 29. Juli 2007

2

3 Ich versichere hiermit, dass ich die vorliegende Diplomarbeit mit dem Thema Plangenerierung zur Anfrageauswertung in nativen XML-Datenbankverwaltungssystemen selbstständig verfasst und keine anderen als die angegebenen Hilfsmittel benutzt habe. Die Stellen, die anderen Werken dem Wortlaut oder dem Sinn nach entnommen wurden, habe ich durch die Angabe der Quelle, auch der benutzten Sekundärliteratur, als Entlehnung kenntlich gemacht. Kaiserslautern, den 22. Juli 2007 Andreas Matthias Weiner

4

5 Danksagung An dieser Stelle möchte ich mich bei allen Menschen ganz herzlich bedanken, die ihren Beitrag zum Gelingen dieser Diplomarbeit geleistet haben. Mein besonderer Dank gebührt Herrn Prof. Dr.-Ing. Dr. h. c. Theo Härder für die Bereitstellung der Räumlichkeiten und der geeigneten Infrastruktur sowie für die Begutachtung dieser Arbeit. Ferner danke ich ganz herzlich Herrn Dipl-Inf. Christian Mathis für die Übernahme des Zweitgutachtens und für die hervorragende Betreuung dieser Arbeit. Ein ganz besonderes Dankeschön gilt meinen Eltern, die mir dieses Studium ermöglicht haben sowie meiner Familie, die mir jederzeit eine moralische Stütze war. Schließlich bedanke ich mich ganz herzlich bei meinem Kommilitonen Herrn Sebastian Bächle für die vielen fachlichen Ratschläge und Diskussionen sowie für die Freundschaft, die sich während des Studiums entwickelt hat.

6

7 Inhaltsverzeichnis Abbildungsverzeichnis v 1 Einleitung Motivation Zielsetzung der Arbeit Die Test-Umgebung Gliederung der Arbeit Anfrageverarbeitung in Datenbanksystemen Grundlagen der Anfrageverarbeitung Die drei Phasen der Anfrageverarbeitung Anfrageanalyse Anfrageoptimierung Anfrageausführung Verfahren zur Plangenerierung Dynamische Programmierung Probabilistische Verfahren zur Plangenerierung Zusammenfassung Grundlagen der XML-Anfragesprache XQuery XML-Grundlagen Der Aufbau eines XML-Dokuments Wohlgeformte und gültige XML-Dokumente Document Type Definition (DTD) und XML Schema Die Anfragesprache XQuery Das XQuery/XPath-Datenmodell Auswertungskontext Pfadausdrücke in XQuery/XPath FLWOR-Ausdrücke in XQuery Anwendungsfälle für XQuery Zusammenfassung Grundlagen der logischen XML-Algebra NAL STJ Einführung in die Natix-Algebra (NAL) Grundlagen der Natix-Algebra Die Operatoren der Natix-Algebra Abbildung von XPath-Ausdrücken auf Operatoren der Natix-Algebra Die logische Algebra NAL STJ Die Operatoren von NAL STJ i

8 ii Inhaltsverzeichnis Einführung des logischen strukturellen Verbundes in die Natix-Algebra Entschachtelung von Algebra-Ausdrücken Regeln zur Anfragerestrukturierung Zusammenfassung Pfadverarbeitungsoperatoren und Indexstrukturen Pfadverarbeitungsoperatoren Structural-Join-Algorithmen Holistic-Twig-Join-Algorithmen Indexstrukturen Pfad-Indexstrukturen Element-Indexstrukturen Text/Attribut-Indexstrukturen Hybrid-Indexstrukturen Zusammenfassung Entwurf eines XML-Anfragegraphmodells Das XAGM-Darstellungsschema Der Tupel-ADT des XML-Anfragegraphmodells Beispiele für Anfragegraphen im XML-Anfragegraphmodell Abbildung von NAL STJ -Ausdrücken auf Operatoren des XAGM Regeln zur Anfragerestrukturierung Fusion von Join-Operatoren Fusion von Join- und Outer-Join-Operatoren Fusion von Select-Operatoren Fusion von Join- und Select-Operatoren Select-Node-Access-Fusion Verschiebung von Prädikaten und Projektionen Verschiebung von Join-Operatoren Regeln zur Anfragetransformation Kommutativität der Join-Operatoren Assoziativität der Join-Operatoren Auflösen eines komplexen Join-Operators Anfrageausführungspläne im XML-Anfragegraphmodell Der Aufbau des Anfrageausführungsplans Abbildung der XAGM-Tupeloperatoren auf entsprechende Planoperatoren Beispiele Beispielhafte Optimierung einer XPath-Anfrage Beispielhafte Optimierung einer XQuery-Anfrage Zusammenfassung Entwurf einer Komponente zur Anfrageauswertung Die Architektur der Anfrageauswertungskomponente Die Rewriter-Komponente Die Aufgaben des Plangenerators Entwurf und Implementierung des Mustererkenners Die Architektur des Mustererkenners Der Ablauf des Mustererkennungsprozesses Implementierung eines Musters Zusammenfassung

9 Inhaltsverzeichnis iii 8 Zusammenfassung und Ausblick 117 A Restrukturierungsregeln 119 B Assoziativitätsregeln für binäre Join-Operatoren 125 B.1 Nur descendant-achsen B.2 Nur child-achsen B.3 Eine descendant-achse und eine child-achse B.4 Eine child-achse und eine descendant-achse Literaturverzeichnis 139

10 iv Inhaltsverzeichnis

11 Abbildungsverzeichnis 1.1 Die Architektur des XML Transaction Coordinator Übersicht der verschiedenen Klassen von Anfragegraphen Die Schritte der Anfrageverarbeitung Regelkreis der Anfragetransformation Suchstrategien für die Plangenerierung XML-Beispieldokument Die Struktur eines Vorwärtsschrittes Die Struktur eines Rückwärtsschrittes Die wichtigsten Achsen in Pfadausdrücken im Überblick Die Struktur eines Prädikats Der Aufbau eines FLWOR-Ausdrucks Die Struktur einer for-klausel Die Struktur einer let-klausel Die Struktur einer where-klausel Die Struktur der order by-klausel Die kanonische Übersetzung eines Pfadausdrucks Beispiel eines Twig-Anfragemusters Auszeichnung eines XML-Dokuments mit der Tripel-Nummerierung Generalisierungshierarchie der Tupeloperatoren des XAGM Übersicht der Datenstrukturen des Tupel-ADT im XAGM Beispiel eines Anfragegraphen im XAGM XAGM-Anfragegraph mit Unteranfrage Abbildung von Dokument- und Knotenzugriffen Abbildung des strukturellen Verbundes Spezialisierung des Join-Operators Ersetzung eines Join-Tupeloperators durch einen Semi-Join-Tupeloperator Beispiel Outer-Join-Operator Korrekte Auswertung von Achsenschritten in return-klauseln Abbildung von einfachen Selektionen Abbildung von Selektionen mit Zugriff auf positionale Prädikate Abbildung der Gruppierung und der Aggregation Die drei Sequenzoperatoren des XML-Anfragegraphmodells Der Aufbau des Sort-Operators Verschmelzung von zwei Join-Operatoren v

12 vi Abbildungsverzeichnis 6.17 Verschmelzung eines Semi-Join-Operators und eines Left-Outer-Join-Operators Verschmelzung eines Left-Outer-Join-Operators und eines Semi-Join-Operators Verschmelzung von zwei Left-Outer-Join-Operatoren Verschmelzung von zwei Select-Operatoren Verschmelzung eines Select- und eines Join-Operators Verschmelzung eines Join- und eines Select-Operators Verschmelzung eines Select- und eines Node-Access-Operators Verschiebung eines Select-Operators Verschiebung eines Join-Operators mit following-achse Vertauschung der Verbund-Partner eines einfachen Join-Operators Beispiel für eine Assoziativitätsregel mit dem Ausgabeknoten A Twig-Anfragemuster Anfragegraph zum Twig-Anfragemuster Anfragegraph nach der Aufspaltung des komplexen Join-Operators Anfragegraph nach der Einführung des Join-Operators mit strukturellem self- Prädikat Anfragegraph nach der Aufspaltung des linken Verbundpartners Anfragegraph nach der Einführung von zwei Join-Operatoren mit strukturellem self-prädikat Generalisierungshierarchie der Planoperatoren Beispiel eines Anfrageausführungsplans Abbildung von Select-Tupeloperatoren auf Select-Planoperatoren Verschiedene Abbildungsvarianten für einen Access-Tupeloperator Abbildung des Group-By-Tupeloperators auf den Group-By-Planoperator Abbildung des Sort-Tupeloperators auf den entsprechenden Planoperator Abbildungen des Sequenz-Tupeloperators auf den Sequenz-Planoperator Übersicht der Auswertungsmethoden für einen binären Join-Planoperator Abbildung eines Join-Tupeloperators auf den entsprechenden Join-Planoperator Abbildung eines Join-Tupeloperators auf einen Access-Planoperator Auswertungsvarianten eines Join-Tupeloperators mit strukturellem self-prädikat Abbildung eines komplexen Outer-Join-Tupeloperators auf zwei Join-Planoperatoren Anfragegraph vor und nach Beginn der Restrukturierungsphase Anfrageausführungspläne in Abhängigkeit von der Verfügbarkeit eines Pfad-Indexes Anfragegraph vor der Restrukturierungsphase Anfragegraph vor und nach der ersten Restrukturierung Restrukturierung des Anfragegraphen Anfrageausführungsplan Architektur der Komponente zur Anfrageauswertung Der Ablauf des Rewriting-Prozesses Die Architektur des Mustererkenners Beispiel-Baum mit zwei Mustern und drei Treffern Ablauf der Mustererkennung Beispiel-Baum und Muster mit zwei Treffern

13 Die Technik von heute ist das Brot von morgen die Wissenschaft von heute ist die Technik von morgen. Kapitel 1 Richard von Weizsäcker ( 1920) Einleitung 1.1 Motivation Die Extensible Markup Language (XML) hat sich seit der ersten W3C Recommendation 1 im Jahre 1998 zu einem De-facto-Standard für die Repräsentation und zum Austausch von strukturierten und semistrukturierten Daten entwickelt. Die Ursprünge dieser Sprache liegen bereits weit zurück. Einer ihrer Vorgänger die Standard Generalized Markup Language (SGML) wurde bereits in den 70er Jahren des vergangenen Jahrhunderts vorgestellt [HM02]. Heute existiert für Geschäftsobjekte nahezu jeder Branche eine standardisierte XML-Repräsentation, die den Datenaustausch zwischen und innerhalb von Unternehmen erleichtern soll. Mit der Einführung von Web Services [ACKM04] und serviceorientierten Architekturen [DJMZ05], bei denen XML-Nachrichten ausgetauscht werden, eröffnet sich ein weiterer Anwendungsbereich der Sprache XML. Viele Anwendungsbereiche benötigen effiziente Verfahren zur Bearbeitung und Verwaltung sowie zur Durchsuchung von XML-Dokumenten. Obwohl XML ursprünglich als Datenaustauschformat gedacht war, wird aus diesem Grund seit einiger Zeit nach Möglichkeiten gesucht, um XML-Dokumente effizient zu speichern und zu verwalten. Relationale Datenbankverwaltungssysteme (RDBVS) bilden seit Jahren eine zuverlässige Basis für die Speicherung und Verwaltung von großen Datenbeständen [HR01, EN04]. Da XML- Dokumente eine Baumstruktur aufweisen, ist deren Speicherung in relationalen Datenbanksystemen nicht ohne Probleme möglich. Deshalb ist gegebenenfalls die Aufteilung des Dokuments auf eine Vielzahl von Tabellen erforderlich. Diese Aufteilung erschwert die Transaktionsisolation in RDBVS in erheblichem Maße [HH07]. Ebenso schwierig gestaltet sich der direkte Zugriff mit Hilfe einer XML-Anfragesprache (vgl. ebd.). Um eine ständige und teuere Übersetzung zwischen dem Relationenmodell auf der einen Seite und der XML-Repräsentation auf der anderen Seite zu vermeiden, werden so genannte native XML- Datenbankverwaltungssysteme (XDBVS) als vielversprechende Alternative vorgeschlagen [HH07]. Diese Systeme bieten den Vorteil, dass sie XML-Dokumente derart speichern können, dass diese ihre hierarchische Struktur beibehalten. Durch die ordnungserhaltende Speicherung erwartet man, dass Anfragen mit einer XML-Anfragesprache wie zum Beispiel XQuery [W3C07c] schneller beantwortet werden können, als dies mit Hilfe eines RDBVS möglich wäre, da hier der Umweg über das Relationenmodell nicht notwendig ist. Im Gegensatz zur Anfrageverarbeitung in relationalen Datenbankverwaltungssystemen gestaltet sich die Anfrageauswertung auf XML-Dokumenten deutlich komplizierter. Die höhere Komplexität hat einerseits ihren Ursprung im XML-Datenmodell und wird andererseits durch die äußerst 1 Vgl. 1

14 2 Kapitel 1. Einleitung komplexe Anfragesprache XQuery bedingt. Die aktuelle Forschung auf diesem Gebiet lässt sich grob in zwei Klassen einteilen: Zum einen gibt es Forschungsvorhaben, die sich mit der Entwicklung von effizienten physischen Pfadverarbeitungsoperatoren (engl. Path Processing Operators) beschäftigen. Als prominente Vertreter dieser Ansätze lassen sich die Structural-Join-Algorithmen von Al-Khalifa et al. [AKJP + 02] und die Holistic-Twig-Join-Algorithmen von Bruno et al. [BKS02] nennen. Auf der anderen Seite existieren viele Ansätze, die sich dem Problem der Anfrageoptimierung von der logischen Seite nähern, indem logische Algebren vorgestellt werden, mit deren Hilfe eine algebraische Optimierung der Anfrage durchgeführt werden kann. Dabei lassen sich baumbasierte Algebren wie zum Beispiel TAX von Jagadish et al. [JLST01] beziehungsweise TLC von Paparizos et al. [PWLJ04] und tupelbasierte Algebren wie zum Beispiel NAL von Brantner et al. [BHKM05] unterscheiden [Mat07b]. Zwischen diesen beiden Forschungsbereichen gibt es derzeit nur sehr wenige Berührungspunkte. Für die erfolgreiche Entwicklung eines kostenbasierten Anfrageoptimierers müssen diese beiden Bereiche aber eng zusammenarbeiten. Erste Ansätze zur Zusammenführung dieser Bereiche wurden von Mathis mit NAL STJ [Mat07b] und von Michiels et al. [MMS07] vorgestellt. Bei der tupelbasierten Algebra NAL STJ wird ein physischer Structural-Join-Operator als logischer Operator in die Algebra eingeführt. Dagegen wird beim Ansatz von Michiels et al. ein physischer Operator zur Verarbeitung von Baummustern (engl. tree pattern) in die logische Algebra integriert. Mit diesen Ansätzen wurde eine Brücke zwischen der logischen und der physischen Ebene der Anfrageverarbeitung geschlagen und der Weg für eine kostenbasierte Optimierung von XQuery/XPath-Anfragen bereitet. Im nächsten Schritt muss dieser Weg weiter gefestigt werden, so dass ein durchgängiger Prozess beschrieben werden kann, beginnend beim Empfang und der Übersetzung der Anfrage, über die kostenbasierte Anfrageoptimierung reichend, bis hin zu einem fertigen Anfrageausführungsplan. 1.2 Zielsetzung der Arbeit In dieser Arbeit werden Konzepte zur Anfrageauswertung in nativen XML-Datenbankverwaltungssystemen untersucht. Das Hauptaugenmerk liegt dabei auf der Plangenerierung. Der Plangenerator bildet eine der Hauptkomponenten eines kostenbasierten Anfrageoptimierers. Dieser bewertet die ihm vorliegenden Anfragepläne anhand von statistischen Informationen und wählt den günstigsten Plan zur Ausführung aus. Dazu wird ein XML-Anfragegraphmodell (XAGM) als neue Interndarstellung einer XQuery/XPath-Anfrage vorgestellt, das die Ideen von Mathis [Mat07b] und Michiels et al. [MMS07] hinsichtlich der Einbettung von physischen Operatoren in die logische Algebra aufgreift und erweitert. Das XAGM bildet die Grundlage für die Optimierungsphase der Anfrageverarbeitung in nativen XML-Datenbankverwaltungssystemen, bei der eine Anfragerestrukturierung und -transformation durchgeführt wird. Für das XAGM sollen eine Reihe von Restrukturierungsregeln definiert werden, die eine algebraische Optimierung der Anfragen unter Berücksichtigung von Implementierungsaspekten wie zum Beispiel der Verfügbarkeit von n-wege-verbund-operatoren ermöglichen. Des Weiteren sollen Regeln zur nicht-algebraischen Optimierung von Anfragegraphen definiert werden, wie zum Beispiel zur Vertauschung der Verbundreihenfolgen. Anschließend soll eine Abbildung der logischen Operatoren des XAGM auf physische Planoperatoren beschrieben werden. 1.3 Die Test-Umgebung An der Technischen Universität Kaiserslautern wird derzeit der XML Transaction Coordinator (XTC) als Prototyp eines nativen XML-Datenbankverwaltungssystems entwickelt [Hau06, HH07].

15 1.3. Die Test-Umgebung 3 Abbildung 1.1: Die Architektur des XML Transaction Coordinator In Abbildung 1.1 ist die Architektur des XTC-Server dargestellt [HH07]. Der Aufbau orientiert sich am Schichtenmodell für datenunabhängige Datenbanksysteme, das von Härder und Reuter vorgeschlagen wurde [HR83a]. Die untersten beiden Schichten werden durch die so genannten File Services und die Propagation Control gebildet. Diese beiden Schichten sind für die Verwaltung des Externspeichers und der Datenbank-Puffer zuständig, dabei werden bewährte und effiziente Verfahren aus dem Bereich der relationalen Datenbanksysteme wiederverwendet [HH07]. Da für die Datenbank-Puffer eine Vielzahl an Verdrängungsstrategien zur Verfügung stehen, kann abhängig von der aktuellen Arbeitslast des Systems ein geeignetes Verfahren ausgewählt werden (vgl. ebd.). Der Transaction Manager ist für die Transaktionsverwaltung zuständig. Er ermöglicht das physiologische Logging von Datenbank-Operationen, um die Wiederherstellung eines konsistenten Systemzustandes nach einem Crash zu gestatten (vgl. ebd.). Die unteren beiden Schichten sind insgesamt für die Sicherstellung der Atomarität und der Dauerhaftigkeit des ACID-Paradigmas [HR83b] zuständig. Im Gegensatz dazu muss die Sicherstellung der Konsistenz und der Isolation auf höheren Ebenen des Schichtenmodells erfolgen. Die dritte Schicht bilden die so genannten Access Services, die für die satzorientierte Verarbeitung zuständig sind. In dieser Schicht befinden sich verschiedene Indexstrukturen wie zum Beispiel der so genannte Dokument-Index oder der Element-Index, die für den effizienten Zugriff auf ein XML-Dokument beziehungsweise auf dessen Element-Knoten zuständig sind [HH07]. In der vierten Schicht des XTC-Server werden Operationen für die knotenorientierte Verarbeitung zur Verfügung gestellt, so dass die fünf DOM-Achsen (parent, previous-sibling, followingsibling, first-child und last-child) zur Navigation verwendet werden können. Auf dieser Ebene befindet sich auch der Lock Manager, der für die Transaktionsisolation zuständig ist und bei einer

16 4 Kapitel 1. Einleitung nebenläufigen Verarbeitung mehrerer Transaktionen einen logischen Einbenutzerbetrieb gewährleistet (vgl. ebd. und [HR01]). Für die vorliegende Arbeit ist die fünfte Schicht des XTC-Server die so genannten XML Processing Services von großem Interesse. In dieser Schicht befindet sich die Komponente zur Auswertung von XQuery/XPath-Anfragen. Der XML-Manager stellt verschiedene Schnittstellen zum Zugriff und zur Verarbeitung von XML-Dokumenten zur Verfügung, wie zum Beispiel SAX, DOM, XPath und XQuery [HH07]. Schließlich können Anwendungsprogramme mit Hilfe der Interface Services über verschiedene Schnittstellen auf XML-Dokumente zugreifen und diese auch teilweise verändern (vgl. ebd.). 1.4 Gliederung der Arbeit Kapitel 2 stellt die Grundlagen der Anfrageverarbeitung in Datenbanksystemen vor. Die dort eingeführten Konzepte (zum Beispiel die Plangenerierung) können sowohl bei der Anfrageverarbeitung in relationalen Datenbankverwaltungssystemen als auch in nativen XML-Datenbankverwaltungssystemen eingesetzt werden. Kapitel 3 beschreibt die Grundlagen der XML-Anfragesprache XQuery. Der erste Teil stellt zunächst das XML-Datenmodell vor und führt grundlegende Begriffe ein, wie zum Beispiel die Wohlgeformtheit eines XML-Dokuments. Danach wird die XML-Anfragesprache XQuery und das zugehörige Datenmodell beschrieben. Abschließend geht Kapitel 3 auf die verschiedenen Anwendungsbereiche von XQuery ein. Kapitel 4 gibt einen Überblick über die logische Natix-Algebra (NAL) und ihre Erweiterung NAL STJ. Im ersten Teil wird beschrieben, wie sich XQuery/XPath-Ausdrücke in eine entsprechende NAL-Repräsentation übersetzen lassen. Der zweite Teil zeigt, wie ein logischer struktureller Verbund in die Natix-Algebra eingeführt werden kann und welche Konsequenzen sich dadurch für die Anfrageverarbeitung ergeben. In Kapitel 5 werden die zwei großen Klassen von physischen Pfadverarbeitungsoperatoren Structural-Join- und Holistic-Twig-Join-Operatoren sowie vier verschiedene Klassen von XML- Indexstrukturen vorgestellt. Aufbauend auf den beiden vorhergehenden Kapiteln 4 und 5 diskutiert Kapitel 6 das XML- Anfragegraphmodell (XAGM) als Vermittler zwischen der logischen und der physischen Ebene der Anfrageverarbeitung. Dazu beschreibt zunächst der erste Teil das XAGM-Datenmodell. Anschließend wird gezeigt, wie sich NAL STJ -Ausdrücke auf eine Folge von XAGM-Operatoren abbilden lassen. Nach der Definition von Regeln zur Restrukturierung von XAGM-Anfragegraphen diskutiert der letzte Teil, wie sich diese mit Hilfe einer Folge von physischen Planoperatoren auswerten lassen. Kapitel 7 skizziert den Aufbau einer Komponente zur Anfrageauswertung für die in Abschnitt 1.3 beschriebene Test-Umgebung. Ferner wird ein generischer Mustererkenner vorgestellt, mit dessen Hilfe sich die verschiedenen Transformationen effizient realisieren lassen, die während der Anfrageverarbeitung durchgeführt werden müssen. Dabei wird die Voraussetzung für die Anwendbarkeit einer Regel deklarativ durch ein Baummuster beschrieben, so dass der Entwickler lediglich die eigentliche Transformation durch geeigneten Programmcode prozedural beschreiben muss. Kapitel 8 fasst den Inhalt dieser Diplomarbeit zusammen und gibt einen Ausblick auf die zukünftige Arbeit in diesem Bereich.

17 Kapitel 2 Plant das Schwierige da, wo es noch leicht ist. Tut das Große da, wo es noch klein ist. Alles Schwere auf Erden beginnt stets als Leichtes. Alles Große auf Erden beginnt stets als Kleines. Laotse (6. Jhd. v. Chr) Anfrageverarbeitung in Datenbanksystemen In diesem Kapitel werden die Grundlagen der Anfrageverarbeitung in Datenbanksystemen vorgestellt. Zunächst beschreibt Abschnitt 2.1 die Konzepte, die sowohl relationale als auch native XML-Datenbanksysteme gemeinsam haben. In Abschnitt 2.2 werden die drei Phasen der Anfrageverarbeitung (Analyse, Optimierung und Codegenerierung) betrachtet. Abschließend beschreibt Abschnitt 2.3 die verschiedenen Verfahren zur Plangenerierung. 2.1 Grundlagen der Anfrageverarbeitung Die Komponente zur Anfrageverarbeitung gehört zu den wichtigsten Bestandteilen moderner Datenbanksysteme, deren Güte unmittelbaren Einfluss auf die Leistungsfähigkeit des gesamten Datenbanksystems hat [JK84, KRB85]. Betrachtet man das von Härder und Reuter vorgeschlagene Schichtenmodell für datenunabhängige Datenbanksysteme [HR83a], so lässt sich die Anfrageverarbeitung der Schicht der logischen Datenstrukturen zuordnen [HR01]. Die Komponente zur Anfrageverarbeitung sieht sich mit komplexen Anfragen im Sinne von Graefe [Gra93] konfrontiert. Darunter versteht man Anfragen, die zur Auswertung einer Vielzahl verschiedener Algorithmen bedürfen und auf sehr großen Datenbeständen ausgewertet werden müssen. Ferner bildet die Anfrageverarbeitung die Brücke zwischen den Anfragesprachen wie zum Beispiel SQL bei relationalen Datenbanksystemen und XQuery/XPath bei nativen XML- Datenbanksystemen und den Schichten unterhalb der logischen Datenstrukturen bis hin zum Dateisystem [Gra93, HR01]. Bei der Anfrageverarbeitung lassen sich grob zwei Aufgaben unterscheiden: Anfrageoptimierung (engl. query optimization) und Anfrageausführung (engl. query execution). Dabei übersetzt der Anfrageoptimierer eine Anfrage in mehreren Schritten in eine Reihe von physischen Planoperatoren, die anschließend von der Komponente zur Anfrageausführung ausgeführt werden. Das Ziel der Anfrageoptimierung ist das Auffinden eines Anfrageausführungsplans (engl. query execution plan), der die wichtigsten Leistungsmaße (zum Beispiel E/A-Aufwand oder Antwortzeit des Systems) minimiert [Gra93]. Eine vollständige Komponente zur Anfrageverarbeitung besteht aus einer Sammlung von Operatoren und Verfahren, die zur Auswertung von komplexen Anfragen herangezogen werden können. Zusammengenommen bilden diese so genannten Planoperatoren die physische Algebra des Datenbanksystems, welche äquivalent zur logischen Algebra ist. Die logische Algebra orientiert sich deutlich stärker am Datenmodell des Datenbanksystems und bestimmt, welche Anfragen damit ausgedrückt werden können. Im Gegensatz dazu ist die physische Algebra systemspezifisch; das 5

18 6 Kapitel 2. Anfrageverarbeitung in Datenbanksystemen bedeutet, dass verschiedene Datenbanksysteme, die sich auf das gleiche Datenmodell stützen, zwar über die gleiche logische Algebra verfügen können, sich aber unterschiedlicher physischer Algebren bedienen können. Ein weiterer wichtiger Unterschied zwischen logischen und physischen Algebren ist die Tatsache, dass Auswertungsalgorithmen nur physischen Operatoren zugeordnet sind, so dass nur für physische Operatoren Kostenfunktionen ermittelt werden können [Gra93]. Bei der Abbildung von logischen auf physische Operatoren lassen sich vier Fälle unterscheiden [Gra93]: Erstens kann ein physischer Operator mehrere logische Operatoren implementieren. Zum Beispiel könnte ein physischer Join-Operator zusätzlich Projektionen und Selektionen unterstützen. Zweitens kann ein physischer Operator nur einen Teil eines logischen Operators implementieren. So deckt ein physischer Operator zur Duplikateliminierung nur die zweite Hälfte eines logischen Projektionsoperators ab. Drittens gibt es physische Operatoren, die nicht in der logischen Algebra existieren. So ist ein Sortierungsoperator in der Relationenalgebra nicht vorhanden, da deren Operatoren auf Mengen arbeiten, auf denen per Definition keine Ordnungsrelation definiert ist. Viertens gibt es Eigenschaften von logischen Operatoren, die für physische Operatoren nur teilweise oder gar nicht gelten. Beispielsweise sind Mengenoperationen wie die Vereinigung oder der Durchschnitt aus Sicht der logischen Algebra vollständig symmetrisch und kommutativ. Aus Implementierungssicht der physischen Algebra werden beide Eingaben aber nicht zwingend gleichbehandelt [Gra93]. Das Ziel der Anfrageverarbeitung ist die Abbildung von logischen auf physische Operatoren. Die Komponente zur Anfrageausführung ist für die Ausführung der physischen Operatoren und für die Kommunikation zwischen diesen Operatoren sowie für die Koordination unter den Operatoren zuständig. Bei der Implementierung von physischen Operatoren lassen sich drei Basis-Funktionen unterscheiden, die jeder Operator zur Verfügung stellt: Zunächst initialisiert die open-funktion den Operator. Anschließend liefert der Operator mittels der next-funktion die Anfrageergebnisse zurück. Nachdem keine Ergebnisse mehr erzeugt werden können, wird der Operator mit Hilfe der close-funktion außer Dienst gestellt [Gra93]. (a) Linkstiefer Anfragegraph (b) Buschiger Anfragegraph (c) Rechtstiefer Anfragegraph Abbildung 2.1: Übersicht der verschiedenen Klassen von Anfragegraphen Da es sich bei Anfragegraphen um Algebra-Ausdrücke handelt, können diese als Bäume dargestellt werden. Dabei lassen sich drei prototypische Formen von Anfragebäumen unterscheiden, die zur Klassifizierung der Anfrageausführungskomponente benutzt werden können [GD87]. In Abbildung 2.1 sind die drei verschiedenen Varianten dargestellt [Gra93]: Linkstiefe Anfragegraphen (engl. left-deep plans) und rechtstiefe Anfragegraphen (engl. right-deep plans) unterscheiden sich grundsätzlich voneinander, da beispielsweise Join-Algorithmen die beiden Eingabeströme auf unterschiedliche Art und Weise verwenden. Zum Beispiel iteriert die äußere Schleife des Nested- Loops-Join-Algorithmus [BE76] über die Eingabe (linkes Kind) und die innere Schleife iteriert über die andere Eingabe. Die Klasse der buschigen Anfragegraphen (engl. bushy plans) umfasst sowohl links- als auch rechtstiefe Anfragegraphen. Der Anfrageoptimierer des ersten relationalen Datenbanksystems System R gestattete nur die Verarbeitung von linkstiefen Bäumen [ABC + 76, Gra93],

19 2.2. Die drei Phasen der Anfrageverarbeitung 7 so dass bei diesem System das Verfahren der dynamischen Programmierung [CLRS01] zur Plangenerierung eingesetzt werden konnte. Zwischen der Verwendung von linkstiefen und buschigen Anfragegraphen besteht ein Spannungsverhältnis zwischen der Einschränkung des Suchraums des Anfrageoptimierers und einer höheren Flexibilität beziehungsweise Effizienz bei einigen Anfragen [Gra93]. 2.2 Die drei Phasen der Anfrageverarbeitung Abbildung 2.2: Die Schritte der Anfrageverarbeitung Nach Mitschang werden während der Anfrageverarbeitung drei Phasen durchlaufen [Mit95]: Analyse, Optimierung und Codegenerierung. Abbildung 2.2 zeigt die einzelnen Schritte der drei Phasen im zeitlichen Verlauf [Mit95] Anfrageanalyse Während der Anfrageanalyse wird zunächst eine lexikalische und syntaktische Analyse durchgeführt. Dabei wird die Anfrage, die als Zeichenkette vorliegt, hinsichtlich der syntaktischen Korrektheit untersucht [Mit95, HR01]. Die semantische Analyse überprüft anschließend, ob alle referenzierten Objekte (zum Beispiel das XML-Dokument, gegen das die Anfrage ausgewertet werden soll) und Attribute vorhanden sind. Außerdem werden die vom Benutzer übergebenen Namen auf

20 8 Kapitel 2. Anfrageverarbeitung in Datenbanksystemen eine interne Namensrepräsentation abgebildet [HR01]. Der nächste Schritt der Analysephase bildet die Zugriffs- und Integritätskontrolle, in der möglichst früh die zur Anfrageauswertung benötigten Zugriffsrechte des Anwenders überprüft werden. Bei der Standardisierung werden die Selektionsprädikate einer Anfrage entweder in die disjunktive oder die konjunktive Normalform überführt [JK84]. Um die Anfrageauswertung zu beschleunigen, werden während der Vereinfachungsphase redundante Ausdrücke in Selektionsprädikaten entfernt. Außerdem können hier bereits nichterfüllbare Prädikate identifiziert werden, so dass die Anfrageauswertung sofort abgebrochen werden kann, wenn festgestellt wird, dass die Anfrage kein Ergebnis liefert [HR01]. Das Ergebnis der Analysephase ist ein Anfragegraph (engl. query graph), der als Eingabe für den Anfrageoptimierer dient [Mit95, HR01] Anfrageoptimierung Bei der Anfrageoptimierung lassen sich zwei Arten von Ansätzen unterscheiden: Top-down- und Bottom-up-Ansätze [JK84]. Im Bereich der relationalen Datenbanksysteme wurden zu Beginn der Forschungsaktivitäten in diesem Bereich Bottom-up-Ansätze verfolgt. Dabei wurden zunächst effiziente Implementierungen wichtiger Operatoren und Auswertungsstrategien für interessante Teilklassen von Anfragen erforscht. Es zeigte sich allerdings sehr schnell, dass dieses Vorgehen Systeme mit unzureichender Leistungsfähigkeit hervorbrachte [JK84]. Aus diesem Grund verfolgt man seit einigen Jahren einen Top-down-Ansatz, der sich in vier Phasen unterteilen lässt [JK84]: 1. Entwicklung einer Interndarstellung, auf die Anfragen leicht abgebildet werden können 2. Anwendung von logischen Transformationen zur Standardisierung, Vereinfachung und Anfragerestrukturierung 3. Abbildung der transformierten Anfrage auf eine Menge von Anfrageausführungsplänen 4. Berechnung der Kosten für jeden Anfrageausführungsplan und Ausführung des günstigsten Anfrageausführungsplans. Ibaraki und Kameda [IK84] haben bereits 1984 gezeigt, dass es sich bei der Anfrageoptimierung um ein NP-vollständiges Problem handelt. Außerdem sind selten zuverlässige statistische Daten über die Datenbanken vorhanden, so dass bei der Anfrageoptimierung auf verschiedene Heuristiken zurückgegriffen werden muss [JK84]. Bedeutende Ansätze zur Anfrageoptimierung [SAC + 79] lassen sich bis zum ersten relationalen Datenbanksystem System R [ABC + 76] zurückverfolgen, welches bereits in den frühen 70er Jahren des vergangenen Jahrhunderts im Almaden-Forschungslabor der Firma IBM entwickelt wurde [Cha98]. Nach erfolgreichem Abschluss der Analysephase (vgl. Abschnitt 2.2.1) könnte aus dem Anfragegraphen ein beliebiger gültiger Anfrageausführungsplan abgeleitet werden. Dieses Vorgehen hat den entscheidenden Nachteil, dass bei diesem Vorgehen oft ungünstige Operatorfolgen entstehen, die insgesamt zu einer ineffizienten Anfrageauswertung führen [HR01]. Aus diesem Grund werden vor der eigentlichen Erzeugung des Anfrageausführungsplans eine Reihe von Transformationen durchgeführt (vgl. ebd.). Währen der Optimierungsphase werden folgende Schritte durchlaufen: Anfragerestrukturierung und Anfragetransformation [Mit95, HR01]. Während der Anfragerestrukturierungsphase wird eine so genannte algebraische Optimierung durchgeführt. Dabei werden eine Reihe von Heuristiken angewendet, um zum Beispiel eine auf logischer Ebene möglichst günstige Operatorreihenfolge oder eine Minimierung der Größe von Zwischenergebnissen zu erreichen. Nachfolgend werden beispielhaft einige Heuristiken zur Anfragerestrukturierung aufgeführt [HR01]:

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel XML-QL Querysprachen für XML Zusätzliche Quellen: http://www.w3.org/tr/xquery/ http://www.w3schools.com/xquery/ XML-QL ist eine Querysprache für XML mit folgenden Eigenschaften: Kombiniert die XML-Syntax

Mehr

Datenbanktechnologie für Data-Warehouse-Systeme

Datenbanktechnologie für Data-Warehouse-Systeme Wolfgang Lehner Datenbanktechnologie für Data-Warehouse-Systeme Konzepte und Methoden dpunkt.verlag 1 1.1 1.2 1.3 1.4 1. 5 2 2.1 2.2 2.3 Einleitung 1 Betriebswirtschaftlicher Ursprung des Data Warehousing...

Mehr

Download:.../~rieche. gehalten am 2. Februar 2004. Stephan Rieche. Vortrag. Thema: Index Selection. von. Seminar Advanced Data Warehouse

Download:.../~rieche. gehalten am 2. Februar 2004. Stephan Rieche. Vortrag. Thema: Index Selection. von. Seminar Advanced Data Warehouse Seminar Advanced Data Warehouse Thema: Index Selection Vortrag von Stephan Rieche gehalten am 2. Februar 2004 Download:.../~rieche Inhalt des Vortrages 1. Einleitung - Was ist das Index Selection Problem?

Mehr

Datenbanksysteme I Anfragebearbeitung und -optimierung. 27.6.2011 Felix Naumann

Datenbanksysteme I Anfragebearbeitung und -optimierung. 27.6.2011 Felix Naumann Datenbanksysteme I Anfragebearbeitung und -optimierung 27.6.2011 Felix Naumann Anfragebearbeitung Grundproblem 2 Anfragen sind deklarativ. SQL, Relationale Algebra Anfragen müssen in ausführbare (prozedurale)

Mehr

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit IT-basierte Erstellung von Nachhaltigkeitsberichten Diplomarbeit zur Erlangung des Grades eines Diplom-Ökonomen der Wirtschaftswissenschaftlichen Fakultät der Leibniz Universität Hannover vorgelegt von

Mehr

Präsentation zum Thema XML Datenaustausch und Integration

Präsentation zum Thema XML Datenaustausch und Integration Sebastian Land Präsentation zum Thema XML Datenaustausch und Integration oder Warum eigentlich XML? Gliederung der Präsentation 1. Erläuterung des Themas 2. Anwendungsbeispiel 3. Situation 1: Homogene

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

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Definition Informationssystem

Definition Informationssystem Definition Informationssystem Informationssysteme (IS) sind soziotechnische Systeme, die menschliche und maschinelle Komponenten umfassen. Sie unterstützen die Sammlung, Verarbeitung, Bereitstellung, Kommunikation

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

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

Heuristiken im Kontext von Scheduling

Heuristiken im Kontext von Scheduling Heuristiken im Kontext von Scheduling Expertenvortrag CoMa SS 09 CoMa SS 09 1/35 Übersicht Motivation Makespan Scheduling Lokale Suche Weitere Metaheuristiken Zusammenfassung Literatur CoMa SS 09 2/35

Mehr

Relationenoperationen - Implementierung 0

Relationenoperationen - Implementierung 0 Relationenoperationen - Implementierung 0 Operationen der Relationenalgebra - unäre Operationen: π, σ - binäre Operationen: join,, +,,, SQL-Anfragen enthalten logische Ausdrücke, die auf die Operationen

Mehr

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015 Abstrakt zum Vortrag im Oberseminar Graphdatenbanken Gero Kraus HTWK Leipzig 14. Juli 2015 1 Motivation Zur Darstellung komplexer Beziehungen bzw. Graphen sind sowohl relationale als auch NoSQL-Datenbanken

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

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

Unterrichtsvorhaben Q2- I:

Unterrichtsvorhaben Q2- I: Schulinterner Lehrplan Informatik Sekundarstufe II Q2 III. Qualifikationsphase Q2 Unterrichtsvorhaben Q2- I: Im ersten Halbjahr 1 Klausur, im 2. Halbjahr ein Projekt. Die Länge der Klausur beträgt 90 min.

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Software-Engineering und Datenbanken

Software-Engineering und Datenbanken Software-Engineering und Datenbanken Prof. Dr. Bernhard Schiefer bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Prof. Dr. Bernhard Schiefer 1-1 Wesentliche Inhalte Begriff DBS Datenbankmodelle

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

Kapitel 7: Formaler Datenbankentwurf

Kapitel 7: Formaler Datenbankentwurf 7. Formaler Datenbankentwurf Seite 1 Kapitel 7: Formaler Datenbankentwurf Die Schwierigkeiten der konzeptuellen Modellierung sind zu einem großen Teil dadurch begründet, dass sich die relevanten Strukturen

Mehr

Vorlesung 3 MINIMALE SPANNBÄUME

Vorlesung 3 MINIMALE SPANNBÄUME Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei

Mehr

Sortieren. Eine Testmenge erstellen

Sortieren. Eine Testmenge erstellen Sortieren Eine der wohl häufigsten Aufgaben für Computer ist das Sortieren, mit dem wir uns in diesem Abschnitt eingeher beschäftigen wollen. Unser Ziel ist die Entwicklung eines möglichst effizienten

Mehr

Grundlagen und Basisalgorithmus

Grundlagen und Basisalgorithmus Grundlagen und Basisalgorithmus Proseminar -Genetische Programmierung- Dezember 2001 David König Quelle: Kinnebrock W.: Optimierung mit genetischen und selektiven Algorithmen. München, Wien: Oldenbourg

Mehr

Kapitel 3: Datenbanksysteme

Kapitel 3: Datenbanksysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2015 Kapitel 3: Datenbanksysteme Vorlesung:

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir Effiziente Algorithmen Lösen NP-vollständiger Probleme 289 Branch-and-Bound Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir 1.

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Dokumenten- und Content Management

Dokumenten- und Content Management Dokumenten- und Content Management 1 Dokumentenbeschreibung...2 1.1 SGML...2 1.2 HTML...3 1.3 XML...3 1.4 XML-Anwendungen...6 1.5 Datenaustausch mit XML...6 2 Content-Management...7 2.1 Medienprodukte...7

Mehr

1 Software Engineering 1

1 Software Engineering 1 1 Software Engineering 1 XML 1.1 XML Extensible Markup Language Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten Wird für den Datenaustausch/Speicherung benutzt

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

... Einleitung... 15. 3... Prozessintegration und Integrationsszenarien... 127 3.1... Integrationsszenariomodelle... 128

... Einleitung... 15. 3... Prozessintegration und Integrationsszenarien... 127 3.1... Integrationsszenariomodelle... 128 ... Einleitung... 15 1... Grundlagen der Modellierung von Enterprise Services... 23 1.1... Serviceorientierte Architekturen... 26 1.1.1... Merkmale serviceorientierter Architekturen... 27 1.1.2... SOA

Mehr

Vorwort. Zu dieser Reihe. Autoren. Vorwort

Vorwort. Zu dieser Reihe. Autoren. Vorwort Vorwort 9 10 Vorwort Vorwort Herzlich Willkommen zu einem Fachbuch von Comelio Medien, ein Bereich der Comelio GmbH. Dieses Buch aus unserer Reihe zur.net-entwicklung ist das Ergebnis einer Forschungsarbeit,

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

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

LISE MEITNER GYMNASIUM NEUENHAUS UELSEN

LISE MEITNER GYMNASIUM NEUENHAUS UELSEN Entwurf eines schulinternen Curriculums im Fach Informatik für die Qualifikationsphase (Jahrgang 11 und 12) Für die Gestaltung des Informatikunterrichts in der Qualifikationsphase sind für das schulinterne

Mehr

XML - Extensible Markup Language. Agenda - Oracle XML DB

XML - Extensible Markup Language. Agenda - Oracle XML DB Architektur und Funktionalitäten der Oracle XML DB - ein Überblick mit ausgewählten praktischen Beispielen - im Rahmen des 17. Workshop Grundlagen von Datenbanken 2005 in Wörlitz Annegret Warnecke Senior

Mehr

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Sichten II logische Datenunabhängigkeit (Sichten stabil bei Änderungen der Datenbankstruktur) Beschränkung von Zugriffen (Datenschutz) Definition

Mehr

Kapitel 5: Dynamisches Programmieren Gliederung

Kapitel 5: Dynamisches Programmieren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Informationsintegration

Informationsintegration Informationsintegration Grundlegende Architekturen Ulf Leser Inhalt diese Vorlesung Klassifikation verteilter, autonomer, heterogener Systeme Weitere Klassifikationskriterien Schichtenaufbau integrierter

Mehr

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

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

3. Entscheidungsbäume. Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002)

3. Entscheidungsbäume. Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002) 3. Entscheidungsbäume Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002) (aus Wilhelm 2001) Beispiel: (aus Böhm 2003) Wann sind Entscheidungsbäume

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

Data Mining-Modelle und -Algorithmen

Data Mining-Modelle und -Algorithmen Data Mining-Modelle und -Algorithmen Data Mining-Modelle und -Algorithmen Data Mining ist ein Prozess, bei dem mehrere Komponenten i n- teragieren. Sie greifen auf Datenquellen, um diese zum Training,

Mehr

Crashkurs: Relationale Datenbanksysteme

Crashkurs: Relationale Datenbanksysteme Crashkurs: Relationale Datenbanksysteme 3.0.2004 Felix Naumann Überblick Vormittag Motivation Warum sind RDBMS und XML Systeme für die Informationsintegration wichtig? RDBMS Relational Database Management

Mehr

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 181.135 21. 01. 2011 Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 181.135 21. 01. 2011 Kennnr. Matrikelnr. Familienname Vorname Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 181.135 21. 01. 2011 Kennnr. Matrikelnr. Familienname Vorname Arbeitszeit: 120 Minuten. Aufgaben sind auf den Angabeblättern zu lösen; Zusatzblätter werden

Mehr

Seminar Komplexe Objekte in Datenbanken

Seminar Komplexe Objekte in Datenbanken Seminar Komplexe Objekte in Datenbanken OPTICS: Ordering Points To Identify the Clustering Structure Lehrstuhl für Informatik IX - Univ.-Prof. Dr. Thomas Seidl, RWTH-Aachen http://www-i9.informatik.rwth-aachen.de

Mehr

Lehrgebiet Informationssysteme

Lehrgebiet Informationssysteme Lehrgebiet AG Datenbanken und (Prof. Michel, Prof. Härder) AG Heterogene (Prof. Deßloch) http://wwwlgis.informatik.uni-kl.de/ Was sind? Computergestützte Programmsysteme, die Informationen erfassen, dauerhaft

Mehr

Personalisierung. Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung. Data Mining.

Personalisierung. Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung. Data Mining. Personalisierung Personalisierung Thomas Mandl Der Personalisierungsprozess Nutzerdaten erheben aufbereiten auswerten Personalisierung Klassifikation Die Nutzer werden in vorab bestimmte Klassen/Nutzerprofilen

Mehr

Allgemeines. veröffentlicht unter http://www.profv.de/uni/ lizensiert unter. Creative Commons BY-SA 3.0. XQuery in MS SQL Server 2005

Allgemeines. veröffentlicht unter http://www.profv.de/uni/ lizensiert unter. Creative Commons BY-SA 3.0. XQuery in MS SQL Server 2005 Volker Grabsch 14. Januar 2008 Allgemeines veröffentlicht unter http://www.profv.de/uni/ lizensiert unter Creative Commons BY-SA 3.0 Quelle Dieser Vortrag basiert auf dem Paper XQuery Implementation in

Mehr

Einleitung. Literatur. Pierre Fierz. Architektur von Datenbanksystemen. Physische Datenunabhängigkeit. Der Datenbank Administrator (DBA) 1.

Einleitung. Literatur. Pierre Fierz. Architektur von Datenbanksystemen. Physische Datenunabhängigkeit. Der Datenbank Administrator (DBA) 1. Inhalt der Vorlesung Literatur 1 Datenmodellierung (Entity-Relationship Modell) 2 Das relationale Modell 3 Relationenalgebra 4 Datenbanksprache (SQL) 5 Normalisierung 6 Vom ERM zum Datenbankschema 7 Routinen

Mehr

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221 Oracle 10g und SQL Server 2005 ein Vergleich Thomas Wächtler 39221 Inhalt 1. Einführung 2. Architektur SQL Server 2005 1. SQLOS 2. Relational Engine 3. Protocol Layer 3. Services 1. Replication 2. Reporting

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK Mastermind mit dem Android SDK Übersicht Einführungen Mastermind und Strategien (Stefan) Eclipse und das ADT Plugin (Jan) GUI-Programmierung (Dominik) Mastermind und Strategien - Übersicht Mastermind Spielregeln

Mehr

Themenblock: Erstellung eines Cube

Themenblock: Erstellung eines Cube Themenblock: Erstellung eines Cube Praktikum: Data Warehousing und Data Mining Einführung relationale Datenbanken Problem Verwaltung großer Mengen von Daten Idee Speicherung der Daten in Form von Tabellen

Mehr

Kontextbasiertes Information Retrieval

Kontextbasiertes Information Retrieval Kontextbasiertes Information Retrieval Modell, Konzeption und Realisierung kontextbasierter Information Retrieval Systeme Karlheinz Morgenroth Lehrstuhl für Medieninformatik Fakultät Wirtschaftsinformatik

Mehr

Kompositionen von Baumreihen-Transformationen

Kompositionen von Baumreihen-Transformationen Kompositionen von Baumreihen-Transformationen Andreas Maletti 1 Lehrstuhl: Grundlagen der Programmierung Institut für Theoretische Informatik Technische Universität Dresden 4. November 2005 1 Finanziell

Mehr

Relationale Datenbanken Datenbankgrundlagen

Relationale Datenbanken Datenbankgrundlagen Datenbanksystem Ein Datenbanksystem (DBS) 1 ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS ist es, große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern

Mehr

Befragung und empirische Einschätzung der Praxisrelevanz

Befragung und empirische Einschätzung der Praxisrelevanz Befragung und empirische Einschätzung der Praxisrelevanz eines Vorgehensmodells zur Auswahl von CRM-Systemen D I P L O M A R B E I T zur Erlangung des Grades eines Diplom-Ökonomen der Wirtschaftswissenschaftlichen

Mehr

4. Relationen. Beschreibung einer binären Relation

4. Relationen. Beschreibung einer binären Relation 4. Relationen Relationen spielen bei Datenbanken eine wichtige Rolle. Die meisten Datenbanksysteme sind relational. 4.1 Binäre Relationen Eine binäre Relation (Beziehung) R zwischen zwei Mengen A und B

Mehr

Probabilistische Datenbanken

Probabilistische Datenbanken Probabilistische Datenbanken Seminar Intelligente Datenbanken AG Intelligente Datenbanken Prof. Dr. Rainer Manthey 26.04.05 Maarten van Hoek - 1 - Inhaltsverzeichnis 1.0 Einleitung...3 2.0 Modell probabilistischer

Mehr

Hochflexibles Workforce Management: Herausforderungen und Lösungsverfahren

Hochflexibles Workforce Management: Herausforderungen und Lösungsverfahren Hochflexibles Workforce Management: Herausforderungen und Lösungsverfahren Dissertation zur Erlangung des akademischen Gerades eines Doktors der Wirtschaftswissenschaften ( Doctor rerum politicarum") an

Mehr

Gliederung und Einordnung

Gliederung und Einordnung Gliederung und Einordnung 1. Objektorientierte Programmierung mit Object Pascal (5. Studienbrief, Kapitel 5) 9.4. + 16.4. 2. Software-Bausteine am Beispiel der Delphi-Komponenten (5. Studienbrief, Kapitel

Mehr

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung

Mehr

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2) 14. URIs Uniform Resource Identifier 14-1 14. URIs Uniform Resource Identifier 14-2 Motivation Das WWW ist ein Hypermedia System. Es enthält: Resourcen (Multimedia Dokumente) Verweise (Links) zwischen

Mehr

Diplomarbeit. Entwurf eines generischen Prozessleitstandes für Change Request Systeme

Diplomarbeit. Entwurf eines generischen Prozessleitstandes für Change Request Systeme Fakultät für Mathematik, Informatik und Naturwissenschaften Forschungsgruppe Softwarekonstruktion Diplomarbeit Entwurf eines generischen Prozessleitstandes für Change Request Systeme Development of a Generic

Mehr

XML-basierte Standards für den Datenaustausch in der Logistikkette

XML-basierte Standards für den Datenaustausch in der Logistikkette XML und Electronic Data Interchange (EDI) EDIFACT-XML ein kleines Beispiel - Strukturierung von Daten Datensatz 347,M50,L Datensatz mit Pseudocode-ML strukturiert 347

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binäre lineare Optimierung mit K*BMDs p.1/42 Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre

Mehr

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname Arbeitszeit: 100 Minuten. Aufgaben sind auf den Angabeblättern zu lösen; Zusatzblätter werden nicht

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

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Business Intelligence Praktikum 1

Business Intelligence Praktikum 1 Hochschule Darmstadt Business Intelligence SS 2014 Fachbereich Informatik Praktikumsversuch 1 Prof. Dr. C. Wentzel Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 07.05.2014 Business Intelligence Praktikum

Mehr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C3: Structured Query Language Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können elementaren

Mehr

PrintTalk 2.0, XJDF & WebToPrint

PrintTalk 2.0, XJDF & WebToPrint PrintTalk 2.0, XJDF & WebToPrint Referent: Stefan Meissner (s.meissner@flyeralarm.de) CIP4 Chairman Tools & Infrastructure WG CIP4 Chairman XJDF WG Vernetzung in der Grafischen Industrie. CIP4 & WEB TO

Mehr

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector 7.4 Analyse anhand der SQL-Trace 337 7.3.5 Vorabanalyse mit dem Code Inspector Der Code Inspector (SCI) wurde in den vorangegangenen Kapiteln immer wieder erwähnt. Er stellt ein paar nützliche Prüfungen

Mehr

PostgreSQL im praktischen Einsatz. Stefan Schumacher

PostgreSQL im praktischen Einsatz. Stefan Schumacher PostgreSQL im praktischen Einsatz 2. Brandenburger Linux Infotag 2005 Stefan Schumacher , PGP Key http:/// $Header: /home/daten/cvs/postgresql/folien.tex,v 1.11 2005/04/25

Mehr

Relationale Datenbanken Kursziele

Relationale Datenbanken Kursziele Relationale Datenbanken Kursziele DB Grundlagen Daten-Modellierung Relationales Modell und DB => Praxis: Mit SQL als Anfragesprache Mit MySQL als DB RDB 1-1 Kursinhalt (Tage) 1. DB Einleitung / Entity-Relationship

Mehr

1. Einleitung. 1.1. Ausgangssituation

1. Einleitung. 1.1. Ausgangssituation 1. Einleitung In der vorliegenden Arbeit wird untersucht, welche Faktoren den erfolgreichen Ausgang eines Supply-Chain-Projektes zwischen zwei Projektpartnern beeinflussen. Dazu werden zum einen mögliche

Mehr

Information Retrieval in XML- Dokumenten

Information Retrieval in XML- Dokumenten Inhalt Information Retrieval in XML- Dokumenten Norbert Fuhr Universität Dortmund fuhr@cs.uni-dortmund.de I. Einführung II. III. IV. IR-Konzepte für XML XIRQL HyREX-Retrievalengine V. Zusammenfassung und

Mehr

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering LINQ to SQL Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel Institut für Informatik Software & Systems Engineering Agenda 1. LINQ allgemein Vorteile Bausteine und Varianten

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Histogramme in der Datenbankoptimierung. Marian Marx 26.06.2008

Histogramme in der Datenbankoptimierung. Marian Marx 26.06.2008 Histogramme in der Datenbankoptimierung Marian Marx 26.06.2008 Inhaltsverzeichnis 1. Histogramme im Allgemeinen 1.1 Definition Histogramm 1.2 Beispiel Histogramm 2. Histogramme in der Datenbankoptimierung

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Informa(onssysteme Übersicht Sommersemester 2015

Informa(onssysteme Übersicht Sommersemester 2015 Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Zi. 36/329, Tel.: 0631-205-3275 E-Mail: dessloch@cs.uni-kl.de Informa(onssysteme Übersicht Sommersemester 2015 h8p://wwwlgis.informa(k.uni-

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Gunter Saake Kai-Uwe Sattler Andreas Heuer. 3. Auflage. Datenbanken. Implementierungstechniken

Gunter Saake Kai-Uwe Sattler Andreas Heuer. 3. Auflage. Datenbanken. Implementierungstechniken Gunter Saake Kai-Uwe Sattler Andreas Heuer 3. Auflage Datenbanken Implementierungstechniken Vorwort v ix 1 Aufgaben und Prinzipien von Datenbanksystemen 1 1.1 Wiederholung der Datenbank-Grundbegriffe...

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

Java API for XML Binding

Java API for XML Binding Java API for XML Binding Eine Einführung Tim Speier Fachbereich MNI Fachhochschule Gießen-Friedberg 24. Juni 2010 1 / 27 XM und Java Teil 1: Aufgabenstellung Aufgabenstellung: In einem XML-Dokument werden

Mehr