25 lines
1.1 KiB
Markdown
25 lines
1.1 KiB
Markdown
|
+++
|
||
|
noatcards = True
|
||
|
isdraft = False
|
||
|
weight = 124
|
||
|
+++
|
||
|
|
||
|
# 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)
|