Agenda
Definition
Types
Gr8Ladies Example Application
What is NoSQL?
Not Only SQL
Group of data storage solutions that are not Relational Database Management System(RDBMS)
Schemaless
Non-relational
Originally NoSQL was used to refer to databases that did not use SQL or as 'not sql'. Over time, the phrase
has evolved to mean Not Only SQL. As a broad definition, NoSQL describes a group of storage solutions
that are not tabular like traditional relational databases.
Types of NoSQL solutions
Key-value
Document
Column
Graph
Key-value Stores
Examples
MemCached
DynamoDB
Redis*
Uses
Content Caching
Transient Data
Image Stores
Considerations
Relationships
Transactions
Querying
Document Stores
Examples
CouchDB
RavenDB
Azure DocumentDB
MongoDB
Uses
Content Management Systems(CMS) / Blogging Platforms
Forms/data with many optional fields
Frequently Changing Schemas
Considerations
Complex transactions
Complex searching
especially if searching is within the embedded structures
Column Databases
Examples
Cassandra
HBase
Hypertable
Use Cases
CMS Systems/ Blogging Platforms
Log Aggregators
Incremental Counters
Considerations
Schema Changes
Arbitrary unstructured data
Graph Databases
Examples
Neo4J
OrientDB
Allegro Graph
Uses
Many connections between data
Social Networks
E-commerce Recommendations
Nearby Locations and Routing
Considerations
Casscading writes
Very different way of thinking about data
Suggested Reading
Sadalage, Pramod J., and Martin Fowler. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence . Addison-Wesley Professional, 2012. Print.
Vardanyan, Mikayel. "Picking the Right NoSQL Database Tool." Monitis Blog . 22 May 2011. Web.
Copeland, Rick. MongoDB Applied Design Patterns . O'Reilly Media, 2013. Print.
Chinnachamy, Arun. Redis Applied Design Patterns . Packt Publishing, 2014. Print.
How do I pick just one?
You don't have to!
NoSQL data stores are meant to enhance existing solutions not be a one size fits all solution. Mix and match for various tasks.
Example Task
Gr8Ladies Products
Catalog Products
Shopping Cart
Approaches
All In - MongoDB GORM
Partial - Grails-Redis plugin
MongoDB
Terminology
Databases
Collections
Document