NoSQL







Not Only SQL


Some NoSQL implementation/strategies
do have a query language

Why?


"Web-scale"
  • Volume of user data
  • Frequency of access
  • Types of data
  • Flexibility

Generally


  • Simpler design
  • Schema-less
  • Not table based
  • Horizontally scalable
  • Lack Transactions

Types


  • Column
    • Queries over huge datasets
    • Stores columns of data rather than rows
  • Document
    • think JSON
  • Key-Value
    • Some support more complex values
  • Graph
    • Store network information
    • Social connections

Scenarios


  • Provide caching
  • Agile application lifecycle
  • Performance
  • Simplicity
  • Cost

Caching


"Mix and Match"
  • One size fits all does not exist
    • If you think it does, you're wrong
  • Uses a relational backend
  • Caches in NoSQL on the front end

Agile



  • Schema-less
  • Changing requirements
  • Changing design
    • Schema Updates
    • Data Migration

Performance


"You know your application"
  • Store your data that way

Simplicity



  • Simple data structures
  • Config flat file
  • Replication
  • Sharding

Cost


  • Commodity hardware
    • scale horizontally
    • less resource intensive
  • Free, Open Source software

Use Cases


  • MongoDB
    • great general database
    • Queryable
  • Redis
    • great for caching
    • key/value
    • pub/sub
  • CouchDB
    • HTTP interactions
    • Map/Reduce

MongoDB


NoSQL

By Ryan Hirsch

NoSQL

  • 834