vortrag graphendatenbanken uni stuttgart

25
Confidential sones GmbH| 2/9/2011 1 Graphdatenbanken Vorlesung Uni Stuttgart Datenbanken Stuttgart 02/2011 Henning Rauch [email protected] Sones GmbH

Upload: henning-rauch

Post on 12-May-2015

2.181 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Graphdatenbanken

Vorlesung Uni Stuttgart

Datenbanken

Stuttgart 02/2011

Henning Rauch

[email protected]

Sones GmbH

Page 2: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Agenda

Einleitung

Graphdatenbanken

Nachteile des relationalen Models

Vorteile von Graphdatenbanken

Einsatzszenarien

Sones GraphDB

2

Page 3: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Einleitung / 1 – Aktuelle Situation

Datenintensive, komplexe, verteilte Anwendungen

– Semantic Web

– Empfehlungssysteme

– Soziale Netzwerke

– Geoinformationssysteme

– Bioinformatik

– …

Gemeinsamkeiten

– Stark vernetzte, umfangreiche Datenmengen

– Komplexe Strukturen

– Stetiges Wachstum der Datenmenge

– Strukturierte oder semi-strukturierte (schemalose) Beschreibung

3

Page 4: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Einleitung / 2 – Beispiel Soziales Netzwerk

http://www.facebook.com/press/info.php?statistics

4

Page 5: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Einleitung / 3 – Neue Probleme

Effizientes (rekursives) Verknüpfen von

Datensätzen?

Beschreibung der Daten /

Datenmodellierung?

Effiziente (verteilte) Speicherung?

(Horizontale) Skalierbarkeit?

5

Page 6: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Einleitung / 4 – Neue Anforderungen

Rekursiv vernetze Informationen als neues Designziel

Einfache Verwaltung strukturierter, semistrukturierter, unstrukturierter

Datensätze

Bessere Integration in objektorientierte Entwicklung

Replikation von Datensätzen

Versionierung von Datensätzen

Effiziente Partitionierung von Datensätzen

Graphenorientierte Operationen

6

Page 7: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Einleitung / 5 – Definition Graphdatenmodell

Graph G(Vertices,Edges)

– Vertices – Menge von Knoten V

– Edges – Menge von Kanten E

Einfache Modellierung alltäglicher Probleme

7

Vertex0 Vertex1

Knoten

Gerichtete Kante

Page 8: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Einleitung / 6 – Definition Graphdatenmodell

Zusätzliche Knoten- / Kantengewichte

8

Jena Berlin

Stuttgart

260 km

ungerichtete / gewichtete Kante

Page 9: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Graphdatenbanken / 1 – Definition

A graph database is a database that uses graph structures with

nodes, edges, and properties to represent and store

information. General graph databases that can store any graph

are distinct from specialized graph databases such as

triplestores and network databases.

http://en.wikipedia.org/wiki/Graph_database

9

Page 10: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Graphdatenbanken / 2 – Property Graph Datenmodell

Erweiterung des Graphdatenmodells

– Zusätzliche Eigenschaften (Properties) an Knoten und Kanten

– Properties sind Key/Value Paare (Age:23)

– Keys werden vom Schema des Knotentyps vorgegeben

Property Graph ist ein gerichteter, multi-relationaler Graph

10

Name : AliceID : 0

Age : 23

Name : BobID : 1

Age : 42

Kommuniziert mit

Encrypted : true

Method : RSA

Page 11: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Graphdatenbanken / 3 – Property Graph Datenmodell

11

Name: AliceID : 0

Age : 23

Name : BobID : 1

Age : 42

Kommuniziert mit

Encrypted : true

Method : RSA

Name : CarolID : 3

Age : 18

Name : TU Ilmenau

Name : UniStuttgart

Page 12: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Nachteile relationales Modell / 1 – Unflexible Datenhaltung

Änderungen des Schemas sehr aufwändig

– ALTER TABLE

Keine semistrukturierten / unstrukturierten Daten

– z.B. XML, JSON, …

Keine Listenattribute

– List<String>, Set<Integer>, Set<User>

Keine Möglichkeit einfacher Versionierung von Datensätzen

12

Page 13: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Nachteile relationales Modell / 2 – Foreign Key Constraints

Darstellung von 1:n bzw. n:m nur über zusätzliche Mapping-

Tabellen

– Kein explizites Konzept für Beziehungen / Relationen

Verknüpfung von Tabellen über rechenintensive JOIN

Anweisungen

Keine rekursiven JOINs

13

ID Name Alter

0 Alice 23

1 Bob 42

User_ID1 User_ID2

0 1

1 0

User Kommunizert mit

Page 14: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Nachteile relationales Modell / 3 – Skalierbarkeit

Keine explizite Möglichkeit zur Skalierung und Partitionierung

innerhalb des relationen Modells

Keine JOINs zwischen verteilten Datenbanksystemen / -

herstellern

