Docstoc

NoSQL databases - noppa.aalto.fi

Document Sample
NoSQL databases - noppa.aalto.fi Powered By Docstoc
					NoSQL databases 

   Arto Tolonen 
                     Structure 
•    Basics of NoSQL 
•    “Real life” example 
•    Scaling 
•    Summary 
             Your knowledge 
•  How many of you are familiar with NoSQL 
   concept? 
•  How many of you have used NoSQL in a 
   project? 
BASICS 
                     NoSQL 
•  “The term is used to designate a database 
   management system that differs from classic 
   RDBMS in some way.” 
•  NoSQL databases are usually non‐relaNonal 
  –  “Structured storages” in academic papers 
•  BeOer term: “NoREL”? 
                      NoSQL 
•  Typically 
   –  Does not require table schemas 
   –  Avoid join operaNons 
   –  Scale horizontally 
•  Many different types of implementaNons: 
   document stores, graph databases, key/value 
   stores, etc. 
    Open source NoSQL soluNons 
•  Apache Cassandra 
  –  Structured key‐value store 
  –  Developed by Facebook for their inbox search 
•  FlockDB 
  –  Graph database 
  –  Used by TwiOer 
•  MongoDB 
  –  Document oriented database 
  –  Used by Foursquare, SourceForge, GitHub, etc. 
         Other NoSQL soluNons 
•  Amazon SimpleDB 
   –  Document store 
   –  Part of Amazon EC2 
•  BigTable 
   –  Key‐value store 
   –  “Extremely large‐scale DBMS” (hundreds or 
      thousands of machines) 
   –  Part of Google App Engine 
       Example architectures 

NoSQL (MongoDB)     RDBMS (MySQL) 
“REAL LIFE” EXAMPLE 
            Example (blog post) 
•  Data 
   –  Blog post id 
   –  Blog post author 
   –  Blog post Ntle 
   –  Blog post text 
   –  Possible tag(s) 
           Example (RDBMS) 
•  RDBMS (MySQL) data structure 
            Example (RDBMS) 
•  CreaNng the data structures 




•  InserNng the data 
             Example (RDBMS) 
•  Fetching all blog posts (with tags) 
•  Desired outcome 
   –  One row per blog post 
   –  Tags included 
            Example (NoSQL) 
•  NoSQL (MongoDB) data structure 
  –  JSON (JavaScript Object NotaNon) 
  –  Each post as separate “document” 
             Example (NoSQL) 
•  CreaNng the data structures 
  –  Not needed! 


•  InserNng the data 
              Example (NoSQL) 
•  Fetching all blog posts (with tags) 
•  Desired outcome 
   –  One row per blog post 
   –  Tags included 
SCALING 
             Data consistency 
•  Ensures that each user observes consistent 
   view of the data 
  –  E.g. two different users cannot modify the same 
     data simultaneously 
•  Typical promise for RDBMS soluNons 
            Data consistency 
•  Good (or even essenNal) feature for some 
   applicaNons 
•  Example: accounNng 
                       Scaling 
•  Data in RDBMS soluNons is hard to parNNon 
  –  > Scaling verNcally 


•  NoSQL soluNons have more relaxed data 
   consistency requirements 
•  NoSQL soluNons easy to parNNon 
  –  > Scaling horizontally 
            Horizontal scaling 
•  Instead of adding more power, you add more 
   machines 
•  Makes the system more fault tolerant 
•  The database soluNon makes sure of the data 
   consistency (eventually) 
                     Summary 
•  “One size does not fit all.” 
   –  Select the database for each project separately 
•  NoSQL usually provides 
   –  Performance 
   –  Scalability 
•  NoSQL usually do not provide 
   –  Data consistency (“instant”) 
   –  TransacNons 
QuesNons? 

				
DOCUMENT INFO
Shared By:
Tags: NoSQL
Stats:
views:26
posted:9/26/2011
language:English
pages:24
Description: NoSQL, refers to a non-relational database. With the rise of the Internet web2.0 site, the traditional relational database in dealing with web2.0 site, especially the large scale and high concurrent SNS type of web2.0 pure dynamic website has appeared to be inadequate, exposes a lot of difficult problems to overcome, rather than the relational database is characterized by its own has been very rapid development.