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]:

Speicherung von XML in (objekt-)relationalen Datenbanken. Burkhard Schäfer

Speicherung von XML in (objekt-)relationalen Datenbanken. Burkhard Schäfer Speicherung von XML in (objekt-)relationalen Datenbanken Burkhard Schäfer Übersicht Motivation Anforderungen Ansätze modellorientiert strukturorientiert Zusammenfassung Motivation Warum XML in Datenbanken

Mehr

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester 2015. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester 2015. Fachbereich MNI Technische Hochschule Mittelhessen Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Übersicht Semistrukturierte Daten Dokumenttypdefinition XML-Schema XML aus Datenbank konstruieren XML in Datenbank speichern Merkmale

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der

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

... MathML XHTML RDF

... MathML XHTML RDF RDF in wissenschaftlichen Bibliotheken (LQI KUXQJLQ;0/ Die extensible Markup Language [XML] ist eine Metasprache für die Definition von Markup Sprachen. Sie unterscheidet sich durch ihre Fähigkeit, Markup

Mehr

Einleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join

Einleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join Parsen der Anfrage (SQL) Transformation in eine Standardform (Relationenalgebra) Logische Optimierung Transformation in alternative Zugriffspläne, Physische Optimierung Ausführung des gewählten Zugriffsplans

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse? Ein Beispiel Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse? Dipl.-Kfm. Claus Häberle WS 2015 /16 # 42 XML (vereinfacht) visa

Mehr

Universität zu Köln Informationsverarbeitung WS 2009/10. Datenbanken vs. Markup Prof. Dr. M.Thaller 25.11.2009. XML als Datenbank

Universität zu Köln Informationsverarbeitung WS 2009/10. Datenbanken vs. Markup Prof. Dr. M.Thaller 25.11.2009. XML als Datenbank Universität zu Köln Informationsverarbeitung WS 2009/10 HS: Dozent: Referentin: 25.11.2009 Datenbanken vs. Markup Prof. Dr. M.Thaller Frauke Schmidt XML als Datenbank Inhalt XML Datenbanken Anforderungen

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt Andreas Heuer Gunter Saake Kai-Uwe Sattler Datenbanken kompakt Inhaltsverzeichnis Vorwort v 1 Was sind Datenbanken 1 1.1 Warum Datenbanken 1 1.2 Datenbanksysteme 4 1.3 Anforderungen: Die Codd'schen Regeln

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

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

Vorlesung 30.03.2009 1) Einführung

Vorlesung 30.03.2009 1) Einführung Vorlesung 30.03.2009 1) Einführung Was versteht man unter dem Begriff Datenbank? - Eine Datenbank ist eine Struktur zur Speicherung von Daten mit lesendem und schreibendem Zugriff - Allgemein meint man

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

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

XML und Datenbanken. Wintersemester 2003/2004. Vorlesung: Dienstag, 13:15-15:00 Uhr IFW A36. Übung: Dienstag, 15:15-16:00 Uhr IFW A36

XML und Datenbanken. Wintersemester 2003/2004. Vorlesung: Dienstag, 13:15-15:00 Uhr IFW A36. Übung: Dienstag, 15:15-16:00 Uhr IFW A36 XML und Datenbanken Wintersemester 2003/2004 Vorlesung: Dienstag, 13:15-15:00 Uhr IFW A36 Übung: Dienstag, 15:15-16:00 Uhr IFW A36 Dozenten: Dr. Can Türker IFW C47.2 Email: WWW: tuerker@inf.ethz.ch http://www.dbs.ethz.ch/~xml

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

2. Einführung in Datenbanken und XML

2. Einführung in Datenbanken und XML 2. Einführung in Datenbanken und XML Was ist XML? 2. Einführung in Datenbanken und XML XML steht für extensible Markup Language durch das W3C entwickeltes Dokumentenformat einfach, flexibel, von SGML abgeleitet

Mehr

Carl-Christian Kanne. Einführung in Datenbanken p.1/513

Carl-Christian Kanne. Einführung in Datenbanken p.1/513 Einführung in Datenbanken Carl-Christian Kanne Einführung in Datenbanken p.1/513 Kapitel 1 Einführung Einführung in Datenbanken p.2/513 Einführung Was ist ein Datenbanksystem (DBS)? Ein System zum Speichern

