Diese Webseite nutzt nur technisch notwendige Cookies.

Grafendatenbank GUIDE Neo4j Tutorial + Definition erklärt

Graphendankenbank

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

GrafenRelational
Konten entspricht einem Objekt in der DatenbankZeile
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 ObjektenSchlüssel-Konzeption mit Primär- und Fremdschlüssel
Datentypen spezifizieren Konten und VerbindungenDatentypen 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.

  1. Melde Dich bei Neo4j an, um die ZIP zu downloaden 00 attend for Neo4j
  2. Downloade die 500 MB+ ZIP 01 Download Neo4j
  3. Gehe durch den grafischen Installer 02 Nach der Installation von Neo4j
  4. Öffne PowerShell mit Admin Rechten und gebe ein
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
  5. Starte Neo4J
  6. Erstelle einen Graf 03 Erstelle ein Graf
  7. Starte den Graf (1 Minute)
  8. Wechsle zu die  Abfrage-Ansicht des Neo4J Browsers 04 Start den Graph04 Start den Graf
  9. Gebe folgenden Befehl an, um ein Konto zu erstellen
    CREATE (p:Person{name:"steffen"})
    RETURN p
  10. Erstelle eine Beziehung mit
    CREATE (p:Person{name:"steffen"}),(k:Person{name:"mark"}),
    (p)-[:kennt]->(k)
    RETURN p,k
  11. 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

Kommentare 2

  • 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Jetzt
Abbonnieren

Erhalte Free
Security Kurs

Jeden Monat teile ich mit Mitgliedern
4 neue praxisnahe Tutorials (je 1000+ Wörter).


Trage Deine Mail, damit Du
Deine Coding + Hacking Skills erweitern kannst!