Database NoSql Document Oriented - MongoDB
Click here to load reader
-
Upload
matteo-merola -
Category
Software
-
view
171 -
download
1
description
Transcript of Database NoSql Document Oriented - MongoDB
Database NoSql Document Oriented
Matteo Merola
Cosa sonoProgrammi ideati per memorizzare, reperire e gestire
informazioni semi-strutturate
Nessuno schema Gestione scalabile
DocumentoIncapsulamento Codifica
DocumentoIncapsulamento Codifica
<user> <name>Matteo</name> <address>Via G. Mazzini, 5</address> <hobby>Pesca</hobby> </user>
Esempio
Documento
{ "author": “Matteo Merola", "text": "Oggi presentazione document-‐oriented DB ;)", "comments": [ { "author": “Giovanni Grano", "text": "ci sarò!", "replies": [ { "author": “Carlo Branca", "text": "anche io..." } ] }, { "author": “Simone Scalabrino", "text": "ci vediamo lì", "replies": [] } ] }
Un post su facebook
Principali database Document Oriented
Principali database Document Oriented
MongoDBCodifica!
JSON (BSON) Performance!
scritto in C++
supporto pieno all’indicizzazione operazioni atomiche file mappati in memoria (scritture ritardate)
Scalabilità!replicazione sharding
Supporto commerciale!…tanta documentazione
Altre feature di MongoDBQuery basate sul
documento!linguaggio di
interrogazione flessibile basato su JSON/Javascript
!MapReduce!
aggregazione flessibile
GridFS!memorizza file di qualsiasi
dimensione facilmente
Altre feature di MongoDBQuery basate sul
documento!linguaggio di
interrogazione flessibile basato su JSON/Javascript
!MapReduce!
aggregazione flessibile
GridFS!memorizza file di qualsiasi
dimensione facilmente
Multipiattaformafacile installazione
Multipiattaforma
http://docs.mongodb.org/manual/
facile installazione
MongoDB: concetti base
MongoDB: concetti baseDocumento!
analogia con una riga dei RDBMS
rappresentazione tramite JSON (BSON)
annidamento
può referenziare altri documenti
Collection!
analogia con una tabella dei RDBMS
collezione di documenti
i documenti possono essere di diverso tipo ma…
…se sono simili i vantaggi aumentano
MongoDB: concetti base
Incapsulamento!
analogia con una chiave esterna nei RDBMS
relazioni unite senza uso di join
modello concettuale più chiaro
{ "author": ObjectId(“53b9884344069471a1f19f05c5”), "text": “Un post", "comments": [ { "author": ObjectId(“53b9884344069471a1h142356”), "text": “Un commento”, "replies": [ { "author": ObjectId(“53b9884344069471a1f19f05c5”), "text": “Una risposta" } ] } ] }
{ “_id": ObjectId(“53b9884344069471a1f19f05c5”), "name": “Matteo Merola" }
{ “_id": ObjectId(“53b9884344069471a1h142356”), "name": “Carlo Branca" }
Collection posts
Collection authors
* dipende dallo sviluppatore
Query Developer-friendly *
MongoDB: operazioni baseMongo
SQL
MongoDB: operazioni baseInserimento di un documento
Mongo
SQL
MongoDB: operazioni baseModifica di un documento
Mongo
SQL
MongoDB: operazioni baseEliminazione di un documento
Mongo
SQL
Demo
ReplicazioneScopo!
ridondanza
disponibilità del dato
disaster recovery
Modalità!
tipica Master/Slave ma con Failover automatico
ShardingPartizionamento!
i dati sono distribuiti su più macchine
Big Data!
alta quantità di dati memorizzabili
Alto throughput!
Scaling orizzontale!
più potente e meno costoso dello scaling verticale
BilanciamentoSplitting
Migration
Sharding
Come funziona?
Sharding
Quando usare i DB document-oriented?
Dati strutturati Dati NON strutturati
Polyglot Persistence2008, Scott Leberknight “Polyglot Persistence”
–Martin Fowler, November 2011.
“The rise of NoSQL databases marks the end of the era of relational database dominance. The
era of Polyglot Persistence has begun.”
Matteo Merola [email protected] Università degli Studi di Salerno
Scarica questa presentazioneUniversità degli Studi di Salerno