database nosql document oriented - mongodb

30

Click here to load reader

Upload: matteo-merola

Post on 22-May-2015

158 views

Category:

Software


1 download

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

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