nosql databases

Download NoSql Databases

Post on 26-Jan-2015




1 download

Embed Size (px)




  • 1. NoSQL Databases. By Nimat Ullah Khattak. 11-MS(IT)-27 & Majid Hussain. 11-MS(IT)-02

2. Overview of The Presentation NoSQL Why NoSQL Categories of NoSQL databases Comparison of different NoSQL databases. 3. NoSQL A term which stands for 4. NoSQL (Beginning) First used by Carlo Strozzi in 1998. Reintroduced by Eric Evan in 2009. 5. NoSQL(What is NoSQL?) NoSQL doesnt mean to stop using SQL. OR SQL wont be used. The term refers to those databases that differ from relational databases. Simply Non-relational databases. 6. Some terms we must know ACID (Atomicity, Consistency, Isolation, Durability). CAP (Consistency, Availability, Partition Tolerance). 7. ACID Atomicity. All of the operations in the transaction will complete, or none will. Consistency. The database will be in a consistent state when the transaction begins and ends. Isolation. The transaction will behave as if it is the only operation being performed upon the database. (No interference of transaction) Durability. Upon completion of the transaction, the operation will not be reversed. 8. CAP Consistency. No contradiction b/w data. Availability. Every operation must terminate in an intended response. Partition tolerance. Operations will complete, even if individual components are unavailable NoSQL are based on CAP 9. CAP (For NoSQL) 10. Why NoSQL? NoSQL didnt come because of the shortfalls of SQL 11. Why NoSQL (Features) It provides: Horizontal scalability Open-source Schema-freeness Easy replication support Simple API 12. Why NoSQL (Features) NoSQL databases are eventually consistent / CAP (not ACID). 13. Scalability To maintain performance. Horizontal Scalability: To increase the no-of machines but maintaining proportional performance. Vertical scalability: To add more resources to your single machine to optimize performance. 14. Open source Most of the NoSQL Projects are Open source. So any one can use, modify it, like Cassandra by facebook. Couch and MongoDB. Neo4j etc Bigtable by google but only allowed for Google application. 15. Schema freeness NoSQL databases doesnt use any fixed schema like relational database. Internal schema External schema etc The original intention of NoSQL is the modern web-scale databases. 16. Easy replication support The use of redundant resources to improve: Reliability Fault-tolerance Performance 17. Why NoSQL (Benefits) 1. Scaling RDBs werent easy to scale out. On the other hand NoSQL DBs are specially designed to scale out. 18. Why NoSQL (Benefits) 2. Big data Single RDBMS is almost unable to handle todays huge amount of data and the transaction on that data. But Non-Relational databases are specially designed to handle big data. 19. Why NoSQL (Benefits) 3. Needs no Expert DBAs Although RDMS vendors claim that RDBMS provide management facilities but it still need an expert DBA to operate it. In contrast NoSQL DBs dont need expert DBAs, as it provides automatic repair, data distribution, and simpler data models, which lead to lower administration. 20. Why NoSQL (Benefits) 4. Economics RDBMS requires expensive components for providing efficient service. NoSQL uses cheap commodity servers to manage the same amount of data for which RDBMS needs expensive server. so NoSQL is economical as well. 21. Why NoSQL (Benefits) 5. Flexibility of data models There can occur changes in the requirements of an organization with the passage of time Changes in RDBMS after its deployment creates many problems and also affects its services or some time its even almost impossible to make changes. NoSQL database can be changed at any instance, i-e existing columns can be altered and new can be added. 22. Categories of NoSQL databases 1) Key Value stores Dont have any schema Fast lookups facility Can be use in a forum software where users statistic and messages are recorded. Users id will serve as a key and will retrieve a string that represents all the relevant info of the user. And a background process recalculates the information and writes to the store independently after fixed interval of time. Example Redis: Redis is an open source, advanced key- value store. It is often referred to as a data structure server since keys (data types) can contain strings, hashes, lists, sets and sorted sets. 23. Categories (cont) API: Tons of languages, Written in: C, Concurrency: in memory and saves asynchronous disk after a defined time. 2) Document databases web application tolerance of incomplete data low query performance no standard query syntax Used when we dont have complete data about all the entities of database but we still need to create database. Example CouchDB: API: JSON, Protocol: REST, Query Method: MapReduceR of JavaScript Funcs, Replication: Master Master, Written in: Erlang. 24. Categories (cont) MongoDBMongoDB: API: BSON, Protocol: lots of langs,: API: BSON, Protocol: lots of langs, Query Method: dynamic object-based language,Query Method: dynamic object-based language, Replication: Master Slave, Written in: C++.Replication: Master Slave, Written in: C++. 3) Graph databases Social networkingSocial networking graph algorithms, connectedness, degree of relationshipsgraph algorithms, connectedness, degree of relationships has to traverse the entire graph to get definitive answer.has to traverse the entire graph to get definitive answer. not easy to cluster.not easy to cluster. used in a situation where we want to analyze the on goingused in a situation where we want to analyze the on going trends and take decision on the basis of those trends.trends and take decision on the basis of those trends. 25. Categories (cont) Example:Example: Neo4J:Neo4J: API: lots of langs, Protocol: Java embedded / API: lots of langs, Protocol: Java embedded / REST, Query Method: SparQL, nativeJavaAPI, JRuby,REST, Query Method: SparQL, nativeJavaAPI, JRuby, Replication: typical MySQL style master/slave, Written in:Replication: typical MySQL style master/slave, Written in: Java, Concurrency: non-block reads, writes locks involvedJava, Concurrency: non-block reads, writes locks involved nodes/relationships until commit, Misc: ACID possiblenodes/relationships until commit, Misc: ACID possible 4) XML databases Publishing mature search technologies schema validation re-writing is easier than updating 26. Categories (cont) Used in a situation where one wants to produce documents of articles etc from a huge amount of documents but the format of those article doesnt allow the publisher to perform search on it. Those articles are converted into xml database and wrap it in a readable-URL web service for the document production systems. 5) Distributed Peer Stores distributed file systems Fast lookups Good distributed storage of data Very low level API Best for voting system. In such a situation one store/user and one store/piece of content is created. The user store will hold all the votes they have ever casted and the content will store a copy of the content on which vote was casted. 27. Categories (cont) ExampleExample Cassandra:Cassandra: API: many Thrift languages, Query Method:API: many Thrift languages, Query Method: MapReduce, Written in: Java, Concurrency: eventuallyMapReduce, Written in: Java, Concurrency: eventually consistent , Misc: like "Big-Table on Amazon Dynamoconsistent , Misc: like "Big-Table on Amazon Dynamo alike", initiated by Facebook.alike", initiated by Facebook. 28. Tabular comparison: 29. The End Any Confusion???

View more >