SlideShare a Scribd company logo
1 of 35
Download to read offline
Graph Modelling
16/4/2018
Marco Liberati
@dej611
Piero Savastano
@_pieroit_
Enrico Risa
@wolf4ood
Data Modelling
● Esempi
● Best practices
● Il tuo caso d’uso!
● Consigli e discussione
Data Modelling - Esempi
● Persone
● Azioni
● Dati temporali
● Revisioni
● POLE - People, Objects, Location, Events
Data Modelling - Esempio: Social Network
In un social network l’elemento fondamentale è
l’individuo. Un individuo ha relazioni con altri
individui, tramite azioni su dei contenuti quali post
o immagini.
Individui e Post posso definirli come NODI.
Data Modelling - Esempio: Social Network
In un social network l’elemento fondamentale è
l’individuo. Un individuo ha relazioni con altri
individui, tramite azioni su dei contenuti quali post
o immagini.
Individui e Post posso definirli come NODI.
Le azioni sono definite come ARCHI.
Data Modelling - Esempio: Social Network
Es.
Marco fa un tweet.
Enrico fa Like sul tweet di Marco.
Enrico fa un nuovo tweet.
Data Modelling - Social Network
Marco
Tweet
Enrico
Tweet
Twitta Like
Twitta
Nome: Marco
Cognome: …
Registrato: ...
Nome: Enrico
Cognome: …
Registrato: ...
Images: https://
Text: ...
Images: null
Text: ...
Data Modelling - Best practice # 1
Il modello iniziale più semplice per modellare il
dato è quello di seguire il concetto di:
Soggetto -[ Predicato ] -> Oggetto
Data Modelling - Esempio: Social Network
In un social network l’elemento fondamentale è
l’individuo. Un individuo ha relazioni con altri
individui, tramite azioni su dei contenuti quali
post o immagini.
Individui e Post posso definirli come NODI.
Le azioni sono definite come ARCHI.
Data Modelling - Esempio: Social Network
Le azioni non sono semplici puntatori:
● Un’azione implica un certo contesto
● Un’azione è spesso definita nel tempo
(puntuale o intervallo temporale)
● Un’azione è spesso definita nello spazio
(geolocalizzazione)
Data Modelling - Social Network
Marco
Tweet
Enrico
Tweet
Twitta Like
Twitta
Timestamp: XXXXXXX
Client: Web
Timestamp: YYYYYYY
Client: App Android
Latitude: 12,433123
...
Timestamp: ZZZZZZZ
Client: App Android
Latitude: 24,1231232
...
Data Modelling - Dati temporali
I dati hanno quasi sempre degli attributi temporali.
Il dato temporale è un dato prezioso, fornisce un
contesto per le analisi successive, è quindi utile
tenere in considerazione questa informazione.
Sia nodi che archi possono contenere dati
temporali.
Data Modelling - Dati temporali
In taluni casi particolari è possibile modellare il
dato temporale come un’entità a sè stante, invece
che semplice attributo.
Valutare bene prima di procedere su questa
strada se il modello rende effettivamente più
comprensibile il vostro scenario, oltre che al resto
del team.
Data Modelling - Esempio: Social Network
Nel nostro caso di social network, sia la
registrazione degli utenti, che i tweet inviati, oltre
che azioni fatte posseggono dei dati temporali.
Data Modelling - Social Network
Marco
Tweet
Enrico
Tweet
Twitta Like
Twitta
Timestamp: XXXXXXX
Client: Web
Timestamp: YYYYYYY
Client: App Android
Latitude: 12,433123
...
Timestamp: ZZZZZZZ
Client: App Android
Latitude: 24,1231232
...
Data Modelling - Best practice # 2
● Sia gli archi che i nodi possono contenere
attributi in un grafo.
● Sfruttate questa occasione per dare il giusto
contesto ai vostro modello.
Data Modelling - Revisioni
Come in un documento, anche i grafi possono
avere delle revisioni: salvare tutte le variazioni
all’interno del grafo può essere un qualcosa di
particolarmente utile in caso di analisi postuma
(forense o post-mortem).
Data Modelling - Revisioni
In questi casi è possibile sfruttare la molteplicità
degli archi tra i nodi come veicolo per contenere
l’informazione di revisione.
A questo punto sarà necessario ritoccare la query
per recuperare solo la versione dell’arco più
recente in caso di presentazione dello stato
attuale.
Data Modelling - Social Network
Marco
Tweet
Enrico
Tweet
Twitta Like
Twitta
Timestamp: XXXXXXX
Client: Web
Timestamp: YYYYYYY
Client: App Android
Latitude: 12,433123
...
Timestamp: ZZZZZZZ
Client: App Android
Latitude: 24,1231232
...
Twitta: edit 1
Timestamp: X1X1X1X1
Client: iPhone
Latitude: 24,1231232
...
Data Modelling - Best practice # 3
● Non avete paura di creare più tipi di archi tra
nodi
● Allo stesso modo cercate di rimanere su di un
numero razionali di archi una coppia di nodi (
centinaia vanno bene, milioni di archi tra due
nodi possono essere problematici )
Data Modelling - Best practice # 4
● Nel caso in cui già sappiate che ci saranno
milioni di archi tra ciascuna coppia di nodi nel
tempo, rivedete la strategia di presentazione
● Dati granulari nel DB, dati aggregati / filtrati in
fase di presentazione
Data Modelling - POLE
La sigla POLE è spesso utilizzata in campo
investigativo per indicare esattamente i criteri
sopra:
● People
● Object
● Location
● Event ( Dati temporali )
Data Modelling - POLE -> Social Network
Nel nostro caso di un Social Network i seguenti
dati come POLE:
● People (Utenti)
● Object (Tweet)
● Location ( Attributo azione )
● Event ( Attributo azione )
Data Modelling - Best practice # 5
● Sfruttate la strategia POLE per definire i dati in
modo dettagliato nel vostro modello
● Probabilmente i modello di dati che avete nel
database non è lo stesso che i vostri utenti
vogliono vedere.
Data Modelling - Best practice # 5
● Sfruttate la strategia POLE per definire i dati in
modo dettagliato nel vostro modello
● Probabilmente i modello di dati che avete nel
database non è lo stesso che i vostri utenti
vogliono vedere.
es. Marco e Enrico si conoscono?
Data Modelling - i vostri casi
Avete dei fogli di carta su cui provare a modellare
il caso d’uso nella slide seguente.
Siete liberi di proporre un vostro caso d’uso nel
caso lo trovate più interessante: alzate la mano
per spiegarci cosa volete proporre!
Data Modelling - i vostri casi
Un manager vuole sapere dall’amministratore di
sistema se qualche dipendente sta facendo
insider trading dall’interno dell’azienda.
Non potendo violare la privacy della
comunicazione tra destinatari, sarà possibile
sfruttare unicamente i metadati delle email - ID
invece di nomi.
Data Modelling - Discussione
Data Modelling - Proposta #1
Persona (Mittente) NODO
Persona (Destinatario) NODO
Persona - Invia -> Persona ARCO
Data Modelling - Proposta #1
Vantaggi di questa modellazione:
1. Tiene conto del traffico email (interno e verso l’esterno
della compagnia)
2. Tiene conto delle persone coinvolte nella
presentazione
3. Arricchendo i dati con informazioni riguardo le persone
(permessi di accesso dati, ruolo, …) permette di dare
un contesto valido all’investigazione in corso
Data Modelling - Proposta #1
Svantaggi di questa modellazione:
1. Non tiene conto dei vari tipi di destinatari
a. chi è il destinatario diretto e chi è in copia (CC,
BCC)?
2. Non tiene conto delle discussioni composte da più
email (Reply, Reply all) facendo perdere il contesto
Data Modelling - Proposta #2
Persona (Mittente) NODO
Persona (Destinatario) NODO
Email NODO
Persona - Invia -> Email ARCO
Email - Destinata -> Persona ARCO
Email - In copia -> Persona ARCO
Email - relativa -> Email ARCO
Data Modelling - Proposta #2
Vantaggi di questa modellazione:
1. Include i vantaggi della soluzione precedente
2. Tiene conto delle categorie di destinatari (TO, CC,
BCC)
3. Permette l’individuazione di una discussione o thread
(Reply, Reply all, Forward)
Grazie :)

