Graphdatenbanksysteme Überblick und Benchmark

Größe: px
Ab Seite anzeigen:

Download "Graphdatenbanksysteme Überblick und Benchmark"

Transkript

1 Graphdatenbanksysteme Überblick und Benchmark Diplomarbeit zur Erlangung des akademischen Grades Diplominformatiker Humboldt-Universitat zu Berlin Mathematisch-Naturwissenschaftliche Fakult at II Institut fur Informatik eingereicht von: Benjamin Raphael Gehrels geboren am: 10. September 1987 in: Heidelberg Gutachter: Prof. Dr. Ulf Leser Prof. Dr.-Ing. Stefan Edlich eingereicht am: verteidigt am:......

2

3 Zusammenfassung Netzartige Strukturen erfahren derzeit ein steigendes Interesse in der Informatik, sowohl im akademischen als auch im kommerziellen Bereich. Der Trend, die soziale Interaktion von Nutzern und die Ähnlichkeit ihrer Interessen zur Verbesserung von Onlinediensten zu nutzen, ist im kommerziellen Bereich der wohl einflussreichste Faktor soziale Netzwerke stellen hier eines der prominentesten Beispiele dar. Im akademischen Bereich lässt sich beispielsweise die Analyse von metabolischen Netzen und Protein-Interaktions-Netzen nennen. In den letzten Jahren kamen unter dem Stichwort NoSQL eine Vielzahl neuer Datenbankmanagementsysteme auf den Markt. Sie versuchen, bestimmte Probleme mit anderen als den dominierenden relationalen Datenmodellen und teils neuen Anfrageparadigmen besser zu lösen. In diesem Zusammenhang erfreuen sich auch Graphdatenbankmanagementsysteme steigender Popularität. Diese nutzen Graphen, eine mathematische Repräsentation von Netzen, als Datenmodell und versprechen Vorteile für die Speicherung und Analyse großer Netze. Diese Arbeit gibt einen Überblick über das Themenfeld der Graphdatenbankmanagementsysteme. Sie beginnt mit einer historischen Einordnung und definiert die mathematischen Grundlagen der verwendeten Datenmodelle. Anhand von vier exemplarischen Systemen Neo4j, FlockDB, HyperGraphDB und DEX wird anschließend ein funktionaler Vergleich verschiedener am Markt existierender Systeme vorgenommen: Welche Datenmodelle wurden gewählt, welche Anfragesprachen existieren, welche Indexstrukturen können genutzt werden, wie werden die Graphdaten persistiert, welche Ansätze zur Transaktionskontrolle werden unterstützt und wie skalieren die Systeme bei wachsenden Anfrage- oder Datenmengen? Der rein funktionalen Analyse wird ein Benchmark der untersuchten Systeme gegenübergestellt, welches die Geschwindigkeit von typischen Graphanfragen auf Graphen verschiedener Größe misst und vergleicht. Abgeschlossen wird diese Arbeit mit einer zusammenfassenden Einordnung der Erkenntnisse: Welche Konzepte und Systeme erweisen sich für welche Anwendungsgebiete als vorteilhaft und wo liegen ihre Probleme?

4 Inhaltsverzeichnis 1. Motivation Probleme bei der Nutzung relationaler Datenbanken zur Speicherung von Graphen Graphdatenbankmanagementsysteme als Alternative Related Work Ziel der Arbeit Historischer Hintergrund Grundbegriffe Graphen Hypergraphen Reguläre Pfadanfragen Reguläre Graphanfragen Graphdatenbankmanagementsysteme Eingebettetes Datenbankmanagementsystem Horizontale und vertikale Skalierbarkeit Überblick über verschiedene Graphdatenbankmanagementsysteme Neo4j Indexstrukturen Anfragemechanismen Transaktionen Persistenz und Caching Skalierbarkeit und Ausfallsicherheit FlockDB Anfragemechanismen Persistenz und Caching Transaktionen Skalierbarkeit und Ausfallsicherheit HyperGraphDB Indexstrukturen Anfragemechanismen Persistenz und Caching

5 Transaktionen Skalierbarkeit und Ausfallsicherheit DEX Anfragemechanismen Transaktionen Persistenz und Caching Indexstrukturen Skalierbarkeit und Ausfallsicherheit Zusammenfassung Benchmark Datengrundlage Typische Eigenschaften großer Graphen Generierung von Graphen Die generierten Daten Algorithmen Neo4j FlockDB HyperGraphDB DEX Experimentaufbau Neo4j FlockDB HyperGraphDB DEX Methodenkritik Ergebnisse Ergebnisse der einzelnen Algorithmen Gesamtergebnis Zusammenfassung Neo4j FlockDB HyperGraphDB DEX Ausblick A. Literaturverzeichnis 89 B. Messergebnisse des Benchmarks 96 C. Selbstständigkeitserklärung 120 5

6 Abbildungsverzeichnis 5.1. Beispiel eines gerichteten Multigraphen mit Kanten-Labeln und Knoten- Properties Beispiel eines gelabelten und gerichteten Multihypergraphen Schematische Darstellung einer zusammenhängenden regulären Graphanfrage mit 4 Variablen und 4 Ausdrücken Beispielhafte Darstellung einer Neo4j-Datenbank Beispielhafte Darstellung einer FlockDB-Datenbank Beispielhafte Darstellung einer HyperGraphDB-Datenbank Schematische Darstellung der Datenspeicherung von HyperGraphDB Beispielhafte Darstellung einer DEX-Datenbank Die Knotengradverteilung des generierten Benchmarkgraphen ( Knoten, 1 Mio Kanten) verglichen mit einer Power-Law-Distribution mit γ = 1, Visualisierung des im Rahmen des Benchmarks ausgeführten regulären Graphausdrucks: Gegeben der Knoten x, welche Knoten y und z sind mit diesem über einen Dreieckspfad mit den Labeln L1, L2 und L3 verbunden? Messergebnisse: Import eines Graphen mit variabler Anzahl Knoten und Kanten in verschiedene Datenbanksysteme Messergebnisse: Auslesen aller Kanten eines Graphen mit variabler Anzahl Knoten und Kanten bei kalten Caches aus verschiedenen Datenbanksystemen Messergebnisse: Auslesen transitiv inzidenter Knoten in einem Graphen mit variabler Anzahl Knoten und Kanten bei warmen Caches aus verschiedenen Datenbanksystemen Messergebnisse: Berechnung der starken Zusammenhangskomponenten eines Graphen mit variabler Anzahl Knoten und Kanten bei warmen Caches aus verschiedenen Datenbanksystemen Messergebnisse: Auslesen gemeinsamer inzidenter Knoten in einem Graphen mit variabler Anzahl Knoten und Kanten bei warmen Caches aus verschiedenen Datenbanksystemen Messergebnisse: Finden von Dreiecken in einem Graphen mit variabler Anzahl Knoten und Kanten bei warmen Caches aus verschiedenen Datenbanksystemen

