Estratto del documento

Ingegneria Informatica

Appunti di

BASI DI DATI

A cura di Baldi F. e Sangeniti C.

2025-2026

Indice

1 Sistema organizzativo 7

1.1 Sistema informativo . . . . . . . . . . . . . . . . . . . . . . 7

1.2 Informazioni e dati . . . . . . . . . . . . . . . . . . . . . . . 8

2 Base di Dati (database) 10

2.1 Caratteristiche delle Basi di Dati . . . . . . . . . . . . . . . 10

2.1.1 Grandi dimensioni . . . . . . . . . . . . . . . . . . . 10

2.1.2 Persistenza . . . . . . . . . . . . . . . . . . . . . . . 10

2.1.3 Condivisione . . . . . . . . . . . . . . . . . . . . . . 10

2.1.4 Eterogeneità delle informazioni . . . . . . . . . . . . 11

2.2 Compiti del DBMS . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.1 Persistenza . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.2 Condivisione . . . . . . . . . . . . . . . . . . . . . . 11

2.2.3 Sicurezza . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.4 Integrità . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.5 Gestione di grandi volumi . . . . . . . . . . . . . . . 12

2.2.6 Transazioni . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.7 Indipendenza dei dati . . . . . . . . . . . . . . . . . 13

2.3 DBMS vs File System . . . . . . . . . . . . . . . . . . . . . 14

2.3.1 Descrizione dei dati nei File System . . . . . . . . . . 14

2.3.2 Descrizione dei dati nei DBMS . . . . . . . . . . . . 14

2.4 Schema e istanza . . . . . . . . . . . . . . . . . . . . . . . . 15

2.5 Modello di dati . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.5.1 Modelli concettuali . . . . . . . . . . . . . . . . . . . 16

2.5.2 Modelli logici . . . . . . . . . . . . . . . . . . . . . . 16

2.6 Architettura (semplificata) di un DBMS . . . . . . . . . . . 16

2.6.1 Schema logico . . . . . . . . . . . . . . . . . . . . . . 17

2.6.2 Schema fisico (o interno) . . . . . . . . . . . . . . . . 17

2.7 Linguaggi per Basi di Dati . . . . . . . . . . . . . . . . . . . 17

2.8 Attori del sistema . . . . . . . . . . . . . . . . . . . . . . . . 18

3 Il modello relazionale 19

3.1 Modelli logici e struttura dei dati . . . . . . . . . . . . . . . 19

3.2 Dominio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3 Prodotto cartesiano . . . . . . . . . . . . . . . . . . . . . . . 20

3.4 Relazione matematica . . . . . . . . . . . . . . . . . . . . . 20

3.5 Attributo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.6 Schema di relazione . . . . . . . . . . . . . . . . . . . . . . . 21

3.6.1 Schema di base di dati . . . . . . . . . . . . . . . . . 21

1

3.7 Istanza di relazione . . . . . . . . . . . . . . . . . . . . . . . 22

3.7.1 Istanza di base di dati . . . . . . . . . . . . . . . . . 22

3.8 Tupla su un insieme di attributi . . . . . . . . . . . . . . . . 22

3.9 Informazione incompleta . . . . . . . . . . . . . . . . . . . . 23

3.10 Vincoli di integrità . . . . . . . . . . . . . . . . . . . . . . . 23

3.10.1 Vincoli intra-relazionali . . . . . . . . . . . . . . . . . 24

3.10.2 Vincoli inter-relazionali . . . . . . . . . . . . . . . . . 25

3.11 Dipendenze funzionali . . . . . . . . . . . . . . . . . . . . . 25

3.12 Chiave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.12.1 Superchiave . . . . . . . . . . . . . . . . . . . . . . . 25

3.12.2 Chiave primaria (primary key) . . . . . . . . . . . . . 26

3.12.3 Integrità referenziale . . . . . . . . . . . . . . . . . . 27

3.13 Operazioni di aggiornamento . . . . . . . . . . . . . . . . . . 28

3.13.1 Azioni compensative . . . . . . . . . . . . . . . . . . 29

4 Interrogazione di una database 30

4.1 Algebra relazionale . . . . . . . . . . . . . . . . . . . . . . . 30

4.1.1 Operatori insiemistici . . . . . . . . . . . . . . . . . . 31

4.1.2 Operatori di rimozione . . . . . . . . . . . . . . . . . 32

4.1.3 Operatori di ridenominazione . . . . . . . . . . . . . 35

