SlideShare a Scribd company logo
RDBMS /
                MongoDB
Nuri Halperin
Feb 2012
>outline();
[
    {'layerisms':      'where is your app?'},
    {'engine':         'notes about engine'},
    {'dataStructure': 'internals data structures'},
    {'schema':         'less and more'},
    {'index':          'type and applicability'},
    {'update':         'semantics and mechanics'},
    {'transaction':    'dread no more'},
    {'security':    'just a touch'}
]
>layerisms
> db.rdbms.find({_id:'layerisms'});
{ "_id" : "layerisms", "tiers" : [ "App", "Service",
"DB" ], "dblogic" : { "exists" : true } }

> db.mongo.find({_id:'layerisms'});
{ "_id" : "layerisms", "tiers" : [ "App", "Service",
"DB" ], "dblogic" : { "exists" : false } }

// practice: let your service layer do the logic.
>engine
> db.rdbms.find({_id:'engine'});
{ "_id" : "engine", "language" : [ "C++", "C",
"Other?" ] }

> db.mongo.find({_id:'engine'});
{ "_id" : "engine", "language" : "C++" }

// hardly the issue.

// performance due to other factors
>dataStructure
> db.rdbms.find({_id:'dataStructure'});
{ "_id" : "dataStructure", "type" : [ "BTree",
"Hashset", "bitmap" ] }

> db.mongo.find({_id:'dataStructure'});
{ "_id" : "dataStructure", "type" : "BTree" }