Mehr

Einführung. Informationssystem als Abbild der realen Welt

Einführung. Informationssystem als Abbild der realen Welt Was ist ein Datenbanksystem? Anwendungsgrundsätze Betrieb von Datenbanksystemen Entwicklung von Datenbanksystemen Seite 1 Informationssystem als Abbild der realen Welt Modellierung (Abstraktion) Sachverhalte

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

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder holger.roeder@informatik.uni-stuttgart.de.

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder holger.roeder@informatik.uni-stuttgart.de. Java: Kapitel 9 Java und XML Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 9 Einführung in XML XML-Verarbeitung in Java Document Object

Mehr

Datenbanken. Prof. Dr. Bernhard Schiefer. bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer

Datenbanken. Prof. Dr. Bernhard Schiefer. bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Datenbanken Prof. Dr. Bernhard Schiefer bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Wesentliche Inhalte Begriff DBS Datenbankmodelle Datenbankentwurf konzeptionell, logisch und relational

Mehr

Einführung. Kapitel 1 2 / 508

Einführung. Kapitel 1 2 / 508 Kapitel 1 Einführung 2 / 508 Einführung Was ist ein Datenbanksystem (DBS)? Ein System zum Speichern und Verwalten von Daten. Warum kein herkömmliches Dateisystem verwenden? Ausfallsicherheit und Skalierbarkeit

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

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für

Mehr

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von. HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis

Mehr

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz XML 1 Einführung, oxygen Ulrike Henny ulrike.henny@uni-koeln.de XML extensible Markup Language Was ist XML? XML-Grundlagen XML-Editoren, oxygen HTML + CSS XPath Übungen Literatur Folie 2 Was ist XML? extensible

Mehr

Raumbezogene Datenbanken (Spatial Databases)

Raumbezogene Datenbanken (Spatial Databases) Raumbezogene Datenbanken (Spatial Databases) Ein Vortrag von Dominik Trinter Alexander Christian 1 Inhalte Was ist ein raumbezogenes DBMS? Modellierung Abfragen Werkzeuge zur Implementierung Systemarchitektur

Mehr

Die Grundbegriffe Die Daten Die Informationen

Die Grundbegriffe Die Daten Die Informationen Die Grundbegriffe Die Daten sind diejenigen Elemente, die vom Computer verarbeitet werden. Die Informationen sind Wissenselemente, welche durch die Analyse von Daten erhalten werden können. Die Daten haben

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

Projektseminar Texttechnologische Informationsmodellierung

Projektseminar Texttechnologische Informationsmodellierung Projektseminar Texttechnologische Informationsmodellierung XQuery Ziele der Sitzung Nach dieser Sitzung sollten Sie: XQuery als wesentlichen Standard zur Abfrage von in XML kodierten Daten kennen Mit Hilfe

Mehr

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

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie

Mehr

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB Jörg Liedtke, Oracle Consulting Vortrag zum Praxis-Seminar B bei der KIS-Fachtagung 2007, Ludwigshafen Agenda

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Anfragebearbeitung. Kapitel 7. Anfragebearbeitung 285 / 520

Anfragebearbeitung. Kapitel 7. Anfragebearbeitung 285 / 520 Kapitel 7 Anfragebearbeitung 285 / 520 Übersicht Anfrage Übersetzer Ausführungsplan Laufzeitsystem Ergebnis 286 / 520 Übersetzung Übersetzung SQL ist deklarativ, irgendwann muß Anfrage aber für Laufzeitsystem

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

Multidimensionale Datenbanksysteme

Multidimensionale Datenbanksysteme Multidimensionale Datenbanksysteme Modellierung und Verarbeitung Von Dr.-Ing. Wolfgang Lehner IBM Almaden Research Center, San Jose, USA Technische Universität Darrr:ctadi FACHBEREICH INFORMATIK BIBLIOTHEK

Mehr

Jens Kupferschmidt Universitätsrechenzentrum

