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?
ARTICOLI
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
 Definire lo schema della base di dati riportata
sotto. Quante istanze sono rappresentate?
ARTICOLI
Codice
Autore
Conferenza
Sito
Anno
Pagine
ARTICOLI(Codice,Autore,Conferenza,Sito,Anno,Pagine)
#Instanze=#Righe della Relazione=7
Esercizio 1
 Utilizzo della notazione posizionale.
ARTICOLI
t
t2
t3
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
t[Autore]  ???
t[Sito] 
???
t3[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:
IMPIEGATI
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
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:
IMPIEGATI
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
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:
IMPIEGATI
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
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:
IMPIEGATI
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
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.
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
VOLI
Codice
Dest.
Orario
Comp.
Tipo
AZ123
Londra
12:00am
AZ
P
COMPAGNIA
AF12
Parigi
13:10pm
AF
P
Codice
Nome
Num
AZ125
Monaco
11:40am
AZ
A
AZ
Alitalia
2
LH124
Dresda
13:30
LH
A
LH
Lufthansa
1
AF
AirFrance
1
PASSEGGERI
Codice
Pren.
Nome
Cognome Posto
AZ125
#121
Marco
DiFelice
34D
AZ125
#124
Luca
Rossi
12A
LH124
#125
Michele
Bianchi
5B
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
VOLI
Codice
Dest.
Orario
Comp.
Tipo
AZ123
Londra
12:00am
AZ
P
COMPAGNIA
AF12
Parigi
13:10pm
AF
P
Codice
Nome
Num
AZ125
Monaco
11:40am
AZ
A
AZ
Alitalia
2
LH124
Dresda
13:30
LH
A
LH
Lufthansa
1
AF
AirFrance
1
PASSEGGERI
Codice
Pren.
Nome
Cognome Posto
AZ125
#121
Marco
DiFelice
34D
AZ125
#124
Luca
Rossi
12A
LH124
#125
Michele
Bianchi
5B
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
IMPIEGATI
Matricola
Nome
Cognome
Età
3232
Marco
Rossi
25
5565
Marco
Verdi
34
7899
Michele
Bianchi
54
PROGETTI
PARTECIPAZIONE
ID
Titolo
Budget
Impiegato
Progetto
Mesi
23
PRIN
34K
3232
23
12
45
ARTIS
34K
3232
45
12
7899
23
6
Esercizio 6
IMPIEGATI
Matricola
Nome
Cognome
Eta’
3232
Marco
Rossi
25
5565
Marco
Verdi
34
7899
Michele
Bianchi
54
PROGETTI
PARTECIPAZIONE
ID
Titolo
Budget
Impiegato
Progetto
Mesi
23
PRIN
34K
3232
23
12
45
ARTIS
34K
3232
50
12
4500
23
6
Esercizio 6
IMPIEGATI
Matricola
Nome
Cognome
Eta’
3232
Marco
Rossi
25
5565
Marco
Verdi
34
7899
Michele
Bianchi
54
PROGETTI
PARTECIPAZIONE
ID
Titolo
Budget
Impiegato
Progetto
Mesi
23
PRIN
34K
3232
23
12
45
ARTIS
34K
3232
45
12
5565
45
6
Esercizio 7
LIBRO
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
AUTORE
EDITORI
Codice
Nome
Cognome
Nascita
Nome
Sede
122
Philip
Dick
1945
Fanucci
Torino
145
Orson
Wells
1920
Einaudi
Roma
156
Orson
Wells
1967
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.
Scarica

PPT