Einführung in Graphdatenbanken und Neo4J

Wir haben damit begonnen, Daten in Tabellen und relationalen Datenbanken zu speichern. Manchmal waren diese Tabellen für Menschen lesbar, aber sobald Sie die Daten normalisieren, um Duplikate und Inkonsistenzen zu beseitigen, begannen viele Felder, automatisch generierte numerische Fremdschlüssel zu verwenden, und Ihre Daten werden ohne komplizierte Join-Abfragen schwer zu verstehen und zu verwalten.

Relationale Datenbanken:

relationale db.jpg
Beispiel einer relationalen Datenbank

Aber relationale Datenbanken kamen mit Schlüsselfunktionen, der ACID-Unterstützung, die dafür sorgte, dass Sie sich darauf verlassen konnten, dass die Daten, sobald sie festgeschrieben wurden, für zukünftige Abfragen zugänglich sein würden. Es ist jedoch teuer, Daten zu finden, daher fügen Datenbankdesigner Indizes hinzu, die die Suche beschleunigen, aber wenn wir eine Reihe von Joins durchführen, müssen wir Indexsuchen zur Abfragezeit für jeden einzelnen Join durchführen. Das ist in Ordnung, wenn wir in nur eine Handvoll Tabellen normalisieren, aber was sind 20 Tabellen? Nun, wirklich teuer und es wird immer teurer, wenn Ihre Datengröße wächst.

NoSQL-Datenbanken:

NOSQL.png
Beispiel für NOSQL-Datenstrukturen

In den letzten zehn Jahren kam die Cloud hinzu und die Dinge wurden etwas düsterer, ein bisschen weniger komfortabel. Denn es hat eine Datenexplosion gegeben. Exabytes und Exabytes an Daten werden generiert. Was machen wir damit. Wir können es sicher auf der Festplatte speichern, aber wie machen wir es einfach, es abzufragen? Können unsere Datenbanktechnologien mithalten? Relationale Datenbanken könnten diese Datenmenge sicherlich nicht bewältigen. so nahm Innovation Fahrt auf und die noSQL-Revolution war geboren. Bei der NOSQL-Revolution ging es darum, die Abfrage von immer mehr Daten zu ermöglichen. Um dies zu tun, mussten Datenbankdesigner Kompromisse diskutieren, welche Kompromisse könnten sie eingehen, die unsere Datenbanken schneller machen würden? ACID war die erste Anforderung, die weg musste.
Datenbank-Designer haben es aus der Tür geworfen, nach Millionen von Millionen Transaktionen ist es wahrscheinlich in Ordnung, hier und da ein paar Daten zu verlieren.

Warum Graphdatenbanken?:

fig1.jpg
Beispiel einer Graph-Datenbankstruktur

Die Erfahrung der Entwickler war ebenfalls entscheidend. Wie könnten wir es einfacher und einfacher machen, mit großen Datenmengen zu interagieren? Wir mussten verschiedene Schnittstellen für Entwickler erfinden oder zumindest populär machen. Die einfachste davon ist die Schlüssel-Wert-Schnittstelle. Sie speichern einen Wert mit einem entsprechenden Schlüssel, später können Sie diesen Schlüssel verwenden, um auf den Wert zuzugreifen. Aber der Wert ist undurchsichtig, er ist für die Datenbank bedeutungslos. Aber was, wenn Sie keine undurchsichtigen Werte wollen? Was ist, wenn Sie möchten, dass die Datenbank die Werte indiziert und die Abfrage basierend auf dem Kontext vereinfacht? Gut, dass es um die Dokumentendatenbank geht. Es ist ein Schlüssel, der ein Dokument nachschlägt, aber Sie können das Dokument auch basierend auf dem Kontext nachschlagen, der zum schnelleren Abrufen indiziert ist. Was wäre, wenn wir uns weniger um die diskreten Datenbits und mehr um die Beziehung zwischen unseren Daten kümmern würden? Ein Dokument kann auf ein anderes verweisen, aber dies ist aus Entwicklersicht nicht sehr leistungsfähig oder benutzerfreundlich. Dann brauchen wir Graph-Datenbanken.

neo4j.jpg
Neo4J ist eine der beliebtesten Graphdatenbanken

Graph-Datenbanken verwenden einen beziehungsorientierten Ansatz zum Speichern und Abfragen Ihrer Daten. Sie speichern Daten auf eine viel logischere Weise, eine Weise, die die reale Welt darstellt und die Darstellung, Auffindbarkeit und Wartbarkeit von Datenbeziehungen priorisiert. Die Datenintegrität ist jedoch für viele Entwickler wichtig, die sich um Datenbeziehungen kümmern, daher wurde die ACID-Eigenschaft in mindestens eine nosql-Datenbank namens Neo4J zurückgebracht. Dies ermöglicht uns Neo4J als Transaktionsdatenspeicher. Speichern Ihrer wichtigsten Geschäftsdaten.

Graphdatenbanken bieten Entwicklern ein intuitiveres Datenmodell, schnellere Abfragen und eine bessere Agilität, um sich an Änderungen im Unternehmen anzupassen.

Anwendungsfälle von Graphdatenbanken:

Einige der Anwendungsfälle von Graphdatenbanken sind wie der Aufbau sozialer Netzwerke. Sie werden auch für viele Anwendungsfälle verwendet, von der Betrugserkennung über Echtzeitempfehlungen bis hin zu Netzwerk- und IT-Operationen und mehr.

Similar Posts

Leave a Reply

Your email address will not be published.