Neo4j
Grundlagen und einfache Erklärungen zu Neo4j und Graph-Datenbanken¶
Was ist eine Graph-Datenbank?¶
Eine Graph-Datenbank speichert Daten in Form von Knoten und Beziehungen.
- Knoten (Nodes): Stellen Objekte dar, wie z. B. Personen, Filme, Orte.
- Beziehungen (Relationships): Verknüpfen Knoten miteinander, z. B. "kennt", "mag", "arbeitet für".
- Eigenschaften (Properties): Speichern zusätzliche Informationen, z. B. Name, Alter, Titel.
- Labels: Beschreiben Kategorien von Knoten, z. B. :User, :Movie.
Wie funktioniert Neo4j?¶
- Daten werden mit einer speziellen Sprache namens Cypher hinzugefügt, abgefragt und verändert.
- Abfragen werden ähnlich wie SQL geschrieben, aber für Graphen optimiert.
Wichtige Grundlagen-Befehle in Cypher¶
1. Knoten erstellen¶
-CREATE erstellt einen neuen Knoten.
- :User ist das Label (Kategorie).
- {name: 'Alice', age: 30} sind die Eigenschaften.
2. Beziehung erstellen¶
--[:KNOWS]-> erstellt eine Beziehung vom Typ KNOWS zwischen zwei Knoten.
3. Daten abrufen¶
- Alle Knoten eines Labels anzeigen:
- Knoten mit Beziehungen abrufen:
Antworten zu den gestellten Fragen¶
1. Welche Informationen benötigt man für ein Diagramm?¶
- Knoten (z. B. Personen, Filme).
- Beziehungen (z. B. "kennt", "mag").
- Eigenschaften (z. B. Name, Alter).
- Labels (z. B.
:User,:Movie).
2. Braucht man einen Diagrammdatensatz für den Start?¶
Nein, Sie können die Daten selbst mit CREATE erstellen.
3. Richtig oder falsch:¶
- A. Neo4j kann nur mit Neo4j Desktop gestartet werden.
Falsch: Es gibt auch Neo4j Aura (Cloud) oder Neo4j Sandbox. - B. Die Anwendung zum Erstellen von Dashboards ist Neo4j Browser.
Richtig: Neo4j Browser ist das Haupttool zur Abfrage und Visualisierung. - C. Graph Data Science wird standardmäßig unterstützt.
Richtig: Es ist eine offizielle Funktion von Neo4j.
4. Cypher-Syntax analysieren:¶
- A.
MATCH (x:User) RETURN x.name
Gültig. Zeigt diename-Eigenschaft vonUser-Knoten. - B.
MATCH (x:User) RETURN x
Gültig. Gibt alle Informationen überUser-Knoten zurück. - C.
MATCH (:User) RETURN x.name
Ungültig.xist nicht definiert. - D.
MATCH (x:User)-[k:KNOWS]->(y:User) RETURN x, k, y
Gültig. Zeigt alleKNOWS-Beziehungen zwischenUser-Knoten. - E.
MATCH (x:User)-[:KNOWS]-(y) RETURN x, y
Gültig. SuchtKNOWS-Beziehungen in beide Richtungen.
Praxis: Daten erstellen und abfragen¶
Daten erstellen¶
// Personen und Filme erstellen
CREATE (a:User {name: 'Alice', age: 30})
CREATE (b:User {name: 'Bob', age: 25})
CREATE (c:Movie {title: 'Inception', year: 2010})
// Beziehungen hinzufügen
CREATE (a)-[:KNOWS]->(b)
CREATE (a)-[:LIKES]->(c)
CREATE (b)-[:LIKES]->(c)
Daten abfragen¶
// Alle Benutzer anzeigen
MATCH (u:User) RETURN u
// Benutzer und Beziehungen anzeigen
MATCH (a:User)-[r]->(b) RETURN a, r, b
// Benutzer, die denselben Film mögen
MATCH (a:User)-[:LIKES]->(m:Movie)<-[:LIKES]-(b:User)
RETURN a.name, b.name, m.title
Mit diesen Grundlagen können Sie eine eigene Datenbank aufbauen und verstehen, wie Neo4j funktioniert!