SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie Brief overview of NoSQL & MongoDB for GTUG Tbilisi Event

Mongodb Training Tutorial in Bangalore
Mongodb Training Tutorial in BangaloreMongodb Training Tutorial in Bangalore
Mongodb Training Tutorial in Bangalorerajkamaltibacademy
 
Challenges with MongoDB
Challenges with MongoDBChallenges with MongoDB
Challenges with MongoDBStone Gao
 
Starting with MongoDB
Starting with MongoDBStarting with MongoDB
Starting with MongoDBDoThinger
 
MongoDB Aug2010 SF Meetup
MongoDB Aug2010 SF MeetupMongoDB Aug2010 SF Meetup
MongoDB Aug2010 SF MeetupScott Hernandez
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBNeil Henegan
 
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, 2012Caridy Patino
 
08 aggregation and collection classes
08  aggregation and collection classes08  aggregation and collection classes
08 aggregation and collection classesAPU
 
MongoDB - Who, What & Where!
MongoDB - Who, What & Where!MongoDB - Who, What & Where!
MongoDB - Who, What & Where!Mark Hillick
 
Moose Design Patterns
Moose Design PatternsMoose Design Patterns
Moose Design PatternsYnon Perek
 
Mongodb intro
Mongodb introMongodb intro
Mongodb introchristkv
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMike Dirolf
 
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 sprintAl Sayed Gamal
 
MongoDB @ Frankfurt NoSql User Group
MongoDB @  Frankfurt NoSql User GroupMongoDB @  Frankfurt NoSql User Group
MongoDB @ Frankfurt NoSql User GroupChris Harris
 
MongoDB Strange Loop 2009
MongoDB Strange Loop 2009MongoDB Strange Loop 2009
MongoDB Strange Loop 2009Mike Dirolf
 
MongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouchMongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouchWynn Netherland
 

Ähnlich wie Brief overview of NoSQL & MongoDB for GTUG Tbilisi Event (20)

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
 
MongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouchMongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouch
 

Kürzlich hochgeladen

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Kürzlich hochgeladen (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

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