No-SQL Unit 4: Complete Concepts Guide
Unit 4: Graph Databases, Cypher, Graph Algorithms & Neo4j -> Generated and Prepared By Thiruselvan (ThiruXD)
1. Introduction to Graph Databases
1.1 What is a Graph Database?
A graph database is a type of NoSQL database that stores and represents data as a graph, using nodes, relationships, and properties. It is designed to efficiently manage and query highly connected data, where the relationships between entities are as important as the entities themselves.
1.2 Core Components of a Graph
| Component | Description | Examples |
|---|---|---|
| Nodes | Represent an entity or object; can have a label and properties | Person, Product, Company, City, Movie |
| Relationships | Represent a connection between two nodes; usually directed and has a type; can have properties | FRIEND_OF, WORKS_AT, LIKES, PURCHASED, LIVES_IN |
| Properties | Key-value pairs storing additional information about nodes or relationships | (name: "Alice", age: 25), (since: 2020) |
1.3 Example: Social Network
Person Node (Alice) Person Node (Bob)
Properties: Properties:
name: "Alice" name: "Bob"
age: 25 age: 27
city: "Bangalore" city: "Mumbai"
│ │
│ FRIEND_OF (since: 2020) │
└────────────────────────────────┘
│ │
│ LIVES_IN │ WORKS_AT
↓ ↓
City Node (Bangalore) Company Node (ABC Corp)
Properties: Properties:
name: "Bangalore" name: "ABC Corp"
country: "India" industry: "IT"
location: "Bangalore"1.4 In Simple Terms
Nodes = Things
Relationships = Connections
Properties = Details about things/connections1.5 Why Graph Databases?
Graph databases are ideal when:
- Relationships are first-class citizens — stored directly, not inferred via joins
- Highly connected data — social networks, recommendations, fraud detection
- Complex traversals — friends-of-friends, shortest paths
- Evolving schema — flexible, schema-optional
2. Relational Databases vs Graph Databases
2.1 Comparison Table
| Aspect | Relational Database | Graph Database |
|---|---|---|
| Data Model | Tables with rows and columns | Nodes (entities), relationships (edges), properties |
| Schema | Predefined schema (fixed structure) | Flexible schema (schema optional, can evolve) |
| Relationships | Represented using foreign keys and joins | First-class citizens (stored directly as relationships) |
| Best Suited For | Structured data with well-defined schema | Highly connected data with complex relationships |
| Query Language | SQL (MySQL, PostgreSQL, Oracle) | Graph query languages (Cypher, Gremlin, SPARQL) |
| Performance | Joins can be expensive for complex relationships | Fast traversal of relationships, efficient for connected data |
| Scalability | Scales well for large structured datasets | Scales well for highly connected, evolving data |
| Common Use Cases | Banking, ERP, inventory, transaction processing | Social networks, recommendation systems, fraud detection, knowledge graphs |
| Examples | MySQL, PostgreSQL, Oracle, SQL Server | Neo4j, Amazon Neptune, JanusGraph, ArangoDB |
2.2 Example: Student Data
Relational Database — Student Table:
| ID | Name | Age | Department |
|---|---|---|---|
| 1 | Alice | 23 | CSE |
| 2 | Bob | 24 | ECE |
| 3 | Carol | 22 | ME |
Graph Database — Student Graph:
Alice ──FRIEND_OF──→ Bob
│ │
│ STUDIES_AT │ STUDIES_AT
↓ ↓
ABC University ←───────┘2.3 In Simple Terms
“Relational databases store data in tables. Graph databases store data as connected entities, making relationships easier and faster to work with.”
3. Property Graph Model
3.1 What is the Property Graph Model?
The property graph model is a graph data model in which data is represented using nodes and relationships, and both nodes and relationships can have properties in the form of key-value pairs.
3.2 Nodes
- Represent entities or objects in the real world
- Can have one or more labels
- Contain a set of properties (key-value pairs)
- Examples: a person, a student, a course, a company
3.3 Labels
- A label identifies the type or category of a node
- A node can have a single label or multiple labels
- Labels help to group and query nodes
- Examples:
Student,Teacher,Course,Company - Example of multiple labels:
{Student:Scholar {name: "Alice"}}
3.4 Relationship Types
- A relationship type describes the nature of the connection between two nodes
- Relationships are usually directed (from one node to another)
- Can also have properties (key-value pairs)
- Examples:
ENROLLED_IN,FRIEND_OF,WORKS_AT,TEACHES,PURCHASED
3.5 Example: University Graph
:Student (Alice) :Course (NoSQL)
{id: 1, name: "Alice", age: 20} {id: 101, name: "NoSQL", credits: 4}
│ │
│ ENROLLED_IN (year: 2026) │ TAUGHT_BY (semester: "Fall 2026")
└─────────────────────────────────────┘
│ │
│ WORKS_AT (since: 2023) │
↓ ↓
:Company (ABC Corp) :Teacher (Dr. Kumar)
{id: 201, name: "ABC Corp", {id: 301, name: "Dr. Kumar",
industry: "IT"} department: "CSE"}3.6 Legend
| Symbol | Meaning |
|---|---|
| ○ | Node |
| → | Relationship (with direction) |
| {…} | Properties (key-value pairs) |
:Label | Node label |
3.7 Key Takeaway
In the property graph model, labels tell us what a node is, while relationship types tell us how two nodes are connected.
4. Cypher — Query Language for Neo4j
4.1 What is Cypher?
Cypher is a declarative, SQL-like query language used in Neo4j to create, read, update, and delete graph data.
4.2 Cypher Pattern Syntax
(a:Label)-[r:RELATIONSHIP_TYPE]->(b:Label)| Element | Meaning |
|---|---|
( ) | Nodes |
[ ] | Relationships |
-> | Outgoing direction |
<- | Incoming direction |
:Label | Node label |
:RELATIONSHIP_TYPE | Relationship type |
{key: value} | Properties |
4.3 CREATE Example
Create two Person nodes and a FOLLOWS relationship:
CREATE (a:Person {name: 'Alice', age: 25}),
(b:Person {name: 'Bob', age: 27})
CREATE (a)-[:FOLLOWS]->(b)
RETURN a, b;Explanation:
- Creates two nodes with the label
Personand propertiesnameandage - Creates a directed relationship of type
FOLLOWSfrom Alice to Bob - Returns the created nodes
Graph Result:
:Person (Alice) ──FOLLOWS──→ :Person (Bob)
name: "Alice" name: "Bob"
age: 25 age: 274.4 Key Points
CREATEis used to add new nodes and relationships- Nodes are labeled using
:Person - Properties are added as key-value pairs
- Relationships have a type, here
FOLLOWS - The arrow (
→) shows the direction (from Alice to Bob)
5. CREATE vs MERGE in Cypher
5.1 CREATE
- Always creates new nodes or relationships
- Does not check if the data already exists
- Can result in duplicate nodes/relationships if run multiple times
- Useful when you are sure the data does not exist
Example:
CREATE (p:Person {name: 'Alice', age: 25})
RETURN p;Run twice → Two separate nodes (duplicates):
:Person (Alice) :Person (Alice)
name: "Alice" name: "Alice"
age: 25 age: 255.2 MERGE
- Creates a node or relationship only if it does not exist
- If it exists, it matches the existing one
- Helps avoid duplicate data
- Commonly used to ensure uniqueness
Example:
MERGE (p:Person {name: 'Alice', age: 25})
RETURN p;Run twice → Only one node created:
:Person (Alice)
name: "Alice"
age: 255.3 Comparison Table
| Aspect | CREATE | MERGE |
|---|---|---|
| Behaviour | Always creates new data | Creates only if not exists; otherwise matches |
| Duplicate Data | Can create duplicates | Prevents duplicates |
| Use Case | When you want to always create a new node/relationship | When you want to ensure uniqueness |
| Result on Repeated Execution | Multiple identical nodes/relationships | Single node/relationship (existing one returned) |
5.4 Key Takeaway
“Use CREATE when you want to always create. Use MERGE when you want to create only if it doesn’t exist (otherwise match).”
6. Graph Traversal
6.1 What is Graph Traversal?
Graph traversal is the process of navigating through a graph by following relationships (edges) from one node to another to find connected nodes.
6.2 Example Graph: Social Network
Carol
↑
│ FOLLOWS
│
David ←─────── Alice ───────→ Bob
FOLLOWS (center) FOLLOWS6.3 One-Hop Traversal
Find the immediate neighbors (directly connected nodes) from a given node.
Cypher Query:
MATCH (a:Person {name: 'Alice'})-[:FOLLOWS]->(b:Person)
RETURN b;Result:
b
Bob
CarolFrom Alice, the one-hop traversal returns Bob and Carol (nodes directly connected to Alice).
6.4 Two-Hop Traversal
Find nodes that are two relationships away from a given node.
Cypher Query:
MATCH (a:Person {name: 'Alice'})-[:FOLLOWS]->()-[:FOLLOWS]->(c:Person)
RETURN c;Result:
c
DavidFrom Alice, the two-hop traversal returns David (a node that is two steps away: Alice → Bob → David).
6.5 Variable-Length Traversal
Find nodes reachable within a variable number of hops.
Cypher Query:
MATCH (a:Person {name: 'Alice'})-[:FOLLOWS*1..3]->(p:Person)
RETURN DISTINCT p.name;Result:
Bob
Carol
David6.6 Shortest Path Query
Find the shortest path between two nodes.
Cypher Query:
MATCH p = shortestPath(
(a:Person {name: 'Alice'})-[:FOLLOWS*]-(e:Person {name: 'Eve'})
)
RETURN [n in nodes(p) | n.name] AS path;Result:
path
["Alice", "Carol", "Eve"]6.7 Other Traversal Techniques
| Technique | Description | Example Use Case |
|---|---|---|
| Depth-First Traversal (DFS) | Explores as far as possible along each branch | Path exploration, hierarchy traversal |
| Breadth-First Traversal (BFS) | Explores all neighbors level by level | Finding shortest paths, social networks |
| Filtered Traversal | Use WHERE to apply conditions | Find friends in a specific location |
| Multi-relationship Traversal | Traverse multiple relationship types | Find people who follow or like a user |
| Bidirectional Traversal | Use undirected patterns | Find any connection between two nodes |
6.8 Relationship-Based Search with Conditions
Find people Alice follows since 2023:
MATCH (a:Person {name: 'Alice'})-[r:FOLLOWS]->(b:Person)
WHERE r.since >= 2023
RETURN b.name, r.since;Result:
name since
Bob 20236.9 Key Takeaway
Graph traversals in Neo4j help you explore, analyze, and discover relationships in connected data, enabling powerful insights such as recommendations, influence, and network analysis.
7. Graph Algorithms
Graph algorithms analyze the structure and relationships in a graph to find meaningful patterns. They help identify important nodes, discover communities, find connections, and measure similarity.
7.1 Algorithm Categories
| Category | Purpose | Examples |
|---|---|---|
| Centrality | Measure importance of nodes | PageRank, Degree, Betweenness, Closeness |
| Community Detection | Find groups of densely connected nodes | Louvain, Leiden, Label Propagation |
| Path Finding | Find routes between nodes | Dijkstra, A*, BFS, DFS |
| Similarity | Measure how similar two nodes are | Node Similarity, KNN, Jaccard, Cosine |
7.2 Centrality Algorithms
Measure the importance of nodes based on their position and connections. Help identify key individuals, items, or entities in a network.
Examples:
- PageRank
- Degree Centrality
- Betweenness Centrality
- Closeness Centrality
Example — PageRank:
Measures the importance of nodes based on the number and quality of incoming links. A node is important if it is linked by other important nodes.
A → C ← B
↑
D
↑
EPageRank Scores:
| Node | PageRank Score |
|---|---|
| C | 0.42 |
| A | 0.21 |
| D | 0.18 |
| B | 0.12 |
| E | 0.07 |
Use Case: Finding influential users in a social network.
7.3 Community Detection Algorithms
Partition the graph into communities where nodes are more connected within the group than with outside nodes. Useful for finding natural groups, such as social circles or customer segments.
Examples:
- Louvain
- Leiden
- Label Propagation
- Weakly Connected Components
Example:
Community 1 (Friends) Community 2 (Colleagues)
B ── C D ── E
│ │ │ │
A ───┘ F ───┘The graph is divided into communities using the Louvain/Leiden algorithm.
Use Case: Detecting groups of users with similar interests.
7.4 Path Finding Algorithms
Find paths or shortest routes between nodes. Determine paths based on distance, cost, or other criteria.
Examples:
- Dijkstra’s Shortest Path
- A* Shortest Path
- Breadth-First Search (BFS)
- Depth-First Search (DFS)
Example:
B
2 ↗ ↘ 5
A → 1 → C → 2 → E
4 ↘ ↗ 1
DShortest path from A to E: A → C → E (total cost = 3)
Use Case: Finding the shortest route between two cities.
7.5 Similarity Algorithms
Measure how similar two nodes are, typically based on shared neighbors or attributes. Useful for recommendations, fraud detection, and finding similar items or users.
Examples:
- Node Similarity
- K-Nearest Neighbors (KNN)
- Jaccard Similarity
- Cosine Similarity
Example:
Item A
↗ ↘
U1 U2
↘ ↗
Item B
↗ ↘
U1 U2
↘ ↗
Item CU1 and U2 are similar because they are connected to the same items (Item A, Item B, Item C).
Similarity Scores:
| Node Pair | Similarity Score |
|---|---|
| A – B | 0.80 |
| A – C | 0.65 |
| B – D | 0.60 |
Use Case: Recommending similar products or suggesting friends.
7.6 Key Takeaway
Graph algorithms turn connected data into actionable insights — helping us find what is important, how things are related, what groups exist, and what is similar, enabling smarter decisions in real-world applications.
8. Graph Analytics Use Cases
8.1 Social Network Analysis
Graph Model:
Person (Bob) ←─FRIENDS_WITH─→ Person (Alice) ←─FOLLOWS─→ Person (Carol)
│
┌─────────┼─────────┐
│ │ │
LIKES CREATED COMMENTED
↓ ↓ ↓
Like Post Comment
│
HAS_TAG
↓
Tag8.2 Sample Cypher Queries
1. Create a user:
CREATE (p:Person {
userid: 'u1001',
name: 'Alice',
age: 25,
location: 'Bangalore',
joinDate: date()
});2. Create a friendship:
MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'})
MERGE (a)-[:FRIENDS_WITH {since: date()}]->(b);3. Find a user’s friends:
MATCH (p:Person {name: 'Alice'})-[:FRIENDS_WITH]-(f:Person)
RETURN f.name, f.location;4. Find posts by a user:
MATCH (p:Person {name: 'Alice'})-[:CREATED]->(post:Post)
RETURN post.postid, post.content, post.createdAt;5. Add a tag to a post:
MERGE (t:Tag {name: 'Neo4j'})
MATCH (p:Post {postid: 'p100'})
MERGE (p)-[:HAS_TAG]->(t);6. Find popular posts:
MATCH (p:Post)<-[:LIKES]-(Person)
RETURN p.postid, p.content, count(*) AS likeCount
ORDER BY likeCount DESC
LIMIT 5;7. Friend recommendations (friends-of-friends):
MATCH (p:Person {name: 'Alice'})-[:FRIENDS_WITH]-(f:Person)
WHERE NOT (p)-[:FRIENDS_WITH]-(f)
AND p <> f
RETURN DISTINCT f.name, f.location
LIMIT 10;9. Neo4j Architecture Overview
9.1 What is Neo4j?
Neo4j is a native graph database that stores data as nodes and relationships. It uses a property graph model and provides a high-performance graph engine, Cypher query language, and tools for data management and visualization.
9.2 Architecture Layers
┌─────────────────────────────────────────────────────┐
│ Applications │ Cypher Query │ Tools │
│ (Web, Mobile) │ Language │ (Browser, │
│ │ │ Bloom) │
├─────────────────────────────────────────────────────┤
│ Neo4j Database Engine │
│ Stores, indexes, processes and traverses the graph │
├─────────────────────────────────────────────────────┤
│ Graph Storage │
│ Nodes │ Relationships │ Labels │ Properties │
└─────────────────────────────────────────────────────┘9.3 Property Graph Data Model
:Person (Alice) ←──FRIENDS_WITH──→ :Person (Bob)
{name: "Alice", {name: "Bob",
age: 25, age: 27,
location: "Bangalore"} location: "Mumbai"}
│ │
│ CREATED │ LIKES
↓ ↓
:Post (Graph DB) :Post (Graph DB)
{title: "Graph DB", {createdAt: "2024-09-01"}
content: "Neo4j is amazing!",
createdAt: "2024-09-01"}9.4 Nodes
- Represent entities (e.g., people, posts, products)
- Can have one or more labels
- Store properties as key-value pairs
- Represent a real-world entity
9.5 Relationships
- Connect two nodes and represent how they are related
- Always have a direction (start → end)
- Can have a type (e.g.,
FRIENDS_WITH,LIKES) - Can store properties (e.g.,
since,createdAt) - Represent meaningful connections between entities
9.6 Labels and Properties
Node Labels and Properties:
| Label | Example Properties |
|---|---|
:Person | name, age, location |
:Post | title, content, createdAt |
:Product | name, price |
Relationship Types and Properties:
| Type | Example Properties |
|---|---|
:FRIENDS_WITH | since |
:LIKES | createdAt |
:CREATED | createdAt |
Key Points:
- Labels define the type of node or relationship
- Properties store information as key-value pairs
- Both labels and properties make the data flexible and easy to query
- You can have multiple labels and multiple properties
- Indexes can be created on labels and properties for faster search
9.7 Key Takeaway
Neo4j’s architecture and property graph model make it ideal for representing and querying highly connected data such as social networks, recommendation systems, fraud detection, knowledge graphs, and more.
10. Graph Traversal in Neo4j — Detailed
10.1 What is Graph Traversal?
Graph traversal is the process of navigating through a graph by following relationships (edges) from one node to another. In Neo4j, traversals are performed using Cypher pattern matching. Traversals can be fixed-length, variable-length, or based on specific conditions such as shortest path.
10.2 Why Use Graph Traversals?
- Find connected data and explore relationships
- Discover hidden patterns and connections
- Build recommendations, perform network analysis
- Understand complex data with simple queries
10.3 Cypher Pattern Syntax
(a:Label)-[r:RELATIONSHIP_TYPE]->(b:Label)- Nodes are written in parentheses
( ) - Relationships are written in square brackets
[ ] - Direction is specified using
>(outgoing) or<-(incoming) - Labels and properties can be used to filter results
10.4 Simple Relationship Traversal
Find people that Alice directly follows:
MATCH (a:Person {name: 'Alice'})-[:FOLLOWS]->(b:Person)
RETURN b.name;Result:
name
Bob10.5 Variable-Length Traversal
Find people reachable from Alice within 1 to 3 hops:
MATCH (a:Person {name: 'Alice'})-[:FOLLOWS*1..3]->(p:Person)
RETURN DISTINCT p.name;Result:
name
Bob
Carol
David10.6 Shortest-Path Analysis
Find the shortest path between two nodes:
MATCH p = shortestPath(
(a:Person {name: 'Alice'})-[:FOLLOWS*]-(b:Person {name: 'Eve'})
)
RETURN [n in nodes(p) | n.name] AS path;Result:
path
["Alice", "Carol", "Eve"]10.7 Key Takeaways
- Neo4j stores data as nodes and relationships, making traversals natural and efficient
- Cypher provides a powerful and expressive way to perform graph traversals
- Use relationship-based patterns, variable-length traversals, and shortest path functions to explore and analyze connected data
- Graph traversals enable real-world applications such as friend suggestions, recommendations, fraud detection, and network analysis
11. Unit Summary
NoSQL UNIT 4 — GRAPH DATABASES, CYPHER, GRAPH ALGORITHMS & NEO4J
│
├── Introduction to Graph Databases
│ ├── Definition (nodes, relationships, properties)
│ ├── Social network example
│ └── Why graph databases
│
├── Relational vs Graph Databases
│ ├── Data model comparison
│ ├── Schema comparison
│ ├── Relationship handling
│ └── Use case comparison
│
├── Property Graph Model
│ ├── Nodes (entities)
│ ├── Labels (categories)
│ ├── Relationship types (connections)
│ ├── Properties (key-value pairs)
│ └── University graph example
│
├── Cypher — Query Language
│ ├── Pattern syntax
│ ├── CREATE example
│ ├── CREATE vs MERGE
│ └── Key points
│
├── Graph Traversal
│ ├── One-hop traversal
│ ├── Two-hop traversal
│ ├── Variable-length traversal
│ ├── Shortest path query
│ ├── DFS / BFS
│ └── Filtered traversal
│
├── Graph Algorithms
│ ├── Centrality (PageRank, Degree, Betweenness, Closeness)
│ ├── Community Detection (Louvain, Leiden, Label Propagation)
│ ├── Path Finding (Dijkstra, A*, BFS, DFS)
│ └── Similarity (Node Similarity, KNN, Jaccard, Cosine)
│
├── Graph Analytics Use Cases
│ ├── Social network analysis
│ ├── Sample Cypher queries
│ │ ├── Create user
│ │ ├── Create friendship
│ │ ├── Find friends
│ │ ├── Find posts
│ │ ├── Add tag
│ │ ├── Find popular posts
│ │ └── Friend recommendations
│ └── Key insights
│
└── Neo4j Architecture
├── Architecture layers
├── Property graph data model
├── Nodes
├── Relationships
├── Labels and properties
└── Graph traversal in Neo4j12. Key Syntax — Quick Reference
| Concept | Syntax/Example |
|---|---|
| Create node | CREATE (p:Person {name: 'Alice', age: 25}) |
| Create relationship | CREATE (a)-[:FOLLOWS]->(b) |
| Match node | MATCH (p:Person {name: 'Alice'}) |
| Match relationship | MATCH (a)-[:FOLLOWS]->(b) |
| Return | RETURN p.name |
| MERGE | MERGE (p:Person {name: 'Alice'}) |
| WHERE | WHERE r.since >= 2023 |
| Variable-length | [:FOLLOWS*1..3] |
| Shortest path | shortestPath((a)-[:FOLLOWS*]-(b)) |
| Count | count(*) |
| Order by | ORDER BY likeCount DESC |
| Limit | LIMIT 5 |
| Distinct | RETURN DISTINCT p.name |
| List comprehension | `[n in nodes(p) |
| Date function | date() |
| Label | :Person, :Post |
| Relationship type | :FOLLOWS, :FRIENDS_WITH |
| Property | {name: 'Alice', age: 25} |
13. Exam-Focused Points
- Graph database — Stores data as nodes, relationships, properties.
- Node — Entity; has label and properties.
- Relationship — Connection between nodes; directed; has type.
- Property — Key-value pair storing details.
- Relational vs Graph — Tables vs connected entities.
- Property graph model — Nodes + relationships + properties + labels.
- Label — Type/category of a node.
- Relationship type — Nature of connection (FRIEND_OF, WORKS_AT).
- Cypher — Query language for Neo4j.
- CREATE — Always creates new data.
- MERGE — Creates only if not exists.
- CREATE vs MERGE — Duplicates vs uniqueness.
- Graph traversal — Navigating through relationships.
- One-hop traversal — Direct neighbors.
- Two-hop traversal — Nodes two steps away.
- Variable-length traversal —
[:FOLLOWS*1..3]. - Shortest path —
shortestPath(). - DFS — Depth-first; explores branch.
- BFS — Breadth-first; level by level.
- Centrality algorithms — PageRank, Degree, Betweenness, Closeness.
- PageRank — Importance based on incoming links.
- Community detection — Louvain, Leiden.
- Path finding — Dijkstra, A*, BFS, DFS.
- Similarity — Node similarity, KNN, Jaccard, Cosine.
- Neo4j — Native graph database.
- Neo4j architecture — Applications → Cypher → Engine → Storage.
- Neo4j storage — Nodes, relationships, labels, properties.
- Indexes — On labels and properties for faster search.
- Social network use case — Friends, posts, likes, tags.
- Friend recommendations — Friends-of-friends query.
14. Glossary of Key Terms
| Term | Definition |
|---|---|
| Graph Database | NoSQL database storing data as nodes, relationships, and properties |
| Node | Entity or object in a graph |
| Relationship | Connection between two nodes |
| Property | Key-value pair storing information |
| Label | Type/category of a node |
| Relationship Type | Nature of connection between nodes |
| Property Graph Model | Graph model with nodes, relationships, labels, properties |
| Cypher | Declarative query language for Neo4j |
| CREATE | Cypher command to create new data |
| MERGE | Cypher command to create if not exists |
| MATCH | Cypher command to find data |
| RETURN | Cypher command to output results |
| WHERE | Cypher clause for filtering |
| Graph Traversal | Navigating through relationships |
| One-Hop | Directly connected nodes |
| Two-Hop | Nodes two steps away |
| Variable-Length | Traversal with variable hops (*1..3) |
| Shortest Path | Minimum cost path between nodes |
| DFS | Depth-First Search |
| BFS | Breadth-First Search |
| Centrality | Measure of node importance |
| PageRank | Centrality based on incoming links |
| Degree Centrality | Number of connections |
| Betweenness Centrality | How often a node lies on shortest paths |
| Closeness Centrality | Average distance to other nodes |
| Community Detection | Finding densely connected groups |
| Louvain | Community detection algorithm |
| Leiden | Improved Louvain algorithm |
| Path Finding | Finding routes between nodes |
| Dijkstra | Shortest path algorithm |
| A* | Heuristic shortest path algorithm |
| Similarity | Measure of how alike two nodes are |
| Jaccard Similarity | Intersection over union of neighbors |
| Cosine Similarity | Cosine of angle between vectors |
| KNN | K-Nearest Neighbors |
| Neo4j | Native graph database |
| Graph Analytics | Analyzing graph structure for insights |
| Graph Data Science (GDS) | Neo4j library for graph algorithms |