While there are hundreds of different “Not Only SQL” (NoSQL) databases offered today,
Each with its own particular features and benefits, a NoSQL database generally differs from a traditional RDBMS in the following ways:
While an RDBMS primarily handles structured data in a rigid data model, a NoSQL database typically provides a more flexible and fluid data model and is more adept at serving the agile development methodologies used for modern applications. Further, NoSQL is capable of easily consuming and managing all modern data types. Note that one misconception about NoSQL data models is that they do not handle structured data, which is untrue.
Whereas RDBMS’s are normally architected in a centralized, scaleup, master-slave fashion, NoSQL systems such as Cassandra operate in a distributed, scale-out, “masterless” manner (there is no ‘master’ node). However, some NoSQL databases (e.g. MongoDB, HBase) are master-slave in design.
Data distribution model:
Because of their master-slave architectures, most RDBMS’s distribute data to slave machines that can act as read-only copies of the data and/or failover for the primary machine. By contrast, a NoSQL database like Cassandra distributes data evenly to all nodes making up a database cluster and enables both reads and writes on all machines. Furthermore, the replication model of RDBMS’s (including master-to-master) is not designed well for wide-scale, multi geographical replication and synchronization of data between different locales and cloud availability zones, whereas Cassandra’s replication was built from the ground up to easily handle such things.
RDBMS’s typically use a failover design where a master fails over to a slave machine, whereas a NoSQL system like Cassandra is masterless and provides redundancy of both data and function on each node so that it offers continuous availability with no downtime versus simple high availability in the way an RDBMS does.
Scaling and Performance model:
An RDBMS typically scales vertically by adding extra CPU, RAM, etc., to a centralized machine, whereas a NoSQL database like Cassandra scales horizontally by adding extra nodes that deliver increased scale and performance in a linear manner.