Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Foreword
Graphs Are Eating The World, And There’s No Going Back
Preface
About the Second Edition
About This Book
Conventions Used in This Book
Using Code Examples
Safari® Books Online
How to Contact Us
Acknowledgments
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
2. Options for Storing Connected Data
Relational Databases Lack Relationships
NOSQL Databases Also Lack Relationships
Graph Databases Embrace Relationships
Summary
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
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
Employment
Performance
Emailing
Reviewing
Represent Complex Value Types as Nodes
Time
Timeline trees
Linked lists
Versioning
Iterative and Incremental Development
Application Architecture
Embedded versus Server
Embedded Neo4j
Server mode
Server extensions
Clustering
Replication
Buffer writes using queues
Global clusters
Load Balancing
Separate read traffic from write traffic
Cache sharding
Read your own writes
Testing
Test-Driven Data Model Development
Example: A test-driven social network data model
Testing server extensions
Performance Testing
Query performance tests
Application performance tests
Testing with representative data
Capacity Planning
Optimization Criteria
Performance
Calculating the cost of graph database performance
Performance optimization options
Redundancy
Load
Importing and Bulk Loading Data
Initial Import
Batch Import
Summary
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)
Talent.net data model
Inferring social relations
Finding colleagues with particular interests
Adding WORKED_WITH relationships
Authorization and Access Control
TeleGraph data model
Finding all accessible resources for an administrator
Determining whether an administrator has access to a resource
Finding administrators for an account
Geospatial and Logistics
Global Post data model
Route calculation
Finding the shortest delivery route using Cypher
Implementing route calculation with the Traversal Framework
Summary
6. Graph Database Internals
Native Graph Processing
Native Graph Storage
Programmatic APIs
Kernel API
Core API
Traversal Framework
Nonfunctional Characteristics
Transactions
Recoverability
Availability
Scale
Capacity
Latency
Throughput
Summary
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
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
← Prev
Back
Next →
← Prev
Back
Next →