More Related Content

Similar to GraphRM - Introduzione al Graph modelling

Dispensa Datajournalism | Maggio 2014 | school.dataninja.it
Dispensa Datajournalism | Maggio 2014 | school.dataninja.itDispensa Datajournalism | Maggio 2014 | school.dataninja.it
Dispensa Datajournalism | Maggio 2014 | school.dataninja.itDataninja
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RGiuseppe Cramarossa
 
Multidisciplinarità nell'analisi delle conversazioni on line
Multidisciplinarità nell'analisi delle conversazioni on lineMultidisciplinarità nell'analisi delle conversazioni on line
Multidisciplinarità nell'analisi delle conversazioni on lineRosario Dep Di Girolamo
 
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...Neo4j
 
Imola Informatica S.P.A.- Presentazione per Università
Imola Informatica S.P.A.- Presentazione per UniversitàImola Informatica S.P.A.- Presentazione per Università
Imola Informatica S.P.A.- Presentazione per UniversitàCristian Faraoni
 
CrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with CrowdsourcingCrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with CrowdsourcingViviana Murello
 
Business attraverso i Big Data
Business attraverso i Big DataBusiness attraverso i Big Data
Business attraverso i Big DataStefano Dindo
 
2014 ottobre Big Data per Madee 6
2014 ottobre Big Data per Madee 62014 ottobre Big Data per Madee 6
2014 ottobre Big Data per Madee 6Gianluigi Cogo
 
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)Data Driven Innovation
 
