SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
NoSQL


   Ioseb Dzmanashvili
   Lead Architect @ Picktek
   Teacher @ Caucasus School of Technology
Monday, April 2, 2012
NoSQL is a ill-defined and volatile field
                                    © Martin Fowler




Monday, April 2, 2012
It actually means:
                           Not Only SQL


Monday, April 2, 2012
NoSQL                 SQL
         MongoDB             MySql
         CouchDB             Oracle
         Redis              M$SQL
         Neo4j          PostgreSQL
         Cassandra           SQLite

Monday, April 2, 2012
NoSQL Kinds

                        • Document Oriented
                        • Key Value Oriented
                        • Graph Oriented
                        • ...
                        • Something else Oriented

Monday, April 2, 2012
Other NoSQL
                            Characteristics

                        • No Relational Structures
                        • No JOIN Queries
                        • No Schema
                        • No Complex Transactions

Monday, April 2, 2012
MongoDB

                        open-source, high-performance,
                        document-oriented database
                                                  © MongoDB




Monday, April 2, 2012
Why MongoDB?

      It is not the strongest of the species
      that survives, nor the most intelligent.
      It is the one that is most adaptable to
      change.
                                     © Charles Darwin




Monday, April 2, 2012
Flexible Structure

              db.blogposts.insert({
                name: "ioseb",
                date: "2012-04-01",
                title: "NoSQL Sucks",
                summary: "Yes it Sucks",
                content: "..."
              });




Monday, April 2, 2012
Flexible Structure
              db.blogposts.update({
                   name: "ioseb"
                 }, {
                   name: "ioseb",
                   date: "2012-04-01",
                   title: "NoSQL is Cool!",
                   summary: "Yes it's Cool!",
                   content: "...",
                   tags: [
                     "nosql", "sql"
                   ]
                 }
              );

Monday, April 2, 2012
Flexible Structure
              var comment = {
                 name: "john doe",
                 email: "john@doe.com",
                 comment: "NoSQL Rulez!!!"
              };

              db.blogposts.update({
                   name: "ioseb"
                 }, {
                   $push: {
                      comments: comment
                   }
                 }
              );
Monday, April 2, 2012
Flexible Structure


              var post = db.blogposts.find(
                 {name: "ioseb"}
              );




Monday, April 2, 2012
Flexible Structure
             {
                    name: "ioseb",
                    date: "2012-04-01",
                    title: "NoSQL is Cool!",
                    summary: "Yes it's Cool!",
                    content: "...",
                    tags: [
                      "nosql", "sql"
                    ],
                    comments: [
                       {author: "john", email: "john@doe.com", ...}
                    ]
             }


Monday, April 2, 2012
Flexible Indexing
            // index by name
            db.blogposts.ensureIndex(
                {name: true}
            );

            // index by tags array
            db.blogposts.ensureIndex(
                {tags: true}
            );

            // index by comments authors
            db.blogposts.ensureIndex(
                {"comments.author": true}
            );

Monday, April 2, 2012
Replica Sets

            • Asynchronous master/slave replication
            • Automatic failover
            • Automatic recovery
            • Consists of two or more nodes
            • Automatic primary node election

Monday, April 2, 2012
...Replica Sets
                        Member 2             Member 1



                                                    Read
                         Member 3
                          Primary
                                    Read/Write
                                                 Client


Monday, April 2, 2012
Easy Configuration

        config = {_id: 'GTUG', members: [
           {_id: 0, host: 'localhost:27017'},
           {_id: 1, host: 'localhost:27018'},
           {_id: 2, host: 'localhost:27019'}
        ]}

        rs.initiate(config);




Monday, April 2, 2012
...Replica Sets Arbiter

                        Member 2
                          Arbiter
                          No Data         Member 1



                                                   Read
                        Member 3
                         Primary    Read/Write   Client



Monday, April 2, 2012
Easy Configuration

        config = {_id: 'GTUG', members: [
           {_id: 0, host: 'localhost:27017'},
           {_id: 1, host: 'localhost:27018'},
           {_id: 2, host: 'localhost:27019', arbiterOnly: true}
        ]}

        rs.initiate(config);




Monday, April 2, 2012
Questions?



Monday, April 2, 2012
Thank You!



Monday, April 2, 2012

Más contenido relacionado

Similar a Brief overview of NoSQL & MongoDB for GTUG Tbilisi Event

MongoDB Aug2010 SF Meetup
MongoDB Aug2010 SF MeetupMongoDB Aug2010 SF Meetup
MongoDB Aug2010 SF Meetup
Scott Hernandez
 
HTML5 summit - DevCon5 - Miami - Feb 2, 2012
HTML5 summit - DevCon5 - Miami - Feb 2, 2012HTML5 summit - DevCon5 - Miami - Feb 2, 2012
HTML5 summit - DevCon5 - Miami - Feb 2, 2012
Caridy Patino
 
08 aggregation and collection classes
08  aggregation and collection classes08  aggregation and collection classes
08 aggregation and collection classes
APU
 
MongoDB @ Frankfurt NoSql User Group
MongoDB @  Frankfurt NoSql User GroupMongoDB @  Frankfurt NoSql User Group
MongoDB @ Frankfurt NoSql User Group
Chris Harris
 

Similar a Brief overview of NoSQL & MongoDB for GTUG Tbilisi Event (20)

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Mongodb Training Tutorial in Bangalore
Mongodb Training Tutorial in BangaloreMongodb Training Tutorial in Bangalore
Mongodb Training Tutorial in Bangalore
 
Challenges with MongoDB
Challenges with MongoDBChallenges with MongoDB
Challenges with MongoDB
 
