Einführung in Neo4j
Hauptmerkmale
- Native Graph-Datenbank
- Speichert Daten in Form von Knoten, Kanten und deren Eigenschaften
- Optimiert für die Traversierung von Pfaden
- Optimiert für Graphalgorithmen
- On-Premise und als Cloud-Dienst verfügbar
Anwendungsbeispiele
- Lieferketten
- Materialflüsse
- Soziale Netzwerke
- Empfehlungssysteme
- Betrugserkennung
- Netzwerk- und IT-Management
Technologie
Implementierung
- Implementierung in Java, läuft auf der Java Virtual Machine (JVM)
- Datenspeicherung erfolgt in einem nativen Graphformat
- Vermeidet dadurch Verbundoperationen
- Unterstützung von Indizes für schnelle Suchen
- Unterstützt ACID-Transaktionen für Zuverlässigkeit und Datenkonsistenz
Modellierungskonzepte
- Knoten (Nodes): Repräsentieren Entitäten (z.B. Personen, Orte, Produkte)
- Kanten (Relationships): Repräsentieren Verbindungen oder Beziehungen zwischen Knoten (z.B. „kennt“, „gekauft“)
- Eigenschaften (Properties): Key-Value-Paare, die Details über Knoten und Kanten speichern
Abfragesprache Cypher
Überblick
- Deklarative Abfragesprache für Neo4j
- Ähnlich zu SQL, aber für Graphen optimiert
- Pfadbasierte Datenabfrage
Beispiel
MATCH (a:Person)-[:FREUND_VON]->(b:Person)
WHERE a.name = 'Alice'
RETURN b
Vorteile
- Lesbar und intuitiv gestaltet
- Pfadausdrücke / Pfadmuster