Nodes, Relationships, and Properties
Understand the building blocks of a graph: nodes (entities), relationships (connections), and properties (attributes) that describe them.
Nodes, Relationships, and Properties is a free Neo4j Graph Database Fundamentals lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Neo4j Graph Database Fundamentals learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Graph Building Blocks
Welcome to Cypher Fundamentals! To query a graph database like Neo4j, you first need to understand its core components.
Think of graphs as powerful ways to model real-world connections. They are built from three main elements:
- Nodes: Your entities or 'things'
- Relationships: How those 'things' are connected
- Properties: Descriptors for nodes and relationships
Nodes: The Nouns of Your Graph
Nodes are the fundamental entities in your graph. They represent real-world objects, people, places, or concepts.
For example, in a social network, 'Alice' or 'New York' would be nodes. In an e-commerce graph, 'Product A' or 'Customer B' would be nodes.
Nodes can have labels to categorize them, like 'Person' or 'City'.
Node Labels: Categorize Your Data
Labels classify nodes into groups. A node can have one or more labels. This helps you organize and query your graph efficiently.
For example, a node representing 'Alice' might have the label :Person. A node for 'Neo4j' might have the label :Database.
Let's create a simple node with a label:
CREATE (:Person {name: 'Alice'})Properties: Descriptive Attributes
Properties are key-value pairs that describe nodes or relationships. They store specific details about an entity or connection.
For a :Person node, properties could be name: 'Alice', age: 30, or city: 'London'. For a :Product node, properties might be price: 19.99 or category: 'Electronics'.
Here's how to create a node with multiple properties:
CREATE (:Movie {
title: 'Inception',
releaseYear: 2010,
genre: 'Sci-Fi'
})Relationships: Connecting the Dots
Relationships define how nodes are connected to each other. They are the 'verbs' of your graph, showing interactions or associations.
Unlike relational tables where connections are implicit via foreign keys, graph relationships are explicit, first-class citizens.
Relationships always have a type and a direction.
Relationship Types: What's the Link?
Every relationship has a type, which describes the nature of the connection. For instance, 'FRIENDS_WITH', 'ACTED_IN', or 'OWNS'.
Relationship types are crucial for understanding and querying your graph. They help you specify exactly what kind of connection you're looking for.
Let's create two nodes and connect them with a relationship:
CREATE (p1:Person {name: 'Bob'})
CREATE (p2:Person {name: 'Charlie'})
CREATE (p1)-[:FRIENDS_WITH]->(p2)Relationship Direction Matters
Relationships are directional, meaning they flow from one node to another. This direction is important for understanding the context of the connection.
(Alice)-[:LIKES]->(Bob): Alice likes Bob(Bob)-[:LIKES]->(Alice): Bob likes Alice
The arrows --> and <-- indicate direction. If direction isn't specified (--), the relationship is considered undirected in a query, but it's always stored with a direction.
Properties on Relationships Too!
Just like nodes, relationships can also have properties. These properties describe the relationship itself, not the connected nodes.
For example, a [:WORKS_FOR] relationship might have a startDate: '2020-01-15' property. A [:RATED] relationship could have a score: 5 property.
Here's an example of adding properties to a relationship:
CREATE (u:User {name: 'Eve'})
CREATE (p:Product {id: 'P123'})
CREATE (u)-[:PURCHASED {
date: '2023-10-26',
quantity: 2
}]->(p)Visualizing a Graph Pattern
Let's see how these components look together in a simple graph structure. Imagine a person reviewing a movie:
(Person)-[:REVIEWED {rating: 4}]->(Movie)
Here:
(Person)and(Movie)are nodes, with their respective labels.[:REVIEWED]is the relationship type, showing direction.{rating: 4}is a property on theREVIEWEDrelationship.
This structure is incredibly flexible for modeling complex domains!
Check Your Understanding
What are the three fundamental building blocks of a graph database like Neo4j?
Recap: Graph Essentials
Great job! In this lesson, you learned about the foundational elements of a graph database:
- Nodes are your entities, categorized by labels.
- Relationships connect nodes, defined by a type and direction.
- Properties are key-value pairs that add descriptive details to both nodes and relationships.
Understanding these concepts is key to building and querying powerful graph models. Next, we'll dive deeper into creating actual data using Cypher's CREATE clause!
Frequently asked questions
Is the “Nodes, Relationships, and Properties” lesson free?
Yes — the full text of “Nodes, Relationships, and Properties” is free to read here on the web, and the Neo4j Graph Database Fundamentals course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Neo4j Graph Database Fundamentals course, upgrade to CoddyKit PRO.
What will I learn in “Nodes, Relationships, and Properties”?
Understand the building blocks of a graph: nodes (entities), relationships (connections), and properties (attributes) that describe them. You practise Neo4j Graph Database Fundamentals with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Neo4j Graph Database Fundamentals?
No prior experience is required. Neo4j Graph Database Fundamentals on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Nodes, Relationships, and Properties” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Neo4j Graph Database Fundamentals lesson?
Yes. Every Neo4j Graph Database Fundamentals lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Nodes, Relationships, and Properties
- Creating Data with Cypher CREATE
- Matching Patterns with Cypher MATCH
- Returning and Shaping Results with RETURN