Zephyrnet-logo

Neo4J begrijpen: uitgebreide gids voor gegevensliefhebbers

Datum:

Introductie

s de ruimte voor gegevensbeheer wordt gedomineerd door relationele databases (RDBMS); daarom is de standaardopslag RDBMS wanneer ons wordt gevraagd om een ​​hoeveelheid gegevens op te slaan. Maar nu kunnen we niet zo denken, omdat we een stortvloed aan ongestructureerde of semi-gestructureerde gegevens hebben, waarvoor betrouwbare technologie nodig is. Veel alternatieve oplossingen die op de markt beschikbaar zijn, blijken beter te zijn dan relationele databases bij het oplossen van specifieke categorieën problemen. Neo4j is zo'n database; het is 's werelds toonaangevende open-source Graph Database die gegevens opslaat in de vorm van knooppunten en relaties. Deze zeer schaalbare en schemavrije (NoSQL) database is ontwikkeld met behulp van Java-technologie.

leerdoelen

Dit is wat we zullen leren door deze handleiding grondig te lezen:

  • Een gemeenschappelijk begrip van grafische databases en hoe ze verschillen van relationele databases.

  • Kennis van de graafgerelateerde termen, dwz knopen en relaties.

  • Een goed begrip van de Neo4j en zijn speciale functies.

  • Cypher Query Language begrijpen om te communiceren met Neo4J en de Neo4J-omgeving instellen om CQL-query's uit te voeren.

  • Inzicht in het creëren van verschillende soorten knooppunten en relaties met behulp van CQL in Neo4J.

Over het algemeen zullen we door het lezen van deze gids een uitgebreid begrip krijgen van Neo4J en CQL om gegevens op te slaan en daarmee te communiceren. We zullen worden uitgerust met de kennis en het vermogen om grafische databases effectief te gebruiken.

Dit artikel is gepubliceerd als onderdeel van het Data Science-blogathon.

Inhoudsopgave

  1. Duiken in de basisvoorwaarden van Neo4J
    1.1. Wat is een grafiekdatabase?
    1.2. Wat is Node?
    1.3. Wat is een relatie?
  2. De functies aangeboden door Neo4J
  3. Wat is Cypher Query Language (CQL)?
  4. Neo4J-omgeving opzetten
    4.1. De server starten
  5. Knooppunten maken in Neo4J
  6. Relaties creëren in Neo4J
  7. Conclusie

Duiken in de basisvoorwaarden van Neo4J

Neo4j - Snelgids

Bron: www.tutorialspoint.com

Wat is een grafiekdatabase?

In dit technische tijdperk zijn de meeste gegevens aanwezig in de vorm van de relatie tussen meerdere objecten, en soms wordt de relatie waardevoller dan de gegevens.

Relationele databases sla gegevens op in de vorm van een tabel omdat de gegevens zeer gestructureerd zijn en gemakkelijk in rijen en kolommen kunnen worden ingepast. Relationele databases slaan hetzelfde type gegevens op, maar ze kunnen de relatie tussen de gegevens niet verklaren in de mate waarin een grafische database dit verklaart.