Data Driven UX - Come lo facciamo
Data Driven UX - Come lo facciamoData Driven UX - Come lo facciamo
Data Driven UX - Come lo facciamonois3
 
Big data & opendata
Big data & opendataBig data & opendata
Big data & opendataDatiGovIT
 
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...Social Media Lab
 
Data-as-a-Service: il modello architetturale di Dropbox
Data-as-a-Service: il modello architetturale di DropboxData-as-a-Service: il modello architetturale di Dropbox
Data-as-a-Service: il modello architetturale di DropboxMariagrazia Cinti
 

Similar to GraphRM - Introduzione al Graph modelling (20)

Dispensa Datajournalism | Maggio 2014 | school.dataninja.it
Dispensa Datajournalism | Maggio 2014 | school.dataninja.itDispensa Datajournalism | Maggio 2014 | school.dataninja.it
Dispensa Datajournalism | Maggio 2014 | school.dataninja.it
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-R
 
Big data
Big dataBig data
Big data
 
Multidisciplinarità nell'analisi delle conversazioni on line
Multidisciplinarità nell'analisi delle conversazioni on lineMultidisciplinarità nell'analisi delle conversazioni on line
Multidisciplinarità nell'analisi delle conversazioni on line
 
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
Larus: Il forte impatto della Graph Technology: l'esperienza di LARUS e numer...
 
Imola Informatica S.P.A.- Presentazione per Università
Imola Informatica S.P.A.- Presentazione per UniversitàImola Informatica S.P.A.- Presentazione per Università
Imola Informatica S.P.A.- Presentazione per Università
 
FANTIN BIG DATA (1)
FANTIN BIG DATA (1)FANTIN BIG DATA (1)
FANTIN BIG DATA (1)
 
CrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with CrowdsourcingCrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with Crowdsourcing
 
Business attraverso i Big Data
Business attraverso i Big DataBusiness attraverso i Big Data
Business attraverso i Big Data
 
introduzione al data mining
introduzione al data mining introduzione al data mining
introduzione al data mining
 
2014 ottobre Big Data per Madee 6
2014 ottobre Big Data per Madee 62014 ottobre Big Data per Madee 6
2014 ottobre Big Data per Madee 6
 
Bigdata per Madee 4
Bigdata per Madee 4Bigdata per Madee 4
Bigdata per Madee 4
 
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)
Data Driven UX: Come lo facciamo? C. Frinolli & N. Molchanova (Nois3)
 
Data Driven UX - Come lo facciamo
Data Driven UX - Come lo facciamoData Driven UX - Come lo facciamo
Data Driven UX - Come lo facciamo
 
Datadrivenux
DatadrivenuxDatadrivenux
Datadrivenux
 
Big data & opendata
Big data & opendataBig data & opendata
Big data & opendata
 
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...
Duccio Schiavon - Information Design: Visualizzazione di Informazioni Quantit...
 
