Click here to Skip to main content
15,861,125 members
Articles / Database Development / NoSQL

Working with NoSQL Databases

Rate me:
Please Sign up or sign in to vote.
4.95/5 (8 votes)
28 Feb 2014CPOL1 min read 47.4K   27   7
This article explains how to work with NoSQL databases, why to use NoSQL, what NoSQL databases are present, .NET APIs for NoSQL and Further Reading

This articles was originally at wiki.asp.net but has now been given a new home on CodeProject. Editing rights for this article has been set at Bronze or above, so please go in and edit and update this article to keep it fresh and relevant.

Working with NoSQL Databases

How to get started with NoSQL?

Since 2009, NoSQL databases becomes more and more popular. But why?

  • No usage of SQL, that means
    • Less complexity
    • Better portability
    • Boundlessness
    • User-friendliness
  • Most databases are Open-Source
  • Performance
  • Scalability

Famous companies like Twitter, Facebook and Amazon are using NoSQL databases.
What sorts of NoSQL databases are used today?

  • Key-Value stores
    • Easy to implement
    • Only key-value-pairs can be stored
    • Difficult to build complex data structures
  • Column stores
    • Columns don't have to be defined in advance.
    • A row can have different numbers of cells
  • Document stores
    • Like key-value stores, but allows nested values
  • Graph databases
    • Objects and relationships are modelled and persisted as nodes and edges of a graph

What NoSQL databases are present today?

  • Cassandra
    • Data Model: Columnfamily
    • Query API: Thrift
  • CouchDB
    • Data Model: Document
    • Query API: map/reduce views
  • HBase
    • Data Model: Columnfamily
    • Query API: Thrift, REST
  • MongoDB
    • Data Model: Document
    • Query API: Cursor
  • Neo4j
    • Data Model: Graph
    • Query API: Graph
  • Redis
    • Data Model: Collection
    • Query API: Collection
  • Riak
    • Data Model: Document
    • Query API: Nested hashes
  • Scalaris
    • Data Model: Key/value
    • Query API: get/put
  • Tokyo Cabinet
    • Data Model: Key/value
    • Query API: get/put
  • Voldemort
    • Data Model: Key/value
    • Query API: get/put

.NET APIs

Cassandra 

CouchDB

MongoDB

Tokyo Cabinet

Further Reading

A good introduction to the concepts of NoSQL is the paper "NoSQL Databases" from Christof Strauch. 
Also read the "Scalable SQL and NoSQL Data Stores" from Rick Cattell.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
United States United States
The ASP.NET Wiki was started by Scott Hanselman in February of 2008. The idea is that folks spend a lot of time trolling the blogs, googlinglive-searching for answers to common "How To" questions. There's piles of fantastic community-created and MSFT-created content out there, but if it's not found by a search engine and the right combination of keywords, it's often lost.

The ASP.NET Wiki articles moved to CodeProject in October 2013 and will live on, loved, protected and updated by the community.
This is a Collaborative Group

755 members

Comments and Discussions

 
SuggestionAdd NosDB in the list? Pin
Basit Anwer4-Nov-16 0:44
professionalBasit Anwer4-Nov-16 0:44 
QuestionRavenDB Pin
gdoten2-Mar-14 3:57
gdoten2-Mar-14 3:57 
QuestionProblem in installing sql server management studio Pin
Pravash Dash1-Mar-14 20:02
professionalPravash Dash1-Mar-14 20:02 
Questiondisadvantages Pin
Eduardo Antonio Cecilio Fernandes28-Feb-14 18:02
Eduardo Antonio Cecilio Fernandes28-Feb-14 18:02 
Questionwanted examples Pin
Sacha Barber28-Feb-14 16:06
Sacha Barber28-Feb-14 16:06 
QuestionGreat Article Pin
Jan Navarro30-Dec-13 2:18
Jan Navarro30-Dec-13 2:18 
SuggestionRedis also has a few .NET APIs. Pin
DannyVarod5-Nov-13 21:24
DannyVarod5-Nov-13 21:24 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.