Jens Kupferschmidt Universitätsrechenzentrum Einordnung der Metadaten im MyCoRe Projekt Connection to other databases Data presentations MyCoResearch over instances Classifications Metadate and search Derivate User and access rights GUI Workflow

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

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

Schulinternes Curriculum im Fach Informatik

Schulinternes Curriculum im Fach Informatik Schulinternes Curriculum im Fach Informatik Unterricht in EF : 1. Geschichte der elektronischen Datenverarbeitung (3 Stunden) 2. Einführung in die Nutzung von Informatiksystemen und in grundlegende Begriffe

Mehr

Profilbezogene informatische Bildung in den Klassenstufen 9 und 10. Schwerpunktthema Daten und Datenbanken

Profilbezogene informatische Bildung in den Klassenstufen 9 und 10. Schwerpunktthema Daten und Datenbanken Profilbezogene informatische Bildung in den Klassenstufen 9 und 10 Schwerpunktthema Robby Buttke Fachberater für Informatik RSA Chemnitz Fachliche Einordnung Phasen relationaler Modellierung Fachlichkeit

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Informationsintegration I Einführung

Informationsintegration I Einführung Informationsintegration I Einführung Felix Naumann Integrierte Informationssysteme Anfrage Integriertes Informationssystem Oracle, DB2 Anwendung Dateisystem Web Service HTML Form Integriertes Info.-system

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

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

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

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

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 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

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

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

9. Einführung in Datenbanken

9. Einführung in Datenbanken 9. Einführung in Datenbanken 9.1 Motivation und einführendes Beispiel 9.2 Modellierungskonzepte der realen Welt 9.3 Anfragesprachen (Query Languages) 9.1 Motivation und einführendes Beispiel Datenbanken

Mehr

Teil VI. Datenbanken

Teil VI. Datenbanken Teil VI Datenbanken Überblick 1 Grundlegende Begriffe Motivation 2 Relationale Datenbanksysteme Das Relationale Datenmodell SQL 3 Entwurf von Datenbanken Das Enity Relationship (ER) Modell Abbildung von

Mehr

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery XML-Datenbanken & XQuery Folie 1 XML Digitale Edition XSL-FO XSLT XQuery XML-DB Folie 2 Programm - Ausgewählte Biere verköstigen - Brauereibesichtigung - Anwendung der Hefe erlernen - brauen Folie 3 Telota

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Schulinternes Curriculum für Informatik (Q2) Stand April 2015

Schulinternes Curriculum für Informatik (Q2) Stand April 2015 Schulinternes Curriculum für Informatik (Q2) Stand April 2015 Unterrichtsvorhaben Q2-I Thema: Modellierung und Implementierung von Anwendungen mit dynamischen, nichtlinearen Datenstrukturen Modellieren

Mehr

Abschluss Einblick und Ausblick

Abschluss Einblick und Ausblick Abschluss Einblick und Ausblick Prof. Dr. T. Kudraß 1 Benutzer Komponenten eines DBMS (Überblick) I/O-Prozessor Output-Generierung Parser für selbst. oder eingebettete Kommandos Precompiler Autorisierungs-Kontrolle

Mehr

Ausgangspunkt. Datenintegration. Ziel. Konflikte. Architekturen. Transparenz

Ausgangspunkt. Datenintegration. Ziel. Konflikte. Architekturen. Transparenz Ausgangspunkt Datenintegration Web Informationssysteme Wintersemester 2002/2003 Donald Kossmann Daten liegen in verschiedenen Datenquellen (Extremfall: jede URL eigene Datenquelle) Mietautos bei www.hertz.com

Mehr

Ein wesentliches, charakteristisches Merkmal aller Datenbankmanagement

Ein wesentliches, charakteristisches Merkmal aller Datenbankmanagement Anfrageformulierung: Allgemeines Ein wesentliches, charakteristisches Merkmal aller Datenbankmanagement nkmanagement- systeme ist die Unterstützung einer (oder mehrerer) Anfragesprachen. Eine Anfrage ist

Mehr

Informatik II Datenorganisation Datenbanken

