Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Many Flavors of NoSQL at Midwest PHP

The Many Flavors of NoSQL at Midwest PHP

The relational database has been the dominant model for persisting data for the last 40 years. While SQL databases aren't going away anytime soon, the NoSQL ("not only SQL") movement has challenged the relational database's place as the default persistence layer for modern applications. Learn about horizontal scaling and eventual consistency as well as key-value stores, document databases, graph databases, and more.

Bradley Holt

March 05, 2016

More Decks by Bradley Holt

Other Decks in Programming


  1. Midwest PHP Bradley Holt, Developer Advocate Saturday, March 5, 2016

    The Many Flavors of NoSQL @BradleyHolt
  2. @BradleyHolt

  3. None
  4. IBM Cloud Data Services Open for Data A comprehensive por.olio

    of open source data services
  5. None
  6. None
  7. Big Data Get it?

  8. A Brief History of Data

  9. The Relational Database @BradleyHolt order *order_id customer_id date customer line_item

    *customer_id email_address name *order_id *item_id price quantity
  10. ACID Guarantees Relational databases guarantee atomicity, consistency, isolation and durability

  11. Big Iron The ACID guarantees provided by relational databases were

    (and often still are) critical for systems of record
  12. The World Wide Web The introduction of the Web brought

    a whole new type of application with different constraints than systems of record @BradleyHolt
  13. Mobile Apps The introduction of mobile apps added to the

    growing number of systems of engagement
  14. Changing Constraints

  15. Always On

  16. Big Data

  17. The CAP Theorem @BradleyHolt Partition Tolerance Availability Consistency Consistency Availability

    Partition Tolerance
  18. Horizontal Scaling Horizontal scaling is scaling through the addition of

    commodity hardware
  19. Eventual Consistency Given no new updates, each node in a

    distributed system will eventually have a consistent view of the data
  20. Enter "Not only SQL" (NoSQL)

  21. @BradleyHolt key-value graph document …more

  22. @BradleyHolt

  23. Key-Value Stores Opaque data accessed through unique keys

  24. Document Databases A variation on key-value stores with strictly defined

    values (e.g. JSON objects)
  25. Graph Databases Nodes and properties of nodes connected via edges

  26. Choosing the Right Data Layer

  27. Data Store It is not possible to abstract all of

    the constraints of your data store
  28. Object-Relational Impedance Mismatch Object-oriented programming and relational databases use different

  29. Semi-Structured Data Relational databases enforce a schema

  30. High Concurrency Database tuning often includes reducing the transaction scope

    or denormalization
  31. Eric Evans on NoSQL "This is the world of NoSQL

    to me, that we can choose a tool that fits well with the problem we're trying to solve." –Eric Evans (author of Domain-Driven Design) @BradleyHolt
  32. Strategic Design

  33. @BradleyHolt

  34. Bounded Context Bounded contexts allow different domain models to be

    used within different contexts
  35. One Data Layer Per Bounded Context Each bounded context should

    have its own data layer, and should not directly access a data layer belonging to another bounded context
  36. Data Systems A data layer may be a database, or

    it can be a data system consisting of multiple databases
  37. Microservices as Bounded Context Represent each bounded context as a

    microservice or a cluster of microservices
  38. @BradleyHolt Catalog Document Database Key/Value Store Graph Database Full Text

    Search Shopping Cart Document Database Key/Value Store Orders Relational Database Big Data Analytics (e.g. Apache Spark)
  39. Examples developer.ibm.com/clouddataservices

  40. None
  41. Simple Data Pipe @BradleyHolt

  42. None
  43. None
  44. Further Reading @BradleyHolt

  45. Image Credits §  Open for Data Dome (outside) by Bradley

    Holt §  Open for Data Dome (inside) by Bradley Holt §  Brent Spiner (Data from Star Trek: The Next Generation) with Zoltar from Big by Bradley Holt, on Twitter <https://twitter.com/BradleyHolt/status/702311271002087424> §  database 2 by Tim Morgan, on Flickr <https://flic.kr/p/7Frdi> §  Hard Disk by Jeff Kubina, on Flickr <https://flic.kr/p/uS4zk> §  IBM 360 Announcement center by Robert Nix, on Flickr <https://flic.kr/p/bu2gfG> §  Dialing Up Web History by Mike Licht, on Flickr <https://flic.kr/p/cacNad> §  Instagram and other Social Media Apps by Jason Howie, on Flickr <https://flic.kr/p/d41HES> §  Dynamo, un siècle de lumière et de mouvement dans l'art, 1913 – 2013 - Galeries nationales du Grand Palais - Paris - 10 avril au 22 juillet 2013 by Yann Caradec, on Flickr <https://flic.kr/p/ebpwib> §  World travel and communications recorded on Twitter by Eric Fischer, on Flickr <https://flic.kr/p/b7ntgR> §  Server grill with blue light by David Precious, on Flickr <https://flic.kr/p/cfXKY1> §  Spider Web by Alden Chadwick, on Flickr <https://flic.kr/p/z4hgz1> §  database by Tim Morgan, on Flickr <https://flic.kr/p/7DUk5> §  Keys for the Stanley Hotel by Mike Silva, on Flickr <https://flic.kr/p/z6P3RM> §  paper by malik, on Flickr <https://flic.kr/p/aZjTXv> @BradleyHolt
  46. Image Credits (cont'd) §  Edinburgh Road Network analysis by Steven

    Kay, on Flickr <https://flic.kr/p/ao19br> §  Lina Bo Bardi, SESC Pompéia by paulisson miura, on Flickr <https://flic.kr/p/a8dwVr> §  Financial District Classical Building Reflection Distortion, San Francisco, California, USA by Wonderlane, on Flickr <https://flic.kr/p/5rnE8S> §  Untitled by Allen Lai, on Flickr <https://flic.kr/p/pNjnQu> §  Traffic Trails by Mohan Noone, on Flickr <https://flic.kr/p/7RUVA5> §  Eric Evans by Oliver Gierke, on Flickr <https://flic.kr/p/9iukii> §  rectangles by Dean Hochman, on Flickr <https://flic.kr/p/iPpAs8> §  Hexagons by Henry Burrows, on Flickr <https://flic.kr/p/e9sTjU> §  Rooted by Anna Levinzon, on Flickr <https://flic.kr/p/5Xa8K9> §  Rainforest Biome by BMiz, on Flickr <https://flic.kr/p/fpLRzV> §  A mockup of the golden Apple iPhone 5S by Zach Vega, on Wikimedia Commons <https://commons.wikimedia.org/wiki/File:IPhone_5s.png> §  Marvin beating Data at Rock, Paper, Scissors by Marvin P Android, on Twitter <https://twitter.com/marvinwinsagain/status/705483336693583874> @BradleyHolt
  47. joind.in/talk/d5b9d Questions? @BradleyHolt