7 Tabellenverzeichnis 6.1. Überblick der untersuchten Datenbankmanagementsysteme: Allgemeines, Datenmodell und Anfragemöglichkeiten Überblick der untersuchten Datenbankmanagementsysteme: Persistenz, Caching und Indexstrukturen Überblick der untersuchten Datenbankmanagementsysteme: Transaktionen und Verteilung B.1. Messergebnisse: Datenimport in Neo4j B.2. Messergebnisse: Auslesen aller Kanten aus Neo4j B.3. Messergebnisse: Berechnung der starken Zusammenhangskomponenten mit Neo4j B.4. Messergebnisse: Abfrage transitiv inzidenter Knoten auf Neo4j B.5. Messergebnisse: Abfrage gemeinsamer inzidenter Knoten auf Neo4j. 100 B.6. Messergebnisse: Suchen von Dreickspfaden in Neo4j B.7. Messergebnisse: Datenimport in FlockDB B.8. Messergebnisse: Auslesen aller Kanten aus FlockDB B.9. Messergebnisse: Berechnung der starken Zusammenhangskomponenten mit FlockDB B.10.Messergebnisse: Abfrage transitiv inzidenter Knoten auf FlockDB B.11.Messergebnisse: Abfrage gemeinsamer inzidenter Knoten auf FlockDB 106 B.12.Messergebnisse: Suchen von Dreickspfaden in FlockDB B.13.Messergebnisse: Datenimport in HyperGraphDB B.14.Messergebnisse: Auslesen aller Kanten aus HyperGraphDB B.15.Messergebnisse: Berechnung der starken Zusammenhangskomponenten mit HyperGraphDB B.16.Messergebnisse: Abfrage transitiv inzidenter Knoten auf HyperGraphDB111 B.17.Messergebnisse: Abfrage gemeinsamer inzidenter Knoten auf Hyper- GraphDB B.18.Messergebnisse: Suchen von Dreickspfaden in HyperGraphDB B.19.Messergebnisse: Datenimport in DEX B.20.Messergebnisse: Auslesen aller Kanten aus DEX B.21.Messergebnisse: Berechnung der starken Zusammenhangskomponenten mit DEX B.22.Messergebnisse: Abfrage transitiv inzidenter Knoten auf DEX B.23.Messergebnisse: Abfrage gemeinsamer inzidenter Knoten auf DEX. 118 B.24.Messergebnisse: Suchen von Dreickspfaden in DEX

8 Listings 1.1. Beispiel einer rekursiven SQL-Anfrage: Finde alle Vorgesetzten einer Person Beispiel einer graphbasierten Anfragesprache (Cypher): Finde alle Vorgesetzten einer Person Beispiel einer rein lesenden Cypher-Anfrage Beispiel einer komplexen Selektionsanfrage in FlockDB [Gehrels, 2013] SQL-Schema der FlockDB Kantentabellen SQL-Schema der FlockDB Knotentabellen

9 1. Motivation Viele Strukturen der realen Welt lassen sich als Graphen interpretieren, einer mathematischen Repräsentation von Netzen. Bei Straßennetzen, Beziehungsgeflechten zwischen Personen oder den Reaktionswegen biochemischer Komponenten ist dies offensichtlich, ebenso bei Baumstrukturen beispielsweise Hierarchien, Ontologien oder Stücklisten in der Industrie, bei denen einzelne Produkte jeweils aus Vorprodukten zusammengesetzt sind. Doch auch in der objektorientierten Programmierung werden Graphen aufgebaut: So lassen sich Objektinstanzen als Knoten und ihre Beziehungen als Kanten interpretieren. Möchte man Graphen automatisiert verarbeiten, so müssen diese in der Regel effizient gespeichert und ausgelesen werden. Hierfür können Datenbanksysteme genutzt werden Probleme bei der Nutzung relationaler Datenbanken zur Speicherung von Graphen Eine in der Praxis stark verbreitete Klasse von Datenbankmanagementsystemen basiert auf dem von Codd [1970] entwickelten relationalen Datenmodell. Dieses fußt auf dem Konzept der Relation, einer Menge von Tupeln gleicher Länge und gleicher Domänenfolge. Beziehungen zwischen verschiedenen Tupeln werden lediglich dadurch dargestellt, dass eines der Tupel den identifizierenden Schlüssel des anderen Tupels als Attribut enthält ( Fremdschlüssel ). Mit Joins lassen sich die Tupel mehrerer Relationen zu einer neuen Relation verknüpfen; Joins gelten als sehr rechenaufwendig, wobei sich der Aufwand durch Indexstrukturen verringern lässt. Das relationale Modell legt seinen Fokus somit auf die Entitäten selbst (in Form von Tupeln) und deren Attribute (in Form von Elementen des Tupels). Diese ergeben sich explizit aus dem Datenmodell. Beziehungen zwischen Entitäten hingegen werden nur implizit über die Gleichheit von Attributwerten repräsentiert. Bei der Navigation in großen Straßennetzen hingegen beispielsweise liegt der Fokus auf den Wegen zwischen den Orten, weniger auf den Orten selbst. Auch bei biochemischen Reaktionswegen ist gerade die Reaktionskette der interessante Part, nicht die einzelnen beteiligten Substanzen in Isolation. Die wichtigen Informationen liegen bei derartigen Modellen in der Struktur des modellierten Graphen, nicht in den Eigenschaften seiner 9

