Fondamenti di Informatica
Introduzione ai DBMS ed al Modello E -R
Pro f. M a rco Lo mb a rd i A . A . 2 0 1 9 / 2 0 2 0
Dati e Basi di Dati – 1/4
• I dati sono importanti poiché costituiscono una risorsa
aziendale
• La loro importanza può essere pari all’importanza degli impianti di produzione, delle risorse umane, ecc.
• Spesso i dati costituiscono una fonte di profitto per una certa azienda
• I dati implicano informazione
• L’informazione implica conoscenza
• La conoscenza implica il supporto a decisioni (strategiche e/o aziendali)
Dati e Basi di Dati – 2/4
• È quindi necessario delineare quali sono i possibili modelli e linguaggi formali per la progettazione e manipolazione di semplici collezioni di dati
Dati e Basi di Dati – 3/4
• Una base di dati è una collezione di dati in relazione tra
loro, i quali descrivono fatti che possono essere utilizzati per produrre informazioni
• I database hanno le seguenti caratteristiche:
• Persistenza
• Potenzialmente grandi
• Potenzialmente condivisi
Dati e Basi di Dati – 4/4
Dati
Database 1
Dati
Database 2
• Una base di dati è una collezione di dati in relazione tra
loro, i quali descrivono fatti che possono essere utilizzati per produrre informazioni
DataBase Management System (DBMS) – 1/2
Un DataBase Management System (DBMS) è un software che consente di ottenere la persistenza, la consistenza e la
gestione dei dati
• I dati vengono memorizzati da un DBMS, in modo che sia semplice reperirli, manipolarli e produrre informazioni
• Esistono diversi DBMS in commercio
• Ad esempio: Microsoft SQL, Oracle, MySQL, ecc.
• Verranno trattati aspetti generali, che sono comuni alla maggior parte dei DBMS
Dati
Database 1
Dati
Database 2 DataBase Management System (DBMS)
1
2
Linguaggi testuali specifici del DBMS utilizzato
Interfacce Grafiche (es. Microsoft™ Access®)
Linguaggi per Manipolare Dati
Linguaggio SQL (Structured Query Language)
Linguaggio testuale standard de facto per DBMS relazionali
Un modello dei dati è un insieme di concetti, utilizzati per
organizzare i dati di interesse mediante un DBMS
• Ogni DBMS fornisce linguaggi specifici per la definizione dello schema (la struttura) di un database e la
manipolazione (e accesso) dei suoi dati
1
2
Linguaggi testuali specifici del DBMS utilizzato
Interfacce Grafiche (es. Microsoft™ Access®)
Linguaggio SQL (Structured Query Language)
Linguaggio testuale standard de facto per DBMS relazionali
Verrà introdotto nella prossima lezione
Linguaggi per Manipolare Dati
Un modello dei dati è un insieme di concetti, utilizzati per
organizzare i dati di interesse mediante un DBMS
• Ogni DBMS fornisce linguaggi specifici per la definizione dello schema (la struttura) di un database e la
manipolazione (e accesso) dei suoi dati
• Schema Concettuale
• Rappresenta le specifiche informali della parte di mondo reale che si sta rappresentando
• Nessun riferimento ai dettagli relativi agli aspetti «fisici» di memorizzazione dei dati ed alla loro codifica
• Schema Logico
• Lo schema concettuale viene tradotto in termini di modello di rappresentazione dei dati
• Anche in questa fase non vi è nessun riferimento relativo ai dettagli «fisici» della memorizzazione
• Schema Fisico
• Specifica i parametri fisici relativi alla memorizzazione ed alla codifica dei dati
• Dipendente dal DBMS
Fasi di Progettazione
Raccolta dei Requisiti
Progettazione Concettuale
Progettazione Logica
Progettazione Fisica
• Lo schema concettuale fornisce una rappresentazione
astratta, di alto livello, dei requisiti dei dati, raccolti nella
fase di raccolta dei requisiti
• Descrizione dettagliata dei dati
• Descrizione delle relazioni tra i dati
• Descrizione di eventuali vincoli sui dati
• Per la rappresentazione di uno schema concettuale si utilizza il modello Entità-Relazioni (modello E-R)
Entità
Modello E-R
Una entità rappresenta una classe di oggetti (ad es., automobili, impiegati, studenti) o di fatti (ad es., conti corrente, corsi universitari, ecc.)
• Devono essere oggetti rilevanti
• Ogni entità è caratterizzata da un nome (si
utilizzano nomi singolari) e da attributi
Caratteristiche
Un attributo è una specifica proprietà che caratterizza ciascuna
entità nel contesto di interesse
• Entità
• Rappresentata come rettangolo con all’interno il nome del tipo di entità
•
Attributo
• Sono rappresentati mediante ovali, al cui interno vi è il nome dell’attributo (altra rappresentazione: cerchi)
Modello E-R
Modello E-R
Studente
Nome Cognome Matricola
Modello E-R
Studente
Nome Cognome MatricolaEntità
Modello E-R
Studente
Nome Cognome MatricolaAttributi
Modello E-R (altra rappresentazione)
Studente
CognomeNome• Una occorrenza di una entità sarà caratterizzata dai valori assunti dai suoi attributi
Modello E-R
Le Occorrenze
Nome: Mario Cognome: Rossi Matricola: 00001 Occorrenza 1 Nome: Giovanni Cognome: Gialli Matricola: 00002 Occorrenza 2 Nome: Antonio Cognome: Blu Matricola: 00003 Occorrenza 3• Una occorrenza di una entità sarà caratterizzata dai valori assunti dai suoi attributi • Rappresentazione Tabellare • Tabella: Studente Nome: Mario Cognome: Rossi Matricola: 00001 Occorrenza 1 Nome: Giovanni Cognome: Gialli Matricola: 00002 Occorrenza 2 Nome: Antonio Cognome: Blu Matricola: 00003 Occorrenza 3
Nome Cognome Matricola
Mario Rossi 00001 Giovanni Gialli 00002 Antonio Blu 00003
Modello E-R
• Una occorrenza di una entità sarà caratterizzata dai valori assunti dai suoi attributi • Rappresentazione Tabellare • Tabella: Studente Nome: Mario Cognome: Rossi Matricola: 00001 Occorrenza 1 Nome: Giovanni Cognome: Gialli Matricola: 00002 Occorrenza 2 Nome: Antonio Cognome: Blu Matricola: 00003 Occorrenza 3
Nome Cognome Matricola
Mario Rossi 00001 Giovanni Gialli 00002 Antonio Blu 00003
Righe → Occorrenze (Record)
Modello E-R
• Una occorrenza di una entità sarà caratterizzata dai valori assunti dai suoi attributi • Rappresentazione Tabellare • Tabella: Studente Nome: Mario Cognome: Rossi Matricola: 00001 Occorrenza 1 Nome: Giovanni Cognome: Gialli Matricola: 00002 Occorrenza 2 Nome: Antonio Cognome: Blu Matricola: 00003 Occorrenza 3
Nome Cognome Matricola
Mario Rossi 00001 Giovanni Gialli 00002 Antonio Blu 00003
Righe → Occorrenze (Record)
Colonne → Attributi (Campi del record)
Modello E-R
• Attributo composto
• Attributo suddivisibile in parti più piccole
Modello E-R
• Attributo composto
• Attributo suddivisibile in parti più piccole
•
Esempio
Modello E-R
Tipologie di Attributi
Studente
Nome Cognome Matricola Indirizzo Via CAP Città Attributo Composto• Attributo multivalore
• Attributo che può assumere più valori per ciascuna occorrenza di una entità
Modello E-R
• Attributo multivalore
• Attributo che può assumere più valori per ciascuna occorrenza di una entità
•
Esempio
Modello E-R
Tipologie di Attributi
Studente
Nome Cognome Matricola Telefoni Attributo Multivalore• Attributo multivalore
• Attributo che può assumere più valori per ciascuna occorrenza di una entità
•
Esempio
Modello E-R
Tipologie di Attributi
Studente
Nome Cognome Matricola Telefoni Attributo Multivalore Nome: Mario Cognome: Rossi Matricola: 00001 Telefoni: 123, 456, 789 Occorrenza 1 Nome: Giovanni Cognome: Gialli Matricola: 00002 Telefoni: 987 Occorrenza 2• Attributo multivalore (altra rappresentazione)
• Attributo che può assumere più valori per ciascuna occorrenza di una entità
•
Esempio
Modello E-R
Tipologie di Attributi
Studente
Nome Cognome Matricola Telefoni Attributo Multivalore (1,N)cardinalità
di un attributo
• Attributo multivalore (altra rappresentazione)
• Attributo che può assumere più valori per ciascuna occorrenza di una entità
•
Esempio
Modello E-R
Tipologie di Attributi
Studente
Nome Cognome Matricola Telefoni Attributo Multivalore (min,max) (1,N)• Attributo derivato
• Attributo che può essere determinato a partire da altri attributi dell’entità
•
Esempio
Modello E-R
Tipologie di Attributi
Studente
Nome Cognome Matricola DataNascita Età Attributo Derivato• Attributo derivato
• Attributo che può essere determinato a partire da altri attributi dell’entità
•
Esempio
Modello E-R
Tipologie di Attributi
Studente
Nome Cognome Matricola DataNascita Età Attributo DerivatoL’attributo Età può essere derivato dall’attributo DataNascita
• Il dominio di un attributo è l’insieme dei valori che possono essere assegnati ad un attributo di una entità
• Esempi
• Attributo Età
• Dominio: valori da 18 a 100
• Attributo Via
• Dominio: insieme delle stringhe composte da al massimo 30
caratteri
Modello E-R
• In un’occorrenza è possibile che il valore di un attributo sia
ignoto o nullo, poiché tale attributo non è applicabile ad
una specifica occorrenza
• Si utilizza il valore NULL per indicare una di queste condizioni
• Esempi
• DataNascita = NULL
• Data di nascita non nota
• VotoLaurea = NULL
• Laurea non ancora conseguita
Modello E-R
• Attributo Chiave
• Una entità ha generalmente un attributo (o un insieme di attributi), i cui valori sono distinti per ciascuna occorrenza di un’entità
• Tale attributo è l’attributo chiave
Modello E-R
• Attributo Chiave
• Una entità ha generalmente un attributo (o un insieme di attributi), i cui valori sono distinti per ciascuna occorrenza di un’entità
• Tale attributo è l’attributo chiave
•
Esempio
Modello E-R
Chiave di una Entità
Studente
Nome Cognome Matricola
• Attributo Chiave
• Una entità ha generalmente un attributo (o un insieme di attributi), i cui valori sono distinti per ciascuna occorrenza di un’entità
• Tale attributo è l’attributo chiave
•
Esempio
Modello E-R
Chiave di una Entità
Studente
Nome Cognome Matricola Attributo Chiave Il nome dell’attributo si sottolinea• Attributo Chiave
• Una entità ha generalmente un attributo (o un insieme di attributi), i cui valori sono distinti per ciascuna occorrenza di un’entità
• Tale attributo è l’attributo chiave
•
Esempio (altra rappresentazione)
Modello E-R
Chiave di una Entità
Attributo Chiave
Studente
CognomeNome• Attributo Chiave
• Una entità ha generalmente un attributo (o un insieme di attributi), i cui valori sono distinti per ciascuna occorrenza di un’entità
• Tale attributo è l’attributo chiave
•
Altro Esempio (altra rappresentazione)
Modello E-R
Chiave di una Entità
Chiave
Persona
Nome Cognome Data di nascita Indirizzo Luogo di nascita•
La proprietà di unicità è un vincolo sullo schema
dell’entità, non su un particolare insieme di occorrenze
dell’entità
•
La chiave va determinata quindi sulla base delle
proprietà caratterizzanti la parte di mondo reale che la
base di dati rappresenta
Modello E-R
•
Una entità può avere più di un insieme di attributi che
verificano il vincolo di chiave
• Esempio
• Entità: Studente
• Chiave candidata 1: Matricola
• Chiave candidata 2: CodificeFiscale
• Entrambe queste chiavi candidate soddisfano il vincolo di chiave e la proprietà di unicità
• Alcune entità non hanno un attributo chiave
• Una entità in cui non vi sono attributi chiave è detta entità
debole
Modello E-R
• La chiave non deve essere dipendente da un particolare «stato» o da una particolare istanza di tabella
Modello E-R
• La chiave non deve essere dipendente da un particolare «stato» o da una particolare istanza di tabella
• Esempio
Modello E-R
Chiave di una Entità
Errato Corretto
Attributi Chiave: Nome, Cognome Attributi Chiave: Matricola
Nome Cognome Matricola
Mario Rossi 00001
Giovanni Gialli 00002
Antonio Blu 00003
Nome Cognome Matricola
Mario Rossi 00001
Giovanni Gialli 00002
• La chiave non deve essere dipendente da un particolare «stato» o da una particolare istanza di tabella
• Esempio
Modello E-R
Chiave di una Entità
Errato Corretto
Attributi Chiave: Nome, Cognome Attributi Chiave: Matricola
Nome Cognome Matricola
Mario Rossi 00001
Giovanni Gialli 00002
Antonio Blu 00003
Nome Cognome Matricola
Mario Rossi 00001
Giovanni Gialli 00002
Antonio Blu 00003
Anche se in questa istanza sono presenti
esclusivamente valori univoci, in futuro potrebbero
• La proprietà di un attributo di essere chiave è dipendente dal contesto
Modello E-R
• La proprietà di un attributo di essere chiave è dipendente dal contesto
• Esempio
• In questa caso, per l’entità Studente, l’attributo Matricola può essere considerato chiave?
Modello E-R
Chiave di una Entità
Matricola Cognome Nome Università
00001 Rossi Mario Università degli Studi di Salerno 00002 Verdi Giuseppe Università degli Studi di Salerno 00001 Bianchi Maria Università di Napoli «Federico II»
• La proprietà di un attributo di essere chiave è dipendente dal contesto
• Esempio
• In questa caso, l’attributo Matricola può essere considerato chiave?
• NO → Ci possono essere delle duplicazioni!
Modello E-R
Chiave di una Entità
Matricola Cognome Nome Università
00001 Rossi Mario Università degli Studi di Salerno 00002 Verdi Giuseppe Università degli Studi di Salerno
00001 Bianchi Maria Università di Napoli «Federico II»
• La proprietà di un attributo di essere chiave è dipendente dal contesto
• Esempio
• In questa caso, l’attributo Matricola può essere considerato chiave?
• NO → Ci possono essere delle duplicazioni!
Modello E-R
Chiave di una Entità
Matricola Cognome Nome Università
00001 Rossi Mario Università degli Studi di Salerno 00002 Verdi Giuseppe Università degli Studi di Salerno
00001 Bianchi Maria Università di Napoli «Federico II»
• Una associazione (denominata anche relazione)
rappresenta un collegamento semantico tra entità di interesse per l’applicazione
• Ogni associazione è caratterizzata da un nome
(tipicamente verbo all’infinito)
Modello E-R
• Una associazione (denominata anche relazione)
rappresenta un collegamento semantico tra entità di interesse per l’applicazione
• Ogni associazione è caratterizzata da un nome
(tipicamente verbo all’infinito)
• Esempio
Modello E-R
Le Associazioni (o Relazioni)
• Una associazione (denominata anche relazione)
rappresenta un collegamento semantico tra entità di interesse per l’applicazione
• Ogni associazione è caratterizzata da un nome
(tipicamente verbo all’infinito)
• Esempio
Modello E-R
Le Associazioni (o Relazioni)
Impiegato
LavorareDipartimento
• Esempio
Modello E-R
Le Associazioni (o Relazioni)
Impiegato1 Impiegato2 Impiegato3 Impiegato4 Impiegato5 Impiegato Dipartimento1 Dipartimento2 r1 r2 r3 r4 r5 Lavorare Dipartimento• Esempio
Modello E-R
Le Associazioni (o Relazioni)
Impiegato1 Impiegato2 Impiegato3 Impiegato4 Impiegato5 Impiegato Dipartimento1 Dipartimento2 r1 r2 r3 r4 r5 Lavorare DipartimentoImpiegato1 Lavora per Dipartimento1 (r1)
Impiegato2 Lavora per Dipartimento 1 (r2)
Impiegato3 Lavora per Dipartimento 2 (r3)
Impiegato4 Lavora per Dipartimento 2 (r4)
• Il grado di una associazione è il numero di entità che sono
coinvolte nell’associazione stessa (che vi partecipano)
Modello E-R
• Il grado di una associazione è il numero di entità che sono
coinvolte nell’associazione stessa (che vi partecipano)
• Esempio 1
• Grado dell’associazione Lavorare
• Coinvolte due entità
• Impiegato e Dipartimento
• Grado = 2
Modello E-R
Grado di una Associazione – 2/3
• Esempio 2
• Grado dell’associazione Lavorare
• Coinvolte tre entità
• Impiegato, CollaboratoreEsterno e Dipartimento
• Grado = 3
Modello E-R
Grado di una Associazione – 3/3
Impiegato
LavorareDipartimento
• Si definiscono vincoli strutturali di una relazione (o associazione)
• Rapporto di Cardinalità
• Partecipazione
Modello E-R
• Si definiscono vincoli strutturali di una relazione (o associazione)
• Rapporto di Cardinalità
• Partecipazione
Modello E-R
• 1:1 (Uno-a-uno)
• Una relazione è uno-a-uno se ad ogni occorrenza della prima entità corrisponde al più una occorrenza della seconda entità e viceversa
• Esempio (Relazione: Dirigere)
Modello E-R
Rapporto di Cardinalità
Impiegato1 Impiegato2 Impiegato3 Impiegato4 Impiegato5 Impiegato Dipartimento1 Dipartimento2 r1 r2 Dirigere Dipartimento• 1:1 (Uno-a-uno)
• Una relazione è uno-a-uno se ad ogni occorrenza della prima entità corrisponde al più una occorrenza della seconda entità e viceversa
• Esempio (Relazione: Dirigere)
• Rappresentazione mediante modello E-R
Modello E-R
Rapporto di Cardinalità
• 1:1 (Uno-a-uno)
• Una relazione è uno-a-uno se ad ogni occorrenza della prima entità corrisponde al più una occorrenza della seconda entità e viceversa
• Esempio (Relazione: Dirigere)
• Rappresentazione mediante modello E-R
Modello E-R
Rapporto di Cardinalità
Impiegato
1 Dirigere 1Dipartimento
Indicano la cardinalità della relazione
• 1:N (Uno-a-molti)
• Una relazione è uno-a-molti se ad ogni occorrenza della prima entità possono corrispondere più occorrenze della seconda
• Una occorrenza della seconda entità può essere associata al più ad una occorrenza della prima
• Esempio (Relazione: Allocare)
Impiegato1 Impiegato2 Impiegato Progetto1 Progetto2 Progetto3 Progetto4 Progetto r1 r2 r3 r4 Allocare
Modello E-R
Rapporto di Cardinalità
• 1:N (Uno-a-molti)
• Una relazione è uno-a-molti se ad ogni occorrenza della prima entità possono corrispondere più occorrenze della seconda
• Una occorrenza della seconda entità può essere associata al più ad una occorrenza della prima
• Esempio (Relazione: Allocare)
• Rappresentazione mediante modello E-R
Modello E-R
Rapporto di Cardinalità
• M:N (Molti-a-molti)
• Una relazione viene definita molti-a-molti se esiste
un’occorrenza della prima entità in relazione con più di un’occorrenza della seconda, e viceversa
• Esempio (Relazione: Insegnare)
Docente1 Docente2 Docente Studente1 Studente2 Studente3 Studente r1 r2 r3 r4 Insegnare
Modello E-R
Rapporto di Cardinalità
• M:N (Molti-a-molti)
• Una relazione viene definita molti-a-molti se esiste
un’occorrenza della prima entità in relazione con più di un’occorrenza della seconda, e viceversa
• Esempio (Relazione: Insegnare)
• Rappresentazione mediante modello E-R
Modello E-R
Rapporto di Cardinalità
• Si definiscono vincoli strutturali di una relazione (o associazione)
• Rapporto di Cardinalità
• Partecipazione
Modello E-R
•
Specifica se l’esistenza di una entità dipende dal
fatto che essa è correlata ad un’altra entità
attraverso una relazione
•
Due vincoli di partecipazione
• Totale
• Parziale
Modello E-R
• Il vincolo di partecipazione totale viene detto anche
dipendenza di esistenza
• Si rappresenta nel diagramma E-R con una doppia linea
Modello E-R
• Il vincolo di partecipazione totale viene detto anche
dipendenza di esistenza
• Si rappresenta nel diagramma E-R con una doppia linea
• Esempio
Modello E-R
Vincolo di Partecipazione Totale
• Il vincolo di partecipazione totale viene detto anche
dipendenza di esistenza
• Si rappresenta nel diagramma E-R con una doppia linea
• Esempio
• La partecipazione di Impiegato a Lavora è una partecipazione totale
• Ogni occorrenza di Impiegato è associata ad almeno una occorrenza di Dipartimento
• Attraverso la relazione Lavorare
Modello E-R
• Si rappresenta nel diagramma E-R con una singola linea
• Esempio
• La partecipazione di Impiegato a Dirige è una partecipazione
parziale
• Alcune entità (non necessariamente tutte) di Impiegato sono associate ad una occorrenza di Dipartimento
• Attraverso la relazione Dirigere
Modello E-R
Vincolo di Partecipazione Parziale
• Esistono altre notazioni per la rappresentazione dei vincoli
• Per ogni entità partecipante, è possibile rappresentare il numero minimo ed il numero massimo di occorrenze coinvolte nella relazione
• La notazione utilizzata è la seguente (min, max)
• Se min = 0 → partecipazione parziale
• Se min > 0 → partecipazione totale
Modello E-R
Vincolo di Partecipazione
• Esistono altre notazioni per la rappresentazione dei vincoli
• Per ogni entità partecipante, è possibile rappresentare il numero minimo ed il numero massimo di occorrenze coinvolte nella relazione
• La notazione utilizzata è la seguente (min, max)
• Se min = 0 → partecipazione parziale
• Se min > 0 → partecipazione totale
Modello E-R
Vincolo di Partecipazione
• Esistono altre notazioni per la rappresentazione dei vincoli
• Per ogni entità partecipante, è possibile rappresentare il numero minimo ed il
numero massimo di occorrenze coinvolte nella relazione
• La notazione utilizzata è la seguente (min, max)
• N.B. Nella maggior parte dei casi, è sufficiente utilizzare solo tre valori per indicare
le cardinalità di una relazione (associazione): zero, uno e il simbolo N (che indica genericamente un intero maggiore di uno. In particolare:
• per la cardinalità minima, zero o uno; nel primo caso si dice che la
partecipazione è opzionale (parziale), nel secondo caso si dice che la
partecipazione è obbligatoria (totale);
• per la cardinalità massima, uno o molti (N); nel primo caso la partecipazione
dell’entità relativa può essere vista come una funzione (parziale se la cardinalità minima vale zero) che associa a una occorrenza dell’entità una sola occorrenza (o nessuna) dell’altra entità che partecipa alla relazione; nel secondo caso c’è invece una associazione con un numero arbitrario di occorrenze dell’altra entità.
Modello E-R
Cardinalità delle relazioni
0 oppure 1
Modello E-R
Cardinalità delle relazioni (esempi)
Ordine
(0,1) Vendita (1,1)Fattura
Osservando le cardinalità massime è possibile classificare le relazioni binarie in base al tipo di corrispondenza che viene stabilita tra le occorrenze delle entità coinvolte.
Modello E-R
Cardinalità delle relazioni (esempi)
Ordine
(0,1) Vendita (1,1)Fattura
Osservando le cardinalità massime è possibile classificare le relazioni binarie in base al tipo di corrispondenza che viene stabilita tra le occorrenze delle entità coinvolte.
▪ Vendita → relazione uno a uno (relazione avente cardinalità massima pari ad uno per entrambe le entità coinvolte)
Modello E-R
Cardinalità delle relazioni (esempi)
Persona
(1,1) Residenza (0,N)Città
Osservando le cardinalità massime è possibile classificare le relazioni binarie in base al tipo di corrispondenza che viene stabilita tra le occorrenze delle entità coinvolte.
▪ Residenza → relazione uno a molti (relazione avente un’entità con
Modello E-R
Cardinalità delle relazioni (esempi)
Turista
(1,N) Prenotazione (0,N)Viaggio
Osservando le cardinalità massime è possibile classificare le relazioni binarie in base al tipo di corrispondenza che viene stabilita tra le occorrenze delle entità coinvolte.
▪ Prenotazione → relazione molti a molti (relazione avente cardinalità massima pari a N)