Corso di Laurea Magistrale in Informatica
Appunti di Data Science e Tecnologie per
le Basi di Dati
Anno Accademico 2024/2025
Studente: Emmanuel Messina
Politecnico Di Torino
Indice
1 La sfida delle Big Data 5
1.1 Cosa sono i Big Data? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Generazione di un processo di Data Science . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Fasi di una Pipeline di Data Science . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Creazione di Modelli di Conoscenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Il Processo di Scoperta della Conoscenza . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Regole di Associazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Altre Tecniche di Data Science . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Data Warehouse 9
2.1 Introduzione alle Data Warehouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Modelli di Rappresentazione dei Dati . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Tecniche di Analisi dei Dati in un Data Warehouse . . . . . . . . . . . . . . . . . . . 10
2.4 Architetture delle Data Warehouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.1 Architettura a due livelli della Data Warehouse . . . . . . . . . . . . . . . . . 10
2.4.2 Server OLAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.3 Processi di popolamento e aggiornamento . . . . . . . . . . . . . . . . . . . . 11
2.4.4 Architettura a tre livelli della Data Warehouse . . . . . . . . . . . . . . . . . 11
3 Introduzione al Data Warehouse e al Data Mart 13
3.1 Fasi di Progettazione del Data Mart . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.1 Analisi dei Requisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.2 Progettazione Concettuale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 Concetti Avanzati nella Progettazione Dimensionale . . . . . . . . . . . . . . . . . . 15
3.3 Aggregazione dei Dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4 Gestione del Tempo e delle Variazioni delle Dimensioni . . . . . . . . . . . . . . . . . 17
3.5 Carico di lavoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6 Volume dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.7 Progettazione Logica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 Analisi Dei Dati - Data Warehouse 21
4.1 Operazioni di analisi dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 OLAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 Estensioni di SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4 Finestra di aggregazione fisica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.5 Finestra di aggregazione logica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.6 Applicazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.7 Esempio SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.8 Confronto tra dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.9 Group By . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.9.1 Funzionamento tra GROUP BY e OVER . . . . . . . . . . . . . . . . . . . . 27
4.10 Funzioni di Ranking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.11 Estensioni di Group by . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1
5 Viste materializzate 33
5.1 Introduzione alle viste materializzate . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Progettazione fisica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2.1 Strutture fisiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2.2 Alimentazione del Data Warehouse . . . . . . . . . . . . . . . . . . . . . . . . 35
6 Viste Materializzate in Oracle 36
6.1 Caratteristiche principali delle viste materializzate . . . . . . . . . . . . . . . . . . . 36
6.2 Creazione delle viste materializzate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.3 Opzioni di creazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.4 Esempio di vista materializzata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.5 Procedura per il refresh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.6 Vincoli per il Fast Refresh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7 Trigger 38
7.1 Introduzione ai Sistemi di Database Attivi . . . . . . . . . . . . . . . . . . . . . . . . 38
7.2 Regole Attive nei Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.3 Esempio Pratico: Gestione di Scorte di Magazzino . . . . . . . . . . . . . . . . . . . 38
7.4 Implementazione dei Trigger nei DBMS . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.5 Modalità di Esecuzione dei Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.6 Granularità di Esecuzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.7 Sintassi del Trigger nei Sistemi Commerciali . . . . . . . . . . . . . . . . . . . . . . . 40
7.8 Gestione degli Errori e Problemi di Esecuzione . . . . . . . . . . . . . . . . . . . . . 40
7.9 Esempio Completo di Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.10 Modalità di Esecuzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.11 Semantica dei Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.12 Algoritmo di Esecuzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.13 Esempio: Monitoraggio della Tabella . . . . . . . . . . . . . . . . . . . . 42
Inventory
7.14 Confronto tra Oracle e DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.15 Esempio: Gestione dei Salari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.16 Applicazioni dei Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.17 Esempio di Progetto: Vincoli di Quantità . . . . . . . . . . . . . . . . . . . . . . . . 43
8 Data Lakes e gestione dei dati 44
8.1 Cosa sono i data Lakes? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.2 Pipeline della gestione dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
9 Pre processing dei dati 46
9.1 Dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
9.2 Qualità dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
9.3 Data preprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9.3.1 Aggregazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9.3.2 Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
9.3.3 Riduzione dimensionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
9.3.4 Selezione di un subset di feature . . . . . . . . . . . . . . . . . . . . . . . . . 50
9.3.5 Creazione di feautures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
9.3.6 Discretizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2
9.3.7 Binarizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
9.3.8 Trasformazione di un attributo . . . . . . . . . . . . . . . . . . . . . . . . . . 52
9.4 Similarità e dissimilarità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
10 Regole di associazione 55
10.1 Definizioni di Base sugli Itemset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
10.1.1 Esempio di Metriche di Qualità . . . . . . . . . . . . . . . . . . . . . . . . . . 56
10.2 Estrazione di Regole di Associazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
10.3 Dettagli sui principali algoritmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
10.3.1 Algoritmo Apriori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
10.3.2 Algoritmo FP-growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
10.4 Ottimizzazione e varianti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
10.5 Itemset massimali e closed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
11 Classificazione 61
11.1 Obiettivi della classificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
11.2 Tecniche di classificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
11.3 Decision Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
11.4 Misure di Impurità e Scelta dell’Attributo Migliore . . . . . . . . . . . . . . . . . . . 64
11.5 Arresto della Crescita dell’Albero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
11.6 Altre tecniche di classificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
11.7 Valutazione dei modelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
12 Introduzione al Clustering 76
12.1 Algoritmi di clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
12.1.1 K-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
12.1.2 Clustering gerarchico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
12.1.3 DBSCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
12.1.4 Validità clustering DBSCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
13 DBMS 86
13.1 Introduzione ai DBMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
13.2 Transazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
13.3 Buffer Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
13.4 Management of access method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
13.5 Ottimizzatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
13.5.1 Introduzione all’Ottimizzazione Algebrica . . . . . . . . . . . . . . . . . . . . 92
13.6 Accesso ai dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
13.6.1 Operazioni di Join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
13.7 Progettazione Fisica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
13.7.1 Selezione delle strutture dati . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
13.7.2 Esempi di progettazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
13.8 Ottimizzazione delle query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
13.8.1 Ottimizzatore in Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
13.9 Distributed Database Management Systems . . . . . . . . . . . . . . . . . . . . . . . 106
13.9.1 Transazioni nei DBMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
13.9.2 Classificazione Transazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3
Emmanuel Messina - Data Science e Tecnologie per Le Basi Di Dati 2024/2025
13.9.3 Proprietà ACID nei DBMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
13.10Reliability Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
13.10.1 Tipi di guasti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
13.11Controllo della Concorrenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
13.11.1 Teoria del controllo della concorrenza . . . . . . . . . . . . . . . . . . . . . . 120
13.11.2 Introduzione alle Classi di Equivalenza . . . . . . . . . . . . . . . . . . . . . . 121
13.11.3 Locking gerarchico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
13.11.4 Deadlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
14 NoSQL 129
14.1 Confronto tra relazionale e non relazionale . . . . . . . . . . . . . . . . . . . . . . . . 129
14.2 Tipi di Database NoSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
14.3 Il modello MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
14.4 Caratteristiche principali dei database distribuiti . . . . . . . . . . . . . . . . . . . . 132
14.5 ACID vs BASE: Due filosofie di design opposte . . . . . . . . . . . . . . . . . . . . . 133
14.6 Conclusioni e Recensione Finale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Prima di iniziare a studiare da questi appunti è necessario che tu sappia che, nonostante
Premessa
si sia cercato di fare gli appunti nel miglior modo possibile sia per ripassare al meglio e sia per poter
creare un materiale utile per altri studenti, che ci potrebbero ugualmente essere imprecisioni, errori
di scrittura o altro. In caso di problemi si prega di contattarmi via mail: s333951@studenti.polito.it,
su instagram: oppure sul canale telegram: Se vuoi
@emmanuelmessina00 CLICCA QUI.
sostenere il lavoro svolto, puoi offrirmi un caffè (1 euro) qui: CLICCA QUI.
4
Emmanuel Messina - Data Science e Tecnologie per Le Basi Di Dati 2024/2025
1 La sfida delle Big Data
1.1 Cosa sono i Big Data?
I DBMS tradizionali servono per l’amministrazione ordinaria, si hanno pochi record. Altri strumenti
di gestione delle basi di dati servono allo scopo decisionale (OLAP). Se si vuole chiudere una filiale,
bisogna decidere sulla base di dati. Dalla gestione di pochi record abbiamo bisogno di dati storici,
consolidati e integrare con altri record per avere un aggiornamento e un’elaborazione con nuovi dati.
Dal punto di vista della progettazione della base dati, cambiano le query e cambiano le dimen-
sioni delle basi dati in quanto diventano significamente maggiori.
Chi genera big data? Generalmente abbiamo file di log, Internet of Things, dati degli utenti in
rete ecc.
I sono dati di grandi dimensioni, eterogenei e complessi. Per gestirli servono architetture,
big data
tecniche, algoritmi in grado di processarli in modo da estrarne il valore e acquisire in conoscenza
non nota per poi supportare decisioni.
Per quanto riguarda la generazione dei dati, si ha una generazione attiva e una passiva. Per la
passiva le informazioni vengono registrate senza un nostro coinvolgimento diretto. Ci sono tecniche
di generazioni dei dati automatiche, ad esempio utilizzando il cellulare.
Nel momento in cui il dato viene acquisito, le acquisizioni possono essere pull based o push based.
Abbiamo diversi tipi di dati. Su internet abbiamo dati di video, immagini, testo e altro. Non
è l’unica tipologia di dati. Ci sono dati generati da utenti, possono essere dati generati da ricerche,
dati dei server o di dispositivi connessi ad internet (IoT).
Le 5 V dei Big data sono un concetto che rappresenta le caratteristiche principali dei dati generati
in grandi quantità e velocità. Le 5 V dei Big data sono volume, varianza, velocità, veridicità e
valore.
• Il si riferisce alla vasta quantità di dati generati. I Big data si contraddistinguono
volume
per le loro dimensioni, che possono essere molto superiori rispetto ai dati tradizionali. La
gestione e l’analisi di grandi volumi di dati richiedono infrastrutture e strumenti appositi.
• La indica la velocità con cui avviene la generazione e raccolta dei dati. Nel contesto
velocità
dei Big data, i dati possono essere generati in tempo reale o in alta frequenza. La capacità
di elaborare e analizzare i dati in real-time diventa quindi cruciale. Lo scopo è di ottenere
informazioni utili e reattività nelle decisioni aziendali.
• La riguarda la diversità dei tipi di dati presenti nel contesto dei Big data. I dati
varianza
possono provenire da diverse fonti, come social media, sensori, dispositivi mobili, database
aziendali, e possono essere: strutturati, non strutturati o semi-strutturati. La gestione e
l’analisi di questa varietà di dati richiede soluzioni flessibili e adattabili.
• La concerne la qualità e l’affidabilità dei dati. Nel contesto dei Big data, è im-
veridicità
portante garantire che i dati raccolti siano accurati, completi e privi di errori. È necessario
5
Emmanuel Messina - Data Science e Tecnologie per Le Basi Di Dati 2024/2025
implementare processi di controllo della qualità per assicurarsi che i dati siano affidabili e che
le informazioni ottenute siano valide.
• Il infine rappresenta il potenziale valore che può essere tratto dai dati. I Big data
valore
offrono l’opportunità di analizzare e sfruttare i dati per ottenere informazioni preziose, iden-
tificare tendenze, modelli e correlazioni, migliorare la presa decisionale, individuare nuove
opportunità di business e offrire un’esperienza personalizzata ai clienti.
1.2 Generazione di un processo di Data Science
Per generare un processo di si parte da un sottoinsieme di dati, chiamato e
data science, sample,
si procede con la pre-elaborazione del dato. Durante questa fase, si verifica la qualità del dato,
valutando se è incompleto, ridondante o rumoroso. Qualora non fosse di qualità adeguata, il dato
deve essere trasformato o corretto. Questo processo di pre-elaborazione è cruciale, in quanto la
qualità del dato influisce direttamente sulla qualità dei risultati finali.
La configurazione della pipeline di un processo di è sperimentale e flessibile, poiché
data science
dipende dal tipo di dato con cui si lavora e dagli obiettivi del progetto. Solitamente, una pipeline
tipica può essere suddivisa in quattro fasi principali.
1.2.1 Fasi di una Pipeline di Data Science
• I dati possono essere generati in vari modi, ciascuno con peculiarità
Generazione dei dati:
diverse che ne influenzano l’uso e la gestione successiva. In parti
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.