10 WITH RECURSIVE manager ( level, managerid) AS ( SELECT 1 AS depth, employees.managerid AS managerid FROM employees WHERE employees.employeeid=13 UNION ALL SELECT manager.depth+1, employees.managerid FROM manager INNER JOIN employees ON employees.employeeid=manager.managerid ) SELECT manager.depth, manager.employeeid FROM manager ORDER BY manager.depth ASC; Listing 1.1: Beispiel einer rekursiven SQL-Anfrage: Finde alle Vorgesetzten einer Person Knoten. Es liegt daher nahe, zur Speicherung solcher Daten ein Datenmodell zu nutzen, welches seinen Fokus auf diese Beziehungen legt. Nach Iordanov [2010] gibt es drei typische Anfragemuster auf Graphen. Nur eines davon, mengenbasierte Anfragen, wird von der weit verbreiteten relationalen Anfragesprache SQL [1999] gut abgedeckt. Bei den anderen beiden Anfragemustern zeigt sich die Diskrepanz zwischen dem Fokus des relationalen Datenmodells und den Fragestellungen graphorientierter Probleme. So folgen traversierende Anfragen ausgehend von einem oder mehreren Knoten den Kanten des Graphen; ein Beispiel dafür ist das Suchen kürzester Wege in einem Graphen. Graph-Pattern-Matching sucht im Graphen nach bestimmten Mustern, die von Kanten und ihren inzidenten Knoten gebildet werden, beispielsweise die Suche von Dreiecksbeziehungen und den beteiligten Personen in einem sozialen Netzwerk. Traversierende Anfragen sind in SQL [1999] zwar möglich, allerdings zeigen sich hier die Folgen eines unpassenden Datenmodells: Unter Verwendung der nicht-optionalen Bestandteile von SQL [1999] sind solche Anfragen nur dann möglich, wenn die genaue Traversiertiefe bekannt ist. Selbst dann müssen sie mittels rechenaufwendigen JOIN-Kaskaden berechnet werden. SQL [1999] spezifiziert zwar eine Lösungsmöglichkeit in Form eines optionalen Featu- 10

11 START employee=node(13) MATCH manager [pfad:manages ] >employee RETURN manager.id, length(pfad) AS depth ORDER BY depth ASC Listing 1.2: Beispiel einer graphbasierten Anfragesprache (Cypher): Finde alle Vorgesetzten einer Person res T131 (Recursive Common Table Expressions), allerdings ist auch dessen Semantik mengenorientiert. Listing 1.1 zeigt ein einfaches Beispiel einer solchen rekursiven SQL-Anfrage: Sie selektiert zu einer gegebenen Person (jener mit der Id 13 ) alle direkten und indirekten Vorgesetzten zusammen mit der jeweiligen Hierarchietiefe. Bereits bei einer solchen intuitiv eher einfachen Anfrage ist ein recht komplexes Anfragekonstrukt notwendig. Insbesondere fällt auf, dass die SQL eigentlich auszeichnende Deklarativität hier größtenteils verloren geht. Statt wie bei mengenorientierten Anfragen das Problem in SQL zu formulieren und das Datenbankmanagementsystem den Lösungsweg suchen zu lassen, wird hier bereits der Algorithmus skizziert. Außerdem ist die ursprüngliche Intention dieser SQL-Anfrage nur schwer zu erkennen Graphdatenbankmanagementsysteme als Alternative Graphdatenbankmanagementsysteme können hier eine Alternative darstellen: Sie stellen die Beziehung zwischen Entitäten in den Fokus des Datenmodells. Die Verknüpfungen ergeben sich nicht implizit aus Attributwerten, sondern sind expliziter Teil der Daten. Je nach System können Kanten gerichtet oder ungerichtet, können Knoten und Kanten gelabelt und können Knoten oder Kanten mit Attribute annotiert sein. Graphdatenbankmanagementsysteme bieten darüber hinaus teilweise graphbasierte Anfragesprachen und haben die Möglichkeit, die Datenspeicherung für typische Graphanfragemuster zu optimieren. Graphbasierte Anfragesprachen sind beispielsweise SPARQL [Prud hommeaux und Seaborne, 2008], Gremlin [Rodriguez, 2013] oder Cypher [Neo Technology, 2012, 14]. Listing 1.2 zeigt eine Cypher-Anfrage, welche das selbe Ergebnis berechnet wie die SQL-Anfrage aus Listing 1.1. Hierfür wird die Hierarchie als gerichteter Baum modelliert, wobei von jedem Manager eine mit MANAGES gelabelte Kante zu seinen unmittelbaren Mitarbeitern führt. Cypher wird in Abschnitt eingehender erläutert werden. Da die Anfragesprache demselben Konzept (Graphen) folgt wie das zu lösende Problem, lässt sich auch die Problemstellung unmittelbar in Cypher-Code ausdrücken. Anfragen sind damit einfacher zu lesen, einfacher zu schreiben und potentiell flexibler optimierbar. Graphdatenbanksysteme bieten zudem die Chance, die Datenspeicherung für ihren 11

12 Anwendungszweck zu optimieren: Da die Beziehungen zwischen den Objekten explizit gegeben sind, könnten diese beispielsweise auch als direkte Verknüpfung persistiert werden. Auch könnte man verknüpfte Entitäten gruppiert persistieren, so dass diese effizienter geladen werden können. 12

13 2. Related Work Einen guten Überblick über verschiedene Möglichkeiten, Graphen semantisch anzureichern, um sie als Datenmodell einer Datenbank zu nutzen Attribute, Labels, Gewichtungen, et cetera, bieten Rodriguez und Neubauer [2010a]. Sie geben auch eine kurze Einführung in das Feld der Graphdatenbanksysteme. Die Arbeit von Angles und Gutierrez [2008] bietet eine nunmehr historische, aber sehr breite und tiefgehende Analyse der Literatur zu Graphdatenmodellen und Graphanfragesprachen bis zurück ins Jahr Sie zeigen nicht nur die Modelle selbst, sondern auch die Entwicklungslinien und historischen Zusammenhänge auf. Zwei Ansätze für Graphanfragen finden in aktuellen Graphdatenbanksystemen häufig Verwendung: Zum einen traversierende Anfragen. Rodriguez und Neubauer [2010b] haben hierzu eine gute Überblicksarbeit veröffentlicht, welche auch eine mathematische Formalisierung dieses in der Literatur häufig nur grob umschriebenen Konzepts bietet. Zum anderen reguläre Pfadanfragen, welche von Mendelzon und Wood [1989] eingeführt wurden und in Abschnitt 5.3 noch genauer betrachtet werden. Die Arbeit von Buerli [2012] gibt einen Überblick über Anwendungsbereiche von Graphdatenbanksystemen. Außerdem bietet sie mit einer Kategorisierung von 18 Graphdatenbankmanagementsystemen als reine, verteilte, Key-Value-basierte, dokumentenorientierte, SQL-basierte und Map-Reduce-basierte Datenbankmanagementsysteme mit jeweils einem zusammenfassenden Absatz einen hervorragenden Einstieg in das Feld. Etwas mehr in die Tiefe geht [Angles, 2012], der aber wegen der Kürze dieser Arbeit nur einen groben Überblick über 9 verschiedene Graphdatenbankmanagementsysteme bietet: Die Arbeit kategorisiert diese anhand ihrer Datenmodelle, ihrer Möglichkeit, Integritäts-Constraints zu definieren sowie der Geeignetheit ihrer Anfragemechanismen für bestimmte Graphanfragen. Mit Benchmarks von Graphdatenbanksystemen haben sich verschiedene Autoren sowohl theoretisch als auch praktisch auseinandergesetzt. So haben Leskovec et al. [2008] eine gute Übersicht gegeben, welche wesentlichen Eigenschaften existierende große Graphen haben, Chakrabarti und Faloutsos [2006] geben einen Überblick über eine Vielzahl von Algorithmen zur Generierung synthetischer mit solchen Eigenschaften. Sie geben auch einen Überblick über die historische Entwicklung dieses Forschungsfeldes. Dominguez-Sal et al. [2011] haben auf dieser Grundlage eine hervorragende Diskussion über das Design von Graphdatenbanksystembenchmarks veröffentlicht. Sie spannen den Bogen von der Analyse motivierender Anwendungsfälle von Graphdatenbanksystemen über Charakteristika sinnvoller Testdaten und Auswahlkriterien 13

