Discover how graph databases can help you manage and query highly connected data. With this practical book, youll 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.
Learn how different organizations are using graph databases to outperform their competitors. With this books data modeling, query, and code examples, youll 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
Foreword |
|
vii | |
Preface |
|
ix | |
1 Introduction |
|
1 | (10) |
|
|
1 | (3) |
|
A High-Level View of the Graph Space |
|
|
4 | (4) |
|
|
5 | (1) |
|
|
6 | (2) |
|
The Power of Graph Databases |
|
|
8 | (1) |
|
|
8 | (1) |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
9 | (2) |
2 Options for Storing Connected Data |
|
11 | (14) |
|
Relational Databases Lack Relationships |
|
|
11 | (3) |
|
NOSQL Databases Also Lack Relationships |
|
|
14 | (4) |
|
Graph Databases Embrace Relationships |
|
|
18 | (5) |
|
|
23 | (2) |
3 Data Modeling with Graphs |
|
25 | (38) |
|
|
25 | (1) |
|
|
26 | (1) |
|
Querying Graphe-An Introduction to Cypher |
|
|
27 | (4) |
|
|
27 | (2) |
|
|
29 | (1) |
|
|
29 | (1) |
|
|
30 | (1) |
|
|
30 | (1) |
|
A Comparison of Relational and Graph Modeling |
|
|
31 | (9) |
|
Relational Modeling in a Systems Management Domain |
|
|
33 | (4) |
|
Graph Modeling in a Systems Management Domain |
|
|
37 | (1) |
|
|
38 | (2) |
|
|
40 | (10) |
|
Creating the Shakespeare Graph |
|
|
44 | (1) |
|
|
45 | (1) |
|
Declaring Information Patterns to Find |
|
|
46 | (1) |
|
|
47 | (1) |
|
|
48 | (1) |
|
|
49 | (1) |
|
|
50 | (11) |
|
Email Provenance Problem Domain |
|
|
50 | (1) |
|
A Sensible First Iteration? |
|
|
50 | (3) |
|
|
53 | (3) |
|
|
56 | (5) |
|
|
61 | (1) |
|
|
61 | (2) |
4 Building a Graph Database Application |
|
63 | (36) |
|
|
63 | (10) |
|
Describe the Model in Terms of the Application's Needs |
|
|
63 | (1) |
|
Nodes for Things, Relationships for Structure |
|
|
64 | (1) |
|
Fine-Grained versus Generic Relationships |
|
|
65 | (1) |
|
|
66 | (3) |
|
Represent Complex Value Types as Nodes |
|
|
69 | (1) |
|
|
70 | (2) |
|
Iterative and Incremental Development |
|
|
72 | (1) |
|
|
73 | (9) |
|
|
74 | (4) |
|
|
78 | (1) |
|
|
79 | (3) |
|
|
82 | (11) |
|
Test-Driven Data Model Development |
|
|
83 | (6) |
|
|
89 | (4) |
|
|
93 | (5) |
|
|
93 | (1) |
|
|
94 | (3) |
|
|
97 | (1) |
|
|
97 | (1) |
|
|
98 | (1) |
5 Graphs in the Real World |
|
99 | (42) |
|
Why Organizations Choose Graph Databases |
|
|
99 | (1) |
|
|
100 | (5) |
|
|
100 | (1) |
|
|
101 | (1) |
|
|
102 | (1) |
|
|
103 | (1) |
|
Network and Data Center Management |
|
|
103 | (1) |
|
Authorization and Access Control (Communications) |
|
|
104 | (1) |
|
|
105 | (34) |
|
Social Recommendations (Professional Social Network) |
|
|
105 | (11) |
|
Authorization and Access Control |
|
|
116 | (8) |
|
|
124 | (15) |
|
|
139 | (2) |
6 Graph Database Internals |
|
141 | (22) |
|
|
141 | (3) |
|
|
144 | (6) |
|
|
150 | (4) |
|
|
151 | (1) |
|
|
151 | (1) |
|
|
152 | (2) |
|
Nonfunctional Characteristics |
|
|
154 | (8) |
|
|
155 | (1) |
|
|
156 | (1) |
|
|
157 | (2) |
|
|
159 | (3) |
|
|
162 | (1) |
7 Predictive Analysis with Graph Theory |
|
163 | (20) |
|
Depth- and Breadth-First Search |
|
|
163 | (1) |
|
Path-Finding with Dijkstra's Algorithm |
|
|
164 | (9) |
|
|
173 | (1) |
|
Graph Theory and Predictive Modeling |
|
|
174 | (6) |
|
|
174 | (2) |
|
|
176 | (4) |
|
|
180 | (2) |
|
|
182 | (1) |
A NOSQL Overview |
|
183 | (18) |
Index |
|
201 | |
Ian Robinson is the co-author of REST in Practice (O'Reilly Media, 2010). Ian is an engineer at Neo Technology, working on a distributed version of the Neo4j database. Prior to joining the engineering team, Ian served as Neo's Director of Customer Success, managing the training, professional services, and support arms of Neo, and working with customers to design and develop mission-critical graph database solutions. Ian came to Neo Technology from ThoughtWorks, where he was SOA Practice Lead and a member of the CTO's global Technical Advisory Board. Dr. Jim Webber is Chief Scientist with Neo Technology, where he researches novel graph databases and writes open source software. Previously, Jim spent time working with big graphs like the Web for building distributed systems, which led him to being a co-author on the book REST in Practice (O'Reilly Media, 2010). Emil Eifrem is CEO of Neo Technology and co-founder of the Neo4j project. Before founding Neo, he was the CTO of Windh AB, where he headed the development of highly complex information architectures for Enterprise Content Management Systems. Committed to sustainable open source, he guides Neo along a balanced path between free availability and commercial reliability. Emil is a frequent conference speaker and author on NOSQL databases.