NoSQL{Comments Off on NoSQL}


By Jose Y.

The vast amounts of information that our devices are gathering and generating has paved the way for big data. Companies like google that receive extreme amounts of data or tech startups that does not need a full blown database solution has pushed for a non relational type of implementation. There are differences in schema, cost and data models between both types of database.

noSQL is a type of DBMS that is non relational therefore it is a free flowing database that accepts unstructured data. This is best used for applications that does not need a relational database backend and instead stores very simple types of data. Along with this non structured schema is the speed of the transactions of a noSQL implementation since it does not enforce it to be ACID(Atomicity, Consistency, Isolation, Durability). Aside from the schema differences noSQL is a cheaper alternative than an RDBMS implementation this is due to several factors. First is that the compute resources necessary for a noSQL implementation is less compared to a relational database therefore the initial hardware cost for servers is minimal. Second is that noSQL is also horizontally scaling instead of vertical scaling therefore expansion is also cheaper. Last is that noSQL would not require specialized employees to handle and maintain the database.

The biggest difference between a noSQL database and a SQL based database is the data model being used. There are several relational database implementations available in the market today like mySQL, MSSQL and PostgreSQL. All of these databases share the same relational data model and are therefore using tables or entities to store data. On the other hand a noSQL implementation has several data models. The first and simplest one is the “key-value pair” data model where an indexed key is stored and is matched with an accompanying value some examples of this are Redis, Riak and Couchbase. Next is a document store where it uses keys that have an accompanying document to match that key. These “documents” can be another key value pair which is a nested document or a semi structured document like an XML, JSON, CSV file depending on the database implementation. A good example would be MongoDB, CouchDB and HyperDex. Then we have a wide column store where is similar to a relational database where it uses rows and columns but the difference is its lack of scheme therefore columns and new data can be added based on the need. in a wide column store that has a key-value approach the value can be several nested columns. The most popular and widely used is Cassandra and HBase. The last data model is graph store databases which is very close to a relational database since it follows the entity relationship model but there is a key difference between the both. The relational model stores the relationships on the table or the entity level. While the graph store model stores the relationship on the values themselves.

The differences laid out between the noSQL and a relational implementation has various pros and cons. It is important to understand these difference in order to make the right decision in implementing the best type of database for one’s production needs.

References:

List Of NoSQL Databases. (n.d.). Retrieved March 01, 2016, from http://nosql-database.org/

NoSQL Databases Explained. (n.d.). Retrieved March 01, 2016, from https://www.mongodb.com/nosql-explained

Kuznetsov, S. , & Poskonin, A. (2014). Nosql data management systems. Programming and Computer Software, 40(6), 323-332.

Chandra, D. (2015). Base analysis of nosql database. Future Generation Computer Systems-the International Journal of Grid Computing and Escience, 52, 13-21.