Open Data - Data Journalism
Open Data - Data JournalismOpen Data - Data Journalism
Open Data - Data Journalism
 
Data-as-a-Service: il modello architetturale di Dropbox
Data-as-a-Service: il modello architetturale di DropboxData-as-a-Service: il modello architetturale di Dropbox
Data-as-a-Service: il modello architetturale di Dropbox
 
DS4Biz - Data Science for Business
DS4Biz - Data Science for BusinessDS4Biz - Data Science for Business
DS4Biz - Data Science for Business
 

More from GraphRM

A gentle introduction to random and strategic networks
A gentle introduction to random and strategic networksA gentle introduction to random and strategic networks
A gentle introduction to random and strategic networksGraphRM
 
How to leverage Kafka data streams with Neo4j
How to leverage Kafka data streams with Neo4jHow to leverage Kafka data streams with Neo4j
How to leverage Kafka data streams with Neo4jGraphRM
 
From zero to gremlin hero - Part I
From zero to gremlin hero - Part IFrom zero to gremlin hero - Part I
From zero to gremlin hero - Part IGraphRM
 
Topology Visualization at Sysdig
Topology Visualization at SysdigTopology Visualization at Sysdig
Topology Visualization at SysdigGraphRM
 
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...GraphRM
 
aRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con RaRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con RGraphRM
 
The power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDBThe power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDBGraphRM
 
OrientDB graph e l'importanza di una relazione mancante
OrientDB graph e l'importanza di una relazione mancanteOrientDB graph e l'importanza di una relazione mancante
OrientDB graph e l'importanza di una relazione mancanteGraphRM
 
Il "Knowledge Graph" della Pubblica Amministrazione Italiana
Il "Knowledge Graph" della Pubblica Amministrazione ItalianaIl "Knowledge Graph" della Pubblica Amministrazione Italiana
Il "Knowledge Graph" della Pubblica Amministrazione ItalianaGraphRM
 
Elastic loves Graphs
Elastic loves GraphsElastic loves Graphs
Elastic loves GraphsGraphRM
 
From text to entities: Information Extraction in the Era of Knowledge Graphs
From text to entities: Information Extraction in the Era of Knowledge GraphsFrom text to entities: Information Extraction in the Era of Knowledge Graphs
From text to entities: Information Extraction in the Era of Knowledge GraphsGraphRM
 
Graph analysis over relational database
Graph analysis over relational databaseGraph analysis over relational database
Graph analysis over relational databaseGraphRM
 
GraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphRM
 
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018GraphRM
 

More from GraphRM (14)

A gentle introduction to random and strategic networks
A gentle introduction to random and strategic networksA gentle introduction to random and strategic networks
A gentle introduction to random and strategic networks
 
How to leverage Kafka data streams with Neo4j
How to leverage Kafka data streams with Neo4jHow to leverage Kafka data streams with Neo4j
How to leverage Kafka data streams with Neo4j
 
From zero to gremlin hero - Part I
From zero to gremlin hero - Part IFrom zero to gremlin hero - Part I
From zero to gremlin hero - Part I
 
Topology Visualization at Sysdig
Topology Visualization at SysdigTopology Visualization at Sysdig
Topology Visualization at Sysdig
 
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...
Tecniche per la Visualizzazione di Grafi di Grandi Dimensioni Basate sulla Co...
 
aRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con RaRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con R
 
The power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDBThe power of the cosmos in a DB .... CosmosDB
The power of the cosmos in a DB .... CosmosDB
 
OrientDB graph e l'importanza di una relazione mancante
OrientDB graph e l'importanza di una relazione mancanteOrientDB graph e l'importanza di una relazione mancante
OrientDB graph e l'importanza di una relazione mancante
 
Il "Knowledge Graph" della Pubblica Amministrazione Italiana
Il "Knowledge Graph" della Pubblica Amministrazione ItalianaIl "Knowledge Graph" della Pubblica Amministrazione Italiana
Il "Knowledge Graph" della Pubblica Amministrazione Italiana
 
Elastic loves Graphs
Elastic loves GraphsElastic loves Graphs
Elastic loves Graphs
 
From text to entities: Information Extraction in the Era of Knowledge Graphs
From text to entities: Information Extraction in the Era of Knowledge GraphsFrom text to entities: Information Extraction in the Era of Knowledge Graphs
From text to entities: Information Extraction in the Era of Knowledge Graphs
 
