database nosql document oriented - mongodb
DESCRIPTION
Un seminario tenuto all'Università degli Studi di Salerno sui database NoSql orientati al documento. Approfondimento di MongoDB.TRANSCRIPT
![Page 1: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/1.jpg)
Database NoSql Document Oriented
Matteo Merola
![Page 2: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/2.jpg)
Cosa sonoProgrammi ideati per memorizzare, reperire e gestire
informazioni semi-strutturate
Nessuno schema Gestione scalabile
![Page 3: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/3.jpg)
DocumentoIncapsulamento Codifica
![Page 4: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/4.jpg)
DocumentoIncapsulamento Codifica
<user> <name>Matteo</name> <address>Via G. Mazzini, 5</address> <hobby>Pesca</hobby> </user>
Esempio
![Page 5: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/5.jpg)
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
![Page 6: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/6.jpg)
Principali database Document Oriented
![Page 7: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/7.jpg)
Principali database Document Oriented
![Page 8: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/8.jpg)
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
![Page 9: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/9.jpg)
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
![Page 10: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/10.jpg)
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
![Page 11: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/11.jpg)
Multipiattaformafacile installazione
![Page 12: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/12.jpg)
Multipiattaforma
http://docs.mongodb.org/manual/
facile installazione
![Page 13: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/13.jpg)
MongoDB: concetti base
![Page 14: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/14.jpg)
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
![Page 15: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/15.jpg)
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
![Page 16: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/16.jpg)
* dipende dallo sviluppatore
Query Developer-friendly *
![Page 17: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/17.jpg)
MongoDB: operazioni baseMongo
SQL
![Page 18: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/18.jpg)
MongoDB: operazioni baseInserimento di un documento
Mongo
SQL
![Page 19: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/19.jpg)
MongoDB: operazioni baseModifica di un documento
Mongo
SQL
![Page 20: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/20.jpg)
MongoDB: operazioni baseEliminazione di un documento
Mongo
SQL
![Page 21: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/21.jpg)
Demo
![Page 22: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/22.jpg)
ReplicazioneScopo!
ridondanza
disponibilità del dato
disaster recovery
Modalità!
tipica Master/Slave ma con Failover automatico
![Page 23: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/23.jpg)
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
![Page 24: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/24.jpg)
BilanciamentoSplitting
Migration
![Page 25: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/25.jpg)
Sharding
Come funziona?
![Page 26: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/26.jpg)
Sharding
![Page 27: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/27.jpg)
Quando usare i DB document-oriented?
Dati strutturati Dati NON strutturati
![Page 28: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/28.jpg)
Polyglot Persistence2008, Scott Leberknight “Polyglot Persistence”
![Page 29: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/29.jpg)
–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.”
![Page 30: Database NoSql Document Oriented - MongoDB](https://reader037.vdocumenti.com/reader037/viewer/2022100219/555ee107d8b42a772f8b560d/html5/thumbnails/30.jpg)
Matteo Merola [email protected] Università degli Studi di Salerno
Scarica questa presentazioneUniversità degli Studi di Salerno