// MongoDB has very low memory mgmt
overhead. Most RDBMS do more memory mgmg
>schema
> db.rdbms.find({_id:'schema'});
{ "_id" : "schema", "_" : { "schama" : true,
"tables" : true, "udt" : true, "types" : [ "sql
types", "native" ], "namespace" : true } }

> db.mongo.find({_id:'schema'});
{ "_id" : "schema", "_" : { "schema" : false,
"tables" : false, "udt" : false, "types" : [ "BSON"
], "namespace" : true } }

// Most significant. This is why dev loves NoSql.
// Good drivers alleviate need for ORM.
>index
> db.rdbms.find({_id:'index'});
{ "_id" : "index", "pk" : "auto", "ak" : true,
"subObject" : false, "fulltext" : "*", "array" : false
}

> db.mongo.find({_id:'index'});
{ "_id" : "index", "pk" : "auto", "ak" : true,
"subObject" : true, "fulltext" : false* , "array" :
true }

// fulltext = think lucene, not regex.
// may be coming to MongoDB
>update
> db.rdbms.find({_id:'update'});
{ "_id" : "update", "multirecord" : true,
"singlerecord" : true, "atomic" : "*", "fluent" :
true, "crosstable" : true }

> db.mongo.find({_id:'update'});
{ "_id" : "update", "multirecord" : true,
"singlerecord" : true, "atomic" : "*", "fluent" :
true, "crosstable" : false }

// the existance of cross-table cross-record locks
is a major source of RDBMS slowness
>transaction
> db.rdbms.find({_id:'transaction'});
{ "_id" : "transaction", "crossRecord" : true,
"optimistic" : true, "pessimistic" : true }

> db.mongo.find({_id:'transaction'});
{ "_id" : "transaction", "crossRecord" : false,
"optimistic" : "dev", "pessimistic" : false }

// RDBMS let you choose consistency model.
// MongoDB supports optimistic model with
update syntax.
>security
> db.rdbms.find({_id:'security'});
{ "_id" : "security", "transport" : true, "identity"
: true, "objectLevel" : true }

> db.mongo.find({_id:'security'});
{ "_id" : "security", "transport" : false, "identity"
: true, "objectLevel" : false }



// RDBMS offer schema level security.
// MongoDB has no schema: r, rw
Looking forward to
Aggregation++
Full text index
Geo++

I love quartely releases..

More Related Content

DOCX
Format xls sheets Demo Mode
PPTX
PostgreSQL's Secret NoSQL Superpowers
PPTX
Drupal.js: Best Practices for Managing Javascript in Drupal
PPTX
Webinarserie: Einführung in MongoDB: “Back to Basics” - Teil 3 - Interaktion ...
PPTX
Mongo db query docuement
PDF
Backbone js in drupal core
ODP
Indexed db
PPTX
AngulrJS Overview
Format xls sheets Demo Mode
PostgreSQL's Secret NoSQL Superpowers
Drupal.js: Best Practices for Managing Javascript in Drupal
Webinarserie: Einführung in MongoDB: “Back to Basics” - Teil 3 - Interaktion ...
Mongo db query docuement
Backbone js in drupal core
Indexed db
AngulrJS Overview

What's hot (18)

PDF
jQuery secrets
PPT
JavaScript JQUERY AJAX
PPTX
Joins and Other Aggregation Enhancements Coming in MongoDB 3.2
PDF
Django at the Disco
ZIP
Django at the Disco
DOCX
Splitapp coding
PDF
Simplify AJAX using jQuery
PDF
Elasticsearch and Symfony Integration - Debarko De
PPTX
Mongoose and MongoDB 101
PPTX
Web client security
PDF
Code Tops Comments
PPT
BackboneJs
PPTX
NoSQL with MongoDB
PDF
Casl. isomorphic permission management.pptx
PDF
Hack tutorial
PDF
DBIx::Class walkthrough @ bangalore pm
PPT
Mysql DBI
jQuery secrets
JavaScript JQUERY AJAX
Joins and Other Aggregation Enhancements Coming in MongoDB 3.2
Django at the Disco
Django at the Disco
Splitapp coding
Simplify AJAX using jQuery
Elasticsearch and Symfony Integration - Debarko De
Mongoose and MongoDB 101
Web client security
Code Tops Comments
BackboneJs
NoSQL with MongoDB
Casl. isomorphic permission management.pptx
Hack tutorial
DBIx::Class walkthrough @ bangalore pm
Mysql DBI
Ad

Viewers also liked (20)

PDF
C mcq practice test 2
PDF
Gautam Resume
KEY
7-3 Common Factors and GCF
DOCX
C notes
PPT
Data structure linear search
PDF
GATE Computer Science Solved Paper 2004
PPTX
CBSE, Grade12, Computer Science, Random Numbers - Notes
PDF
Cbse class 10 computer science sample paper sa2 2014
PDF
Cbse class 10 computer science sample paper sa1 2014 (1)
DOC
'C' language notes (a.p)
RTF
CBSE Grade12, Computer Science, Sample Question Paper
PDF
Data Structures and Algorithms For GATE: Solutions to all previous GATE quest...
PPT
Savitch Ch 14
PPTX
English ppt on tenses
PPT
Powerpoint presentation on tenses
PPTX
Tenses
PPT
Slide power point preposition noreen
PPTX
Prepositions
PPT
Prepositions
PPT
Grammar Powerpoint
C mcq practice test 2
Gautam Resume
7-3 Common Factors and GCF
C notes
Data structure linear search
GATE Computer Science Solved Paper 2004
CBSE, Grade12, Computer Science, Random Numbers - Notes
Cbse class 10 computer science sample paper sa2 2014
Cbse class 10 computer science sample paper sa1 2014 (1)
'C' language notes (a.p)
CBSE Grade12, Computer Science, Sample Question Paper
Data Structures and Algorithms For GATE: Solutions to all previous GATE quest...
Savitch Ch 14
English ppt on tenses
Powerpoint presentation on tenses
Tenses
Slide power point preposition noreen
Prepositions
Prepositions
Grammar Powerpoint
Ad

Similar to MongoDB and RDBMS (20)

PPTX
Webinar: General Technical Overview of MongoDB for Dev Teams
PDF
OSDC 2012 | Building a first application on MongoDB by Ross Lawley
PPTX
Introduction to MongoDB
PPTX
MongoDB Knowledge share
ODP
PPTX
PPT
Introduction to MongoDB
PDF
Mongo db eveningschemadesign
PPTX
Indexing Strategies to Help You Scale
KEY
Mongodb intro
PDF
Mongodb debugging-performance-problems
PPTX
MongoDB is a document database. It stores data in a type of JSON format calle...
PDF
MongodB Internals
PPTX
A Presentation on MongoDB Introduction - Habilelabs
PPT
mongodb-120401144140-phpapp01 claud camputing
PPT
Mongo db tutorials
PPTX
Query Optimization in MongoDB
PDF
2016 feb-23 pyugre-py_mongo
PDF
Using MongoDB and Python
PPTX
Intro To Mongo Db
Webinar: General Technical Overview of MongoDB for Dev Teams
OSDC 2012 | Building a first application on MongoDB by Ross Lawley
Introduction to MongoDB
MongoDB Knowledge share
Introduction to MongoDB
Mongo db eveningschemadesign
Indexing Strategies to Help You Scale
Mongodb intro
Mongodb debugging-performance-problems
MongoDB is a document database. It stores data in a type of JSON format calle...
MongodB Internals
A Presentation on MongoDB Introduction - Habilelabs
mongodb-120401144140-phpapp01 claud camputing
Mongo db tutorials
Query Optimization in MongoDB
2016 feb-23 pyugre-py_mongo
Using MongoDB and Python
Intro To Mongo Db

More from francescapasha (7)

PPTX
Creating A User Journey for Your Open Source Community
PPTX
Intro to the MongoDB Community
PDF
JumpSpoon
PPTX
How to Network Like Your Life Depends on In (Cause it Does!)
PPT
Arts deviants
PPTX
Taproot volunteer deck
PPT
Arts and Positive Deviance
Creating A User Journey for Your Open Source Community
Intro to the MongoDB Community
JumpSpoon
How to Network Like Your Life Depends on In (Cause it Does!)
Arts deviants
Taproot volunteer deck
Arts and Positive Deviance

Recently uploaded (20)

PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Big Data Technologies - Introduction.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPT
Teaching material agriculture food technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Big Data Technologies - Introduction.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Digital-Transformation-Roadmap-for-Companies.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
NewMind AI Weekly Chronicles - August'25 Week I
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Teaching material agriculture food technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
Mobile App Security Testing_ A Comprehensive Guide.pdf
Understanding_Digital_Forensics_Presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Review of recent advances in non-invasive hemoglobin estimation
Advanced methodologies resolving dimensionality complications for autism neur...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation theory and applications.pdf
Empathic Computing: Creating Shared Understanding
“AI and Expert System Decision Support & Business Intelligence Systems”

MongoDB and RDBMS

  • 1. RDBMS / MongoDB Nuri Halperin Feb 2012
  • 2. >outline(); [ {'layerisms': 'where is your app?'}, {'engine': 'notes about engine'}, {'dataStructure': 'internals data structures'}, {'schema': 'less and more'}, {'index': 'type and applicability'}, {'update': 'semantics and mechanics'}, {'transaction': 'dread no more'}, {'security': 'just a touch'} ]
  • 3. >layerisms > db.rdbms.find({_id:'layerisms'}); { "_id" : "layerisms", "tiers" : [ "App", "Service", "DB" ], "dblogic" : { "exists" : true } } > db.mongo.find({_id:'layerisms'}); { "_id" : "layerisms", "tiers" : [ "App", "Service", "DB" ], "dblogic" : { "exists" : false } } // practice: let your service layer do the logic.
  • 4. >engine > db.rdbms.find({_id:'engine'}); { "_id" : "engine", "language" : [ "C++", "C", "Other?" ] } > db.mongo.find({_id:'engine'}); { "_id" : "engine", "language" : "C++" } // hardly the issue. // performance due to other factors
  • 5. >dataStructure > db.rdbms.find({_id:'dataStructure'}); { "_id" : "dataStructure", "type" : [ "BTree", "Hashset", "bitmap" ] } > db.mongo.find({_id:'dataStructure'}); { "_id" : "dataStructure", "type" : "BTree" } // MongoDB has very low memory mgmt overhead. Most RDBMS do more memory mgmg
  • 6. >schema > db.rdbms.find({_id:'schema'}); { "_id" : "schema", "_" : { "schama" : true, "tables" : true, "udt" : true, "types" : [ "sql types", "native" ], "namespace" : true } } > db.mongo.find({_id:'schema'}); { "_id" : "schema", "_" : { "schema" : false, "tables" : false, "udt" : false, "types" : [ "BSON" ], "namespace" : true } } // Most significant. This is why dev loves NoSql. // Good drivers alleviate need for ORM.
  • 7. >index > db.rdbms.find({_id:'index'}); { "_id" : "index", "pk" : "auto", "ak" : true, "subObject" : false, "fulltext" : "*", "array" : false } > db.mongo.find({_id:'index'}); { "_id" : "index", "pk" : "auto", "ak" : true, "subObject" : true, "fulltext" : false* , "array" : true } // fulltext = think lucene, not regex. // may be coming to MongoDB
  • 8. >update > db.rdbms.find({_id:'update'}); { "_id" : "update", "multirecord" : true, "singlerecord" : true, "atomic" : "*", "fluent" : true, "crosstable" : true } > db.mongo.find({_id:'update'}); { "_id" : "update", "multirecord" : true, "singlerecord" : true, "atomic" : "*", "fluent" : true, "crosstable" : false } // the existance of cross-table cross-record locks is a major source of RDBMS slowness
  • 9. >transaction > db.rdbms.find({_id:'transaction'}); { "_id" : "transaction", "crossRecord" : true, "optimistic" : true, "pessimistic" : true } > db.mongo.find({_id:'transaction'}); { "_id" : "transaction", "crossRecord" : false, "optimistic" : "dev", "pessimistic" : false } // RDBMS let you choose consistency model. // MongoDB supports optimistic model with update syntax.
  • 10. >security > db.rdbms.find({_id:'security'}); { "_id" : "security", "transport" : true, "identity" : true, "objectLevel" : true } > db.mongo.find({_id:'security'}); { "_id" : "security", "transport" : false, "identity" : true, "objectLevel" : false } // RDBMS offer schema level security. // MongoDB has no schema: r, rw
  • 11. Looking forward to Aggregation++ Full text index Geo++ I love quartely releases..