2. NOSQL DATABASES
Web 2.0 has increased data quantity stored in databases; therefore NoSQL has been developed . NoSQL databases are providing a mechanism where data is read and written in a different way from relational database models. NoSQL databases are dealing with analytical processing of big datasets .
Main advantages of NoSQL databases are listed as follows :
Data can be read and written quickly: The market specially requires high security issues like banking transactions use relational database management systems.
They apply ACID constraints, which are explained in section 2.1, to all data operations and those constraints make relational databases slower. On the ...view middle of the document...
Atomic means that all transactions are done successfully or nothing is done. If some part of transaction fails, the remaining part will be cancelled and the data left unchanged. Atomicity involves must be guaranteed in every situation like crashes, electricity interruptions and system failure.
Consistent means that the transactions bring the database from one valid state to another valid state. Any data written in the database must be valid according to rules which are defined for database such as cascades and triggers.
Isolated defines when the changed data is shown to others. It ensures that the concurrent transactions does not results dirty reads and lost updates. When Isolation level is low, everyone can see the same data at the same time and this may cause dirty reads. With the high level isolation, the effects of concurrent transaction will be reduced however it involves more systems resources.
ACID is based on CAP theorem and the guarantees provided by CAP theorem are described as below and pictured in Figure 2 :
Consistency – in a certain time, all nodes have to have same data.
Availability – All requests have to have responses.
Partition tolerance – Failure on some part of system fails does not affect whole system.
Figure 2: Characteristics of NoSQL Database (Source:http://www.nutanix.com/blog/2014/03/11/understanding-web-scale-properties/ ).
CA - Consistency and Availability
The main aim is to ensure data consistency and availability. The traditional relational database, Vertica (Column-oriented), Greenplum (Relational) and Aster Data (Relational) picked CA out of CAP.
CP - Consistency and Partition Tolerance
Those database systems keep data in the distributed nodes. In addition, those systems guaranteed the consistency of these data, but the availability is not good enough for the availability. The main CP systems are HBase (Column-oriented), Terrastore (Document), BigTable (Column-oriented), MongoDB (Document), Hypertable (Column-oriented), Berkeley DB (Key-value).
AP - Availability and Partition Tolerance
Availability and Partition tolerance are chosen primarily in those systems. KAI (Key-value),Voldemort (Key-value), Tokyo Cabinet (Keyvalue), SimpleDB (Document-oriented) are some examples of those systems.
2.2. CLASSIFICATION OF NOSQL DATABASE
NoSQL databases are classified in four types :
1- Key-Value Store
2- Document Store
3- Column-family (or Wide-Column) Store
4- Graph Database
2.2.1. Key-Value Store
All data is stored as set of values and unique keys. To access data, those keys are being related to values. Hash contains all keys in order to provide information when needed. But value may not be actual information; it may be other key . Because of the simple data structure, key-value stores are schema free. Adding new values at run time does not affect system availability and does not conflicts any other operations. In this paper, Project Voldemort, Riak and Tokyo...