Wat is een grafiekdatabase? {Definitie, gebruiksscenario's en voordelen} | Neo4J

Bron: phoenixnap.com

Aan de andere kant zijn grafische databases in staat relaties op te slaan als eersteklas entiteiten. De term "grafiek" in een grafiekdatabase specificeert de grafische weergave van een reeks objecten waarbij een aantal objecten door middel van links met elkaar zijn verbonden. Elke grafiek bestaat uit twee elementen: ten eerste is het knooppunt (hoekpunten) en ten tweede is de relatie (rand).

Een grafiekdatabase wordt gebruikt om de gegevens in de vorm van een grafiek te modelleren, dwz in de vorm van knooppunten en relaties. Laten we de termen knooppunt en relatie in detail begrijpen!

Een entiteitsknooppunt in een grafiek geeft een object weer met een of meer eigenschappen die nul of meer labels kunnen hebben. Over het algemeen is een knooppunt een label of naam voor entiteiten of gegevensrecords in een grafiek. We kunnen bijvoorbeeld een Node maken met het label/de naam Employee, Student, Company, User, Person, Technology, etc.

A knooppunt kan een willekeurig aantal gegevenswaarden hebben die bekend staan ​​als Properties, en vergelijkbare knooppunten kunnen ook verschillende eigenschappen hebben. Een persoon met de naam Michel werkt bijvoorbeeld voor Microsoft, Jennifer werkt voor Neo4J en Justin werkt voor geen enkel bedrijf. Dus Michel en Jennifer hebben respectievelijk een eigenschap 'works' en een waarde Microsoft en Neo4J, maar Justin zal deze eigenschap 'works' niet hebben; dit is mogelijk in Neo4J omdat het een schemavrije database is.

Neo4J

Bron: neo4j.com

Wat is een relatie?

Een relatie geeft de associatie van knooppunten weer met aanvullende beperkingen voor het vereisen van zowel een begin- als een eindknooppunt. We hebben relaties nodig om de knooppunten te verbinden, die ons vertellen hoe een gegevensrecord is verbonden. Bijvoorbeeld: Jeniffer houdt van grafieken, of Jeniffer werkt voor Neo4J. Ook kan een relatie eigenschappen hebben; Zo is Jennifer al sinds 2018 bevriend met Michel.

Enkele veelvoorkomende voorbeelden van Graph Databases zijn Neo4J, Oracle NoSQL Database, HypherGraphDB, OrientDB, AllegroGraph, GraphBase en InfiniteGraph.

De functies aangeboden door Neo4J

Neo4j, netwerkverkenning en optimalisatie 4 Java is de meest bekende graph-database managementsysteem dat wordt gebruikt om de gegevens weer te geven in de vorm van grafieken. In plaats van het ouderwetse formaat van rijen en kolommen te gebruiken om gegevens op te slaan, kan Neo4J de gegevens opslaan in de vorm van knooppunten en relaties. Het wordt meestal gebruikt in databasebeheersystemen wanneer we veel onderling verbonden relaties hebben of meerdere verbindingen hebben tussen knooppunten.

Neo4J is een schema-optioneel Databasemanagementsysteem wat betekent dat we geen vooraf gedefinieerd schema nodig hadden om de relationele of niet-relationele gegevens in Neo4J op te slaan. Met betrekking tot het beheer van netwerkgegevens is Neo4J de meest geschikte technologie omdat het niet nodig is om primaire sleutel- of externe sleutelbeperkingen op te stellen voor gegevens, en we kunnen elke relatie tussen alle knooppunten toevoegen. Enkele van de gemeenschappelijke gebieden waar Neo4J bewezen heeft als het meest geschikte databasebeheersysteem, zijn onder meer fraudedetectie, netwerkdiagrammen, real-time productaanbevelingen en op grafieken gebaseerde zoekopdrachten van digitale middelen.

Bijzonderheden van Neo4J

Hieronder staan ​​​​de opvallende kenmerken van Neo4j, die bepalen waarom Neo4J een van de beroemde NoSql-grafiekdatabases is.

Algemene kenmerken van Neo4J:

Naast de bovenstaande functies heeft Neo4J enkele algemene kenmerken die ons dwingen om deze grafische database te gebruiken om onze projecten te bouwen. Enkele belangrijke kenmerken zijn: -

  • Neo4J ondersteunt UNIEKE beperkingen om de redundantie van gegevens te verwijderen.

  • Neo4J ondersteunt native grafische opslag met Native GPE (Graph Processing Engine).

  • Met Neo4J kunnen we de querygegevens ook exporteren naar het JSON-bestandsformaat en het XLS-bestandsformaat.

  • Het grootste nadeel van het gebruik van SQL-achtige talen is de complexiteit van Joins. Om gerelateerde of verbonden gegevens in een relationele database op te halen, moeten we joins gebruiken, waardoor de query's erg complex en moeilijk te schrijven zijn. Maar in Neo4J hebben we geen complexe joins nodig omdat het een grafische database is en alle knooppunten al zijn verbonden. We kunnen dus gemakkelijk de details van het aangrenzende knooppunt of de relatie ophalen zonder joins te gebruiken.

Wat is Cypher Query Language (CQL)?

Cypher is een krachtige declaratieve querytaal voor het matchen van patronen die wordt aangeboden door Neo4j om te communiceren met de gegevens die zijn opgeslagen in de database. Cypher gebruikt ASCII-kunst syntaxis voor het weergeven van grafieken in de uitvoer. Het is een heel gemakkelijk te leren taal en stelt iemand in staat om relaties tussen gegevens te creëren en op te halen zonder moeilijke vragen zoals Joins te gebruiken. CQL volgt SQL-achtige syntaxen, die erg gemakkelijk zijn en ook beschikbaar zijn in een door mensen leesbaar formaat.

ASCII-Art-syntaxis: De ASCII-Art syntaxis wordt door Neo4J gebruikt om patronen te maken en grafieken weer te geven.

(A)-[:works_for]->(B)

  • De kleine haakjes "( )" worden in de Neo4j gebruikt om de dataknooppunten weer te geven.

  • Het pijlsymbool ” -> “ wordt gebruikt om de relatie te definiëren.

  • De vierkante haken "[ ]" worden in Neo4J gebruikt om het type relatie tussen de knooppunten weer te geven, zoals [:works_for]

Dus we kunnen het bovenstaande decoderen ASCII-Art-syntaxis aangezien A en B twee aan elkaar gerelateerde knooppunten zijn waar A voor B werkt.

Om de Cypher-query's voor het maken van databases uit te voeren, moeten we eerst de Neo4J-omgeving op onze pc of laptop installeren en instellen. Laten we daarmee haasten!

Neo4J-omgeving opzetten

Volg de onderstaande stappen om de Neo4J op uw Windows-laptop te downloaden: -

Stap 1: Klik op de officiële site van Neo4J via de link hier, en het zal u naar de startpagina van de site leiden. Zoals hieronder getoond screenshot, klik gewoon op de downloadknop in de rechterbovenhoek van de pagina.

Neo4J

Stap 2: Nu bent u naar de daadwerkelijke downloadpagina gesprongen, waar twee downloadopties beschikbaar zijn: de community-editie en de enterprise-editie van Neo4j. U moet nu op de community-editie klikken om de Neo4J-software te downloaden.

Stap 3: Het zal beginnen met het downloaden van de communityversie van software die compatibel is met uw huidige besturingssystemen (bijvoorbeeld 64-bits of 32-bits). U kunt het gedownloade bestand met de naam "neo4j-community_windows-x64_3_1_1.exe" in uw downloadmap controleren.

Stap 4: Installeer dit ".exe"-bestand door de licentieovereenkomst te accepteren om de Neo4J-server te installeren.

U bent helemaal klaar met de software-installatie en kunt doorgaan met deze ingebouwde browser.

De server starten

Open de Neo4j-toepassing vanuit uw Windows-startmenu en maak/kies een database. Hier kiezen we de automatisch aangemaakte database met de naam "standaard. grafisch'.

Ga vervolgens naar URL [http://localhost:7474/browser/] in uw browser om toegang te krijgen tot de Neo4J. U kunt ook typen ": server verbinding” in het witte vak bovenaan de pagina en druk op de knop "afspelen" aan de rechterkant.

U kunt de standaard gebruikersnaam/wachtwoord (neo4j/neo4j) gebruiken om u aan te melden bij de database. Stel daarna een nieuw wachtwoord naar eigen keuze in. Nu kunt u de Cypher-query's uitvoeren in deze beschikbare omgeving.

Knooppunten maken in Neo4J

Zoals we al hebben besproken, is een knooppunt niets anders dan gegevens of een record in een grafische database. Om onze knooppunten met Cypher te maken, gebruiken we de CREATE-clausule. Met behulp van de CREATE-clausule kunnen we de volgende soorten knooppunten maken:

1. C

Om een ​​enkel knooppunt in Neo4j te maken, specificeert u de naam van het te maken knooppunt samen met de CREATE-instructie, en u kunt het beëindigen met een optionele puntkomma (;).

Syntaxis:-

MAKEN (node_name);

Voorbeeld:-

In de onderstaande schermafbeelding hebben we een knooppunt "persoon" gemaakt met behulp van Cypher Query Language.

MAKEN (persoon);
Een enkel knooppunt maken

Verificatie

Om de aanmaak van het knooppunttype te verifiëren, kunt u de volgende code uitvoeren:

WEDSTRIJD (n) RETOUR n

2. Meerdere knooppunten maken

Om meerdere grafiekknooppunten te maken, kunt u de create-clausule van Neo4j CQL gebruiken; het enige dat u hoeft te doen, is de namen doorgeven van de grafiekknooppunten die u wilt maken en ze scheiden met een komma.

Syntaxis:-

MAKEN (node1_name,node2_name);

Voorbeeld:-

In de onderstaande schermafbeelding hebben we twee knooppunten gemaakt, "persoon" en "gebruiker", met behulp van Cypher Query Language.

CREATE (persoon), (gebruiker);

Meerdere knooppunten maken

3. Een knooppunt maken met een label

In Neo4J kunnen we knooppunten met labels maken om de knooppunten te groeperen of te classificeren met behulp van labels.

Syntaxis:-

MAKEN (node_name:label_name);

Voorbeeld:-

In de onderstaande schermafbeelding hebben we een knooppunt "Einstein" gemaakt met het label "Scientist" met behulp van de CREATE-clausule van Cypher Query Language.

MAKEN (Einstein: Wetenschapper);

Een knooppunt maken met een label

4. Een knooppunt maken met meerdere labels

Hier kunnen we een enkel knooppunt met meerdere labels maken door de labels te scheiden met een dubbele punt ":"

Syntaxis:-

MAKEN (node_name:label1_name:label2_name:labeln_name);

Voorbeeld:-

In de onderstaande schermafbeelding hebben we een knooppunt "Einstein" gemaakt met de labels "Wetenschapper" en "Persoon" met behulp van de CREATE-clausule van Cypher Query Language.

MAKEN (Einstein: Wetenschapper: Persoon);

Een knooppunt maken met meerdere labels

5. Een knooppunt met eigenschappen maken

In Neo4J zijn eigenschappen de sleutel-waardeparen waarmee we de aanvullende informatie van het knooppunt kunnen opslaan of een knooppunt bewaart zijn gegevens. We kunnen de CREATE-clausule gebruiken om een ​​knooppunt met zijn eigenschappen te maken; we moeten deze eigenschappen specificeren, gescheiden door komma's binnen de accolades (bloem) "{ }."

Syntaxis:-

MAKEN (node_name:label_name {key1:value1,key2:value2,....});

Voorbeeld:-

In de onderstaande schermafbeelding hebben we een knooppunt "Einstein" gemaakt met het label "Wetenschapper" met eigenschappennaam, geboortedatum en stad met behulp van de CREATE-clausule van Cypher Query Language.

MAKEN (Einstein: Wetenschapper {naam:"Albert Einstein", Geboortedatum:"14-maart-1879"Land:"Duitsland");

Een knooppunt maken met eigenschappen

6. Het gemaakte knooppunt retourneren

In Neo4J kunnen we de RETURN-component met CREATE-instructie gebruiken om het nieuw/recent aangemaakte knooppunt te bekijken.

Syntaxis:-

CREATE (knooppuntnaam:labelnaam {sleutel1:waarde1,sleutel2:waarde2,....}) RETURN knooppunt;

Voorbeeld:-

In de onderstaande schermafbeelding hebben we het nieuw gemaakte knooppunt "Einstein" weergegeven.

Het gemaakte knooppunt retourneren

MAKEN (Einstein: Wetenschapper{naam:"Albert Einstein", Geboortedatum:"14-maart-1879" Land:"Duitsland")
TERUG Einstein;

Relaties creëren in Neo4J

Zoals we al hebben besproken, is een relatie niets anders dan een element dat aanwezig is in een grafiekdatabase om de knooppunten van een grafiek te verbinden. De relaties bepalen de richting, categorie en vormpatronen van de gegevens. We gebruiken de CREATE-clausule om relaties tussen knooppunten in Cypher te creëren. Met behulp van de CREATE-clausule kunnen we de volgende dingen maken:

1. Relaties creëren

In Neo4J kunnen we de CREATE-clausule gebruiken om de relatie tussen knooppunten te creëren. Het enige dat we hoeven te doen is de relatie tussen de vierkante haken "[ ]" specificeren op basis van de richting van de relatie die tussen het koppelteken "-" en de pijl "→" is geplaatst, zoals we kunnen zien in de onderstaande syntaxis.

Syntaxis:-

MAKEN (node1_name)-[:RelationshipType]->(node2_name)

Voorbeeld:-

Zoals te zien is in de onderstaande schermafbeelding, moeten we allereerst twee knooppunten maken, "Einstein" en "DE", met behulp van de create-clausule.

CREATE (Einstein: Scientist{name:”Albert Einstein”, Geboortedatum:”14-March-1879” }) CREATE(DE:Country:{name:”Germany”})

Relaties aangaan

Nu moeten we een relatie creëren met de naam "Scientist_OF" tussen deze twee knooppunten −

MAKEN (Einstein)-[r:Scientist_OF]->(DE)

Neo4J

Retourneer ten slotte beide knooppunten (Einstein en DE) om de gecreëerde relatie te zien.

TERUG Einstein, DE

Neo4J

2. Relaties creëren tussen bestaande knooppunten

In Neo4J kunnen we ook de relatie tussen de bestaande knooppunten creëren met behulp van de MATCH-component.

Syntaxis:-

MATCH (x:label1_name), (y:label2_name) WHERE x.name = "node1_name" EN y.name = "node2_name" CREATE (x)-[: Relationship_name]->(y) RETURN a,b

Voorbeeld:-

In dit voorbeeld creëren we de relatie tussen twee bestaande knooppunten, 'wetenschapper' en 'land'.

MATCH (x:Wetenschapper), (y:Land) WAAR x.name = "Albert Einstein" EN y.name = "Duitsland" CREATE (x)-[r: SCIENTIST_OF]->(y) RETURN x,y

Neo4J

3. Relaties maken met labels en eigenschappen

In Neo4J kunnen we de CREATE-clausule gebruiken om een ​​relatie met labels en eigenschappen te creëren.

Syntaxis:-

CREATE (node1_name)-[label_name:Relationship_Type {key1:value1, key2:value2, . . . n}]-> (knooppunt2_naam)

Voorbeeld:-

In de onderstaande schermafbeelding hebben we de relatie gemaakt tussen twee knooppunten "wetenschapper" en "land", samen met de eigenschappen van de relatie met behulp van Cypher Query Language.

MATCH (x:Scientist), (y:Country) WAAR x.name = "Albert Einstein" EN y.name = "Duitsland" CREATE (x)-[r: SCIENTIST_OF{Papers:4, Patents:50]->( y) RETOUR x,y

Neo4J

4. Een volledig pad maken

In Neo4j kunnen we een pad maken dat wordt gevormd met behulp van een continue relatie door de CREATE-clausule.

Syntaxis

CREATE p = (Node1_name {properties})-[:Relationship_Type]-> (Node2_name {properties})[:Relationship_Type]->(Node3_name {properties}) RETURN p

Voorbeeld:-

Laten we eerst het derde knooppunt maken, namelijk "Noble_Prize".

CREATE(NP:prijs:{naam:"Noble_Prize"})

Nu gaan we een volledig pad creëren tussen drie knooppunten, namelijk 'wetenschapper', 'land' en 'prijs'.

CREATE path=(Einstein{naam:"Albert Einstein"})-[:SCIENTIST_OF]->(DE {naam: "Duitsland"})-[: WINNER_OF]->(prijs {NP: "Noble_Prize"}) RETURN pad

Conclusie

In deze gids hebben we enkele van de belangrijke onderwerpen besproken die u zullen helpen bij het starten van uw carrière in data-analyse. Door deze praktische onderwerpen als referentie te gebruiken, kunt u het concept van Neo4J- en Graph-databases beter begrijpen, wat u zal helpen bij de voorbereiding op interviews en het tempo bepaalt om een ​​data-analist, ontwikkelaar, datawetenschapper, enz. te worden. De belangrijkste lessen uit deze datablogs zijn -

  1. We bespraken grafische databases, die nodig zijn wanneer we onze gegevens opslaan in de vorm van knooppunten en relaties.

  2. Hoewel we veel databases hebben, staat Neo4J bekend om zijn unieke kenmerken zoals flexibel schema, acid-eigenschappen, geen joins, enz.

  3. Zoals SQL wordt gebruikt om te communiceren met relationele databases, wordt Cypher Query Language (CQL) gebruikt om te communiceren met Neo4j. Het is een krachtige declaratieve querytaal voor het matchen van patronen die samenwerkt met onze grafische database.

  4. Ten slotte bespraken we verschillende praktische vragen van CQL om knooppunten en relaties te creëren.

 De in dit artikel getoonde media zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt.

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?