Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC –...
Transcript of Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC –...
![Page 1: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/1.jpg)
NOSQL Il database relazionale va in pensione,
avanza il movimento NOSQL
Giovedì, 17 maggio 2012
Speaker: Manuel Scapolan
RavenDB, database non relazionale,
rappresentante del movimento NOSQL
![Page 2: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/2.jpg)
Sondaggio 1
Cosa ne pensi dei database NOSQL?
![Page 3: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/3.jpg)
![Page 4: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/4.jpg)
![Page 5: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/5.jpg)
![Page 6: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/6.jpg)
Il mondo è cambiato troppo in fretta …
=
+ +
+
![Page 7: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/7.jpg)
Per superare questa
montagna di dati era necessario scalare
orizzontalmente, ovvero
fare scale out,
cosa che però gli attuali
RDBMS non sapevano
fare molto bene …
![Page 8: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/8.jpg)
BigTable: http://research.google.com/archive/bigtable.html
Dynamo: http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html
Per risolvere il problema
Amazon e Google hanno
deciso di implementare
internamente delle soluzioni
che avessero come
caratteristica principale la
scalabilità orizzontale
Le implementazioni dei due
giganti del web hanno dato il via
ad un piccolo esercito di
database “alternativi”
(chiamati poi NOSQL)
![Page 9: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/9.jpg)
Per definirsi tale, un database
NOSQL deve essere:
Non relazionale Distribuito
Open-source
Scalabile orizzontalmente
In accordo con la definizione data su http://nosql-database.org/
Inteso come modello di trattamento del dato
Deve essere scalabile “by design”
Supporto?
![Page 10: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/10.jpg)
I database NOSQL sono
classificati in base al tipo di
modello che utilizzano per la
memorizzazione del dato, in
particolare possiamo individuare
queste grandi famiglie:
Key-Value stores
Column-oriented databases
Document databases
Graph databases
Classificazione
Fonte: http://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/
![Page 11: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/11.jpg)
Key/Value stores memcached
Voldemort
Tokyo cabinet
Sono definiti da un semplice dizionario/mappa che permette
all’utente di recuperare e aggiornare il valore memorizzato
data la sua chiave
• Get(key) • Set(key, value) • Delete(key) … e poco altro
BLOB stringa
![Page 12: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/12.jpg)
Caso d’uso: memcached Utilizzare memcached per alleggerire il carico sul database
relazionale ed avere una cache scalabile e indipendente dal
processo ASP.NET
Qui posso fare “solo” scale-up
Qui posso fare scale-out
![Page 13: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/13.jpg)
Caso d’uso: memcached Utilizzare memcached per alleggerire il carico sul database
relazionale ed avere una cache scalabile e indipendente dal
processo ASP.NET
1
2
Con l’aiuto di memcached posso fare scale-out anche con i dati, ma in memoria
Se non trovo il valore lo recupero dal database (2)
Qui posso fare scale-out
Qui posso fare “solo” scale-up
Facebook's fork of
memcached can
do ~200k QPS
![Page 14: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/14.jpg)
Sondaggio 2
Nelle tue applicazioni usi la cache?
![Page 15: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/15.jpg)
Document databases RavenDB
CouchDB
Memorizza le informazioni come collezioni di documenti.
Un documento può contenere informazioni annidate ed
ha un formato riconosciuto (JSON, XML, etc.) che
permette poi al server di eseguire delle query sui dati.
A differenza delle tabelle di un relazionale però è
schema-free nel senso che non deve sottostare ad uno
schema ben preciso.
Posso avere documenti di una stessa tipologia con campi
diversi e posso aggiungere nuovi campi senza
compromettere i documenti esistenti.
MongoDB
![Page 16: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/16.jpg)
Graph databases Neo4j FlockDB
Rappresentano perfettamente una realtà composta
da una fitta rete di connessioni e la modellano
sotto forma di nodi e rami di un grafo.
Ai nodi come ai singoli rami vengono associate le
informazioni attraverso Key-Value store.
Se togliamo le relazioni (i rami) assomigliano a
tutti gli effetti ad un database documentale.
Per le query che soddisfano il modello gerarchico i
tempi di esecuzione possono essere 1.000 volte
più veloci rispetto agli altri database.
Sones
Allegro Graph
recommends
![Page 17: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/17.jpg)
Column-oriented databases
Cassandra
Hypertable
Le informazioni non sono memorizzate per riga bensì per colonna.
L’ovvietà dell’affermazione si può spiegare meglio con un esempio:
Amazon SimpleDB
Hadoop / HBase
1,Smith,Joe,40000;
2,Jones,Mary,50000;
3,Johnson,Cathy,44000;
1,2,3;
Smith,Jones,Johnson;
Joe,Mary,Cathy;
40000,50000,44000;
Row-oriented Column-oriented
![Page 18: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/18.jpg)
Il mantra dei database NOSQL:
![Page 19: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/19.jpg)
DEMO 1 Installazione di RavenDB, configurazione e
operazioni di lettura e scrittura
E’ un database documentale
![Page 20: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/20.jpg)
RavenDB in deep
![Page 21: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/21.jpg)
Schema-free
Le informazioni sono memorizzate in JSON e non devono sottostare
ad uno schema, quindi posso arbitrariamente decidere di aggiungere
successivamente dei campi senza compromettere i dati esistenti.
![Page 22: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/22.jpg)
Indici Se i documenti che inseriamo non hanno un formato stabilito non abbiamo un modo per
poter recuperare selettivamente le informazioni. RavenDB ci mette a disposizione la
possibilità di creare degli indici con i quali fare le query per recuperare i documenti, una
porzione di essi (proiezione) oppure fare delle aggregazioni.
![Page 23: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/23.jpg)
Come funzionano allora le query?
Se non esiste un indice per quella interrogazione RavenDB ne crea uno temporaneo.
Se lo chiamo più volte diventa persistente.
Premessa: tutte le query devono usare un indice
E’ la funzione usata da RavenDB per estrarre le informazioni da memorizzare insieme all’indice.
in Lucene.NET
Quando chiamo la query le informazioni precedentemente memorizzate mi vengono ritornate
come risultato.
![Page 24: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/24.jpg)
Informazioni staleness
Siccome l’elaborazione di un indice è molto pesante non viene fatta nello stesso momento
della query, ma viene fatta in un thread in background che parte quando viene aggiunto
un nuovo dato oppure ne viene modificato uno esistente.
Questo comportamento ha due immediate conseguenze:
• Le query sono molto veloci
• Le query possono ritornare dati non aggiornati (staleness)
Posso sempre verificare se il risultato della query ha tornato dati non aggiornati:
oppure posso specificare alla query quanto può attendere (oppure fino a quando attendere):
![Page 25: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/25.jpg)
Map/Reduce
La Map/Reduce non è altro che un group by applicato ad un elevato numero di dati
distribuiti. La sua applicazione è giustificata dal fatto che abbiamo la necessità di eseguire
un group by in più step ognuno dei quali da eseguire su macchine differenti.
Ci consente di fare delle aggregazioni
![Page 26: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/26.jpg)
Map/Reduce
Il primo passo è quello di separare l’operazione precedente in più operazioni distinte.
Subset di risultati che diventerà uno degli input della reduce
MAP FUNCTION
![Page 27: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/27.jpg)
Map/Reduce
Il passo successivo riguarda l’esecuzione del group by sui risultati della map function.
REDUCE FUNCTION
Il risultato finale è questo:
![Page 28: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/28.jpg)
Indice Map/Reduce Ovviamente il passo conclusivo è quello di creare un indice map/reduce che ci permetta di
fare query di aggregazione sui dati:
Ed ecco come poi faccio la query su questo indice:
![Page 29: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/29.jpg)
DEMO 2 Creiamo il nostro primo indice Map/Reduce
![Page 30: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/30.jpg)
DDD (Domain Driven Design)
RavenDB, come tutti gli altri database
documentali, si sposa perfettamente con la
metodologia del Domain Driven Design in quanto
assume che l’informazione minima da salvare,
ovvero il documento, rappresenti un aggregato.
L’aggregato è una unità logica indipendente che
contiene tutte le informazioni necessarie per
definire un contesto applicativo.
Ad esempio il singolo post con l’autore, i
commenti, le categorie e i tag.
ORM No Impedance Mismatch!
![Page 31: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/31.jpg)
Nessuna Join, la regola è denormalizzare
DDD tutta la vita, ma mi stai forse dicendo che lo stesso autore
devo salvarlo in ogni documento che contiene un suo post?
Esatto! Nell’aggregato devo mettere solo una versione
denormalizzata che contenga per quanto possibile solo le
informazioni strettamente necessarie che verranno modificate
raramente.
Ma così ho una forte duplicazione dei dati, e se poi mi servirà fare un update?
![Page 32: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/32.jpg)
CAP Theorem
Devi scegliere tra consistenza e disponibilità del dato
![Page 33: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/33.jpg)
ACID vs BASE
Mantengo l’integrità e la consistenza del dato
garantendo transazionalità a scapito delle
performance e della scalabilità orizzontale
Favorisco la replicazione per aumentare la
scalabilità orizzontale e la disponibilità del
dato a scapito della consistenza
Atomicity, Consistency,
Isolation, Durability
Basic Available, Soft-state, Eventual consistency
![Page 34: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/34.jpg)
Come scegliere il database “giusto”?
La scelta deve essere guidata da:
• Tipo di dati da memorizzare
• Richieste in termini di scalabilità • Natura del tipo di interrogazioni
che devo fare sui dati
• Esigenze o vincoli in
termini di consistenza
![Page 35: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/35.jpg)
Alcune considerazioni
Non esiste più un solo modo di pensare al
trattamento dei dati
SQL e NOSQL possono convivere occupandosi di
aspetti diversi ed essere sfruttati al massimo per
quelle che sono le loro caratteristiche e
peculiarità (polyglot persistance)
Alcuni prodotti NOSQL non sono ancora maturi
per giustificarne un impiego a livello enterprise
In alcune circostanze è meglio approfondire gli
strumenti in possesso perché potrebbe risiedere
nella scarsa conoscenza di essi il collo di bottiglia
che stiamo cercando di superare
![Page 36: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/36.jpg)
Riferimenti
NoSQL. Present, Past & Future (Gabriele Lana)
NoSQL Databases - Christof Strauch
NoSQL Data Modeling Techniques
Availability & Consistency
Scalable SQL and NoSQL Data Stores - Rick Cattell
Highly Connected Data Models in NOSQL Stores
Introduzione e concetti base
Casi d’uso ed esempi
What the heck are you actually using NoSQL for?
35+ Use Cases for Choosing Your Next NoSQL Database
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications
Social networks in the database: using a graph database
Stack Overflow Architecture
NOSQL Overview, Neo4j Intro And Production Example (QCon London 2010)
![Page 37: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/37.jpg)
Riferimenti
MongoDB vs MySQL
Your Guide to No-SQL - Brian Aker
Humor
SQL vs NOSQL
NoSQL vs. RDBMS: Let the flames begin!
Fighting The NoSQL Mindset, Though This Isn't an anti-NoSQL Piece
RavenDB
RavenDB overview
MVC – Get RavenDB up and running in 5 minutes using Ninject
RavenDB Documentation
Using RavenDB and ASP.NET MVC 4 to create a Twitter Clone Chirpy
Document Databases Compared: CouchDB, MongoDB, RavenDB
![Page 38: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/38.jpg)
Sondaggio 3
Useresti NOSQL nella tua prossima
applicazione?
![Page 39: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/39.jpg)
![Page 40: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/40.jpg)
Credits
Slide 1:http://www.flickr.com/photos/32931740@N06/4640796393/
Slide 3:http://www.flickr.com/photos/x1brett/6069486112/
Slide 4:http://www.flickr.com/photos/55497864@N00/4742540168/
Slide 5:http://www.flickr.com/photos/11357767@N00/7096393207/
Slide 6: http://www.flickr.com/photos/32066106@N06/4192572579/
Slide 7: http://www.flickr.com/photos/7205246@N02/6890042407/
Slide 8: http://www.flickr.com/photos/hikingartist/4192577791/in/photostream/
Slide 18: http://www.flickr.com/photos/32066106@N06/4193330368/
Slide 20: http://www.flickr.com/photos/32066106@N06/3554539705/
Slide 33:http://www.flickr.com/photos/hikingartist/4193330034/in/photostream/
Le immagini contenute in questa presentazione hanno licenza Creative Commons
![Page 41: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/41.jpg)
Thank You MANUEL SCAPOLAN website: www.manuelscapolan.it twitter: manuelscapolan e-mail: [email protected]
![Page 42: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/42.jpg)
Sondaggio 1: Cosa ne pensi dei database NOSQL?
• Non so, aspetto di capire meglio cosa sono e a che cosa servono prima di esprimere un giudizio
• Sono scettico, per me il database relazionale rimane l’unica destinazione possibile per i miei dati
• Penso possano essere in alcuni casi una valida alternativa ai database relazionali
• Sono fantastici, appena possibile abbandono il database relazionale e porto tutto su NOSQL!
![Page 43: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/43.jpg)
Sondaggio 2: Nelle tue applicazioni usi la cache?
• Si, quella di ASP.NET
• Si
• Si, tra l’altro utilizzo proprio memcached
• No, per ora non ne ho avuto bisogno
• No, ma penso che proverò memcached
![Page 44: Giovedì, 17 maggio 2012 Speaker: Manuel Scapolan NOSQL · 2018-07-20 · RavenDB overview MVC – Get RavenDB up and running in 5 minutes using Ninject RavenDB Documentation Using](https://reader033.fdocumenti.com/reader033/viewer/2022042305/5ed12f5f50612c658265f0ea/html5/thumbnails/44.jpg)
Sondaggio 3: Useresti NOSQL nella tua prossima applicazione?
• Si, però solo come test
• Si, anche in produzione
• No