L'incontro del 16/4/2018 è stato dedicato all'introduzione della modellazione dati su di un grafo. Il caso d'uso analizzato è stato quello di un Social Network. Al termine della presentazione è stato presentato un caso d'uso di investigazione tramite traffico email, spunto dal quale si è creata una discussione su possibili modellazioni adottabili.
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.
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)