4.1.4 Operatori di combinazione . . . . . . . . . . . . . . . 36

4.1.5 Equivalenza di espressioni . . . . . . . . . . . . . . . 39

4.1.6 Ottimizzazione delle interrogazioni . . . . . . . . . . 40

4.1.7 Esecuzione delle interrogazioni . . . . . . . . . . . . . 40

4.1.8 Procedura euristica di ottimizzazione . . . . . . . . . 41

4.1.9 Profili delle relazioni . . . . . . . . . . . . . . . . . . 42

4.2 Grafo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2.1 Cammino e ciclo . . . . . . . . . . . . . . . . . . . . 43

4.2.2 Albero . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5 Progettazione concettuale 44

5.1 Raccolta e analisi dei requisiti . . . . . . . . . . . . . . . . . 44

5.1.1 Acquisizione dei requisiti . . . . . . . . . . . . . . . . 44

5.2 Progettazione . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.3 Modello E-R . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.3.1 Entità . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.3.2 Associazione . . . . . . . . . . . . . . . . . . . . . . . 47

5.3.3 Attributo . . . . . . . . . . . . . . . . . . . . . . . . 48

5.4 Modello E-R esteso . . . . . . . . . . . . . . . . . . . . . . . 49

5.4.1 Cardinalità di attributo . . . . . . . . . . . . . . . . 49

5.4.2 Identificatore di entità interno . . . . . . . . . . . . . 50

2

5.4.3 Cardinalità di associazione . . . . . . . . . . . . . . . 51

5.4.4 Identificatore di entità esterno . . . . . . . . . . . . . 53

5.4.5 Relazione IS-A . . . . . . . . . . . . . . . . . . . . . 54

5.4.6 Generalizzazione . . . . . . . . . . . . . . . . . . . . 54

5.4.7 Documentazione di supporto . . . . . . . . . . . . . . 56

5.5 Strategie di progetto . . . . . . . . . . . . . . . . . . . . . . 56

5.5.1 Strategia top-down . . . . . . . . . . . . . . . . . . . 57

5.5.2 Strategia bottom-up . . . . . . . . . . . . . . . . . . 57

6 Progettazione logica 58

6.1 Valutare le prestazioni . . . . . . . . . . . . . . . . . . . . . 58

6.2 Attività di ristrutturazione . . . . . . . . . . . . . . . . . . . 61

6.2.1 Analisi delle ridondanze . . . . . . . . . . . . . . . . 61

6.2.2 Eliminazione delle generalizzazioni . . . . . . . . . . 63

6.2.3 Partizionamento/accorpamento di entità e associazioni 63

6.2.4 Scelta degli identificatori principali . . . . . . . . . . 65

6.3 Traduzione verso il modello relazionale . . . . . . . . . . . . 66

6.3.1 Traduzione di un’entità forte . . . . . . . . . . . . . . 66

6.3.2 Traduzione di un’entità debole . . . . . . . . . . . . . 67

6.3.3 Traduzione associazioni binarie molti a molti . . . . . 68

6.3.4 Traduzione associazioni binarie uno a molti . . . . . 69

6.3.5 Traduzione associazioni binarie uno a uno . . . . . . 70

6.3.6 Traduzione associazioni ricorsive molti a molti . . . . 71

6.3.7 Traduzione associazioni ricorsive uno a molti . . . . . 72

6.3.8 Traduzione associazioni . . . . . . . . . . . . . 73

n-arie

6.4 Linee guida per la progettazione . . . . . . . . . . . . . . . . 74

7 Dipendenze funzionali 76

7.1 Dipendenze funzionali particolari . . . . . . . . . . . . . . . 76

7.2 Implicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

7.2.1 Regole di inferenza di Armstrong . . . . . . . . . . . 77

7.3 Derivazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

7.3.1 Regole di derivazione comuni . . . . . . . . . . . . . 78

7.4 Chiusura degli attributi . . . . . . . . . . . . . . . . . . . . 79

7.4.1 Calcolo di . . . . . . . . . . . . . . . . . . . . . . 79

+

X

7.5 Correttezza e completezza di un RI . . . . . . . . . . . . . . 80

7.6 Chiusura di un insieme di dipendenze funzionali . . . . . . . 81

7.6.1 Calcolo di . . . . . . . . . . . . . . . . . . . . . . 81

+

F

7.7 Chiavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