14 für Benchmarkalgorithmen bis hin zu Empfehlungen für den Versuchsaufbau und die Messmethodiken. Benchmarksuiten für objektorientierte Datenbanksysteme und damit für Objektgraphen haben unter anderem Cattell und Skeen [1992] und Carey et al. [1993] definiert, Guo et al. [2005] definieren eine Benchmarksuite für RDF-Graphen. Eine weitere Benchmarksuite, welche originär auf Graphverarbeitung ausgerichtet ist wurde von Bader et al. [2009] definiert. Vicknair et al. [2010] haben Neo4j und MySQL gegeneinander einem Benchmark unterzogen. Sie kommen zu dem Schluss, dass Neo4j für traversierende Anfragen und durch die Nutzung von Lucene als Index-Lösung auch für Volltextanfragen die schnellere Wahl ist, MySQL aber für Anfragen, die Entitäten anhand bestimmter Attribute zählen. Holzschuher und Peinl [2013] haben verschiedene Anfragemöglichkeiten von Neo4j einem Benchmark unterzogen, sowohl gegeneinander als auch gegenüber MySQL/JPA. Auch sie sehen Neo4j bei traversierenden Anfragen gegenüber MySQL im Vorteil, bei Abfragen, die lediglich einzelne Knoten vollständig auslesen, hingegen im Nachteil. Darüber hinaus gibt es noch einige Benchmarks, welche von Entwicklern von Graphdatenbanksystemen durchgeführt wurden und wenig überraschend jeweils das eigene System als vorteilhaft herausstellen: Zu nennen wären hier insbesondere Ciglan et al. [2012], die DEX, Neo4j, SAIL, OrientDB und ihren Prototypen SGDB anhand traversierender Anfragen vergleichen, Dominguez-Sal et al. [2010], die ihr Datenbankmanagementsystem DEX mit Neo4j, Jena und HyperGraphDB vergleichen, Martínez-Bazan et al. [2012], die vom selben Institut stammend DEX mit MonetDb, MySQL und Neo4j vergleichen. Dass all diese Arbeiten von den jeweiligen Entwicklern publiziert wurden, heißt nicht, dass diese Arbeiten zwingend einen methodischen Bias haben. Es zeigt aber, dass es kaum herstellerunabhängige Benchmarks gibt, welche Graphdatenbanksysteme untereinander vergleichen. 14

15 3. Ziel der Arbeit Die existierende vergleichende Literatur zu Graphdatenbanksystemen beschränkt sich hauptsächlich auf eine abstrakte Ebene und vergleicht Datenmodelle und die Existenz verschiedener Typen von Anfragesprachen. Eine tiefergehende Analyse der verschiedenen Systeme insbesondere bezüglich der jeweils verwendeten Datenstrukturen und deren Optimierung für bestimmte Anfragemechanismen fehlt weitgehend. Gleichzeitig gibt es kaum herstellerunabhängige Benchmarks, welche die Auswirkungen dieser Designentscheidungen auf die Geschwindigkeit der Systeme prüfen. Diese Arbeit versucht, diese Lücke zu füllen. Hierfür werden zuerst verschiedene exemplarisch ausgewählte Graphdatenbankmanagementsysteme vorgestellt. Dies umfasst einführend die verwendeten Graphenmodelle und die Anfragemöglichkeiten. Darauf folgend wird jeweils ein Blick auf die technische Umsetzung geworfen werden: Welche Ansätze wurden gewählt, um Graphen zu persistieren? Welche Caching-Verfahren wurden gewählt? Wie gehen die Systeme mit nebenläufigen Zugriffen um? Welche Möglichkeiten bieten die Systeme, auf steigende Datenmengen, steigende Schreiblast oder steigende Leselast zu reagieren? Ergänzt wird diese Arbeit um eine Geschwindigkeitsmessung der Datenbanksysteme mittels verschiedener Anfragemuster auf Graphen verschiedener Größen. Dies soll sichtbar machen, welche Auswirkungen die den einzelnen Systemen zugrundeliegenden Designentscheidungen auf die Performance des Gesamtsystems haben. Am Beispiel von vier exemplarisch gewählten System wird herausgearbeitet, in welchen Anwendungsgebieten welcher der gewählten Ansätze Vorteile bietet und wo deren Nachteile liegen - eine breiter angelegte Untersuchung aller am Markt existierenden Graphdatenbankmanagementsysteme würde den Rahmen einer Diplomarbeit deutlich sprengen. Neo4j [Neo Technology, 2012] sticht aus den vorhandenen Systemen durch seine mächtigen und vielfältigen Anfragemöglichkeiten heraus. Es verknüpft Datensätze auf Persistenzebene und ist damit auch ein Beispiel explizit graphbasierter Datenpersistenz. DEX [Martínez-Bazan et al., 2007] stellt das entgegengesetzte Extrem dar: Es hat nur sehr minimalistische Anfragemöglichkeiten. DEX basiert auf B-Bäumen und Bitmaps zur Datenpersistenz und ist damit beispielhaft für graphbasierte Datenbankmanagementsysteme, welche keine direkte Verknüpfung zwischen Entitäten persistieren. 15

