Graph databases are a TYPE of NoSQL database, in that
they're not traditionally relational row based databases with an
enforced schema, but they're also a very different animal than
something like MongoDB. What you've been working with is
called a document store database because it is aimed at doing just
that -- usually storing JSON (and some do XML) documents as their
primary focus. What goes in those documents is often more
fluid as is how they are connected, if at all.
Graph databases do also store individual entities with basic
fields holding data -- nodes -- just like a document database, but
the main difference is that the relationships between them (edges)
are what we care about most. Good examples tend to be a
network of people (each person is a node) and you label how they're
connected (edges have labels like spouse, sibling, etc.) or a
map of roads or airline paths.
Any time you've ever worked on something like the Seven Bridges
of Konigsberg, Traveling Salesman, Six Degrees of Kevin Bacon,
Erdos number, etc. you're working with a graph, and probably
something that makes sense to put into a graph database.
Note that this is a property graph, which is what I see more
often as a graph database. Semantic graphs are a bit
different, and also getting hot, but definitely a little
deeper to look into if you're starting out on this
Neo4j is the most common one, which has some open source
features, but outside of local projects, isn't free. Apache
Gremlin has some variants as well.
In Reply to Matt Zand:
I am a programmer and I have done many works in SQL-based
database design and development. However, in last two years, I have
started using No-SQL database design using MongoDB. Recently, I an
hearing about graph databases.
As a developer, I wonder if graph is different than no-SQL
database. What is most popular open source platform like MySQL and
MongoDB for graph database development