There are many types of NoSQL database. This is very different to the Relational Database Management Systems (RDBMS) world where each database has the same data structures and model.
There are four key flavours of NoSQL. Which one you use is dictated by your data structure storage and query needs.
These are the four types:-
- Key-Value store – Store a blog of information (the value – typically binary, JSON document etc.) against a single identifier (key)
- Bigtable clone (aka Wide column, or column store) – Tables with many columns, many may be optional or not known up front, and no relationships to other tables
- Document database – Stores text, binary, JSON, or XML documents or a variety thereof. Typically allows secondary index queries against document properties/elements
- Triple store or Graph store (aka Semantic store) – Stores assertions (think ‘facts’), like Adam knows Wendy and Adam likes Cheese. Helps you do queries like ‘find all people that know someone who likes Cheese’. Graph stores go further and enable you to ask questions like “May many people are within 5 degrees of separation of someone who are allergic to cheese?’
There are also two movements in the NoSQL arena of note though:-
- Hybrid NoSQL databases – some databases cover multiple of the above models. Examples are OrientDB and ArangoDB which both cover document and triple stores, and MarkLogic which covers document, triple, search and has some analytics capabilities not unlike a Bigtable / Wide Column Store
- Search – Some modern search engines use NoSQL architectural methods like horizontal scaling and schema agnosticism. Examples include SolrCloud, Elasticsearch and MarkLogic