16 HyperGraphDB 1.2 [Iordanov, 2010] basiert auf dem Datenmodell eines Hypergraphen und stellt damit das wohl ausdrucksmächtigste Datenmodell unter den momentan verfügbaren Graphdatenbankmanagementsystemen zur Verfügung. FlockDB 1 [Pointer et al., 2010] wählt wiederum einen vollständig anderen Ansatz: Es stellt lediglich einen graphbasierten Mediator zwischen der Anwendung und einem relationalen Datenbankmanagementsystem dar, welches über SQL [1999] angesprochen wird. Es unterstützt ausschließlich mengenbasierte Anfragen. Darüber hinaus ist FlockDB als einziges betrachtetes System explizit für hohe, nebenläufige Schreiblast ausgelegt. Diese vier Systeme sind als Stichprobe besonders geeignet, einen Überblick über die sich teils stark unterscheidenden existierenden Konzepte zu bilden. Außerdem sind sie zumindest für die akademische Nutzung kostenfrei verfügbar. Weitere Graphdatenbankmanagementsysteme, welche im Rahmen dieser Arbeit nicht betrachtet wurden, sind OrientDB, InfoGrid, Objectivity InfiniteGraph und Allegro- Graph. Darüber hinaus existieren VertexDB, welches anscheinend nicht mehr aktiv entwickelt wird 2 und GraphDB, welche als Teil der Insolvenzmasse ihrer Entwicklerin, der Sones GmbH, bis heute zum Verkauf steht 3. Zumindest ein Teil von GraphDB steht aber unter AGPL online 4. Ebenfalls in dieser Arbeit nicht betrachtet werden Systeme zur verteilten Analyse sehr großer Graphen wie Google Pregel [Malewicz et al., 2010] und dessen Open- Source-Implementierung Apache Giraph Ching et al. [2012] oder GraphLab [Gonzalez et al., 2012]. Diese stellen keine Graphdatenbankmanagementsysteme im Sinne dieser Arbeit dar, da sie nicht zur kontinuierlichen Verwaltung von Daten, sondern zur gelegentlichen Analyse großer Datenbestände entworfen wurden. 1 Betrachtet wirde die Fassung des Git-Master-Branches auf Github.com vom 28. April 2012: https://github.com/twitter/flockdb/tree/3e eee28f7c0c147057cdea8969e5c. 2 Das GIT-Repository des Projekts verzeichnet lediglich einen Commit in den letzten 2 Jahren: https://github.com/stevedekorte/vertexdb, abgerufen am 13. März Telefonische Auskunft des Insolvenzverwalters, Herrn Dr. Oliver Hartig, vom 12. März Zu finden unter https://github.com/sones/sones, abgerufen am 13. März

17 4. Historischer Hintergrund In den letzten Jahren kam eine Vielzahl neuer Graphdatenbanksysteme auf den Markt. Die Idee, Netzwerkstrukturen als Datenmodell für Datenbankmanagementsysteme zu nutzen, reicht aber weit zurück. Charles Bachman entwarf Mitte der 1960er Jahre mit dem Integrated Data Store eines der ersten Allzweckdatenbanksysteme. Es basierte auf dem Datenmodell eines gerichteten, zyklenfreien Graphen aus Records und Pointern, welches später (1969) von der Conference on Data Systems Languages als network model (auch CODASYL data model) spezifiziert wurde veröffentlichte IBM das Information Management System, welches auf dem Datenmodell eines gerichteten Baums basierte, hierarchisches Modell genannt [Singh, 2009, 1.9]. Das von Codd [1970] vorgeschlagene relationale Modell verdrängte in der Folge nach der Einführung von SQL/DS durch IBM in den frühen 1980er Jahren zunehmend das Netzwerk- und das hierarchische Modell. Singh [2009, 1.9] führt dies unter anderem auf die Einfachheit des relationalen Modells, die einfache Nutzbarkeit der relationalen Datenbanksysteme auch durch Nicht-Programmierer mittels SQL als Anfragesprache und der SQL innewohnenden, deklarativen Abstraktion von Implementierungsdetails des Datenbankmanagementsystems zurück. Die Idee, Graphdatenbanken als Allzweckdatenbanken zu nutzen, entstand Anfang der 1990er Jahre. So beschreiben Amann und Scholl [1992] ein seinerzeit wachsendes Interesse an Graphmodellen und -sprachen in der aktuellen Datenbankforschung 1, insbesondere für Hypertext- und Geoinformationssysteme. Sie entwerfen sowohl ein Datenmodell basierend auf einem gerichteten gelabelten Multigraphen als auch eine Anfragesprache hierfür. In den späten 1990ern wurden vermehrt objektorientierte Datenbankmanagementsysteme entwickelt [Singh, 2009, 1.9]. Die von der Object Data Management Group definierte Object Definition Language [Cattell et al., 2000] basiert auf einem Graphen als abstraktem Datenmodell, mit Objekten als Knoten und Relationen zwischen ihnen als Kanten. Auch die Vererbungshierarchien zwischen Klassen sind hierbei Graphen. Mit dem Aufkommen des Semantic Web als Forschungsgebiet um die Jahrtausendwende wurde auch das Resource Description Framework [Klyne und Carroll, 2004] 1 Eigene Übersetzung. 17

18 als Datenmodell standardisiert. Es beschreibt Fakten als Subjekt-Prädikat-Objekt- Tripel. Mit Subjekt und Objekt als Knoten und Prädikaten als Kanten formt es einen Graphen. Damit einhergehend wurde auch eine neue Klasse von Datenbanksystemen geschaffen, sogenannte Triple Stores. SPARQL [Prud hommeaux und Seaborne, 2008], die wohl prominenteste Anfragesprache für Semantic-Web-Daten, ist ebenfalls als Graphanfragesprache konzipiert. Ende des letzten Jahrzehnts kam unter dem Begriff NoSQL eine große Menge neuer Datenbanksysteme auf den Markt. Ihnen gemeinsam ist, dass sie abseits des relationalen Modells neue Möglichkeiten suchen, bestimmte Probleme der Datenspeicherung und Anfragebearbeitung effizienter zu lösen. Hierfür wurden, im Gegensatz zum relationalen Modell, häufig schemalose Ansätze gewählt, um strukturierte und semistrukturierte Daten zu speichern. Das Interesse an der Analyse sehr großer Graphen, sei es im Bereich sozialer, technischer, semantischer oder biologischer Netze, führte auch zu einem weiter steigenden Interesse an Graphdatenbanksystemen [Angles und Gutierrez, 2008, 2.4]. Auch für die immer häufiger anzutreffenden Empfehlungssysteme, insbesondere im E-Commerce-Bereich, stellen sie eine gute Grundlage dar [Rodriguez und Neubauer, 2010b, 3.1]. Ungefähr gleichzeitig wurde gerade im Bereich dieser Empfehlungssysteme das Destillieren von Empfehlungen aus teils enormen und wachsenden Mengen von Transaktionsdaten eine Herausforderung von großem Interesse. Hierbei ist es häufig notwendig, diese Berechnungen über mehrere Systeme zu verteilen. Dieser Trend wird immer häufiger unter dem Begriff Big Data gefasst. In diesem Zusammenhang wurde Apache Hadoop [Apache, 2008] populär, welches auf dem zuvor von Dean und Ghemawat [2004] publizierten MapReduce-Paradigma basiert. Die Unzulänglichkeiten von MapReduce bei der Analyse von Graphdaten führte in der Folge zur Entwicklung von Systemen wie Google Pregel [Malewicz et al., 2010], Apache Giraph [Ching et al., 2012] und GraphLab [Gonzalez et al., 2012]. 18

