+++ noatcards = True isdraft = False +++ # Graph database ## Abstraction: graph ![](https://camo.githubusercontent.com/bf6508b65e98a7210d9861515833afa0d9434436/687474703a2f2f692e696d6775722e636f6d2f664e636c3635672e706e67) [Source: Graph database](https://en.wikipedia.org/wiki/File:GraphDatabase_PropertyGraph.png) In a graph database, each node is a record and each arc is a relationship between two nodes. Graph databases are optimized to represent complex relationships with many foreign keys or many-to-many relationships. Graphs databases offer high performance for data models with complex relationships, such as a social network. They are relatively new and are not yet widely-used; it might be more difficult to find development tools and resources. Many graphs can only be accessed with [REST APIs](https://github.com/donnemartin/system-design-primer#representational-state-transfer-rest) . ## Source(s) and further reading: graph - [Graph database](https://en.wikipedia.org/wiki/Graph_database) - [Neo4j](https://neo4j.com/) - [FlockDB](https://blog.twitter.com/2010/introducing-flockdb)