Graph analysis over relational database
Graph analysis over relational databaseGraph analysis over relational database
Graph analysis over relational database
 
GraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDB
 
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018
Costruiamo un motore di raccomandazione con Neo4J - Workshop 25/1/2018
 

GraphRM - Introduzione al Graph modelling

  • 3. Data Modelling ● Esempi ● Best practices ● Il tuo caso d’uso! ● Consigli e discussione
  • 4. Data Modelling - Esempi ● Persone ● Azioni ● Dati temporali ● Revisioni ● POLE - People, Objects, Location, Events
  • 5. Data Modelling - Esempio: Social Network In un social network l’elemento fondamentale è l’individuo. Un individuo ha relazioni con altri individui, tramite azioni su dei contenuti quali post o immagini. Individui e Post posso definirli come NODI.
  • 6. Data Modelling - Esempio: Social Network In un social network l’elemento fondamentale è l’individuo. Un individuo ha relazioni con altri individui, tramite azioni su dei contenuti quali post o immagini. Individui e Post posso definirli come NODI. Le azioni sono definite come ARCHI.
  • 7. Data Modelling - Esempio: Social Network Es. Marco fa un tweet. Enrico fa Like sul tweet di Marco. Enrico fa un nuovo tweet.
  • 8. Data Modelling - Social Network Marco Tweet Enrico Tweet Twitta Like Twitta Nome: Marco Cognome: … Registrato: ... Nome: Enrico Cognome: … Registrato: ... Images: https:// Text: ... Images: null Text: ...
  • 9. Data Modelling - Best practice # 1 Il modello iniziale più semplice per modellare il dato è quello di seguire il concetto di: Soggetto -[ Predicato ] -> Oggetto
  • 10. Data Modelling - Esempio: Social Network In un social network l’elemento fondamentale è l’individuo. Un individuo ha relazioni con altri individui, tramite azioni su dei contenuti quali post o immagini. Individui e Post posso definirli come NODI. Le azioni sono definite come ARCHI.
  • 11. Data Modelling - Esempio: Social Network Le azioni non sono semplici puntatori: ● Un’azione implica un certo contesto ● Un’azione è spesso definita nel tempo (puntuale o intervallo temporale) ● Un’azione è spesso definita nello spazio (geolocalizzazione)
  • 12. Data Modelling - Social Network Marco Tweet Enrico Tweet Twitta Like Twitta Timestamp: XXXXXXX Client: Web Timestamp: YYYYYYY Client: App Android Latitude: 12,433123 ... Timestamp: ZZZZZZZ Client: App Android Latitude: 24,1231232 ...
  • 13. Data Modelling - Dati temporali I dati hanno quasi sempre degli attributi temporali. Il dato temporale è un dato prezioso, fornisce un contesto per le analisi successive, è quindi utile tenere in considerazione questa informazione. Sia nodi che archi possono contenere dati temporali.
  • 14. Data Modelling - Dati temporali In taluni casi particolari è possibile modellare il dato temporale come un’entità a sè stante, invece che semplice attributo. Valutare bene prima di procedere su questa strada se il modello rende effettivamente più comprensibile il vostro scenario, oltre che al resto del team.
  • 15. Data Modelling - Esempio: Social Network Nel nostro caso di social network, sia la registrazione degli utenti, che i tweet inviati, oltre che azioni fatte posseggono dei dati temporali.
  • 16. Data Modelling - Social Network Marco Tweet Enrico Tweet Twitta Like Twitta Timestamp: XXXXXXX Client: Web Timestamp: YYYYYYY Client: App Android Latitude: 12,433123 ... Timestamp: ZZZZZZZ Client: App Android Latitude: 24,1231232 ...
  • 17. Data Modelling - Best practice # 2 ● Sia gli archi che i nodi possono contenere attributi in un grafo. ● Sfruttate questa occasione per dare il giusto contesto ai vostro modello.
  • 18. Data Modelling - Revisioni Come in un documento, anche i grafi possono avere delle revisioni: salvare tutte le variazioni all’interno del grafo può essere un qualcosa di particolarmente utile in caso di analisi postuma (forense o post-mortem).
  • 19. Data Modelling - Revisioni In questi casi è possibile sfruttare la molteplicità degli archi tra i nodi come veicolo per contenere l’informazione di revisione. A questo punto sarà necessario ritoccare la query per recuperare solo la versione dell’arco più recente in caso di presentazione dello stato attuale.
  • 20. Data Modelling - Social Network Marco Tweet Enrico Tweet Twitta Like Twitta Timestamp: XXXXXXX Client: Web Timestamp: YYYYYYY Client: App Android Latitude: 12,433123 ... Timestamp: ZZZZZZZ Client: App Android Latitude: 24,1231232 ... Twitta: edit 1 Timestamp: X1X1X1X1 Client: iPhone Latitude: 24,1231232 ...
  • 21. Data Modelling - Best practice # 3 ● Non avete paura di creare più tipi di archi tra nodi ● Allo stesso modo cercate di rimanere su di un numero razionali di archi una coppia di nodi ( centinaia vanno bene, milioni di archi tra due nodi possono essere problematici )
  • 22. Data Modelling - Best practice # 4 ● Nel caso in cui già sappiate che ci saranno milioni di archi tra ciascuna coppia di nodi nel tempo, rivedete la strategia di presentazione ● Dati granulari nel DB, dati aggregati / filtrati in fase di presentazione
  • 23. Data Modelling - POLE La sigla POLE è spesso utilizzata in campo investigativo per indicare esattamente i criteri sopra: ● People ● Object ● Location ● Event ( Dati temporali )
  • 24. Data Modelling - POLE -> Social Network Nel nostro caso di un Social Network i seguenti dati come POLE: ● People (Utenti) ● Object (Tweet) ● Location ( Attributo azione ) ● Event ( Attributo azione )
  • 25. Data Modelling - Best practice # 5 ● Sfruttate la strategia POLE per definire i dati in modo dettagliato nel vostro modello ● Probabilmente i modello di dati che avete nel database non è lo stesso che i vostri utenti vogliono vedere.
  • 26. Data Modelling - Best practice # 5 ● Sfruttate la strategia POLE per definire i dati in modo dettagliato nel vostro modello ● Probabilmente i modello di dati che avete nel database non è lo stesso che i vostri utenti vogliono vedere. es. Marco e Enrico si conoscono?
  • 27. Data Modelling - i vostri casi Avete dei fogli di carta su cui provare a modellare il caso d’uso nella slide seguente. Siete liberi di proporre un vostro caso d’uso nel caso lo trovate più interessante: alzate la mano per spiegarci cosa volete proporre!
  • 28. Data Modelling - i vostri casi Un manager vuole sapere dall’amministratore di sistema se qualche dipendente sta facendo insider trading dall’interno dell’azienda. Non potendo violare la privacy della comunicazione tra destinatari, sarà possibile sfruttare unicamente i metadati delle email - ID invece di nomi.
  • 29. Data Modelling - Discussione
  • 30. Data Modelling - Proposta #1 Persona (Mittente) NODO Persona (Destinatario) NODO Persona - Invia -> Persona ARCO
  • 31. Data Modelling - Proposta #1 Vantaggi di questa modellazione: 1. Tiene conto del traffico email (interno e verso l’esterno della compagnia) 2. Tiene conto delle persone coinvolte nella presentazione 3. Arricchendo i dati con informazioni riguardo le persone (permessi di accesso dati, ruolo, …) permette di dare un contesto valido all’investigazione in corso
  • 32. Data Modelling - Proposta #1 Svantaggi di questa modellazione: 1. Non tiene conto dei vari tipi di destinatari a. chi è il destinatario diretto e chi è in copia (CC, BCC)? 2. Non tiene conto delle discussioni composte da più email (Reply, Reply all) facendo perdere il contesto
  • 33. Data Modelling - Proposta #2 Persona (Mittente) NODO Persona (Destinatario) NODO Email NODO Persona - Invia -> Email ARCO Email - Destinata -> Persona ARCO Email - In copia -> Persona ARCO Email - relativa -> Email ARCO
  • 34. Data Modelling - Proposta #2 Vantaggi di questa modellazione: 1. Include i vantaggi della soluzione precedente 2. Tiene conto delle categorie di destinatari (TO, CC, BCC) 3. Permette l’individuazione di una discussione o thread (Reply, Reply all, Forward)