Ehsan Ghanbari

Experience, DotNet, Solutions

What NoSQL Data Bases are all about ?

"Big Data is the driver for NoSQL’s rise, but not the only reason to use NoSQL, Many NoSQL databases are designed to run well on large clusters, which makes them more attractive for large data volumes. But often people select NoSQL due to easier database interaction in their applications.and Big Data, Big Users, and Cloud Computing – are driving the adoption of NoSQL technology. NoSQL databases are Non-relational ,Open-source , Cluster-friendly ,21st century web and schema-less" ~ Martin Fowler

NoSQL doesn't mean "No to SQL" but it's stand for "No only SQL" , I mean NoSQL doesn't override SQL anymore and  it's just a new kind of data bases.NoSQL is a new way of thinking about a database and the biggest different is that it's not a relational database. Relational databases are no longer answer todays unstructured data. And NoSQL databases are the same that is suitable for handling unstructured and unpredictable and big data with easier management and development. A NoSQL data format is JSON(in document store NoSQL databases ) and a JSON document could be several raw from several table with different kinds of relations of a RDBMS database. As NoSQL data bases have no predefined rules like tables or schema like in relation databases ,it is too easier to make any change in NoSQL databases.

What's wrong with RDMS or why there is need for new different database systems ??

RDBMs databases prefer predictable and structured data and require vertical and horizontal expansion of servers and are becoming more difficult As time goes because of using unstructured data in some web sites  . you can see in chart below published by couchBase  ,using Unstructured data has become more than before and handling this kinds of data by relational database  is little bit pain becaase RDMBS are designed for structured data!


And also based on martin fowler's presentation about NoSQL , "SQl is designed to run in a big box and a single node system and it doesn't work well with many little boxes " , in today world maybe millions of users want to access a same data simultaneously  , so it mybe cause some performance issues.



Rather than that imagine a RDMS database that is designed and it is working well , if you wanna to make a change in your database such as adding new fields to a table or adding a new join , it maybe take too much time to achieve, maybe more than a week , but in NoSQL databases you don’t need to do anything in database because data is in document format in this kind of databases.


NoSQL databases Advantages

Easier development and large scale data and also easier to scale than SQL. There is no need to Join , you don't need to use ORM in data access layer .NoSQL database doesn't know anything about your data and doesn't matter , it could be text, image , number , movie and anything else.In more complex data model and when using domain driven design it's so hard map aggregate model to relation database and also it causes some kinds of redundant about Value Object (DDD).In relational database data settle In schema and table you have defined before but in NoSQL you put anything you can in database !


Based on NoSQL website list of NoSQL Database (Document Store):

MongoDB , RaptorDB , Terrastore , densodb , ThruDB ,JasDB, Clusterpoint Server , Couchbase Server , RavenDB , RethinkDB , NoSQL embedded , MarkLogic ServerEJDB , SisoDB , djondb ,CouchDB , Elasticsearch, SDB




About Me

Ehsan Ghanbari

Hi! my name is Ehsan. I'm a developer, passionate technologist, and fan of clean code. I'm interested in enterprise and large-scale applications architecture and design patterns. I spend a lot of time on software architecture. Since 2008, I've been as a developer for different companies and organizations and I've been focusing on Microsoft ecosystem all the time. During the past years, Read More

Post Tags
Pending Blog Posts
using Elmah in MVC4
Using FluentSecurity in MVC
Strategic design
Factory Pattern
time out pattern in ajax
Redis as a cache server
How to use PagedList In MVC
Multiple submit buttons in MVC
Domain driven design VS model driven architecture
What's the DDD-lite?
comments powered by Disqus