Graphdatenbanksysteme

Graphdatenbanksysteme Graphdatenbanksysteme Ein Überblick Benjamin Gehrels benjamin@gehrels.info GitHub: @BGehrels Was ist das? WITH RECURSIVE manager ( level, managerid) AS ( SELECT 1 AS depth, employees.managerid AS managerid

Mehr

Graphdatenbanksysteme

Graphdatenbanksysteme Diplomarbeit Exposé Graphdatenbanksysteme Überblick und Benchmark Benjamin Gehrels 16. Juli 2012 1 Motivation Viele Strukturen der realen Welt lassen sich als Graphen interpretieren, einer mathematischen

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

NoSQL HANSER. Einstieg in die Web 2.0 Datenbanken. Stefan Edlich Achim Friedland Jens Hampe Benjamin Brauer Markus Brückner

NoSQL HANSER. Einstieg in die Web 2.0 Datenbanken. Stefan Edlich Achim Friedland Jens Hampe Benjamin Brauer Markus Brückner Stefan Edlich Achim Friedland Jens Hampe Benjamin Brauer Markus Brückner NoSQL Einstieg in die Web 2.0 Datenbanken 2., akutalisierte und erweiterte Auflage HANSER Geleitwort Vorwort Vorwort zur 2. Auflage

Mehr

Stefan Edlich Achim Friedland Jens Rampe Benjamin Brauer. NoSQL. Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken HANSER

Stefan Edlich Achim Friedland Jens Rampe Benjamin Brauer. NoSQL. Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken HANSER Stefan Edlich Achim Friedland Jens Rampe Benjamin Brauer NoSQL Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken HANSER Geleitwort 1 Vorwort 1 1 Einführung 1 1.1 Historie 1 1.2 Definition und

Mehr

ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE. NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik

ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE. NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik ARFA ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik Ralf Leipner Domain Architect Analytics, Risk Management & Finance 33. Berner Architekten

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

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

Projektgruppe. Knowledge Representation Persistence and Reasoning

Projektgruppe. Knowledge Representation Persistence and Reasoning Projektgruppe Seminarvortrag von Stefan Middeke Knowledge Representation Persistence and Reasoning 4. Juni 2010 Überblick Motivation Repräsentation der Daten Speicherung und Abfrage von Daten Folgerungen

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Vorwort zur 5. Auflage... 15 Über den Autor... 16

Vorwort zur 5. Auflage... 15 Über den Autor... 16 Vorwort zur 5. Auflage...................................... 15 Über den Autor............................................ 16 Teil I Grundlagen.............................................. 17 1 Einführung

Mehr

Überblick und Vergleich von NoSQL. Datenbanksystemen

Überblick und Vergleich von NoSQL. Datenbanksystemen Fakultät Informatik Hauptseminar Technische Informationssysteme Überblick und Vergleich von NoSQL Christian Oelsner Dresden, 20. Mai 2011 1 1. Einführung 2. Historisches & Definition 3. Kategorien von

Mehr

Agenda. (1) Einleitung (2) neo4j. (3) Beispiel + Demo

Agenda. (1) Einleitung (2) neo4j. (3) Beispiel + Demo Agenda (1) Einleitung (2) neo4j (1) neo4j Embedded (2) neo4j Server (REST-Interface) (3) Cypher Query Language (4) High Availability Cluster (3) Beispiel + Demo 2 Einleitung 3 Einleitung: Geschichte 1960er:

Mehr

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

Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken

Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken 30 Wozu dient ein Primärschlüssel? Mit dem Primärschlüssel wird ein Datenfeld

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

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

Neo4J & Sones GraphDB. Graph-Datenbanken. Von Toni Fröschke. Problemseminar NoSQL-Datenbanken (WS 2011/12)

Neo4J & Sones GraphDB. Graph-Datenbanken. Von Toni Fröschke. Problemseminar NoSQL-Datenbanken (WS 2011/12) Neo4J & Sones GraphDB Graph-Datenbanken Von Toni Fröschke Problemseminar NoSQL-Datenbanken (WS 2011/12) Gliederung Neo4J Überblick Neo4J-Komponenten Datenhaltung/ -verwaltung Verfügbarkeit & Recovery I/O

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

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

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

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

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

Expose zur Studienarbeit Indizierung von XML-Daten mittels GRIPP

Expose zur Studienarbeit Indizierung von XML-Daten mittels GRIPP Expose zur Studienarbeit Indizierung von XML-Daten mittels GRIPP Betreuer: Silke Trissl Autor: email: Florian Zipser zipser@informatik.hu-berlin.de 1 1 Motivation Auf dem Gebiet der relationalen Datenbanken

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

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 08. Exkurs: Datenbanken 1 Motivation Datenbanksysteme

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

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

Mehr

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL XAMPP-Systeme Teil 3: My SQL Daten Eine Wesenseigenschaft von Menschen ist es, Informationen, in welcher Form sie auch immer auftreten, zu ordnen, zu klassifizieren und in strukturierter Form abzulegen.

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

3. Das Relationale Datenmodell

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

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

SQL- & NoSQL-Datenbanken. Speichern und Analysen von großen Datenmengen

SQL- & NoSQL-Datenbanken. Speichern und Analysen von großen Datenmengen SQL- & NoSQL-Datenbanken Speichern und Analysen von großen Datenmengen 1 04.07.14 Zitat von Eric Schmidt (Google CEO): There was 5 exabytes of information created between the dawn of civilization through

Mehr

Objektrelationale und erweiterbare Datenbanksysteme

Objektrelationale und erweiterbare Datenbanksysteme Objektrelationale und erweiterbare Datenbanksysteme Erweiterbarkeit SQL:1999 (Objekt-relationale Modellierung) In der Vorlesung werden nur die Folien 1-12 behandelt. Kapitel 14 1 Konzepte objekt-relationaler

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

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

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

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert Maika Büschenfeldt Datenbanken: Skript 1 1. Was ist eine relationale Datenbank? In Datenbanken können umfangreiche Datenbestände strukturiert abgelegt werden. Das Konzept relationaler Datenbanken soll

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik Vorlesung für den Bereich Diplom/Master Informatik Dozent: Juniorprof. Dr. Henning Meyerhenke PARALLELES RECHNEN INSTITUT FÜR THEORETISCHE INFORMATIK, FAKULTÄT FÜR INFORMATIK KIT Universität des Landes

Mehr

Datenbanken. Ein DBS besteht aus zwei Teilen:

Datenbanken. Ein DBS besteht aus zwei Teilen: Datenbanken Wikipedia gibt unter http://de.wikipedia.org/wiki/datenbank einen kompakten Einblick in die Welt der Datenbanken, Datenbanksysteme, Datenbankmanagementsysteme & Co: Ein Datenbanksystem (DBS)

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

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

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

NoSQL. Was Architekten beachten sollten. Dr. Halil-Cem Gürsoy adesso AG. Architekturtag @ SEACON 2012 Hamburg

NoSQL. Was Architekten beachten sollten. Dr. Halil-Cem Gürsoy adesso AG. Architekturtag @ SEACON 2012 Hamburg NoSQL Was Architekten beachten sollten Dr. Halil-Cem Gürsoy adesso AG Architekturtag @ SEACON 2012 Hamburg 06.06.2012 Agenda Ein Blick in die Welt der RDBMS Klassifizierung von NoSQL-Datenbanken Gemeinsamkeiten

Mehr

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 8 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 12.01. 2004 Integritätsbedingungen

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

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

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

SQL- & NoSQL-Datenbanken - Speichern und Analysen von großen Datenmengen

SQL- & NoSQL-Datenbanken - Speichern und Analysen von großen Datenmengen SQL- & NoSQL-Datenbanken - Speichern und Analysen von großen Datenmengen Lennart Leist Inhaltsverzeichnis 1 Einführung 2 1.1 Aufgaben einer Datenbank...................... 2 1.2 Geschichtliche Entwicklung

Mehr

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

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

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

Java Persistence API 2.x. crud + relationships + jp-ql

Java Persistence API 2.x. crud + relationships + jp-ql Java Persistence API 2.x crud + relationships + jp-ql Grundprinzip 10.02.10 2 Problematik Man muss bei der Persistierung immer das Klassenmodell und dessen Umsetzung im Datenmodell (in der DB) berücksichtigen.

Mehr

4. Hierarchische und netzwerkartige Datenbankmodelle

4. Hierarchische und netzwerkartige Datenbankmodelle 4. Hierarchische und netzwerkartige Datenbankmodelle 4.1 Hierarchische Datenbanken Hierarchien können durch Baumgraphen beschrieben werden. Datensätze einer hierarchischen Datenbank (HDB) sind in Segmenten

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

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

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

25.09.2014. Zeit bedeutet eine Abwägung von Skalierbarkeit und Konsistenz

25.09.2014. Zeit bedeutet eine Abwägung von Skalierbarkeit und Konsistenz 1 2 Dies ist ein Vortrag über Zeit in verteilten Anwendungen Wir betrachten die diskrete "Anwendungszeit" in der nebenläufige Aktivitäten auftreten Aktivitäten in einer hochgradig skalierbaren (verteilten)

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

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching 1.1 Caching von Webanwendungen In den vergangenen Jahren hat sich das Webumfeld sehr verändert. Nicht nur eine zunehmend größere Zahl an Benutzern sondern auch die Anforderungen in Bezug auf dynamischere

Mehr

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

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

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

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 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL 1 Transaktionen in SQL Um Daten in einer SQL-Datenbank konsistent zu halten, gibt es einerseits die Möglichkeit der Normalisierung, andererseits sog. Transaktionen. 2 Was ist eine Transaktion Eine Transaktion

Mehr

Web Data Management Systeme

Web Data Management Systeme Web Data Management Systeme Seminar: Web-Qualitätsmanagement Arne Frenkel Agenda Einführung Suchsysteme Suchmaschinen & Meta-Suchmaschinen W3QS WebSQL WebLog Information Integration Systems Ariadne TSIMMIS

Mehr

Übersicht über Datenbanken

Übersicht über Datenbanken Übersicht über Datenbanken Vergleich zwischen normaler Datenorganisation und Datenbanken Definition einer Datenbank Beispiel (inkl. Zugriff) Der Datenbankadministrator Relationale Datenbanken Transaktionen

Mehr

Scandio SEBOL Search

Scandio SEBOL Search : : :, München Inhalt 1. Was ist SEBOL?...3 2. Index-Server...4 2.1. Warteschlange zur Indizierung...4 2.2. Plugin-Abarbeitung...4 2.3. Erweiterte Lucene-Indizierung...4 2.4. Index-Verteilung und Management...5

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

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

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

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

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

Einteilung von Datenbanken

Einteilung von Datenbanken Datenbanksysteme (c) A.Kaiser; WU-Wien 1 Einteilung von Datenbanken 1. formatierte Datenbanken 2. unformatierte Datenbanken Information Retrieval Systeme 2 Wozu Datenbanken? Speicherung und Verwaltung

Mehr

Aktuelle SE Praktiken für das WWW

Aktuelle SE Praktiken für das WWW Aktuelle SE Praktiken für das WWW SQL vs. NoSQL W. Mark Kubacki 23.06.2010 Gliederung Zusammenfassung Entstehungsgeschichte SQL vs. NoSQL Systemarchitekturen und Wachstumsmuster SQL NoSQL Überblick und

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

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

Peter Dikant mgm technology partners GmbH. Echtzeitsuche mit Hadoop und Solr

Peter Dikant mgm technology partners GmbH. Echtzeitsuche mit Hadoop und Solr Peter Dikant mgm technology partners GmbH Echtzeitsuche mit Hadoop und Solr ECHTZEITSUCHE MIT HADOOP UND SOLR PETER DIKANT MGM TECHNOLOGY PARTNERS GMBH WHOAMI peter.dikant@mgm-tp.com Java Entwickler seit

Mehr

Full Text Search in Databases

Full Text Search in Databases Full Text Search in Databases Verfasser: Stefan Kainrath (0651066) h0651066@wu-wien.ac.at 0664/1327136 Betreuer: Dipl.-Ing. Mag. Dr. Albert Weichselbraun Inhaltsverzeichnis 1 Motivation... 3 2 Anforderungen...

Mehr

YAGO YAGO. A semantic knowledge base. Paul Boeck. Humboldt Universität zu Berlin Institut für Informatik. Dezember 2012 1/19

YAGO YAGO. A semantic knowledge base. Paul Boeck. Humboldt Universität zu Berlin Institut für Informatik. Dezember 2012 1/19 1/19 A semantic knowledge base Paul Boeck Humboldt Universität zu Berlin Institut für Informatik Dezember 2012 2/19 Übersicht 1 Einführung 2 Das Modell Struktur Semantik 3 Das System 4 Anwendung 3/19 Einführung

Mehr

Redundanz: Dieselben Informationen werden doppelt gespeichert.

Redundanz: Dieselben Informationen werden doppelt gespeichert. Kapitel 1 Einführung 1.1 Definition Ein Datenbanksystem (auch Datenbankverwaltungssystem, abgekürzt DBMS = data base management system) ist ein computergestütztes System, bestehend aus einer Datenbasis

Mehr

Charakteristika und Vergleich von SQL- und NoSQL- Datenbanken

Charakteristika und Vergleich von SQL- und NoSQL- Datenbanken Universität Leipzig Fakultät für Mathematik und Informatik Abteilung Datenbanken Dozent: Prof. Dr. Erhard Rahm Betreuer: Stefan Endrullis Problemseminar NoSQL-Datenbanken Semester: WS 11/12 Charakteristika

Mehr

WS 2002/03. Prof. Dr. Rainer Manthey. Institut für Informatik III Universität Bonn. Informationssysteme. Kapitel 1. Informationssysteme

WS 2002/03. Prof. Dr. Rainer Manthey. Institut für Informatik III Universität Bonn. Informationssysteme. Kapitel 1. Informationssysteme Informationssysteme Informationssysteme WS 2002/03 Prof. Dr. Rainer Manthey Institut für Informatik III Universität Bonn 2002 Prof. Dr. Rainer Manthey Informationssysteme 1 DB und/oder IS: terminologischer

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

Mehr

Grundlagen von Datenbanken

Grundlagen von Datenbanken Grundlagen von Datenbanken Aufgabenzettel 1 Grundlagen Datenbanken: Kurzer historischer Überblick (1) Anwendung 1 Anwendung 2 Datei 1 Datei 2 Datei 3 Zugriff auf Dateien ohne spezielle Verwaltung 2 Exkurs:

Mehr

ElasticData -Technologie

ElasticData -Technologie ElasticData -Technologie Eine flexiblere Basis für die Datenverwaltung bei modernen webbasierten Anwendungen. Peter Volynsky, Co-Founder & CTO, Comindware Konstantin Bredyuk, Dir. of Product Management,

Mehr

Kapitel DB:III. III. Konzeptueller Datenbankentwurf

Kapitel DB:III. III. Konzeptueller Datenbankentwurf Kapitel DB:III III. Konzeptueller Datenbankentwurf Einführung in das Entity-Relationship-Modell ER-Konzepte und ihre Semantik Charakterisierung von Beziehungstypen Existenzabhängige Entity-Typen Abstraktionskonzepte

Mehr

1 Die Active Directory

1 Die Active Directory 1 Die Active Directory Infrastruktur Prüfungsanforderungen von Microsoft: Configuring the Active Directory Infrastructure o Configure a forest or a domain o Configure trusts o Configure sites o Configure

Mehr

Web Technologien NoSQL Datenbanken

Web Technologien NoSQL Datenbanken Web Technologien NoSQL Datenbanken Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Department of Law and Economics WS 2011/2012 Wednesdays, 8:00 10:00 a.m. Room HS 021, B4

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

Einführung in CouchDB

Einführung in CouchDB Einführung in CouchDB Zurücklehnen und entspannen! http://slog.io Thomas Schrader (@slogmen) 12/2010 Übersicht Bestandsaufnahme Ansatz Geschichte Technologien Features Skalierbarkeit Kurz & Gut Fazit Relationale

Mehr

Quellen: Towards a Human Computer InteractionPerspective. Übersicht. Warum visuelle Sprachen? Begriffsdefinitionen: Hinderungsgründe bisher:

Quellen: Towards a Human Computer InteractionPerspective. Übersicht. Warum visuelle Sprachen? Begriffsdefinitionen: Hinderungsgründe bisher: Quellen: Towards a Human Computer InteractionPerspective von B.K. & B.K. LV: Visuelle Sprachen (03-763) Universität Bremen WS 2001/02 Visual Language Theory: Towards a Human- Computer Perspective; N. Hari

Mehr

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller 2002 131

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller 2002 131 Architekturen Von der DB basierten zur Multi-Tier Anwendung DB/CRM (C) J.M.Joller 2002 131 Lernziele Sie kennen Design und Architektur Patterns, welche beim Datenbankzugriff in verteilten Systemen verwendet

Mehr

Qualitätssicherung bei der mobilen Datenerfassung

Qualitätssicherung bei der mobilen Datenerfassung Qualitätssicherung bei der mobilen Datenerfassung Stephan Mäs Arbeitsgemeinschaft GIS Universität der Bundeswehr München http://www.unibw.de/bauv11/geoinformatik/agis 9. Seminar GIS & Internet 13.-15.

Mehr

Antwortzeitverhalten von Online Storage Services im Vergleich

Antwortzeitverhalten von Online Storage Services im Vergleich EPOD Encrypted Private Online Disc Antwortzeitverhalten von Online Storage Services im Vergleich Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee

Mehr

2 Datenbanksysteme, Datenbankanwendungen und Middleware... 45

2 Datenbanksysteme, Datenbankanwendungen und Middleware... 45 Vorwort 15 Teil I Grundlagen 19 i Einführung In das Thema Datenbanken 21 I.I Warum ist Datenbankdesign wichtig? 26 i.2 Dateisystem und Datenbanken 28 1.2.1 Historische Wurzeln 29 1.2.2 Probleme bei der

Mehr

Big Data Management Thema 14: Cassandra

Big Data Management Thema 14: Cassandra Thema 14: Cassandra Jan Kristof Nidzwetzki Thema 14: Cassandra 1 / 25 Übersicht 1 Grundlagen Überblick Geschichte Datenmodel 2 Architektur Der logische Ring Persistenz der Daten Tunable Consistency Read

Mehr

NoSQL & Big Data. NoSQL Databases and Big Data. NoSQL vs SQL DBs. NoSQL DBs - Überblick. Datenorientierte Systemanalyse. Gerhard Wohlgenannt

NoSQL & Big Data. NoSQL Databases and Big Data. NoSQL vs SQL DBs. NoSQL DBs - Überblick. Datenorientierte Systemanalyse. Gerhard Wohlgenannt NoSQL & Big Data Datenorientierte Systemanalyse NoSQL Databases and Big Data Gerhard Wohlgenannt Die besprochenen Systeme haben nicht den Anspruch und das Ziel DBS zu ersetzen, sondern für gewisse Anwendungsfälle

Mehr

NoSQL Databases and Big Data

NoSQL Databases and Big Data Datenorientierte Systemanalyse NoSQL Databases and Big Data Gerhard Wohlgenannt NoSQL & Big Data Die besprochenen Systeme haben nicht den Anspruch und das Ziel DBS zu ersetzen, sondern für gewisse Anwendungsfälle

Mehr