7.7.1 Trovare tutte le chiavi . . . . . . . . . . . . . . . . . 82

7.7.2 Verifica di una chiave . . . . . . . . . . . . . . . . . . 82

3

7.8 Equivalenza . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

7.9 Ridondanza . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

7.10 Copertura minimale . . . . . . . . . . . . . . . . . . . . . . 84

7.10.1 Calcolo della copertura minimale . . . . . . . . . . . 84

8 Forme normali 86

8.1 Normalizzazione . . . . . . . . . . . . . . . . . . . . . . . . . 86

8.2 Forma normale di Boyce-Codd . . . . . . . . . . . . . . . . . 86

8.2.1 Verificare una BNCF . . . . . . . . . . . . . . . . . . 86

8.3 Decomposizione di schemi . . . . . . . . . . . . . . . . . . . 89

8.3.1 Teorema della perdita dei dati . . . . . . . . . . . . . 90

8.3.2 Decomposizione che preserva i dati . . . . . . . . . . 91

8.3.3 Teorema di preservazione dei dati . . . . . . . . . . . 91

8.3.4 Proiezioni di un insieme di dipendenze . . . . . . . . 91

8.3.5 Decomposizione che preserva le dipendenze . . . . . . 92

8.3.6 Verificare una decomposizione . . . . . . . . . . . . . 92

8.3.7 Algoritmo per decomposizione in BCNF . . . . . . . 93

8.4 Terza forma normale . . . . . . . . . . . . . . . . . . . . . . 94

8.4.1 Verifica di 3NF . . . . . . . . . . . . . . . . . . . . . 95

8.4.2 Algoritmo per decomposizione in 3NF . . . . . . . . 95

9 Transazioni 98

9.1 Gestione delle transazioni . . . . . . . . . . . . . . . . . . . 100

9.1.1 Problemi legati a mancanza di controllo . . . . . . . 100

9.1.2 Scheduler . . . . . . . . . . . . . . . . . . . . . . . . 104

9.2 Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

9.2.1 Schedule seriali . . . . . . . . . . . . . . . . . . . . . 105

9.2.2 Schedule serializzabili . . . . . . . . . . . . . . . . . . 105

9.2.3 -equivalenza . . . . . . . . . . . . . . . . . . . . 107

View

9.2.4 . . . . . . . . . . . . . . . . . . 108

Conflict-equivalenza

9.2.5 Grafo dei conflitti . . . . . . . . . . . . . . . . . . . . 110

9.2.6 Serializzabilità a confronto . . . . . . . . . . . . . . . 111

9.3 Locking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

9.3.1 Locking scheduler e 2PL . . . . . . . . . . . . . . . . 113

9.3.2 Implementazione . . . . . . . . . . . . . . . . . . . . 116

9.3.3 Deadlock . . . . . . . . . . . . . . . . . . . . . . . . 117

10 Linguaggio SQL 119

10.1 Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

10.2 Operatori logici . . . . . . . . . . . . . . . . . . . . . . . . . 121

10.3 Intervallo di valori . . . . . . . . . . . . . . . . . . . . . . . 121

4

10.4 Duplicati . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

10.5 Controllo su valori NULL . . . . . . . . . . . . . . . . . . . 123

10.6 Gestione delle date . . . . . . . . . . . . . . . . . . . . . . . 123

10.6.1 Estrazione di giorno, mese, anno . . . . . . . . . . . 123

10.6.2 Lassi di tempo in giorni . . . . . . . . . . . . . . . . 123

10.6.3 Sommare/sottrarre intervalli di tempo . . . . . . . . 124

10.6.4 Funzioni di utilità sulle date . . . . . . . . . . . . . . 124

10.7 Operatori di aggregazione . . . . . . . . . . . . . . . . . . . 125

10.7.1 Conteggio . . . . . . . . . . . . . . . . . . . . . . . . 125

10.7.2 Somma . . . . . . . . . . . . . . . . . . . . . . . . . 126

10.7.3 Massimo/minimo . . . . . . . . . . . . . . . . . . . . 127

10.7.4 Media . . . . . . . . . . . . . . . . . . . . . . . . . . 127

10.8 Query su più tabelle . . . . . . . . . . . . . . . . . . . . . . 128

10.8.1 Inner join . . . . . . . . . . . . . . . . . . . . . . . . 128

10.8.2 Join naturale . . . . . . . . . . . . . . . . . . . . . . 129

