This document provides an overview of Neo4j, a graph database, and the Cypher query language. It discusses how graphs are useful for modeling connected data and provides examples showing Neo4j outperforming a relational database for social network queries. It also summarizes key aspects of the Cypher language, including MATCH, WHERE, CREATE, DELETE clauses and functions. Code examples are given for embedded Neo4j usage and shortest path queries.