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
9
Confidential sones GmbH| 2/9/2011 1
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
10
Confidential sones GmbH| 2/9/2011 1
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
11
Confidential sones GmbH| 2/9/2011 1
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
12
Confidential sones GmbH| 2/9/2011 1
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
13
Confidential sones GmbH| 2/9/2011 1
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
14
Confidential sones GmbH| 2/9/2011 1
15. Vorteile von Graphdatenbanken / 1 – Abstraktion
Explizites Datenmodell
Direkte Abbildung realer Netzwerkstrukturen
Besseres Verständnis der Anwendungsdomäne
15
Confidential sones GmbH| 2/9/2011 1
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
16
Confidential sones GmbH| 2/9/2011 1
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
17
Confidential sones GmbH| 2/9/2011 1
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
18
Confidential sones GmbH| 2/9/2011 1
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
…
19
Confidential sones GmbH| 2/9/2011 1
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)
…
20
Confidential sones GmbH| 2/9/2011 1
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
22
Confidential sones GmbH| 2/9/2011 1
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‘)
23
Confidential sones GmbH| 2/9/2011 1