Keine integrierte Unterstützung aktueller state-of-the-art Web

Technologien

– HTTP/REST, Hypermedia, Semantic Web

14

Page 15: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Vorteile von Graphdatenbanken / 1 – Abstraktion

15

Explizites Datenmodell

Direkte Abbildung realer Netzwerkstrukturen

Besseres Verständnis der Anwendungsdomäne

Page 16: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Vorteile von Graphdatenbanken / 2 – Indexfreie Adjazenz

Beziehungen / Relationen über Kanten direkt am Knoten

modelliert

– Kein zusätzliches Mapping erforderlich

Keine Indizes für Relationen erforderlich

– Hohe Performance beim Abfragen des Graphen

– Jeder Knoten agiert als „mini-index“

Datenlokalität / effiziente Speicherung

– Adjazente Knoten können „nah beieinander“ persistiert werden

Performance ist unabhängig von der Größe des Graphen

16

Page 17: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Vorteile von Graphdatenbanken / 3 – Traversierung

Eine der wichtigsten Operationen innerhalb von

Graphdatenbanken

Teilweise oder vollständige Abfrage eines Graphen

– Aufbau einer Baumstruktur

Suchen nach Knoten / Kanten mit bestimmen Eigenschaften

– z.B. User mit mehr als 500 Freunden (Naben)

Verschiedene Traversierungsmethoden

– Breitensuche, Tiefensuche, algorithmische Traversierung, Random

Walks

17

Page 18: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Vorteile von Graphdatenbanken / 4 – Weitere Vorteile

18

Unterstützung von state-of-the-art Schnittstellen

Grundlage für wissenschaftliche Analysen realer

Netzwerkstrukturen

Zusätzliche Indizes für einfache Attribute oder komplexe

Subgraphen

Konzipiert für den Einsatz in verteilten Systemen / Cloud-

Angeboten

Page 19: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Einsatzszenarien / 1 – Graphenbasierte Algorithmen

Bewerten von Websites in Suchmaschinen – page rank

Wer-kennt-wen in sozialen Netzwerken – shortest path

Empfehlungssysteme – biparite matching

Verkehrsinfrastrukturen – minimum spanning tree

Erkennen von Naben in Netzwerken – betweenness centrality

Transportplanoptimierung – maximum flow

19

Page 20: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Einsatzszenarien / 2 – Business Use-Cases

Web

– Klickpfad-Analyse – Welche Wege nehmen die Kunden auf dem

Portal?

Universal Data Access

– Zentrales Metadaten-Repository – Unternehmensdaten zentral

verwalten. Daten aus diversen redaktionellen Quellen (Bilder, Artikel,

etc.) verknüpfen

eCommerce

– Recommendations – Empfehlung der richtigen Produkte dem richtigen

Kunden zur richtigen Zeit (kundenspezifische Werbung)

20

Page 21: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

sones GraphDB / 1 - Überblick

21

URL http://www.sones.com

Kategorie Objektorientierte Graphdatenbank

Datenmodell Property-Hypergraph

Querymethode sones GQL, C#- / Java-API

Sprache C# 4.0 / .NET 4.0 / Mono

Protokoll REST (JSON, XML, HTML, GEXF), WebDAV

Ziele Management und Verknüpfung

semistrukturierter Daten

Concurrency MVCC

Replikation Master Slave Replikation

Persistenz OSE: In-Memory GraphFS

Enterprise: Proprietäres persistentes GraphFS

Lizenz AGPLv3 und proprietär kommerziell

Page 22: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

sones GraphDB / 2 – Property Hypergraph

22

Person Freund BobID = 2

Alter = 23seit : 2009/09/21

Person Freund CarolID = 3

Alter = 20seit : 2010/04/11

SET<Person> Freunde

SetMaxNumber : 12

AliceID = 1

Alter = 21

Hyperedge-Properties

Hyperedge

Edge

Page 23: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

sones GraphDB / 3 – Graph Query Language

23

// sones GQL Example

// define Vertex Type (QDL)

CREATE VERTEX User

ADD ATTRIBUTES (String Name, SET<User> Friends)

INDICES (Name)

// add vertices Alice and Bob (QML)

INSERT INTO User VALUES (Name = "Alice", Age = 23)

INSERT INTO User VALUES (Name = "Bob", Age = 42)

// add edges between Alice and Bob (QML)

LINK User(Name = ‘Alice') VIA Friends TO User(Name = ‘Bob')

LINK User(Name = ‘Bob') VIA Friends TO User(Name = ‘Alice‘)

Page 24: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

sones GraphDB / 4 – Live Demo

Demo

24

Page 25: Vortrag Graphendatenbanken Uni Stuttgart

Confidential sones GmbH| 2/9/2011 1

Kontakt

25

Henning Rauch

Head of R&D

[email protected]

Xing: Henning_Rauch

Twitter: cosh23sones GmbH

Schillerstraße 5

04109 Leipzig

+49-341-3929680