Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Entita' Relazione
(a,A) (b,B)
(m , M)
Facilitare lo sviluppo
◦ Nuove metodologie di sviluppo
Rappresentazione di dati
◦ Dati semi-strutturati, non strutturati
◦ Polimorfismo
NUOVE
METODOLOGIE DI
APPROFONDIMENTO SVILUPPO NEL
WEB
o Il Web vive una trasformazione che ne
connota la dimensione sociale, della
condivisione, dell'autorialità rispetto alla
mera fruizione.
10
Il web 2.0 è l’insieme delle tecnologie
collaborative per organizzare internet come una
piattaforma in cui tutti possono inserire i propri
contributi ed interagire con gli altri utenti.
Il Web 2.0
Il termine nasce da frase coniata da O’Reilly e da
Dale Dougherty nel 2004 e il documento che ne
ha ufficialmente sancito l’inizio risale al 30
settembre del 2005.
I punti fondamentali del Web 2.0
La saggezza degli utenti: I risultati di Google funzionano in base a questa definizione. E’ il numero di link al sito che ne decide l’importanza.
Il web inteso come piattaforma: servizi erogati in modalità Web (es Office 365)
Partecipazione degli utenti: gli utenti sono anche gli autori. L’espressione "read/write web" illustra chiaramente l’idea che si vuole
trasmettere -> Wiki/Social ecc…
Pieno coinvolgimento dell’utente: I siti Web 2.0 usano CSS, AJAX, e altre tecnologie che aumentano l’usabilità e creano pagine dinamiche
che sono i grado di mostrare più informazioni nello stesso spazio
L’importanza dei dati: La gestione dei dati è una competenza
insita nelle aziende che trattano il Web 2.0. Tutto il Web 2.0, dalle
grandi aziende come Amazon e Google per arrivare alle piccole
startup come 30boxes e Orchestrate, operano principalmente
con database e praticamente non fanno altro che mostrare viste
personalizzate.
sociali inverso)
◦ RSS (è uno dei più popolari formati per la distribuzione di contenuti
Web)
◦ Wiki (collezioni di documenti ipertestuali) che permettono ad ogni
utilizzatore di aggiungere contenuti,
◦ Comunità virtuali
◦ Instant Messaging
◦ Ecc…
14
Dati strutturati
Dati semi-strutturati
Dati strutturati: sono i dati conservati in database, organizzati secondo schemi e
tabelle rigide. Questa è la tipologia di dati più indicata per i modelli di gestione
relazionale delle informazioni.
Dati strutturati, Dati non strutturati: sono i dati conservati senza alcuno schema. Un esempio
semi-strutturati possono essere i file contenenti testi a carattere narrativo prodotti per mezzo di uno
dei più diffusi software di editing testuale o un file multimediale. In questo caso, i
sistemi di gestione di dati utilizzabili sono quelli basati sul modello dell’information
e non strutturati retriveval.
Dati semi-strutturati: nei dati semi strutturati s’incontrano alcune delle caratteristiche
dei dati strutturati e alcune delle caratteristiche dei non strutturati. Un esempio
esplicativo di questa tipologia di organizzazione di informazioni è il file compilato con
sintassi XML. Nonostante non vi siano limiti strutturali all’inserimento dei dati, le
informazioni vengono, comunque, organizzate secondo logiche strutturate e
interoperabili. In questo caso, i sistemi di gestione dei dati possono organizzare i
documenti sia attraverso i modelli relazionali, sia attraverso modelli di information
retrieval.
Dati strutturati
Dati non strutturati
Dati semi-strutturati
U N E S EM PIO D I S O RG E NT E D I B I G - DATA: S E N S O RISTIC A
From an Internet of Humans … to an Internet of Things …
3. ANALYZE
4. PROVIDE
2. SHARE SERVICES
1. SENSE
Un esempio di sorgente di Big-Data: Sensoristica
(automazione industriale)
(domotica) (e-health)
GOOGLE NEST ALIVECOR
(automotive)
Un esempio di sorgente di Big-Data: Sensoristica
Tuttavia, più che il contenuto dei dati singoli, spesso l’interesse delle applicazioni è
rivolto alla conoscenza “estraibile” dai dati
SISTEMA REALE
SOCIAL MEDIA
DATA
DBMS
WAREHOUSE
OPERATIVO
REPORT
SOFTWARE DI
SUPPORTO
DECISIONALE
SITO WEB
Scalabilità
orizzontale e
verticale
Fail-hover, se una macchina
smette di funzionare le sue attività
vengono indirizzate verso un’altra
macchina attiva
Le prestazioni dipendono generalmente dal sottosistema di dischi. Le prestazioni si calcolano generalmente in funzione delle
Prestazioni Per raggiungere il massimo livello di prestazioni, spesso è dimensioni del cluster dell'hardware, della latenza di rete e
necessario ottimizzare query, indici e struttura delle tabelle. dell'applicazione di chiamata.
Transaction ◦ Riposta 2: Dividere la tabella più grande su più server e quelle più piccole
copiarle in tutti i server, tanto sono piccole-> Non è detto che ci sia una
grande
◦ Più server vengono coinvolti più aumentano i tempi di
comunicazione
◦ Tabelle su più server -> Query Join coinvolge più server -> Tempi di attesa
più lunghi per avere un risultato
◦ Es. query può coinvolgere 2 server -> Tempi ok
◦ Es. Query può coinvolgere 20/30 server ->
ZZZZZZZZZZZZZZZZZZ……..ZZZZZZZZZZZZZ………….
Approccio senza Join
Quando effettuiamo una join tra due tabelle ci
aspettiamo che i dati vengano uniti in un unico
risultato.
Approccio
senza Join Le pre-join usano il processo inverso, partono
dal risultato già unito cioè: già prima di salvare
nel database il nostro dato noi includiamo al suo
interno anche altre informazioni, un po’ come se
fosse il risultato di una join.
Esempio pre-Join
Schema dinamico
dinamico
Dopo il lancio del nostro nuovo e personalissimo
social network ci accorgiamo di esserci dimenticati
alcuni attributi degli utenti, ad esempio lo stato
sentimentale.
relazionale l’autore.
◦ tabella Autori con nome e password
◦ tabella commenti con chiave esterna agli articoli, avremo il nome del
◦ Per i tags o categorie possiamo creare un altro array dove inseriamo i tags come stringhe, non ci serve un’altra collection, già
così possiamo effettuare query per ogni singolo tag.
Collection per gli Autori però, questa volta, come id non usiamo un numero ma mettiamo direttamente l’username
dell’utente, così facendo non abbiamo bisogno di frugare la collection per mostrare a video il nome, è già l’id.
?
Transazioni
Astrazione
dello strato Motore di ottimizzazione delle query
fisico SQL
Il livello fisico può cambiare senza modificare le applicazioni
Crea indici per supportare le
Nei database di memoria
query
Dati manipolati con istruzioni Select,
Insert, Update, Delete….
• Seleziona T1.Column1, T2.Column2 ... Da Table1,
Table2 ... Dove T1.Column1 = T2.Column1 ...
Linguaggio per
la Aggregazione dei dati
manipolazione
dei dati Funzioni e procedure
MongoDB StupidDB
Caratteristiche NoSQL
Replica e distribuzione
scalabili Le query devono
Grandi volumi di dati (Big Principalmente query,
• Potenzialmente migliaia di restituire rapidamente le
Data) macchine pochi aggiornamenti
• Potenzialmente distribuito in
risposte
tutto il mondo
Le proprietà della
Insert e aggiornamenti
Schema-less transazione ACID non Sviluppo open source
asincroni
sono necessarie