Starting with MongoDB
Starting with MongoDBStarting with MongoDB
Starting with MongoDB
 
MongoDB Aug2010 SF Meetup
MongoDB Aug2010 SF MeetupMongoDB Aug2010 SF Meetup
MongoDB Aug2010 SF Meetup
 
The emerging world of mongo db csp
The emerging world of mongo db   cspThe emerging world of mongo db   csp
The emerging world of mongo db csp
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
HTML5 summit - DevCon5 - Miami - Feb 2, 2012
HTML5 summit - DevCon5 - Miami - Feb 2, 2012HTML5 summit - DevCon5 - Miami - Feb 2, 2012
HTML5 summit - DevCon5 - Miami - Feb 2, 2012
 
08 aggregation and collection classes
08  aggregation and collection classes08  aggregation and collection classes
08 aggregation and collection classes
 
MongoDB - Who, What & Where!
MongoDB - Who, What & Where!MongoDB - Who, What & Where!
MongoDB - Who, What & Where!
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
No sql and mongodb
No sql and mongodbNo sql and mongodb
No sql and mongodb
 
Moose Design Patterns
Moose Design PatternsMoose Design Patterns
Moose Design Patterns
 
Mongodb intro
Mongodb introMongodb intro
Mongodb intro
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
MongoDB
MongoDBMongoDB
MongoDB
 
Mansoura University CSED & Nozom web development sprint
Mansoura University CSED & Nozom web development sprintMansoura University CSED & Nozom web development sprint
Mansoura University CSED & Nozom web development sprint
 
MongoDB @ Frankfurt NoSql User Group
MongoDB @  Frankfurt NoSql User GroupMongoDB @  Frankfurt NoSql User Group
MongoDB @ Frankfurt NoSql User Group
 
MongoDB Strange Loop 2009
MongoDB Strange Loop 2009MongoDB Strange Loop 2009
MongoDB Strange Loop 2009
 
2012 phoenix mug
2012 phoenix mug2012 phoenix mug
2012 phoenix mug
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Brief overview of NoSQL & MongoDB for GTUG Tbilisi Event

  • 1. NoSQL Ioseb Dzmanashvili Lead Architect @ Picktek Teacher @ Caucasus School of Technology Monday, April 2, 2012
  • 2. NoSQL is a ill-defined and volatile field © Martin Fowler Monday, April 2, 2012
  • 3. It actually means: Not Only SQL Monday, April 2, 2012
  • 4. NoSQL SQL MongoDB MySql CouchDB Oracle Redis M$SQL Neo4j PostgreSQL Cassandra SQLite Monday, April 2, 2012
  • 5. NoSQL Kinds • Document Oriented • Key Value Oriented • Graph Oriented • ... • Something else Oriented Monday, April 2, 2012
  • 6. Other NoSQL Characteristics • No Relational Structures • No JOIN Queries • No Schema • No Complex Transactions Monday, April 2, 2012
  • 7. MongoDB open-source, high-performance, document-oriented database © MongoDB Monday, April 2, 2012
  • 8. Why MongoDB? It is not the strongest of the species that survives, nor the most intelligent. It is the one that is most adaptable to change. © Charles Darwin Monday, April 2, 2012
  • 9. Flexible Structure db.blogposts.insert({ name: "ioseb", date: "2012-04-01", title: "NoSQL Sucks", summary: "Yes it Sucks", content: "..." }); Monday, April 2, 2012
  • 10. Flexible Structure db.blogposts.update({ name: "ioseb" }, { name: "ioseb", date: "2012-04-01", title: "NoSQL is Cool!", summary: "Yes it's Cool!", content: "...", tags: [ "nosql", "sql" ] } ); Monday, April 2, 2012
  • 11. Flexible Structure var comment = { name: "john doe", email: "john@doe.com", comment: "NoSQL Rulez!!!" }; db.blogposts.update({ name: "ioseb" }, { $push: { comments: comment } } ); Monday, April 2, 2012
  • 12. Flexible Structure var post = db.blogposts.find( {name: "ioseb"} ); Monday, April 2, 2012
  • 13. Flexible Structure { name: "ioseb", date: "2012-04-01", title: "NoSQL is Cool!", summary: "Yes it's Cool!", content: "...", tags: [ "nosql", "sql" ], comments: [ {author: "john", email: "john@doe.com", ...} ] } Monday, April 2, 2012
  • 14. Flexible Indexing // index by name db.blogposts.ensureIndex( {name: true} ); // index by tags array db.blogposts.ensureIndex( {tags: true} ); // index by comments authors db.blogposts.ensureIndex( {"comments.author": true} ); Monday, April 2, 2012
  • 15. Replica Sets • Asynchronous master/slave replication • Automatic failover • Automatic recovery • Consists of two or more nodes • Automatic primary node election Monday, April 2, 2012
  • 16. ...Replica Sets Member 2 Member 1 Read Member 3 Primary Read/Write Client Monday, April 2, 2012
  • 17. Easy Configuration config = {_id: 'GTUG', members: [ {_id: 0, host: 'localhost:27017'}, {_id: 1, host: 'localhost:27018'}, {_id: 2, host: 'localhost:27019'} ]} rs.initiate(config); Monday, April 2, 2012
  • 18. ...Replica Sets Arbiter Member 2 Arbiter No Data Member 1 Read Member 3 Primary Read/Write Client Monday, April 2, 2012
  • 19. Easy Configuration config = {_id: 'GTUG', members: [ {_id: 0, host: 'localhost:27017'}, {_id: 1, host: 'localhost:27018'}, {_id: 2, host: 'localhost:27019', arbiterOnly: true} ]} rs.initiate(config); Monday, April 2, 2012