Database NoSql Document Oriented - MongoDB

30

Click here to load reader

description

Un seminario tenuto all'Università degli Studi di Salerno sui database NoSql orientati al documento. Approfondimento di MongoDB.

Transcript of Database NoSql Document Oriented - MongoDB

Page 1: Database NoSql Document Oriented - MongoDB

Database NoSql Document Oriented

Matteo Merola

Page 2: Database NoSql Document Oriented - MongoDB

Cosa sonoProgrammi ideati per memorizzare, reperire e gestire

informazioni semi-strutturate

Nessuno schema Gestione scalabile

Page 3: Database NoSql Document Oriented - MongoDB

DocumentoIncapsulamento Codifica

Page 4: Database NoSql Document Oriented - MongoDB

DocumentoIncapsulamento Codifica

<user>          <name>Matteo</name>          <address>Via  G.  Mazzini,  5</address>          <hobby>Pesca</hobby>  </user>

Esempio

Page 5: Database NoSql Document Oriented - MongoDB

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

Principali database Document Oriented

Page 7: Database NoSql Document Oriented - MongoDB

Principali database Document Oriented

Page 8: Database NoSql Document Oriented - MongoDB

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

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

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

Multipiattaformafacile installazione

Page 12: Database NoSql Document Oriented - MongoDB

Multipiattaforma

http://docs.mongodb.org/manual/

facile installazione

Page 13: Database NoSql Document Oriented - MongoDB

MongoDB: concetti base

Page 14: Database NoSql Document Oriented - MongoDB

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

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

* dipende dallo sviluppatore

Query Developer-friendly *

Page 17: Database NoSql Document Oriented - MongoDB

MongoDB: operazioni baseMongo

SQL

Page 18: Database NoSql Document Oriented - MongoDB

MongoDB: operazioni baseInserimento di un documento

Mongo

SQL

Page 19: Database NoSql Document Oriented - MongoDB

MongoDB: operazioni baseModifica di un documento

Mongo

SQL

Page 20: Database NoSql Document Oriented - MongoDB

MongoDB: operazioni baseEliminazione di un documento

Mongo

SQL

Page 21: Database NoSql Document Oriented - MongoDB

Demo

Page 22: Database NoSql Document Oriented - MongoDB

ReplicazioneScopo!

ridondanza

disponibilità del dato

disaster recovery

Modalità!

tipica Master/Slave ma con Failover automatico

Page 23: Database NoSql Document Oriented - MongoDB

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

BilanciamentoSplitting

Migration

Page 25: Database NoSql Document Oriented - MongoDB

Sharding

Come funziona?

Page 26: Database NoSql Document Oriented - MongoDB

Sharding

Page 27: Database NoSql Document Oriented - MongoDB

Quando usare i DB document-oriented?

Dati strutturati Dati NON strutturati

Page 28: Database NoSql Document Oriented - MongoDB

Polyglot Persistence2008, Scott Leberknight “Polyglot Persistence”

Page 29: Database NoSql Document Oriented - MongoDB

–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

Matteo Merola [email protected] Università degli Studi di Salerno

Scarica questa presentazioneUniversità degli Studi di Salerno