NoSql Databases
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

NoSql Databases

on

  • 2,001 views

 

Statistics

Views

Total Views
2,001
Views on SlideShare
2,001
Embed Views
0

Actions

Likes
2
Downloads
386
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

NoSql Databases Presentation Transcript

  • 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 doesn’t mean to stop using SQL. OR SQL won’t 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 didn’t 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 doesn’t 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 weren’t 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 today’s 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 don’t 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 it’s 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  Don’t have any schema  Fast lookups facility  Can be use in a forum software where user’s statistic and messages are recorded. User’s 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 don’t 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 doesn’t 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…???