Informatik II Datenorganisation Datenbanken Informatik II Datenorganisation Datenbanken Studiengang Wirtschaftsingenieurwesen (2. Semester) Prof. Dr. Sabine Kühn Tel. (0351) 462 2490 Fachbereich Informatik/Mathematik skuehn@informatik.htw-dresden.de

Mehr

Geodatenbanksysteme in Theorie und Praxis

Geodatenbanksysteme in Theorie und Praxis Thomas Brinkhoff Geodatenbanksysteme in Theorie und Praxis Einführung in objektrelationale Geodatenbanken unter besonderer Berücksichtigung von Orade Spatial 3., überarbeitete und erweiterte Auflage @

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

Kapitel 8. Indexstrukturen für XML-Dokumente. Werteindexe Volltextindexe Pfadindexe

Kapitel 8. Indexstrukturen für XML-Dokumente. Werteindexe Volltextindexe Pfadindexe Kapitel 8 Indexstrukturen für XML-Dokumente Werteindexe Volltextindexe Pfadindexe Indexstrukturen Ermöglichen effizienten Datenzugriff für bestimmte Arten von Anfragen verschiedene Arten von Indexen sind

Mehr

Datenbanken (WS 2015/2016)

Datenbanken (WS 2015/2016) Datenbanken (WS 2015/2016) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde

Mehr

Datenbanken 16.1.2008. Die Entwicklung der Datenbanksysteme ist eng an die der Hardware gekoppelt und wird wie jene in Generationen eingeteilt:

Datenbanken 16.1.2008. Die Entwicklung der Datenbanksysteme ist eng an die der Hardware gekoppelt und wird wie jene in Generationen eingeteilt: Datenbanksysteme Entwicklung der Datenbanksysteme Die Entwicklung der Datenbanksysteme ist eng an die der Hardware gekoppelt und wird wie jene in Generationen eingeteilt: 1. Generation: In den fünfziger

Mehr

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog 10.Klasse: Themenschwerpunkt I: Datenbanken Datenbanken o Einsatzbereiche von Datenbanken o Verwaltung von großen Datenmengen o Probleme aus dem Alltag in Datenbanken abbilden o Relationale Datenbanksysteme

Mehr

Inhaltsverzeichnis. Vorwort...

Inhaltsverzeichnis. Vorwort... Vorwort... V 1 Einleitung... 1 1.1 Geoinformationssysteme und -dienste... 1 1.1.1 Geoinformationssysteme... 1 1.1.2 Offene Geoinformationssysteme... 4 1.1.3 Geodienste... 5 1.2 Datenbanksysteme... 7 1.2.1

Mehr

Datenbanken. Dateien und Datenbanken:

Datenbanken. Dateien und Datenbanken: Dateien und Datenbanken: Professionelle Anwendungen benötigen dauerhaft verfügbare, persistent gespeicherte Daten. Datenbank-Systeme bieten die Möglichkeit, Daten persistent zu speichern. Wesentliche Aspekte

Mehr

Kapitel 10 Aktive DBMS

Kapitel 10 Aktive DBMS Kapitel 10 Aktive DBMS 10 Aktive DBMS 10 Aktive DBMS...1 10.1 Einführung und Definition...2 10.2 Funktionsprinzip: ADBMS und ECA-Modell...4 10.3 Potentiale und Vorteile ADBMS...5 10.4 Aktive Elemente einer

Mehr

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6.

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6. 6. Modellierung von Informationssystemen Spezialseminar Matr. FS 2000 1/10 Volker Dobrowolny FIN- ITI Quellen: Oscar Pastor, Jaime Gomez, Emilio Insfran, Vicente Pelechano The OO-Method approach for information

Mehr

Online Analytical Processing

Online Analytical Processing Online Analytical Processing Online Analytical Processing Online Analytical Processing (OLAP) ermöglicht die multidimensionale Betrachtung von Daten zwecks E rmittlung eines entscheidungsunterstützenden

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Physische XML-Speicherstrukturen und Indizes

Physische XML-Speicherstrukturen und Indizes Physische XML-Speicherstrukturen und Indizes Holger Meyer Database Research Group University of Rostock E-Mail: hm@guug.de Physische XML-Speicherstrukturen und Indizes p. 1 Inhalt 1. Überblick XML-Dateiorganisation

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

Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN

Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN Vorstellung der Diplomarbeit Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN Oberseminar Datenbanken WS 05/06 Diplomand: Oliver Schmidt Betreuer:

Mehr

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

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

Projektseminar "Texttechnologische Informationsmodellierung"

Projektseminar Texttechnologische Informationsmodellierung Projektseminar "Texttechnologische Informationsmodellierung" Speicherung von Korpora Ziele dieser Sitzung Nach dieser Sitzung sollten Sie: einen Überblick über die Alternativen zur Speicherung von Korpusdaten

Mehr

Bibliothekssysteme / Verbundsysteme / Netze

Bibliothekssysteme / Verbundsysteme / Netze Bibliothekssysteme / Verbundsysteme / Netze Teil 5: Datenstrukturen / Anwendungen Kaderkurs für Diplombibliothekarinnen und Diplombibliothekare 2002-05-08 Programm 2002-05-08 1105 1140 XML und die Folgen

Mehr

Buchstabensuppe. Standards für die Präsentation von XML-Instanzen

Buchstabensuppe. Standards für die Präsentation von XML-Instanzen W. Schubert, Siemens ICM N IS P23-1- Buchstabensuppe Standards für die Präsentation von XML-Instanzen Walther Schubert Siemens ICM N IS P23 und Manfred Krüger MID/Information Logistics Group GmbH XML Name

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

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur Moderne Datenbanksysteme sind nach der 3-Ebenen-Architektur gebaut: Anwendung 1 Web-Anwendung Anwendung 2 Java-Programm... Anwendung n Applikation

Mehr

4 Grundlagen der Datenbankentwicklung

4 Grundlagen der Datenbankentwicklung 4 Grundlagen der Datenbankentwicklung In diesem Kapitel werden wir die Grundlagen der Konzeption von relationalen Datenbanken beschreiben. Dazu werden Sie die einzelnen Entwicklungsschritte von der Problemanalyse

Mehr

X-Technologien. XML and Friends. Jörn Clausen joern@techfak.uni-bielefeld.de. 9. Juli 2001

X-Technologien. XML and Friends. Jörn Clausen joern@techfak.uni-bielefeld.de. 9. Juli 2001 X-Technologien XML and Friends 9. Juli 2001 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht XML SAX DOM XSL XPath XSLT XSL FO Extensible Markup Language Simple API for XML Document Object Model Extensible

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

XQuery Implementation in a Relational Database System

XQuery Implementation in a Relational Database System Humboldt Universität zu Berlin Institut für Informatik XQuery Implementation in a Relational Database System VL XML, XPath, XQuery: Neue Konzepte für Datenbanken Jörg Pohle, pohle@informatik.hu-berlin.de

Mehr

Fachseminar WS 2008/09

Fachseminar WS 2008/09 Fachseminar WS 2008/09 Fachgebiet: Compilerbau Thema: Lexikalische Analyse (Scanner) Referent: Ali Sediq Betreuer: Prof. Dr. Helmut Weber 1 Inhaltsverzeichnis Lexikalische Analyse 1.0 Grundprobleme der

Mehr

Ein Algorithmus für die

Ein Algorithmus für die VGG 1 Ein Algorithmus für die Visualisierung gerichteter Graphen in der Ebene (2D) Seminar Graph Drawing SS 2004 bei Prof. Bischof (Lehrstuhl für Hochleistungsrechnen) Gliederung VGG 2 Einleitung Motivation

Mehr

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie 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

Datenbanksysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2015/16. smichel@cs.uni-kl.de

Datenbanksysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2015/16. smichel@cs.uni-kl.de Datenbanksysteme Wintersemester 2015/16 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Verschachtelte (Engl. Nested) Anfragen Wieso und wo gibt es verschachtelte Anfragen? ˆ Unteranfragen

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

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

2. Datenbank-Programmierung

2. Datenbank-Programmierung 2. Datenbank-Programmierung SQL ist eingeschränkt bezüglich der algorithmischen Mächtigkeit, z.b. Berechnung einer transitiven Hülle ist in Standard-SQL nicht möglich. Die Einschränkung ist von Bedeutung

Mehr