Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
Basi di Dati
Martina Contestabile — Mat. 7310441
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
Introduzione 17
- Definizione 17
- Alcuni tipi di basi di dati 17
- Tradizionali 17
- Basi di dati multimediali 17
- Geographic Information Systems (GIS) 17
- Data Warehouse, data lake 17
- Real time 17
- NoSQL 17
- Alcuni settori di impiego 17
- Sistema informativo 17
- Funzioni 17
- Informazioni gestite da SI 17
- Codifica delle informazioni 17
- Dati e informazioni 18
- Dato 18
- Informazione 18
- Caratteristiche dei dati 18
- Sistema informatico 18
- Collocazione dei sistemi informativi 18
- Schema generale del SI 19
- Processi di elaborazione 19
- Base di dati 19
- DBMS - Data Base Management System 19
- Condivisione dei dati 19
- Efficienza 20
- Esempio — I dati sulle lezioni e loro orari 20
- Possibili problemi 20
Martina Contestabile — Mat. 731044
Modello dei dati 21
- Due tipi di modelli 21
- Modelli logici 21
- Modelli concettuali 21
- Costrutti del modello 21
- Schema 21
- Istanza 21
- Indipendenza dei dati 21
- Fisica 21
- Logica 22
- Architettura di un DBMS 22
- Architettura in informatica 22
2
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
- Architettura a due livelli di un DBMS 22
- Esempio — Agendina 22
- Esempio di rappresentazione fisica di una base di dati — L’indice primario 22
- Architettura a due livelli per DBMS — Problemi 22
- Architettura standard (ANSI/SPARC) a tre livelli per DBMS 22
- Classificazioni di DBMS 22
- Modello dei dati 22
- Numero di utenti 23
- Numero di siti su cui la BD è distribuita 23
- Linguaggi ed utenti del DB 23
- Linguaggi utilizzati in un DBMS 23
- Data description language — DDL 23
- Data manipulation language — DML 23
- Linguaggi per interagire con le basi di dati 23
- Testuali interattivi 23
- Con comandi immersi in un linguaggio ospite 23
- Con comandi immersi in un linguaggio ad hoc 23
- Con interfacce amichevoli non testuali 23
Modello Entity-relationship — ER 24
- La progettazione di basi di dati 24
- Schema e modello 24
- Strutture di rappresentazione nel modello Entità-Relazione 24
- Entità 24
- Entità 24
- Rappresentazione grafica di entità 24
- Definizione di entità 24
- Entità e istanze di entità 24
- Commenti 25
Martina Contestabile — Mat. 731044
- Attributi di entità 25
- Il concetto di attributo di entità 25
- Dominio di attributo 25
- Rappresentazione grafica di attributo 25
- Attributi composti 26
- Relazioni — Associazioni 26
- Il concetto di relazione 26
- Sintassi — Rappresentazione grafica di relazione 26
- Notazione 26
- Relazioni a livello di istanze 26
- Commenti 26
- Esempio 27
3
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
- Domanda 27
- Il concetto di attributo di relazione 27
- Sintassi — Rappresentazione grafica di attributo di relazione 27
- Criteri per scegliere le strutture giuste 27
- Scelta tra entità e attributo 27
- Cardinalità delle entità nelle relazioni 28
- Cardinalità nella vita di tutti i giorni 28
- Definizione di cardinalità (minima e massima) 28
- Esempio di vincolo di cardinalità 28
- Tipi di relazioni 29
- Cardinalità maggiormente utilizzate per la cardinalità minima 29
- Cardinalità maggiormente utilizzate per la cardinalità massima 29
- Classificazione delle relazioni binarie 30
- Esercizio 30
- Cardinalità degli attributi 30
- Una prima classificazione 30
- Scalare semplice 30
- Multipla 30
- Composta 31
- Opzionale 31
- Relazioni n-arie 31
- Relazioni n-arie — Grado maggiore di 2 31
- Livello estensionale 31
- Relazioni n-arie con attributi 31
- Relazioni definite sulla stessa Entità 31
- Cardinalità nelle relazioni n-arie 32
- Identificatori 32
- Identificatori di entità 32
Martina Contestabile — Mat. 731044
- Tipi di identificatori 32
- Identificatore interno 33
- Identificatore esterno 33
- Osservazione 33
- Entità deboli 33
- Relazione (o legame) IS-A tra entità 34
- Rappresentazione grafica della relazione IS-A tra entità 34
- Ereditarietà su entità nel modello ER 34
- Principio di ereditarietà 34
- Generalizzazione tra entità 34
- Rappresentazione della generalizzazione 35
- Tipi di generalizzazione tra entità 35
4
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
- Esempio di generalizzazione completa 35
- Esempio di generalizzazione non completa 35
- Generalizzazioni ed ereditarietà 35
- Diverse generalizzazioni della stessa classe 35
- Differenza tra due IS-A e una generalizzazione 36
- Gerarchie 36
- Definizioni 36
- Un’ulteriore specializzazione 36
Progettazione concettuale 38
- Fasi della progettazione di una base di dati 38
- Problemi della fase di raccolta dei requisiti 38
- Raccolta e analisi dei requisiti 38
- Problemi della fase di progettazione concettuale 38
- Necessità di strategie 38
- Analisi dei dati 39
- Analisi dei requisiti 39
- Come si raccolgono i requisiti 39
- Possibili fonti 39
- Acquisizione e analisi dei requisiti 39
- Problemi nella acquisizione per interviste 40
- Requisiti 40
- Documentazione descrittiva 40
- Organizzazione di termini e concetti 40
- Analisi dei requisiti 41
- Caso 41
- Gruppi di frasi omogenee 41
- Design pattern 41
- Reificazione di attributo di entità 42
Martina Contestabile — Mat. 731044
- Part-of 42
- Instance of 42
- Reificazione di relazione binaria 42
- Identificazione esterna 42
- Reificazione di relazione ricorsiva 43
- Generalizzazione (sottoinsieme) parziale 43
- Storicizzazione di concetto 43
- Evoluzione di concetto 43
- Relazione ternaria 44
- Reificazione di relazione ternaria 44
- Strategie di progettazione 44
- Strategie semplici 44
5
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
- Quelle viste nelle lezioni precedenti — Modello E-R 44
- Strategie di progetto vere e proprie 44
- Strategia top-down 44
- Strategia bottom-up 45
- Strategia inside-out 46
- Le precedenti strategie 47
- Definizione dello schema scheletro 47
- Le due strategie miste che seguono si differenziano sul come procedere dopo aver individuato lo schema scheletro 49
- Metodologia top-down 49
- Metodologia mista 50
- Vantaggi e svantaggi delle quattro strategie 50
- Qualità di uno schema concettuale 51
- Definizione di qualità 51
- Correttezza 51
- Correttezza rispetto ai requisiti 51
- Correttezza rispetto al modello 51
- Pertinenza 51
- Il seguente schema è pertinente? 51
- Minimalità 51
- Leggibilità 51
- Leggibilità grafica 52
- Leggibilità concettuale 52
Modello relazionale 53
- Il modello logico dei dati 53
- Cos’è un modello logico 53
- Introduzione al modello relazionale 53
- Relazione matematica 53
Martina Contestabile — Mat. 731044
- Esempio 53
- Quesito 53
- Quesito 54
- Proprietà 54
- Esempio 54
- Struttura non posizionale 54
- Relazioni — Tabelle 54
- Domanda 54
- Riferimenti tra relazioni 55
- Vantaggi 55
- Quesito 55
- Il modello relazionale è basato su valori 55
- Definizioni rilevanti nel modello relazionale 55
6
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
- Schema di relazione 55
- Schema di base di dati 55
- Esempi di schema di relazione 55
- N-upla 55
- Esempi di n-upla e di singolo valore 56
- Istanza di relazione 56
- Istanza di base di dati 56
- Due parole sinonime 56
- Il modello relazionale — Strutture nidificate 56
- La stessa realtà può essere rappresentata con più schemi 56
- Abbiamo scoperto una caratteristica importante 56
- Particolari tipi di relazioni — Strutture nidificate 57
- Esempio 57
- Vincoli di integrità — Introduzione 57
- Relazioni come rappresentazione di una realtà osservata 57
- Vogliamo rappresentare gli studenti e gli esami che hanno superato con voto, lode, sì oppure no, e data 58
- Abbiamo scoperto un altro concetto fondamentale: il vincolo di integrità 58
- Vincoli intrarelazionali 58
- Vincoli interrelazionali 58
- I vincoli intrarelazionali 58
- Tipi di vincoli intrarelazionali 58
- Quesito 59
- Vincoli di ennupla 59
- Sintassi per i vincoli di n-upla 59
- Valore di verità dei vincoli di n-upla 59
- Vincoli di chiave 60
- Vita comune vs basi di dati 60
- Motivazione 60
Martina Contestabile — Mat. 731044
- Identificazione delle n-uple 60
- Il concetto di chiave 60
- Un'altra chiave 60
- Vincoli, schemi e istanze 61
- Esistenza delle chiavi 61
- Importanza delle chiavi 61
- I valori nulli 62
- Informazione incompleta 62
- Esempio di Agenda 62
- Tre tipi di valore nullo 62
- Quesito 63
- L’informazione incompleta 63
7
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
- Come possiamo rappresentarla? 63
- Come si rappresenta l’informazione incompleta nel modello relazionale 63
- Regole che devono valere per le chiavi e i valori nulli 63
- Chiavi e valori nulli 63
- Chiave primaria 64
- Quesito 64
- Vincolo di integrità referenziale 64
- Domande intuitive 64
- Esempio 64
- Definizione informale 64
- Quesito 65
- Vincolo di integrità referenziale 65
- Negli esempi precedenti 65
- Meccanismi di supporto alla gestione di vincoli di integrità referenziale 65
Progettazione logica 66
- I modelli logici 66
- Attenzione 66
- Ingresso e uscita all’attività di progettazione logica 66
- Obiettivo della progettazione logica 66
- Correttezza ed efficienza 66
- Correttezza 66
- Efficienza 66
- Fasi della progettazione logica 67
- Fase 1 — Ristrutturazione dello schema E-R 67
- Attività della fase 1 di ristrutturazione dello schema ER 67
- 1.1 Analisi delle ridondanze 67
- 1.2 Eliminazione delle generalizzazioni 68
- 1.3 Partizionamento/accorpamento di entità e relazioni 71
Martina Contestabile — Mat. 731044
- 1.4 Scelta degli identificatori primari 72
- Fase 2 – Traduzione nel modello relazionale 73
- 2.1 Traduzione entità 73
- Piano di lavoro 73
- 2.2 Regole per le entità 73
- Regola 73
- Dimostrazione informale di correttezza della regola per la traduzione delle entità 73
- 2.3 Regole per le relationship 73
- Osservazione generale per le relationship 73
- Applicazione della regola generale 74
- Applicazione della regola generale — Caso delle relazioni molti a molti 74
- Relationship n-arie 75
8
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
- Fase 2 — Traduzione relazioni 75
- Traduzione delle relationship uno a molti 75
- Relationship uno a molti 75
- Considerazione 76
- Vincoli definiti sullo schema 76
- Traduzione di entità con identificazione esterna 76
- Entità con identificazione esterna 76
- Commento 76
- Relationship uno a uno 76
- Traduzione finale 77
- Idea di base 77
- Metodologia di traduzione 77
- Esempio di traduzione di uno schema completo 78
Algebra relazionale 79
- Linguaggi di interrogazione per basi di dati relazionali 79
- Dai modelli ai linguaggi 79
- Linguaggi per basi di dati relazionali 79
- Operazioni sullo schema 79
- Operazioni sui dati 79
- Linguaggi di interrogazione per basi di dati relazionali 79
- Algebra relazionale 79
- Ottimizzazione di interrogazioni 79
- Algebra relazionale 80
- Algebra relazionale vs SQL 80
- Operatori dell'algebra relazionale 80
- Operatori insiemistici — Regole 80
- Semantica e sintassi di un operatore dell’algebra 80
- L’operatore Unione 81
Martina Contestabile — Mat. 731044
- L’operatore Intersezione 81
- L’operatore Differenza 82
- Limiti degli operatori insiemistici 82
- Ridenominazione 82
- Esempio 83
- Quesito 83
- Quesito 83
- Selezione 83
- Esempio 83
- Simboli e termini equivalenti utilizzati nel seguito 84
- Sintassi 84
- Sintassi della condizione — Anche detta formula proposizionale 84
9
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
- Esempio 84
- Altri esempi di condizioni 84
- Semantica 84
- Riconsideriamo l’esempio 84
- Selezione con valori nulli 85
- Un risultato non desiderabile 85
- Altro risultato non desiderabile 85
- Soluzione in algebra relazionale e valori nulli 85
- Valutazione della selezione 85
- Domanda 85
- Proiezione 86
- Un limite dell’operatore di selezione 86
- Selezione e proiezione 86
- Proiezione 86
- Proiezione, sintassi e semantica 86
- Quesito 86
- Cardinalità delle proiezioni 86
- Selezione e proiezione 87
- Quesito 87
- Limiti dei precedenti operatori 87
- Join 87
- Esempio — Prove scritte in un concorso pubblico 87
- Una prima tipologia di join — Il join naturale 88
- Sintassi e semantica 88
- Un join completo, con n x m n-uple 88
- Join, problemi con le n-uple che non si accoppiano 88
- Esigenza di un nuovo Join — Il Join esterno 88
- Esempio di Join esterno sinistro 89
Martina Contestabile — Mat. 731044
- Esempio di Join esterno destro 89
- Esempio di Join esterno full 89
- Prodotto cartesiano 89
- Il theta-join 89
- Esempio di theta-join 90
- L’equi-join 90
- Esempio di equi-join 90
- Join naturale e equijoin 90
- Interrogazioni in algebra relazionale 90
- Metodo per produrre interrogazioni in algebra relazionale 90
- Applichiamo il metodo rispondendo passo per passo a una domanda 91
- Idiomi di interrogazione 91
10
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
- Standard 91
- Esempio 91
- Relazione di esempio 92
- Minimo e massimo 92
- Principio di complementarietà 92
- Minimo/massimo assoluto 92
- Minimo/massimo relativo 92
- Minimo/massimo assoluto «decentrato» 92
- Cardinalità 93
- Osservazioni 93
- Per ogni 93
Il linguaggio di interrogazione SQL-DML 94
- SQL concetti base 94
- SQL e i due tipi di operazioni sui dati 94
- L’operazione SELECT non nidificata 94
- Qualità di una interrogazione 94
- Correttezza 94
- Efficienza 94
- Comprensibilità (o leggibilità) 94
- Interrogazioni SQL 94
- Istruzione SELECT 94
- Sintassi 94
- Semantica 94
- Clausola WHERE 95
- Un primo insieme di esercizi introduzione 95
- Specifiche della base dati di riferimento 95
- Ora, per allenarci, eseguiamo alcune interrogazioni «a mente» 95
- Osservazione 95
Martina Contestabile — Mat. 731044
- Primo obiettivo 95
- Clausola FROM — Notazione punto e alias 96
- SELECT e le sue abbreviazioni 96
- Ridenominazione 96
- SELECT e ridenominazioni 96
- SELECT e abbreviazioni 96
- Selezione senza proiezione 97
- Proiezione, senza selezione 97
- Espressioni aritmetiche nella target list 97
- Sono ammesse espressioni aritmetiche nella target list 97
- Funzioni aritmetiche 97
- Clausola WHERE 97
11
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
- Condizione complessa 97
- Operatore LIKE 98
- Valori nulli 98
- Clausola FROM 99
- Notazione punto (.) 99
- Gestione duplicati in SQL con la clausola DISTINCT 99
- Semantica in SQL della clausola DISTINCT 99
- Selezione, proiezione e join insieme — Torniamo all’esempio principale 100
- L’operatore JOIN 100
- Prodotto cartesiano 100
- Theta join 100
- Theta vs Natural Join 101
- Join naturale 101
- Esaminiamo con maggiore precisione l’operatore di ridenominazione 101
- Utilità delle ridenominazioni 101
- Ridenominazioni e variabili 101
- SELECT con ridenominazione del risultato 102
- JOIN 102
- Join implicito 102
- Join esplicito 102
- SELECT con join esplicito 102
- Ulteriore estensione: join naturale (meno diffuso) 102
- SQL – Join esplicito 102
- SQL – Join naturale 103
- Join interni ed esterni 103
- Join interno, detto anche INNER JOIN 103
- Join esterno, detto anche OUTER JOIN 103
- Self join 105
Martina Contestabile — Mat. 731044
- Ordinamento del risultato 105
- Ordinamento su più attributi 106
- Sintassi e semantica 106
- Esercizio 106
- Limiti dei precedenti operatori 106
- Operatori aggregati 106
- Semantica degli operatori aggregati 106
- Operatori aggregati 106
- Esempio 106
- COUNT 107
- COUNT e valori nulli 107
- Altri operatori di aggregazione 107
12
Martina Contestabile Ingegneria Informatica — III anno A.A. 2022/23
- Min e max 108
- Attenzione 108
- Raggruppamenti e l’operatore GROUP BY 108
- Limiti degli operatori aggregati 108
- Operatori aggregati e raggruppamenti 109
- Semantica delle interrogazioni con operatori aggregati e raggruppamenti 109
- GROUP BY 109
- Esempio 109
- Regola da rispettare nella clausola GROUP BY 110
- Esempio 110
- Esempio 110
- Condizioni sui gruppi 111
- Esempio 111
- Clausola HAVING 111
- Condizioni sui gruppi 111
- Esempio 112
- Quando applicare la WHERE e quando la HAVING? 112
- Sintassi della select, riassumiamo 113
- Interrogazioni di tipo insiemistico 113
- Unione, intersezione e differenza 113
- Semantica degli operatori 113
- Notazione posizionale 113
- Differenza 114
- Intersezione 114
- Interrogazioni nidificate — Introduzione 114
- Interrogazioni nidificate 114
- Confronto di uno o più attributi con il risultato di una sottointerrogazione 114
- Interrogazioni nidificate 114
Martina Contestabile — Mat. 731044
- Forma generale delle interrogazioni nidificate 115
- Semantica informale delle interrogazioni nidificate 115
- Operatori in e not in 115
- Quantificazione esistenziale, esiste e non esiste 116
- Esempio di uso della EXISTS 117
- Query correlate 117
- Commenti 118
La normalizzazione 119
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.