1. Introduction to graph databases using Neo4j/ONgDB as an example
In data analysis, graph databases become relevant when relationships are as important as the records themselves. This section explains the role of Neo4j/ONgDB, outlines platform architecture, and includes installation and configuration of these graph database solutions.
- the importance of graph databases in data analysis,
- platform architecture,
- discussion of Neo4j/ONgDB as popular graph database solutions,
- installation and configuration of Neo4j/ONgDB.
2. Fundamentals of the CYPHER query language
CYPHER syntax is introduced through the operations used most often in day-to-day graph database work. The section covers query structure, creating nodes and relationships, simple data retrieval, selection and filtering, data import, and traversing connected data.
- CYPHER query structure,
- creating nodes and relationships in a graph database,
- simple CYPHER queries for retrieving data,
- selection and filtering,
- data import,
- traversing the graph.
3. Graph theory
Graph theory provides the vocabulary needed to describe data as nodes, edges, and connected structures. Participants learn key concepts, distinguish directed, undirected, weighted, and labeled graphs, and relate these forms to applications across different domains.
- basic concepts and terminology of graphs,
- types of graphs: directed, undirected, weighted, labeled,
- application of graphs in various fields.
4. Basic algorithms of graph data analysis – theoretical aspects
Core analytical methods provide the theoretical basis for later work with graph data. The section covers BFS, DFS, shortest-path algorithms such as Dijkstra and Bellman-Ford, minimum spanning trees, strongly connected components, PageRank, and other selected graph algorithms.
- graphs: BFS (Breadth-First Search) and DFS (Depth-First Search),
- shortest path: Dijkstra and Bellman-Ford,
- minimum spanning tree: Kruskal and Prim,
- depth-first search (DFS) and strongly connected components,
- PageRank algorithm,
- other graph algorithms depending on the needs and interests of the participants.
5. Fundamentals of the CYPHER query language – theory and practice in Neo4j/ONgDB
More complex CYPHER work involves combining filters, conditions, sorting, and limits into queries that answer nontrivial questions. Participants practice advanced query construction in Neo4j/ONgDB, including scenarios such as shortest path searches and other multi-step patterns.
- advanced CYPHER queries,
- filters, conditions, sorting and limitations in CYPHER queries,
- creating complex CYPHER queries, such as searching for the shortest path.
6. Practical application of graph algorithms available in the APOC and GDSL libraries and interpretation of the resulting information
APOC and GDSL extend Neo4j/ONgDB with procedures and algorithms that support practical graph analysis. The section focuses on applying selected algorithms from these libraries and interpreting their outputs so results can be used correctly in further work.
- use of the APOC and GDSL libraries in Neo4j/ONgDB,
- practical application of graph algorithms available in the libraries,
- interpretation of resulting information from graph algorithms.
7. Practical use of output information from graph algorithms in data analysis processes
Turning algorithm results into analytical input requires linking graph outputs with the underlying data model. Participants work with modeling data in Neo4j/ONgDB and learn how measures, scores, and detected structures can support broader data analysis processes.
- data modeling in Neo4j/ONgDB,
- use of output information from graph algorithms in data analysis.
8. Advanced graph analysis techniques
Beyond basic traversal, graph analysis often relies on methods that reveal structure and influence. This section addresses subgraph pattern search, centrality measures such as node and betweenness centrality, community detection, and recommendation-oriented graph algorithms.
- pattern search algorithms in graphs (e.g. subgraph pattern),
- determining centrality in graphs (e.g. node centrality, betweenness centrality),
- community detection algorithms in social networks,
- the use of graph algorithms for recommendations.
9. Graph similarity analysis
When structures need to be compared, graph similarity analysis helps identify common patterns and meaningful differences. This part focuses on measuring similarity between graphs, comparing their forms, and applying these results in data analysis tasks.
- measuring similarity between graphs,
- comparing graph structures and identifying similar patterns,
- application of graph similarity analysis in data analysis.
10. Examples of practical applications of graph databases
Practical examples show where graph databases provide a natural representation of connected data. The section covers social network analysis, route and road modeling in transport systems, and dependency structures used in recommendation scenarios.
- analysis of social networks and relationships between users,
- modeling roads and routes in transport systems,
- analysis of dependencies and connections in recommendation systems.
11. Introduction to the GraphQL query language in the context of graph databases
GraphQL is presented in relation to graph databases, with attention to how its query model differs from CYPHER. Participants build GraphQL queries for retrieving graph data and compare both languages in terms of structure, intent, and typical use cases.
- comparison of CYPHER and GraphQL,
- creating GraphQL queries to retrieve data from a graph database.
12. Case study: Data analysis in a specific domain using Neo4j/ONgDB
A domain-specific analytical scenario ties together modeling, querying, and graph algorithms in one coherent workflow. Participants examine how Neo4j/ONgDB supports data analysis in a concrete area and how graph-based methods help interpret relationships and patterns.
13. Integration with programming languages
Java and JavaScript are used here as practical contexts for connecting applications with Neo4j/ONgDB. The section shows how to work with the database from code, including executing queries and handling graph data within the application layer.
- integration with a project in Java and JavaScript,
- working with the database from the programming language level.