Das ist das ultimative Grafendatenbank-Tutorial für die Neo4j mit der notwendigen Praxis.
Lernen alles über Grafen und ihre Möglichkeiten.
Starten wir!
Warum brauche ich eine Grafendatenbank?
Die Welt der Datenbank scheint oft nur aus Tabellen zu bestehen, welche miteinander verknüpft sind. Sobald Du anfangst 3 Joins in einer Abfrage zu nutzen, fängt die Datenbank und der Server an Feuer zu spucken. NoSQL-Datenbanken wie eine Grafendatenbank sind die Rettung. Grafendatenbanken haben viele Anwendungsfälle, in denen sie den Tabelle überlegn sind:
- Nutzerprofile: Die sozialen Medien verwenden die Grafen, um die Beziehungen von Nutzern darzustellen. Die Realität sieht komplizierter aus. Ein Graf kann ohne Problem Patchwork-Familien und multiple Beziehungen darstellen.
- Universalität: Datenknoten müssen nicht nur Personen sein, sondern auch Unternehmen, Produkte oder Orte. Eine Person zeigt eine Verbindung (präferieren, beisitzen oder zugehörig) zu diesen Objekten. Diese kann ein Graf mit unterschiedlichen Typen von Verbindungen darstellen.
- Shopping-Empfehlungen: Webseiten Elemente wie „Kunden kauften auch …“ auf vielen E-Commerce-Webseiten nutzen Grafen, um Zusammenhänge zwischen Produkten darzustellenWenn Du Dir ein Smartphone käufst, kaufen viele andere Smartphone-Käufer die passen Schutzfolie zum gleichen Modell. Diese Komplementär-Produkte kauft ein Smartphonenutzer, weil diese das neu gekautes Produkt vor Kratzern schützt. Solche Zusammenhänge kann ein Graf gut darstellen.
- Empfehlungssysteme für Medien: Wenn Du nicht weißt, was Du auf YouTube als Nächstes schauen möchtest, schlägt die YouTube die Videos vor, die andere gesehen haben und ähnliche Interessen wie Du haben wie Du.
- Beschreibung von komplexen Zusammenhängen: In Chemie, Physik und anderen Naturwissenschaften finden die Grafen eine Anwendung.
- Navigationssysteme: Eine Grafendatenbank kann alle Wege und Straßen dieser Welt fassen. Mit Grafen und großen Matrizen rechnen die Navigationssysteme, um Dir den schnellsten Weg von A nach B zu sagen.
Konzept & Lösungsansatz: Grafendatenbank
Was ist ein Graf?
Datenbank für Grafen – besser oder schlechter als Tabellen?
Was ist eine Grafendatenbank
Grafen bestehen nicht aus Tabellen, sondern aus den Datenkonten (engl. node) mit den Eigenschaften (engl. properties) und den Kanten verbinden die Datenkonten miteinander (Verbindungen). Grafen speichern Daten von vielen Praxis-Anwendungen effizienter als die klassischen Tabellen.
Die Darstellung von komplexen Zusammenhängen und Verbindung zwischen den Objekten, die relationalen Datenbanken zu einem Chaos an Spalten und Indizes führen
Grafen – Relational übersetzt
Grafen | Relational |
Konten entspricht einem Objekt in der Datenbank | Zeile |
Schema bietet einen losen Rahmen für die Konten, dieser gelten als optional. | Tabelle |
Eigenschaften beschreiben die Konten. Diese können von Knoten zu Knoten variieren, obwohl diese vom gleichen Typ sind. | Spalteneigenschaften |
Beziehungen (Kanten) beschreiben die Verbindungen zwischen den Objekten | Schlüssel-Konzeption mit Primär- und Fremdschlüssel |
Datentypen spezifizieren Konten und Verbindungen | Datentypen spezifizieren die Spalten in eine Tabelle. |
Grafen Akrobatik in der Informatik
… Informatiker machen mit Grafen z. B.
- Kürzeste Wege finden: Informatiker nutzen Grafen, um den Internet-Verkehr bzw. die Datenpakete durch das Internet zu leiten (engl. routen). Auch im echten Leben stellen die Informatiker die Straßen unserer Welt in Grafen mit einer Länge dar, welche dabei helfen den schnellsten Weg nach Hause zu finden.
- Mustererkennung: Social-Media-Plattformen nutzen ihre Grafendatenbank, um gesellschaftliche Strukturen und Bewegungen analysieren, die sich als Muster in den Datenbanken zeigen.
- Transformation: Die Grafen eignen sich, um selektiv Daten zu verändern. Wie schon erwähnt sind Joins sehr aufwendig für normale Datenbanken. Grafen haben damit kein Problem.
Andere NoSQL-Datenbanktypen
- Key-Value Datenbanken: Redis als eine In-Memory-Datenbank speichert simple Schlüssel mit dessen Werte ab z.B. Spielstände für Shooter-Games mit hoher Performance.
- Spalten basierte Datenbanken: Relationalen Tabellen basieren auf den Zeilen.
- Hierarchische Datenbanken: IBM entwickelte einen neuen Datenbank-Typ IMS und GIS, die wie ein Grafendatenbank Beziehungen zueinander herstellen. Hierarchische Datenbanken unterschieden sich von den Grafen, weil dieses keine Querverbindungen zeigen.
- Relationale Datenbanken: MySQL basiert auf der zeilenweisen Struktur werden in vordefinierten Spalten Werte eingetragen
- Objektorientierte Datenbanken denken konsequent das Konzept der Objektorientierung weiter. Ein Java-Programm kann ganze Objekte mit Attributen und Funktion in einem Speicher ablegen, ohne diese zu konvertieren oder zu verändern.
Basics: Neo4j verstehen
Wenn Du zum ersten Mal mit Grafen zu tun hast, dann laufen Dir eine Menge unbekannter Begriffe über den Weg.
Dieser Abschnitt soll die wichtigsten Konzepte / Begriffe so kurz wie möglich erklären.
Lese Dir den folgenden Abschnitt durch, um den Praxis-Teil besser zu verstehen.
Was ist Neo4j?
Neo4j als eine Grafendatenbank basiert auf der Sprach der Sprache Cypher. Neo4j können Interessierte als Open Source downloaden und als Datenspeicher für Ihr Projekt verwenden. Die Abfragesprache extrahiert Datenpunkt aus der Tabelle mit ihren Verbindungen.
Cypher basiert auf einem anderen Schema und Denken und zeigt nur geringfügig Parallelen zu SQL
Grafen in einer Datenbank erklärt
Grafen bestehen aus Knoten, Beschriftungen, Zusammenhänge / Beziehungen, Eigenschaften
- Konten stellten 1 Einheit, bzw. 1 Reihe in der Tabelle dar. Die Knoten könne sich stark in Inhalt, Form, Große und Struktur voneinander unterscheiden.
- In Neo4j entsprechen Beschriftungen den Typisierungen von Strings und Zahlentypen in Java oder TypeScript.
- Die Beziehungen zwischen zwei Knoten können die Beschriftungen gruppieren und typisieren. Separate Eigenschaften können die Beziehungen näher beschreiben.
1. Eine Tastatur „gehört“ zu diesem Arbeitsplatz (Beschriftung: gehört)
2. Ein Wagon bildet einen Zug (Beschriftung: bildet)
Grafen ermöglichen Beziehung zu sich selbst.
Elon Musk managt Elon Musk (Schleife für CEO)
Die Eigenschaften entsprechen in der objektorientierten Programmierung den Attributen einer Klasse. Diese kann Neo4j die Typen Nummer, Strings und Wahrheit zu weisen.
Coden: Ab in die Praxis
Jetzt wird’s ernst.
Wir erstellen mit diesen Schritten Deinen ersten Grafen.
Solltest Du stecken bleiben – dann schreibe einen Kommentar mit Deiner Fehlermeldungen unten in das Kommentar-Feld.
Neo4J wollen wir im nächsten Abschnitt auf Deinem Computer installieren.
Für das Testen reicht ein lokales Projekt aus. Wenn Du mehr mit Grafen anfangen möchtest, empfehle ich Dir in die Cloud zu wechseln. Du kannst in der Cloud viel besser skalieren als auf einem eigenen Server.
- Melde Dich bei Neo4j an, um die ZIP zu downloaden 00 attend for Neo4j
- Downloade die 500 MB+ ZIP 01 Download Neo4j
- Gehe durch den grafischen Installer 02 Nach der Installation von Neo4j
- Öffne PowerShell mit Admin Rechten und gebe ein
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned - Starte Neo4J
- Erstelle einen Graf 03 Erstelle ein Graf
- Starte den Graf (1 Minute)
- Wechsle zu die Abfrage-Ansicht des Neo4J Browsers 04 Start den Graf
- Gebe folgenden Befehl an, um ein Konto zu erstellen
CREATE (p:Person{name:"steffen"})
RETURN p - Erstelle eine Beziehung mit
CREATE (p:Person{name:"steffen"}),(k:Person{name:"mark"}),
(p)-[:kennt]->(k)
RETURN p,k - oder noch lustiger:
CREATE (p:Person{name:"steffen"}),(k:Person{name:"mark"}),
(p)-[:kennt]->(k),
(k)-[:hört]->(p),
(p)-[:bestimmt]->(p)RETURN p,k
5. Kapitel
Erweiterungen: Wie kann ich den Grafen erweitern?
Hast Du noch nicht genug von dem Grafendatenbank-Tutorial?
Dann füge andere Grafen hinzu.
Fazit: Gratulation zu Deinem ersten Grafen
Grafen sind sehr vielseitig einsetzbar und skalieren gut.
Probiere Dich aus.
- Schreibt von Fehlermeldungen, die auftreten …
- Kritik mit Verbesserungsvorschlägen für das Tutorial …
- Installationsprobleme mit Neo4j …
Danke. Ich freue mich auf Euer Feedback
Credits zu den verwendeten Bildern
Icons made by Vectors Market from www.flaticon.com is licensed by CC 3.0 BY
Guten Tag, bieten Sie auch Nachhilfe in Neo4j an ? Ich habe Probleme beim Importieren von Xml Dateien und verstehe den APOC Plugin nicht anzuwenden.
Liebe Grüße
Hallo,
ich biete keine „Nachhilfe“ an, aber wenn sie die das Problem genauer beschreiben, kann ich vielleicht ein paar Hinweise geben.