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.
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
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. Ian presents frequently at conferences worldwide on topics including the application of graph database technologies, and RESTful enterprise integration.
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). Jim is active in the development community, presenting regularly around the world. His blog is located at http://jimwebber.org and he tweets often @jimwebber.
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.
The animal on the cover of Graph Databases is a European octopus (Eledone cirrhosa),also known as a lesser octopus or horned octopus. The European octopus is native tothe rocky coasts of Ireland and England, but can also be found in the Atlantic Ocean,North Sea, and Mediterranean Sea. It mainly resides in depths of 10 to 15 meters, buthas been noted as far down as 800 meters. Its identifying features include its reddishorangecolor, white underside, granulations on its skin, and ovoid mantle.
The European octopus eats primarily crabs and other crustaceans. Many fisheries in theMediterranean and North Seas often unintentionally catch the European octopus. Thespecies is not subject to stock assessment or quota control, so they can be consumed.However, their population has increased in these areas in recent years due in part to theoverfishing of larger predatory fish.
The European octopus can grow to be between 12 and 40 centimeters, which it reachesin about one year. It has a relatively short life span of less than five years. Compared tothe octopus vulgaris (or common octopus), the European octopus breeds at a muchlower rate, laying on average 1,000 to 5,000 eggs.
The cover image is from Dover Pictorial Archive. The cover font is Adobe ITC Garamond.The text font is Adobe Minion Pro; the heading font is Adobe Myriad Condensed;and the code font is Dalton Maag’s Ubuntu Mono.
Graph Databases provides a concise introduction to this particular alternative to the relational database.
Having lots of experience with relational databases and very little experience with graph databases, I found this book to be an interesting read. The book effectively describes the weaknesses of relational databases and explains how graph databases address these weaknesses.
After introducing the idea of a graph database, the book proceeds to demonstrate domains that graph databases are suited to. This corresponds to domains where a network is a natural representation of the data, although the authors tend to suggest that graph databases are almost always more suitable than a relational database!
Next up is the demonstration of a specific implementation: Neo4J and Cypher. Examples of how to create a Neo4J database and query with Cypher follow. Explanations are a little terse, but the interested student can easily investigate further.
Finally, the book includes an interesting comparison of Graph Databases with some of the other NoSQL options available.
My only reservation is that the book felt a little unbalanced in its unwavering promotion of graph databases and the limited discussion of alternatives to Neo4J/Cypher. Overall though, this book provided a good overview of this technology and opened my eyes to the possibilities of Graph Databases.
Note: This book was provided by O'Reilly Media as part of their blogger review program.
Bottom Line Yes, I would recommend this to a friend
This book significantly help in understanding what graph databases are and how to use them properly. The authors introduce basic ideas behind graph databases. They write about why the need for such databases emerged, why there's a need for having database engine in which relationships are first class citizens.
I believe that most important chapter of this book is the one that explains data modeling with graphs. The way you need to think when using graph db is totally different that in other types of db. The authors based their teachings on a set of examples, with each being discussed in detail. Various use-cases are shown, and you'll be surprised how efficient data model can be, when used properly.
You will be also able to learn basics of Cypher, which is a language that is used for querying a graph database. It's not really comprehensive introduction, so therefore it cannot be used as a reference. The book shows examples for querying Neo4j, which is probably the most popular graph database implementation. I don't think that you will be very comfortable at using Neo4j immediately after reading this book. It rather intends to make you familiar with fundamental concepts of graph databases and showing how it differs from still more popular solutions like RDBMS.
Also, some additional topics were covered, like: overview of using graph database in agile (also tdd-based) manner, introduction to Neo4j internals (different available APIs or ways of running it) or overview of other NoSQL storage.
I really liked reading it and the book made me more interested in graph-dbs as it provided solid arguments for using it in various applications. On the other hand, after reading it, I still think there's a lot for me to learn (from other resources) before I become comfortable with Neo4j. I would recommend this book to all developers, who are new to concepts of graph databases and who wants to become familiar with its strong points, before they try start using concrete graph database solutions like Neo4j
Bottom Line Yes, I would recommend this to a friend