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 stands for "Not only SQL", I mean NoSQL doesn't override SQL anymore and it's just a new kind of databases.NoSQL is a new way of thinking about a database and the biggest difference is that it's not a relational database. Relational databases are no longer answer today's 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 tables with different kinds of relations of an RDBMS database. As NoSQL databases 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 a 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 on some websites. you can see in the chart below published by couchBase, using Unstructured data has become more than before and handling these kinds of data by the relational database is little bit pain because RDMBS is 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 the same data simultaneously, so it maybe 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 the 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 a more complex data model and when using domain driven design, it's so hard to map aggregate model to relational 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 the 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 and I'm spending a lot of my time on architecture subject. Since 2008, I've been as a developer for companies and organizations and I've been focusing on Microsoft ecosystem all the time. During the&nb Read More

Post Tags
Pending Blog Posts
Strategic design
Factory Pattern
time out pattern in ajax
Selectors in Jquery
Peridic pattern
How to use PagedList In MVC
How to query over Icollection<> of a type with linq
Domain driven design VS model driven architecture
What's the DDD-lite?
Redis as a cache server
comments powered by Disqus