In this topic, we described about the below sections -
Limitations of RDBMS
- When we need to process data first we define the structure and schema of the data.
- By using ACID properties RDBMS provide data consistency and integrity but in some other cases it has impact on performance, and it slow down the quick response.
- RDBMS has fixed length on field. When we try to enter more data into that field then we loss the information.
To overcome those NoSQL came into picture.
What is NoSQL
NoSQL stands for 'Not only SQL' database. NoSQL was introduced in the year in 1998 by Carl Strozz. NoSQL was non-relational database management system. NoSQL has unstructured database system. We need not to define the structure of data in NoSQL before inserting data. It deals with huge amount of data to increase scalability. In big data and real-time web applications, NoSQL database is used.
Now these days drastic use of social media, we need to deal with huge amount of data and that data too unstructured and semi structured for this traditional RDBMS has extremely low response and it is impossible to deal with unstructured data. For this reasons we need to use NoSQL database management system.
History of NoSQL
The term NoSQL was introduced by Carl Strozz. He used this to name his open source, light-weight database which does not have SQL interface.
The releases that are launched are as follows -
- Graph database Neo4j was launched in 2000
- Google BigTable is launched in 2004
- CouchDB is launched in 2005
- The research paper on Amazon Dynamo is released in 2007
- Facebooks open sources the Cassandra project in 2008
- "no:sql(east)" conference held in Atlanta, USA in 2009, NoSQL was discussed and debated a lot and the term NoSQL fixed again.
When we used NoSQL
- While we need to use huge amount of data for storage and retrieval purpose.
- When the data changes time to time and it is unconstructed.
- There is no need of constraints and joins in database level.
- When data is increasing rapidly, and we need to maintain scalability and regularity.
- where the relationship between the stored data is not an important.
Types of NoSQL database
The various types of NoSQL databases are listed as below-
- Document based – The data is stored in the form of documents.Documents may be a PDF,JSON file, Microsoft word, XML. Document contain key value pairs. Document may not have same structure with other documents. Documents are grouped in to collections. MongoDB, CouchDB, Cloudant are examples of document based NoSQL database.
- Key value store – Data is stored like key/value pairs. key/value paired data stored in database in the form of hash table. each key is UNIQUE. The value stored may be an integer, string, BLOB(binary large objects ), JSON etc....The Key value store based database is simplest database among all databases in NoSQL database. Memcached, Redis, Coherence are the examples of Key value store database.
- column store – Data stored in grouped columns instead of rows. Every column values are stored separately. It delivered high performance on aggregate functions like COUNT, SUM, MAX, MIN. Group of columns data stored in keyspace like schema in RDBMS. Key space contains group of rows of columns. Hbase, Big Table, Accumulo are the examples of column store database.
- Graph store – Data is represented in the form of directed graph.It consists nodes and edges. Node represents an entity ang Edge represents the relationship between two nodes. Node and edge to be UNIQUE. social networks, logistics, spatial data used graph store database. Neo4J, Infinite Graph, OrientDB, FlockDB are the examples of graph store database.
Advantages of NoSQL
- NoSQL database have key/value pairs.
- NoSQL database does not need expensive license,It can run on simple hardwareand deployment coat also effective.
- NoSQL database has high scalability i.e.it can add multiple machines to handle data.
- NoSQL database has no point of failure.
- By using NoSQL database there is no need of separate caching layer.
- NoSQL database provides high performance.
- NoSQL database can work on structured, semi-structured,and unstructured data.
- NoSQL database has don't need a high performance server.
- NoSQL database was simple to implement.
- NoSQL database work like a primary or analytic data source.
- NoSQL database has simple relationships.
Disadvantages of NoSQL
- NoSQL database does not support ACID properties.
- NoSQL database creates more complexity to the data while developers developing code without following reliability.
- NoSQL database has no standardization rules.
- In NoSQL database when data increases rapidly, maintaining unique data was became complex.
- NoSQL database has limited query capabilities.
- In NoSQL database has not work well like relational database.
- In NoSQL database Back up is a weak point.
- NoSQL database has large document size.
- In NoSQL database data management is more complex.
- In NoSQL database GUI mode tools are not flexible to handle data.
- In NoSQL database consistency is very less.
CAP Theorem is also known as Brewer's theorem.When we are designing applications in distributed system we need to use CAP Theorem properties.CAP Theorem has three properties that are explained as follows -
Consistency -The data in the database should have consistent even after executing an operation.The clients that have same view on database.
Availability -The system that is always is on and responsible i.e.it has no down time.
Partition Tolerance -The system should work well i.e.If the communication between multiple servers is not stable till the system is going to work.