10.8.3 Prodotto cartesiano . . . . . . . . . . . . . . . . . . . 130

10.8.4 Join esterni . . . . . . . . . . . . . . . . . . . . . . . 131

10.8.5 Join multipli . . . . . . . . . . . . . . . . . . . . . . 133

10.8.6 Self join . . . . . . . . . . . . . . . . . . . . . . . . . 134

10.8.7 Ambiguità . . . . . . . . . . . . . . . . . . . . . . . . 134

10.8.8 Derived table . . . . . . . . . . . . . . . . . . . . . . 136

10.9 Subquery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

10.9.1 Noncorrelated subquery . . . . . . . . . . . . . . . . 137

10.9.2 Subquery scalari . . . . . . . . . . . . . . . . . . . . 138

10.9.3 Subquery-join . . . . . . . . . . . . . . . . . . . . . . 138

10.9.4 Correlated subquery . . . . . . . . . . . . . . . . . . 139

10.9.5 Costrutto EXISTS . . . . . . . . . . . . . . . . . . . 141

10.9.6 Divisione . . . . . . . . . . . . . . . . . . . . . . . . 142

10.10 Common Table Expression (CTE) . . . . . . . . . . . . . . . 143

10.11 Raggruppamenti . . . . . . . . . . . . . . . . . . . . . . . . 144

10.11.1 Condizione sui gruppi . . . . . . . . . . . . . . . . . 146

10.11.2 HAVING vs WHERE . . . . . . . . . . . . . . . . . . 148

10.12 Modificatori ANY e ALL . . . . . . . . . . . . . . . . . . . . 148

10.13 Stored procedure . . . . . . . . . . . . . . . . . . . . . . . . 149

10.13.1 Creazione . . . . . . . . . . . . . . . . . . . . . . . . 150

10.13.2 Chiamata . . . . . . . . . . . . . . . . . . . . . . . . 152

10.13.3 Variabili locali . . . . . . . . . . . . . . . . . . . . . 152

10.13.4 Variabili user-defined . . . . . . . . . . . . . . . . . . 154

10.13.5 Parametri di una stored procedure . . . . . . . . . . 154

10.13.6 Istruzioni condizionali . . . . . . . . . . . . . . . . . 156

10.13.7 Istruzioni iterative . . . . . . . . . . . . . . . . . . . 157

5

10.13.8 Cursori e handler . . . . . . . . . . . . . . . . . . . . 159

10.14 Data manipulation . . . . . . . . . . . . . . . . . . . . . . . 160

10.14.1 Inserimento . . . . . . . . . . . . . . . . . . . . . . . 160

10.14.2 Aggiornamento . . . . . . . . . . . . . . . . . . . . . 162

10.14.3 Cancellazione . . . . . . . . . . . . . . . . . . . . . . 163

10.14.4 Errore comune . . . . . . . . . . . . . . . . . . . . . 163

10.15 Database attivi . . . . . . . . . . . . . . . . . . . . . . . . . 165

10.15.1 Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . 165

10.15.2 Gestione di una ridondanza . . . . . . . . . . . . . . 167

10.15.3 Event . . . . . . . . . . . . . . . . . . . . . . . . . . 168

10.16 Window function . . . . . . . . . . . . . . . . . . . . . . . . 169

10.16.1 Clausola OVER . . . . . . . . . . . . . . . . . . . . . 169

10.16.2 Aggregate functions utilizzabili con OVER . . . . . . 171

10.16.3 Non-aggregate functions utilizzabili con OVER . . . 172

10.16.4 Window functions non-aggregate . . . . . . . . . . . 173

10.16.5 Funzione ROW_NUMBER . . . . . . . . . . . . . . 173

10.16.6 Funzione RANK . . . . . . . . . . . . . . . . . . . . 174

10.16.7 Clausola WINDOW . . . . . . . . . . . . . . . . . . 178

10.16.8 Funzione LAG . . . . . . . . . . . . . . . . . . . . . 178

10.16.9 Funzione LEAD . . . . . . . . . . . . . . . . . . . . . 180

6

1 Sistema organizzativo

È un sistema costituito da (persone, denaro, materiali,

Definizione: risorse

informazioni) e per lo svolgimento coordinato di attività (processi) per

regole

perseguire gli scopi propri di un’organizzazione (azienda o ente).

1.1 Sistema informativo

È la componente del sistema organizzativo che acquisisce, ela-

Definizione:

