No Right Way

A discussion on Databases and a guide to CouchDB and Cloudant

ANY VIEWS OR OPINIONS EXPRESSED IN THIS PRESENTATION ARE THOSE OF THE AUTHOR, AND DO NOT NECESSARILY REPRESENT OFFICIAL POSITIONS, STRATEGIES OR OPINIONS OF INTERNATIONAL BUSINESS MACHINES (IBM) CORPORATION.

THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY.

WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED.

IN ADDITION, THIS INFORMATION IS BASED ON IBM’S CURRENT PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM WITHOUT NOTICE.

IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION.

NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALL HAVE THE EFFECT OF:CREATING ANY WARRANTY OR REPRESENTATION FROM IBM (OR ITS AFFILIATES OR ITS OR THEIR SUPPLIERS AND/OR LICENSORS); ORALTERING THE TERMS AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT GOVERNING THE USE OF IBM SOFTWARE.

Who the are you…?

Mike Elsmore

Developer Advocate for Cloudant

mike.elsmore@uk.ibm.com

@ukmadlz

Kinds of database

Relational Databases

NoSQL

What is NoSQL

What's the appeal

Data Model Flexibility

Elastic (automatic) scale in/out

Lower-cost operational data management platform for
thousands & millions of users

CAP Theorem


Taken from

And this applies to Relation how?

And NoSQL fits in here…?

Key Value Stores

Columnar Stores

Graph Stores

Document Stores

                
        {
             "firstName“ : "John",
             "lastName" : "Smith",
             "age“ : 25,
             "address" :
             {
                 "streetAddress“ : "21 2nd Street",
                 "city" : "New York",
                 "state“ : "NY",
                 "postalCode" : "10021"
             },
             "phoneNumber":
             [
                 {
                   "type" : "home",
                   "number“ : "212 555-1234"
                 },
                 {
                   "type" : "fax",
                   "number“ : "646 555-4567"
                 }
             ]
         }
                
              

How does this apply to CAP theorem

Why use MongoDB

It's quick

It's easy to use

            
              db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450});
              db.unicorns.find();
              db.system.indexes.find();
            
          

Why use Cloudant / CouchDB

It works as a HTTP API

It's eventually consistant

It's managed - if you use Cloudant

Why carry on with Relational

http://sqoop.apache.org/

The End

Slides