Vortrag Graphendatenbanken Uni Stuttgart

3.332 Aufrufe

Veröffentlicht am

0 Kommentare
2 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
3.332
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
5
Aktionen
Geteilt
0
Downloads
21
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Vortrag Graphendatenbanken Uni Stuttgart

  1. 1. Henning Rauch henning@sones.de Sones GmbH Graphdatenbanken Vorlesung Uni Stuttgart Datenbanken Stuttgart 02/2011Confidential sones GmbH| 2/9/2011 1
  2. 2. Agenda  Einleitung  Graphdatenbanken  Nachteile des relationalen Models  Vorteile von Graphdatenbanken  Einsatzszenarien  Sones GraphDB 2Confidential sones GmbH| 2/9/2011 1
  3. 3. 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 3Confidential sones GmbH| 2/9/2011 1
  4. 4. Einleitung / 2 – Beispiel Soziales Netzwerk http://www.facebook.com/press/info.php?statistics 4Confidential sones GmbH| 2/9/2011 1
  5. 5. Einleitung / 3 – Neue Probleme  Effizientes (rekursives) Verknüpfen von Datensätzen?  Beschreibung der Daten / Datenmodellierung?  Effiziente (verteilte) Speicherung?  (Horizontale) Skalierbarkeit? 5Confidential sones GmbH| 2/9/2011 1
  6. 6. 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 6Confidential sones GmbH| 2/9/2011 1
  7. 7. Einleitung / 5 – Definition Graphdatenmodell  Graph G(Vertices,Edges) – Vertices – Menge von Knoten V – Edges – Menge von Kanten E Knoten Gerichtete Kante Vertex0 Vertex1  Einfache Modellierung alltäglicher Probleme 7Confidential sones GmbH| 2/9/2011 1
  8. 8. Einleitung / 6 – Definition Graphdatenmodell  Zusätzliche Knoten- / Kantengewichte Stuttgart 260 km Jena Berlin ungerichtete / gewichtete Kante 8Confidential sones GmbH| 2/9/2011 1
  9. 9. 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 9Confidential sones GmbH| 2/9/2011 1
  10. 10. Graphdatenbanken / 2 – Property Graph Datenmodell Name : Alice Kommuniziert mit Name : Bob ID : 0 ID : 1 Age : 23 Encrypted : true Age : 42 Method : RSA  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 10Confidential sones GmbH| 2/9/2011 1
  11. 11. Graphdatenbanken / 3 – Property Graph Datenmodell Name : TU Name : Uni Ilmenau Stuttgart Name : Carol ID : 3 Age : 18 Name: Alice Kommuniziert mit Name : Bob ID : 0 ID : 1 Age : 23 Encrypted : true Age : 42 Method : RSA 11Confidential sones GmbH| 2/9/2011 1
  12. 12. 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 12Confidential sones GmbH| 2/9/2011 1
  13. 13. 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 User Kommunizert mit ID Name Alter User_ID1 User_ID2 0 Alice 23 0 1 1 Bob 42 1 0 13Confidential sones GmbH| 2/9/2011 1
  14. 14. 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 14Confidential sones GmbH| 2/9/2011 1
  15. 15. Vorteile von Graphdatenbanken / 1 – Abstraktion  Explizites Datenmodell  Direkte Abbildung realer Netzwerkstrukturen  Besseres Verständnis der Anwendungsdomäne 15Confidential sones GmbH| 2/9/2011 1
  16. 16. 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 16Confidential sones GmbH| 2/9/2011 1
  17. 17. 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 17Confidential sones GmbH| 2/9/2011 1
  18. 18. Vorteile von Graphdatenbanken / 4 – Weitere Vorteile  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 18Confidential sones GmbH| 2/9/2011 1
  19. 19. 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  … 19Confidential sones GmbH| 2/9/2011 1
  20. 20. 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)  … 20Confidential sones GmbH| 2/9/2011 1
  21. 21. sones GraphDB / 1 - Überblick  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 21Confidential sones GmbH| 2/9/2011 1
  22. 22. sones GraphDB / 2 – Property Hypergraph Edge Person Freund Bob ID = 2 seit : 2009/09/21 Hyperedge Alter = 23 Alice SET<Person> Freunde ID = 1 SetMaxNumber : 12 Alter = 21 Hyperedge-Properties Person Freund Carol ID = 3 seit : 2010/04/11 Alter = 20 22Confidential sones GmbH| 2/9/2011 1
  23. 23. sones GraphDB / 3 – Graph Query Language // 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‘) 23Confidential sones GmbH| 2/9/2011 1
  24. 24. sones GraphDB / 4 – Live Demo Demo 24Confidential sones GmbH| 2/9/2011 1
  25. 25. Kontakt Henning Rauch Head of R&D henning@sones.com Xing: Henning_Rauch Twitter: cosh23 sones GmbH Schillerstraße 5 04109 Leipzig +49-341-3929680 25Confidential sones GmbH| 2/9/2011 1

×