You are previewing Learning Neo4j.
O'Reilly logo
Learning Neo4j

Book Description

Run blazingly fast queries on complex graph datasets with the power of the Neo4j graph database

In Detail

Learning Neo4j provides you with a step-by-step approach of adopting Neo4j, the world's leading graph database. This book includes a lot of background information, helps you grasp the fundamental concepts behind this radical new way of dealing with connected data, and will give you lots of examples of use cases and environments where a graph database would be a great fit.

Starting with a brief introduction to graph theory, this book will show you the advantages of using graph databases. Following on from that, you will be introduced to Neo4j and you will be shown how to install Neo4j on various operating systems. You will then be shown how you can model and import your data into Neo4j.

This book has two use case examples that will show you how to model and implement a graph in Neo4j by analyzing a user case, and analyze the impact a change has on a process or a system. You will also gain an insight into graph visualization options for Neo4j and discover external sources where you can learn more about Neo4j.

What You Will Learn

  • Background and specifications of graph databases
  • Install Neo4j on a variety of different platforms, locally and in the cloud
  • Model data for a graph database such as Neo4j
  • Import data into Neo4j
  • Learn about sample use cases for Neo4j
  • Discover the advantages of graph databases versus other database models
  • Find out where you can find additional information on Neo4j
  • Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at If you purchased this book elsewhere, you can visit and register to have the files e-mailed directly to you.

    Table of Contents

    1. Learning Neo4j
      1. Table of Contents
      2. Learning Neo4j
      3. Credits
      4. About the Author
      5. About the Reviewers
        1. Support files, eBooks, discount offers and more
          1. Why Subscribe?
          2. Free Access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Downloading the color images of this book
          2. Errata
          3. Piracy
          4. Questions
      8. 1. Graphs and Graph Theory – an Introduction
        1. Introduction to and history of graphs
        2. Definition and usage of graph theory
          1. Social studies
          2. Biological studies
          3. Computer science
          4. Flow problems
          5. Route problems
          6. Web search
        3. Test questions
        4. Summary
      9. 2. Graph Databases – Overview
        1. Background
          1. Navigational databases
          2. Relational databases
          3. NoSQL databases
            1. Key-Value stores
            2. Column-Family stores
            3. Document stores
            4. Graph databases
        2. The Property Graph model of graph databases
          1. Node labels
          2. Relationship types
        3. Why (or why not) graph databases
          1. Why use a graph database?
            1. Complex queries
            2. In-the-clickstream queries on live data
            3. Path finding queries
          2. Why not use a graph database, and what to use instead
            1. Large, set-oriented queries
            2. Graph global operations
            3. Simple, aggregate-oriented queries
        4. Test questions
        5. Summary
      10. 3. Getting Started with Neo4j
        1. Neo4j – key concepts and characteristics
          1. Built for graphs, from the ground up
          2. Transactional, ACID-compliant database
          3. Made for Online Transaction Processing
          4. Designed for scalability
          5. A declarative query language – Cypher
          6. Sweet spot use cases of Neo4j
          7. Complex, join-intensive queries
            1. Path finding queries
          8. Committed to open source
          9. The features
          10. The support
          11. The license conditions
        2. Installing Neo4j
          1. Installing Neo4j on Windows
          2. Installing Neo4j on Mac or Linux
        3. Using Neo4j in a cloud environment
        4. Test Questions
        5. Summary
      11. 4. Modeling Data for Neo4j
        1. The four fundamental data constructs
        2. How to start modeling for graph databases
          1. What we know – ER diagrams and relational schemas
          2. Introducing complexity through join tables
        3. A graph model – a simple, high-fidelity model of reality
        4. Graph modeling – best practices and pitfalls
          1. Graph modeling best practices
            1. Design for query-ability
            2. Align relationships with use cases
            3. Look for n-ary relationships
            4. Granulate nodes
            5. Use in-graph indexes when appropriate
          2. Graph database modeling pitfalls
            1. Using "rich" properties
            2. Node representing multiple concepts
            3. Unconnected graphs
            4. The dense node pattern
        5. Test questions
        6. Summary
      12. 5. Importing Data into Neo4j
        1. Alternative approaches to importing data into Neo4j
          1. Know your import problem – choose your tooling
        2. Importing small(ish) datasets
          1. Importing data using spreadsheets
          2. Importing using Neo4j-shell-tools
          3. Importing using Load CSV
        3. Scaling the import
        4. Questions and answers
        5. Summary
      13. 6. Use Case Example – Recommendations
        1. Recommender systems dissected
        2. Using a graph model for recommendations
        3. Specific query examples for recommendations
          1. Recommendations based on product purchases
          2. Recommendations based on brand loyalty
          3. Recommendations based on social ties
          4. Bringing it all together – compound recommendations
        4. Business variations on recommendations
        5. Fraud detection systems
        6. Access control systems
        7. Social networking systems
        8. Questions and answers
        9. Summary
      14. 7. Use Case Example – Impact Analysis and Simulation
        1. Impact analysis systems dissected
          1. Impact analysis in Business Process Management
          2. Modeling your business as a graph
            1. Which applications are used in which buildings
            2. What buildings are affected if something happens to Appl_9?
            3. What BusinessProcesses with an RTO of 0-2 hours would be affected by a fire at location Loc_100
        2. Impact simulation in a Cost Calculation environment
          1. Modeling your product hierarchy as a graph
          2. Working with a product hierarchy graph
            1. Calculating the price based on a full sweep of the tree
            2. Calculating the price based on intermediate pricing
            3. Impact simulation on product hierarchy
        3. Questions and Answers
        4. Summary
      15. 8. Visualizations for Neo4j
        1. The power of graph visualizations
          1. Why graph visualizations matter!
            1. Interacting with data visually
            2. Looking for patterns
            3. Spot what's important
          2. The basic principles of graph visualization
        2. Open source visualization libraries
          1. D3.js
          2. Graphviz
          3. Sigma.js
          4. Vivagraph.js
          5. Integrating visualization libraries in your application
          6. Visualization solutions
            1. Gephi
            2. Keylines
            4. Neo4j Browser
            5. Tom Sawyer
        3. Closing remarks on visualizations
          1. The "fireworks" effect
          2. The "loading" effect
        4. Questions and answers
        5. Summary
      16. 9. Other Tools Related to Neo4j
        1. Data integration tools
          1. Talend
          2. MuleSoft
        2. Business Intelligence tools
        3. Modeling tools
          1. Arrows
          2. OmniGraffle
        4. Questions and answers
        5. Summary
      17. A. Where to Find More Information Related to Neo4j
        1. Online tools
          1. Google group
          2. Stack Overflow
          3. The Neo4j community website
          4. The new Neo4j website
          5. The Neo4j Blog
          6. GraphGists collection
          7. The Cypher reference card
          8. Other books
        2. Events
          1. Meetup
          2. GraphConnect
          3. Conferences
          4. Training
        3. Neo Technology
      18. B. Getting Started with Cypher
        1. The key attributes of Cypher
        2. Key operative words in Cypher
        3. The Cypher refcard
        4. Syntax
      19. Index