The term NoSQL was coined by Carlo Strozzi in the year 1998. He used this term to name his Open Source, Light Weight Database which did not have an SQL interface.
In the early 2009, when Last.fm wanted to organize an event on open-source distributed databases, Eric Evans, a Rackspace employee, reused the term to refer to databases which are non-relational, distributed, and does not conform to atomicity, consistency, isolation, and durability – four obvious features of traditional relational database systems.
In the same year, the “no:sql(east)” conference held in Atlanta, USA, NoSQL was discussed and debated a lot.
Ever Since, discussion and practice of NoSQL gained momentum, and NoSQL saw an unprecedented growth.
The CAP Theorem (Brewer’s Theorem)
One must understand the CAP theorem when one talks about NoSQL databases or in fact when designing any distributed system. CAP theorem states that there are three basic requirements which exist in a special relation when designing applications for a distributed architecture.
This means that the data in the database remains consistent after the execution of an operation. For example after an update operation all clients see the same data.
This means that the system is always on (service guarantee availability), no downtime.
This means that the system continues to function even when the communication among the servers is unreliable, i.e. the servers may be partitioned into multiple groups that cannot communicate with one another.
In theory, it is impossible to fulfill all 3 requirements. CAP provides the basic requirements for a distributed system to follow 2 of the 3 requirements. Therefore all of the current NoSQL databases follow the different combinations of the C, A, P.