But what does NoSQL actually imply, and what advantages and disadvantages does NoSQL deliver for data storage? Here is everything you ever wanted to know but were afraid to ask about NoSQL.
To begin with, NoSQL”is not a specific database product. It is a term that refers to a general category of database methodology and techniques; and a handful of vendors have implemented NoSQL administration in different ways.
Yet all NoSQL products share a basic defining characteristic; which is that NoSQL implementations do not use the “relational-database” model of traditional SQL-style databases; such as currently ubiquitous in shared hosting “MySQL”.
Gaining an understanding of exactly what NoSQL means requires a recap on how most databases today have typically functioned for the past several decades.
With a relational database like MySQL, the database architect or programmer needs to define and detail in advance where the data is going to be stored. Different tables are created, different pieces of data are stored inside different tables, and data is retrieved based on table structure.
So MySQL, and other relational databases, are close to perfect if you know ahead of time what structure your data will be represented in; and also have a sense of how much data that will need to be stored.
But what happens when your storage needs not so predictable? What if your applications data storage needs to be highly scalable? Relational databases don’t work quite so well in those situations.
Simplicity, Openness, and Scalability
NoSQL allow you to stream data into a database without defining a formal storage structure ahead of time. As a result you do not need to write as much cryptic code for an application to interact with the database. Also you can retrieve data quickly without having to tell your application where precisely to pinpoint what data you want within a large, rigid, syntactically very sensitive database structure.
NoSQL DB’s also tends to scale better as they are designed to be able to run easily on distributed or clustered environments. NoSQL databases are designed to run across multiple servers – at the same time – and still appear to your application like a single database. This methodology makes it alot easier to add more storage quickly whenever alot more data is to be stored. This is a key advantage in an era when cloud & “internet of Things” devices are creating an environment of rapidly changing data storage needs.
Traditional databases were designed before clusters, and “the cloud”, became the norm. Distributing databases across multiple hosts, or “shard”ing relational databases is more complicated than using NoSQL databases. Relational databases also tend to require more expensive servers, but NoSQL databases have proven to be able to shard on cheaper commodity hardware.
The 3rd big advantage which most NoSQL databases offer is “open source”-ness. True, several relational databases, including MySQL, are now open source as well – but they were not always so open.