bora, conserva, produce le informazioni di interesse (cioè utili al perseguimen-

to degli scopi); inoltre, esegue/gestisce i processi informativi (cioè i processi

che coinvolgono informazioni).

Nelle attività umane, le informazioni sono gestite:

• In forme diverse:

idee informali;

◦ linguaggio naturale (scritto o parlato, formale o colloquiale, in

◦ varie lingue);

disegni, grafici, schemi;

◦ numeri e codici.

◦

• Su supporti diversi:

mente umana;

◦ carta;

◦ dispositivi elettronici.

◦

Questo modo di gestire delle informazioni, se non ben organizzato, può por-

tare a molti problemi: fragilità, errori, difficoltà nella condivisione, impossi-

bilità di scalare.

Ecco perché esiste il sistema informativo, il quale gestisce informazioni utili

al perseguimento degli scopi dell’organizzazione.

̸ =

Sistema informativo Sistema informatico

Mentre il primo è concettuale e organizzativo, il secondo è tecnologico. Que-

sto significa che il sistema informativo è indipendente da da ogni processo

automatizzato. 7

La parte del sistema informativo che gestisce le informazioni con tecnologia

informatica è chiamato sistema informativo automatizzato.

Graficamente, l’organizzazione dei vari sistemi appare così:

Azienda Sistema organizzativo

Sistema informativo

Sistema informatico

1.2 Informazioni e dati Notizia o elemento che consente di avere

Definizione di informazione:

conoscenza più o meno esatta di fatti, situazioni, modi di essere.

ciò che è immediatamente presente alla conoscen-

Definizione di dato:

za, prima di ogni elaborazione; (in informatica) elementi di informazione

costituiti da simboli che debbono essere elaborati.

Mentre l’informazione ha un significato intrinseco e viene interpretata da un

soggetto (persona o organizzazione) per prendere decisioni, il dato è solo una

grezza rappresentazione che non ha valore in sé, se non viene interpretato.

ESEMPIO La temperatura di fusione dell’oro è °C.

1064

Informazione:

01000001 01110101 00000100 00101000 01000011

Dato: | {z } | {z } | {z }

Au C

1064

L’informazione è immediatamente comprensibile, mentre il dato (in

questo caso è il numero binario), senza interpretazione, non ha alcun

senso. 8

Le attività umane producono informazioni, però i sistemi informativi auto-

matizzati non le possono gestire direttamente. Quest’ultimi gestiscono solo i

dati, che sono una codifica formale delle informazioni. Essi acquistano valore

informativo solo attraverso l’elaborazione e l’interpretazione.

Perché usano i dati? Perché essi costituiscono spesso una risorsa strategica,

poiché più stabili nel tempo di altre componenti (processi, tecnologie, ruoli

umani). 9

2 Base di Dati (database)

È un insieme di dati utilizzati per il supporto allo

Definizione: organizzato

svolgimento delle attività di un ente (azienda, ufficio, persona). È il cuore di

un sistema informativo automatizzato.

Perché è definito "organizzato"? Perché i dati:

• non sono casuali;

&bu

Anteprima
Vedrai una selezione di 10 pagine su 182
Appunti di Basi di dati Pag. 1 Appunti di Basi di dati Pag. 2
Anteprima di 10 pagg. su 182.
Scarica il documento per vederlo tutto.
Appunti di Basi di dati Pag. 6
Anteprima di 10 pagg. su 182.
Scarica il documento per vederlo tutto.
Appunti di Basi di dati Pag. 11
Anteprima di 10 pagg. su 182.
Scarica il documento per vederlo tutto.
Appunti di Basi di dati Pag. 16
Anteprima di 10 pagg. su 182.
Scarica il documento per vederlo tutto.
Appunti di Basi di dati Pag. 21
Anteprima di 10 pagg. su 182.
Scarica il documento per vederlo tutto.
Appunti di Basi di dati Pag. 26
Anteprima di 10 pagg. su 182.
Scarica il documento per vederlo tutto.
Appunti di Basi di dati Pag. 31
Anteprima di 10 pagg. su 182.
Scarica il documento per vederlo tutto.
Appunti di Basi di dati Pag. 36
Anteprima di 10 pagg. su 182.
Scarica il documento per vederlo tutto.
Appunti di Basi di dati Pag. 41
1 su 182
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher fbaldi2007 di informazioni apprese con la frequenza delle lezioni di Basi di dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pisa o del prof Tonellotto Nicola.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community