The change over from Flat File System Relational Databases Relational DataBase Structure ID Name lname School 1234 Omer Niah James School 1235 James Parker NJ high school Customer Table Relation Database: ID Name lname School 1234 Omer Niah James School ID Name lname University 1235 James Parker NJ University Customer Table NoSQL: Relational Databases NoSQL Databases Structured Vs UnStructured Data Pictures ,Website Sensors , Geo information Financial information Scientific , Stocks Medicalinfinite sources
Rise in Internet and Sites with lots of Traffic
In order to handle this lot of traffic we need to Organise data by using Bigger Boxes
But , this has limitations: It costs a lot Memory limitations In order to overcome Big Boxes problem we use lots of lots of little boxes
Little boxes are the commodity hardware. Here comes main Problem: : SQL was designed to run on a single large system and Doesnt work well with Large Clusters of little boxes Data Distribution in NoSql databases Usage of Joins doesnt make database scalable. Transaction support and constraint support are to be implemented at application level No SQL doesnt support ACID properties, It follows BASE model. BASE :: Basic Availability : The NoSQL database approach focuses on availability of data even in the presence of multiple failures.
NoSQL databases spread data across many storage systems with a high degree of replication. Soft State: One of the basic concepts behind BASE is that data consistency is the developer's problem and should not be handled by the database. Eventual Consistency : The only requirement that NoSQL databases have regarding consistency is to require that at some point in the future, data will converge to a consistent state.
Mostly used NoSQL databases Key-Value Database: The main idea here is using a hash table where there is a unique key and a pointer to a particular item of data.
The Key/value model is the simplest and easiest to implement. Examples: Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB, Amazon SimpleDB, Riak Document Databases: The semi-structured documents are stored in formats like JSON. Document databases are essentially the next level of Key/value, allowing nested values associated with each key.
Document databases support querying more efficiently. Examples: CouchDB, MongoDb
These were created to store and process very large amounts of data distributed over many machines. There are still keys but they point to multiple columns.
The columns are arranged by column family. Examples: Cassandra, HBase
Instead of tables of rows and columns and the rigid structure of SQL, a flexible graph model is used which, again, can scale across multiple machines.
NoSQL databases do not provide a high-level declarative query language like SQL to avoid overtime in processing. Consistency means that data is the same across the cluster, so you can read or write to/from any node and get the same data
Availability means the ability to access the cluster even if a node in the cluster goes down.
Partition Tolerance means that the cluster continues to function even if there is a "partition" (communications break) between two nodes (both nodes are up, but can't communicate).