The document provides an overview of NoSQL databases, including what NoSQL means, the rise of NoSQL as an alternative to relational databases, different classifications of NoSQL databases, pros and cons, use cases, and real-world examples. It discusses how NoSQL databases provide more flexible schemas and scalability than relational databases for applications like logging, shopping carts, and user preferences, while relational databases remain better for transactions and business critical data. The presenter then demonstrates CouchDB as one example of a NoSQL database.
1 of 16
Downloaded 146 times
More Related Content
NoSQL: what does it mean, how did we get here, and why should I care? - Hugo Rodger-Brown
2. NoSQLWhat does it mean?RDBMS legacy and rise of NoSQLNoSQL classificationPros and ConsPossible use casesReal-world examplesWhat next?
3. Who am I?Hugo Rodger-BrownCTO @ Profero Connecttwitter.com/hugorodgerbrownhugorodgerbrown.blogspot.comThings I like: SEO, Scale, Social mediaThings I don¡¯t: Databases
4. What does it mean?Movement, not a specificationSubjective term (like Web 2.0)Originally used in 1998Reintroduced at Rackspace to refer to non-RDBMSNoSQL != No SQLNoSQL == Not Only SQL ?
6. RDBMS LegacyEfficient data storagePowerful querying capabilities (SQL)Support ACID TransactionsMature, well supportedUbiquitousBottom-up designStorage is cheapO/R ImpedanceComplex to manageAlways the bottleneckWho really needs transactions?
7. Rise of NoSQLInternetGoogle2006 Bigtable whitepaper (Google)¡°a sparse, distributed multi-dimensional sorted map¡±2007 Dynamo whitepaper (Amazon)2008 Cassandra released (Facebook)¡°a BigTable data model running on an Amazon Dynamo-like infrastructure¡±2009 Voldemort released (LinkedIn)¡°a big, distributed, persistent, fault-tolerant hash table¡±
8. Rise of NoSQL ¨C Amazon¡°There are many services on Amazon¡¯s platform that only need primary-key access to a data store. For many services, such as those that provide best seller lists, shopping carts, customer preferences, session management, sales rank, and product catalog, the common pattern of using a relational database would lead to inefficiencies and limit scale and availability. Dynamo provides a simple primary-key only interface to meet the requirements of these applications.¡±
10. Why NoSQLGoodFlexible (schema-less)Very scalableSimple to use and operateEventually consistentCheapSuited to Web applicationsBadImmatureNo common standardsPoor transaction supportPoor query supportNew mindset required
11. NoSQL Use CasesGood ExamplesLogging dataShopping cartsFavouritesPreferencesSession dataMock data providersTemporary / working dataVariable schema dataStick with RDBMSTransactions (orders etc.)LOB applicationsAnything involving $$$Business-critical dataReporting
14. Real-world Examples¡°As I described in an earlier blog post, the new BBC homepage has been built on a whole new technical architecture. Since launching we¡¯ve found an issue with the service we use to save users¡¯ customisation settings. Although we ran a public beta for more than 2 months, this problem only became apparent when we moved the whole audience across to the new site, increasing the load on the platform 20 times. Despite thorough load testing before launch we were unable to accurately predict the type and combination of customisations that users would perform, and as a result we now need to re-architect the way we save your homepage customisation settings in a more efficient way.¡±
15. SummaryNoSQL is not a replacement for RDBMSNo two scenarios are the sameUse best tool for the jobExperiment
#5: NoSQL doesn¡¯t have a formal definitionIt¡¯s subjective, and has come to mean different things to different peopleThe original use, byCarlo Strozzi, was used for a lightweight relational database that did not expose a SQL interfaceIt was reintroduced as a term used to describe open-source non-relational databases for a conference held in 2009Summary: we have the concept of a form of persistence / data storage mechanism that is fundamentally different from RDBMS
#7: Normalisation is the key here.SQL is an ISO standard, and pretty much everyone can craft a SELECT statementSQL also contains complex semantics around JOIN, GROUP, ORDER BY statementsTransactions ¨C the bank account example