Discover how graph databases can help you manage and query highly connected data. With this practical book, you'll learn how to design and implement a graph database that brings the power of graphs to bear on a broad range of problem domains. Whether you want to speed up your response to user queries or build a database that can adapt as your business evolves, this book shows you how to apply the schema-free graph model to real-world problems. This second edition includes new code samples and diagrams, using the latest Neo4j syntax, as well as information on new functionality. Learn how different organizations are using graph databases to outperform their competitors. With this book's data modeling, query, and code examples, you'll quickly be able to implement your own solution. Model data with the Cypher query language and property graph model Learn best practices and common pitfalls when modeling with graphs Plan and implement a graph database solution in test-driven fashion Explore real-world examples to learn how and why organizations use a graph database Understand common patterns and components of graph database architecture Use analytical techniques and algorithms to mine graph database information. -- Back cover Copyright Table of Contents Foreword Graphs Are Everywhere, or the Birth of Graph Databases as We Know Them Preface About the Second Edition About This Book Conventions Used in This Book Using Code Examples Safari® Books Online How to Contact Us Acknowledgments Chapter 1. Introduction What Is a Graph? A High-Level View of the Graph Space Graph Databases Graph Compute Engines The Power of Graph Databases Performance Flexibility Agility Summary Chapter 2. Options for Storing Connected Data Relational Databases Lack Relationships NOSQL Databases Also Lack Relationships Graph Databases Embrace Relationships Summary Chapter 3. Data Modeling with Graphs Models and Goals The Labeled Property Graph Model Querying Graphs: An Introduction to Cypher Cypher Philosophy MATCH RETURN Other Cypher Clauses A Comparison of Relational and Graph Modeling Relational Modeling in a Systems Management Domain Graph Modeling in a Systems Management Domain Testing the Model Cross-Domain Models Creating the Shakespeare Graph Beginning a Query Declaring Information Patterns to Find Constraining Matches Processing Results Query Chaining Common Modeling Pitfalls Email Provenance Problem Domain A Sensible First Iteration? Second Time’s the Charm Evolving the Domain Identifying Nodes and Relationships Avoiding Anti-Patterns Summary Chapter 4. Building a Graph Database Application Data Modeling Describe the Model in Terms of the Application’s Needs Nodes for Things, Relationships for Structure Fine-Grained versus Generic Relationships Model Facts as Nodes Represent Complex Value Types as Nodes Time Iterative and Incremental Development Application Architecture Embedded versus Server Clustering Load Balancing Testing Test-Driven Data Model Development Performance Testing Capacity Planning Optimization Criteria Performance Redundancy Load Importing and Bulk Loading Data Initial Import Batch Import Summary Chapter 5. Graphs in the Real World Why Organizations Choose Graph Databases Common Use Cases Social Recommendations Geo Master Data Management Network and Data Center Management Authorization and Access Control (Communications) Real-World Examples Social Recommendations (Professional Social Network) Authorization and Access Control Geospatial and Logistics Summary Chapter 6. Graph Database Internals Native Graph Processing Native Graph Storage Programmatic APIs Kernel API Core API Traversal Framework Nonfunctional Characteristics Transactions Recoverability Availability Scale Summary Chapter 7. Predictive Analysis with Graph Theory Depth- and Breadth-First Search Path-Finding with Dijkstra’s Algorithm The A* Algorithm Graph Theory and Predictive Modeling Triadic Closures Structural Balance Local Bridges Summary Appendix A. NOSQL Overview The Rise of NOSQL ACID versus BASE The NOSQL Quadrants Document Stores Key-Value Stores Column Family Query versus Processing in Aggregate Stores Graph Databases Property Graphs Hypergraphs Triples Index About the Authors Ian Robinson, Jim Webber & Emil Eifrem. Includes Index.