Basi di Dati e Sistemi Informativi
Esempi & Esercizi
Il Modello Relazionale
Home page del corso:
http://www.cs.unibo.it/~difelice/dbsi/
Esercizio 0
Dati i seguenti insiemi:
A= {a,b,c,d,e} B={d,1,2}
Ø Qual e’ la cardinalità del prodotto cartesiano AxB?
Ø {(d,a),(d,b)} è una relazione valida su AxB
Ø {(a,d),(e,2),(c,2)} è una relazione valida su AxB
Ø {(b,1),(b,2),(b,1)} è una relazione valida su AxB
Esercizio 0
Dati i seguenti insiemi:
A= {a,b,c,d,e} B={d,1,2}
Ø Qual è la cardinalità di AxB? 15
Ø {(d,a),(d,b)} è una relazione valida su AxB
Ø {(a,d),(e,2),(c,2)} è una relazione valida su AxB
Ø {(b,1),(b,2),(b,1)} è una relazione valida su AxB
Esercizio 1
Ø Definire lo schema della base di dati riportata sotto. Quante istanze sono rappresentate?
Codice Autore Conferenza Sito Anno Pagine
101212 Marco ICC Bologna 2012 7
101214 Matteo INFOCOM Las Vegas 2011 8 11212 Luca INFOCOM Las Vegas 2011 8 11212 Luigi INFOCOM Las Vegas 2011 8 101214 Matteo INFOCOM Las Vegas 2011 8
101244 Luca MOBICOM NY 2008 10
101233 Carlo DYSPAN Londra 2012 5
ARTICOLI
Esercizio 1
Ø Definire lo schema della base di dati riportata sotto. Quante istanze sono rappresentate?
Codice Autore Conferenza Sito Anno Pagine
ARTICOLI
ARTICOLI(Codice,Autore,Conferenza,Sito,Anno,Pagine)
#Instanze=#Righe della Relazione=7
Esercizio 1
Ø Utilizzo della notazione posizionale.
Codice Autore Conferenza Sito Anno Pagine
101212 Marco ICC Bologna 2012 7
101214 Matteo INFOCOM Las Vegas 2011 8 11212 Luca INFOCOM Las Vegas 2011 18
ARTICOLI
t t2 t3
t[Autore] à ???
t[Sito] à ???
t
3[Pagine]à ???
Esercizio 1.a
Ø Indicare se la tabella seguente costituisce una relazione valida nel modello relazionale.
Codice Autore Conferenza Sito Anno Pagine
101212 Marco ICC Bologna 2012 7
101214 Matteo INFOCOM Las Vegas 2011 8 11212 Luca INFOCOM Las Vegas 2011 8 11212 Luigi INFOCOM Las Vegas 2011 8 101214 Matteo INFOCOM Las Vegas 2011 8
101244 Luca MOBICOM NY 2008 10
101233 Carlo DYSPAN Londra 2012 5
Esercizio 1.b
Ø Indicare se la tabella seguente costituisce una relazione valida nel modello relazionale.
Codice Autore Conferenza Sito Anno Pagine
101212 Marco ICC Bologna 2012 7
101214 Matteo INFOCOM Las Vegas 2011 8 11212 Luca INFOCOM Las Vegas 2011 8 11212 Luigi INFOCOM Las Vegas 2011 8 NULL Matteo INFOCOM Las Vegas 2011 8
101244 Luca MOBICOM NY 2008 10
101233 Carlo DYSPAN Londra 2012 5
Esercizio 1.c
Ø Indicare se la tabella seguente costituisce una relazione valida nel modello relazionale.
Codice Autore Conferenza Sito Anno Pagine
101212 Marco ICC Bologna 2012 7
NULL Matteo INFOCOM Las Vegas 2011 8 11212 Luca INFOCOM Las Vegas 2011 8 11212 Luigi INFOCOM Las Vegas 2011 8 NULL Matteo INFOCOM Las Vegas 2011 8
101244 Luca MOBICOM NY 2008 10
101233 Carlo DYSPAN Londra 2012 5
Esercizio 2 (V/F)
Data la relazione seguente:
Codice Nome Cognome Progetto Ufficio
123 Michele Rossi IoE 1A
124 Luca Bianchi IoE 1A
125 Antonio Rossi ARTEMIS 1B 126 Giorgio Rossi ARTEMIS 1B
127 Daniele Verdi NADIR 1C
IMPIEGATI
Q. La tripla {Cognome, Progetto, Ufficio} e’ una superchiave.
Q. L’attributo Nome e’ una chiave a livello di istanza.
Q. L’attributo Nome e’ una chiave a livello di schema.
Esercizio 2 (V/F)
Data la relazione seguente:
Codice Nome Cognome Progetto Ufficio
123 Michele Rossi IoE 1A
124 Luca Bianchi IoE 1A
125 Antonio Rossi ARTEMIS 1B 126 Giorgio Rossi ARTEMIS 1B
127 Daniele Verdi NADIR 1C
IMPIEGATI
Q. La tripla {Cognome, Progetto, Ufficio} è una superchiave.
Q. L’attributo Nome è una chiave a livello di istanza.
Q. L’attributo Nome è una chiave a livello di schema.
Esercizio 2 (V/F)
Data la relazione seguente:
Codice Nome Cognome Progetto Ufficio
123 Michele Rossi IoE 1A
124 Luca Bianchi IoE 1A
NULL Antonio Rossi ARTEMIS 1B
126 NULL Rossi ARTEMIS 1B
127 NULL Verdi NADIR 1C
IMPIEGATI
Q. L’attributo Codice è una chiave primaria.
Q. L’attributo Nome è una chiave a livello di istanza.
Q. Gli attributi {Cognome,Nome} sono una chiave primaria.
Esercizio 3 (V/F)
Data la relazione seguente:
Codice Nome Cognome Progetto Ufficio
123 Michele Rossi IoE 1A
124 Luca Bianchi IoE 1A
NULL Antonio Rossi ARTEMIS 1B
126 NULL Rossi ARTEMIS 1B
127 NULL Verdi NADIR 1C
IMPIEGATI
Q. L’attributo Codice e’ una chiave primaria.
Q. L’attributo Nome e’ una chiave a livello di istanza.
Q. Gli attributi {Cognome,Nome} sono una chiave primaria.
Esercizio 4 (V/F)
Ø Ogni relazione ha almeno una chiave.
Ø Ogni relazione ha esattamente una chiave.
Ø Ogni attributo appartiene al massimo ad una chiave.
Ø Possono esistere attributi che non appartengono ad alcuna chiave.
Ø Una chiave può essere sottoinsieme di un’altra chiave.
Ø Può esistere una chiave che coinvolge tutti gli attributi.
Ø Può succedere che esistano piu’ chiavi ed una di esse coinvolga tutti gli attributi.
Ø Ogni relazione ha almeno una superchiave.
Ø Ogni relazione ha esattamente una superchiave.
Ø Può succedere che esistano più superchiavi ed una di esse coinvolga tutti gli attributi.
Esercizio 4 (V/F)
Ø Ogni relazione ha almeno una chiave.
Ø Ogni relazione ha esattamente una chiave.
Ø Ogni attributo appartiene al massimo ad una chiave.
Ø Possono esistere attributi che non appartengono ad alcuna chiave.
Ø Una chiave puo’ essere sottoinsieme di un’altra chiave.
Ø Può esistere una chiave che coinvolge tutti gli attributi.
Ø Può succedere che esistano piu’ chiavi ed una di esse coinvolga tutti gli attributi.
Ø Ogni relazione ha almeno una superchiave.
Ø Ogni relazione ha esattamente una superchiave.
Ø Può succedere che esistano più superchiavi ed una di esse coinvolga tutti gli attributi.
Esercizio 5a
Tradurre nel modello relazionale il seguente documento di specifiche.
Si vuole progettare una base di dati per la gestione dei circoli tennis presenti a Bologna. Ogni circolo dispone di nome (univoco), indirizzo, recapito
telefonico, ed email. Si vogliono gestire le
informazioni relative ai soci di ciascun circolo: ogni socio dispone di codice fiscale, nome, cognome,
data e luogo di nascita, uno o più recapiti telefonici.
Esercizio 5b
Tradurre nel modello relazionale il seguente documento di specifiche.
Ogni utente dispone di email, password, nome, cognome, data di nascita. Ogni utente dispone di una lista di “utenti” amici/follower. Ogni utente dispone di una propria bacheca di messaggi
ricevuti. Ogni messaggio dispone di: codice, data di
invio, testo, e mittente (il mittente è un utente della
piattaforma).
Esercizio 5c
Rappresentare nel modello relazionale le informazioni relative al traffico aereo giornaliero di un aeroporto, in particolare:
- I voli in ingresso (nr. volo, destinazione, ora decollo, codice compagnia)
- I voli in uscita (nr. volo, partenza, ora atterraggio, codice compagnia)
- Le informazioni sui passeggeri di ciascun volo (nome, cognome, nr. prenotazione, posto).
- Le compagnie aeree (codice, nome, nr di voli forniti)
Esercizio 5b
Codice Dest. Orario Comp. Tipo
AZ123 Londra 12:00am AZ P AF12 Parigi 13:10pm AF P AZ125 Monaco 11:40am AZ A LH124 Dresda 13:30 LH A
Codice Pren. Nome Cognome Posto
AZ125 #121 Marco DiFelice 34D
AZ125 #124 Luca Rossi 12A
LH124 #125 Michele Bianchi 5B
Codice Nome Num
AZ Alitalia 2 LH Lufthansa 1 AF AirFrance 1 VOLI
PASSEGGERI
COMPAGNIA
Esercizio 5b
Considerando lo schema relazionale mostrato nella slide precedente, indicare:
Ø Chiavi primarie di ciascuna relazione.
Ø Eventuali vincoli di integrita’ referenziale tra le
tabelle.
Esercizio 5b
Codice Dest. Orario Comp. Tipo
AZ123 Londra 12:00am AZ P AF12 Parigi 13:10pm AF P AZ125 Monaco 11:40am AZ A LH124 Dresda 13:30 LH A
Codice Pren. Nome Cognome Posto
AZ125 #121 Marco DiFelice 34D
AZ125 #124 Luca Rossi 12A
LH124 #125 Michele Bianchi 5B
Codice Nome Num
AZ Alitalia 2 LH Lufthansa 1 AF AirFrance 1 VOLI
PASSEGGERI
COMPAGNIA
Esercizio 6
Definire i vincoli di integrità referenziale nel seguente schema:
IMPIEGATI (Matricola, Nome, Cognome, Età) PROGETTI(Id, Titolo, Budget)
PARTECIPAZIONI(Impiegato, Progetto,MesiUomo)
Decidere se l’istanza mostrata (nella slide seguente)
rispetta i vincoli definiti. à
Esercizio 6
Matricola Nome Cognome Età
3232 Marco Rossi 25
5565 Marco Verdi 34
7899 Michele Bianchi 54
IMPIEGATI
ID Titolo Budget
23 PRIN 34K
45 ARTIS 34K
PROGETTI
Impiegato Progetto Mesi
3232 23 12
3232 45 12
7899 23 6
PARTECIPAZIONE
Esercizio 6
Matricola Nome Cognome Eta’
3232 Marco Rossi 25
5565 Marco Verdi 34
7899 Michele Bianchi 54
IMPIEGATI
ID Titolo Budget
23 PRIN 34K
45 ARTIS 34K
PROGETTI
Impiegato Progetto Mesi
3232 23 12
3232 50 12
4500 23 6
PARTECIPAZIONE
Esercizio 6
Matricola Nome Cognome Eta’
3232 Marco Rossi 25
5565 Marco Verdi 34
7899 Michele Bianchi 54
IMPIEGATI
ID Titolo Budget
23 PRIN 34K
45 ARTIS 34K
PROGETTI
Impiegato Progetto Mesi
3232 23 12
3232 45 12
5565 45 6
PARTECIPAZIONE
Esercizio 7
Titolo Nome Cognome Anno Editore Edizione
Ubik Philip Dick 1969 Fanucci 1
I.A. Micheal Crichton 1994 Einaudi 4 Andromeda Michael Crichton 1969 Feltrinelli 2 J. Park Michael Crichton 1973 Einaudi 4 La guerra… Orson Wells 1968 Einaudi 5
LIBRO
AUTORE
Codice Nome Cognome Nascita
122 Philip Dick 1945
145 Orson Wells 1920
156 Orson Wells 1967
EDITORI
Nome Sede
Fanucci Torino Einaudi Roma Feltrinelli Bologna
Esercizio 7
Ø Vincolo di integrita’ referenziale tra LIBRO.{Nome, Cognome} e la relazione AUTORE.
Ø Vincolo di integrita’ referenziale tra LIBRO.Editore e la relazione EDITORI.
Ø E’ possibile rimuovere la prima riga della relazione LIBRO senza violare i vincoli di integrità con la
relazione EDITORI.
Ø E’ possibile fare il viceversa?
Esercizio 7
Ø Vincolo di integrita’ referenziale tra LIBRO.{Nome, Cognome} e la relazione AUTORE.
Ø Vincolo di integrita’ referenziale tra LIBRO.Editore e la relazione EDITORI.
Ø E’ possibile rimuovere la prima riga della relazione LIBRO senza violare i vincoli di integrità con la
relazione EDITORI.
Ø E’ possibile fare il viceversa?
Esercizio 8
Si vogliono gestire i dati degli impiegati di un ufficio: ogni impiegato dispone di un codice identificativo, un nome, cognome, data di nascita e indirizzo di residenza. Si
vogliono inoltre gestire le informazioni relative ai progetti sviluppati dagli impiegati; ogni progetto dispone di un nome (identificativo), una data di inizio, una di fine, ed un budget.
Si vuole tenere traccia della partecipazione degli impiegati ai progetti. Ogni impiegato può partecipare ad un numero arbitrario di progetti. Ogni progetto può coinvolgere un numero arbitrario di impiegati.
Progettare una base di dati nel modello relazionale sulla base delle specifiche fornite.
Esercizio 9
Dato lo schema relazionale seguente:
AGENZIA(Nome, Indirizzo, Telefono)
CASA(Indirizzo,NrInterno,CodProprietario, Prezzo)
INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)
PROPRIETARIO(Codice, Nome, Cognome, Telefono) Q.0 Identificare i vincoli di integrita’ referenziale.
Esercizio 9
Dato lo schema relazionale seguente:
AGENZIA(Nome, Indirizzo, Telefono)
CASA(Indirizzo,NrInterno,CAP,CodProprietario, Prezzo) INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)
PROPRIETARIO(Codice, Nome, Cognome, Telefono) Q.1 Le due notazioni sono equivalenti?
Ø INSERZIONI.IndirizzoCasa àCASA.Indirizzo INSERZIONI.InternoCasa à CASA.NrInterno
Ø INSERZIONI.{IndirizzoCasa,InternoCasa} à CASA.
{Indirizzo,NrInterno}
Esercizio 9
Dato lo schema relazionale seguente:
AGENZIA(Nome, Indirizzo, Telefono)
CASA(Indirizzo,NrInterno,CAP,CodProprietario, Prezzo) INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)
PROPRIETARIO(Codice, Nome, Cognome, Telefono) Q.2 Nella tabella CASA, il CodProprietario puo’ essere NULL.
Esercizio 9
Dato lo schema relazionale seguente:
AGENZIA(Nome, Indirizzo, Telefono)
CASA(Indirizzo,NrInterno,CAP,CodProprietario, Prezzo) INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)
PROPRIETARIO(Codice, Nome, Cognome, Telefono)
Q.3 E’ possibile che la relazione CASA contenga 0 instanze, e la relazione PROPRIETARIO contenga 5 istanze (senza violare i vincoli di integrita’ referenziale).
Esercizio 9
Dato lo schema relazionale seguente:
AGENZIA(Nome, Indirizzo, Telefono)
CASA(Indirizzo,NrInterno,CAP,CodProprietario, Prezzo) INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)
PROPRIETARIO(Codice, Nome, Cognome, Telefono)
Q.4 E’ possibile che la relazione INSERZIONI contenga 10 instanze, e la relazione CASA contenga 5 istanze (senza
violare i vincoli di integrita’ referenziale).
Esercizio 9
Dato lo schema relazionale seguente:
AGENZIA(Nome, Indirizzo, Telefono)
CASA(Indirizzo,NrInterno,CAP,CodProprietario, Prezzo) INSERZIONI(IndirizzoCasa, InternoCasa, NomeAgenzia, DataInserzione)
PROPRIETARIO(Codice, Nome, Cognome, Telefono)
Q.5 E’ possibile che la relazione INSERZIONI contenga 10 instanze, e la relazione CASA contenga 0 istanze (senza
violare i vincoli di integrita’ referenziale).
Esercizio 10
Ø Rappresentare nel modello relazionale le informazioni relative ad i pazienti e medici di una clinica ospedaliera.
Ogni medico ha un codice identificativo, nome, cognome, e codice del reparto in cui opera. Ogni paziente e’
identificato da un codice reparto e dal #di letto nel
reparto, e dispone di nome, cognome, data di nascita. A ciascun paziente possone essere associate piu’ cure. La cura e’ composta dal nome di un farmaco, ha una data di inizio e fine, ed e’ somministrata da un medico. Ogni
medico puo’ somministrare al max 1 cura per lo stesso paziente. Ogni reparto ha un codice, un nome, ed un # di letti disponibili.