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 
            
              Redis*   
           
          
            Uses 
            
              Content Caching 
              Transient Data 
              
              Image Stores 
             
           
          
            Considerations 
            
              Relationships 
              Transactions 
              Querying 
             
           
          
         
        
          
            Document Stores  
          
            Examples 
            
              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 
            
               
           
          
            Use Cases 
            
              CMS Systems/ Blogging Platforms 
              Log Aggregators 
              Incremental Counters 
             
           
          
            Considerations 
            
              Schema Changes 
              Arbitrary unstructured data 
             
           
         
        
          
            Graph Databases  
          
            Examples 
            
               
           
          
            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