Basi di Dati e Sistemi
Informativi
Esercitazione:
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 cardinalita’ del prodotto cartesiano AxB?
{(d,a),(d,b)} e’ una relazione valida su AxB
{(a,d),(e,2),(c,2)} e’ una relazione valida su AxB
{(b,1),(b,2),(b,1)} e’ una relazione valida su AxB
Esercizio 0
Dati i seguenti insiemi:
A= {a,b,c,d,e} B={d,1,2}
Qual e’ la cardinalita’ di AxB? 15
{(d,a),(d,b)} e’ una relazione valida su AxB
{(a,d),(e,2),(c,2)} e’ una relazione valida su AxB
{(b,1),(b,2),(b,1)} e’ 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)
Esercizio 1
Definire lo schema della base di dati riportata
sotto. Quante istanze sono rappresentate?
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.a
Rappresentare per mezzo di una o piu’ relazioni 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 2.a
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 3 (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 3 (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 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 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
Considerando lo schema relazionale dell’esercizio
2.a, indicare:
Chiavi primarie di ciascuna relazione.
Eventuali vincoli di integrita’ referenziale tra le
tabelle.
Esercizio 4
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 5 (V/F)
ESERCIZIO 2.9 del LIBRO di TESTO
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 a
nessuna chiave.
Una chiave puo’ essere sottoinsieme di un’altra chiave.
Puo’ esistere una chiave che coinvolge tutti gli attributi.
Puo’ 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.
Puo’ succedere che esistano piu’ superchiavi ed una di
esse coinvolga tutti gli attributi.
Esercizio 5 (V/F)
ESERCIZIO 2.9 del LIBRO di TESTO
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 a
nessuna chiave.
Una chiave puo’ essere sottoinsieme di un’altra chiave.
Puo’ esistere una chiave che coinvolge tutti gli attributi.
Puo’ 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.
Puo’ succedere che esistano piu’ superchiavi ed una di
esse coinvolga tutti gli attributi.
Esercizio 6
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.0 Identificare i vincoli di integrita’ referenziale.
Esercizio 6
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 6
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’ NON
essere specificato (senza violare i vincoli di integrita’
referenziale).
Esercizio 6
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 6
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 6
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 7
LIBRO
Titolo
Nome
Autore
Cognome
Autore
Anno
Editore
Edizione
Intelligenza
Meccanica
Alan
Turing
1994
Bollati
1
Ubik
Philip
Dick
1969
Fanucci
1
Minority
Report
Philip
Dick
1970
Fanucci
1
Ubik
Philip
Dick
1979
Feltrinelli
2
I.A.
NULL
NULL
1994
Einaudi
4
Andromeda
Michael
Crichton
1969
Feltrinelli
2
J. Park
Michael
Crichton
1973
Einaudi
4
NULL
Orson
Wells
1968
NULL
5
Esercizio 7
{Titolo, Autore} e’ una superchiave di LIBRO.
{Titolo, Autore} e’ una chiave di LIBRO.
{Titolo, Edizione} e’ una superchiave di LIBRO.
{Titolo, Edizione} e’ una chiave di LIBRO.
{Titolo, Anno, Edizione} e’ una superchiave.
{Titolo, Anno, Edizione} e’ una chiave di LIBRO.
{Titolo, Edizione} e’ una chiave primaria.
{Titolo, Anno, Edizione} e’ una chiave primaria.
{Anno, Edizione} e’ una chiave primaria a
livello di schema.
Esercizio 7
{Titolo, Autore} e’ una superchiave di LIBRO.
{Titolo, Autore} e’ una chiave di LIBRO.
{Titolo, Edizione} e’ una superchiave di LIBRO.
{Titolo, Edizione} e’ una chiave di LIBRO.
{Titolo, Anno, Edizione} e’ una superchiave.
{Titolo, Anno, Edizione} e’ una chiave di LIBRO.
{Titolo, Edizione} e’ una chiave primaria.
{Titolo, Anno, Edizione} e’ una chiave primaria.
{Anno, Edizione} e’ una chiave primaria a
livello di schema.
Esercizio 7.b
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
Anno
Nome
Sede
122
Philip
Dick
1945
Fanucci
Torino
145
Orson
Wells
1920
Einaudi
Roma
156
Orson
Wells
1967
Feltrinelli
Bologna
Esercizio 7.b
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 integrita’ con la
relazione EDITORI.
E’ possibile fare il viceversa?
Esercizio 7.b
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 integrita’ con la
relazione EDITORI.
E’ possibile fare il viceversa?
Esercizio 8
Dato lo schema relazionale seguente:
GIOCATORE (Codice, Nome, Cognome, Data Nascita)
SQUADRA(Nome, Sede, Anno, Presidente)
FORMAZIONE(CodGiocatore,NomeSquadra)
PARTITA(Squadra1, Squadra2, Data, Punti1, Punti2)
ARBITRO(Codice, Nome, Cognome, Data Nascita)
DESIGNAZIONE(Squadra1, Squadra2,
Data,NomeArbitro)
Indicare i possibili vincoli di integrita’ referenziale.
Esercizio 8
Un giocatore puo’ far parte di piu’ squadre.
Ogni partita ha sempre e solo 1 arbitro designato.
Ogni partita ha almeno un arbitro designato.
Ogni partita ha 0 o piu’ arbitri designati.
Una squadra puo’ avere piu’ di 1 presidente.
Data.PARTITA puo’ essere non specificato.
Esercizio 8
Un giocatore puo’ far parte di piu’ squadre.
Ogni partita ha sempre e solo 1 arbitro designato.
Ogni partita ha almeno un arbitro designato.
Ogni partita ha 0 o piu’ arbitri designati.
Una squadra puo’ avere piu’ di 1 presidente.
Data.PARTITA puo’ essere non specificato.
Esercizio 8
Verificare se l’istanza rispetta lo schema relazionale.
FORMAZIONE
GIOCATORE
Codice
Nome
Cognome
Nascita
NomeG
NomeS
1234
Antonio
Rossi
NULL
1234
NULL
4567
Antonio
NULL
10/05/1970
4567
Virtus
6777
Antonio
Rossi
NULL
4567
Pol.Rossi
SQUADRA
Nome
Sede
Anno
Pres.
Virtus
Bologn
a
1967
NULL
Pol. Rossi
Bologn
a
1987
Giorgi
Pol. Verdi
NULL
1999
NULL
PARTITA
S1
S2
Data
P1 P2
Pol.
Gialli
Pol.
Rossi
10/03
/2012
60
89
Esercizio 9
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.
Esercizio 9
MEDICO (Codice, Nome, Cognome, CodReparto)
PAZIENTE (CodReparto, NrLetto, Nome, Cognome, Data)
CURA (CodPaziente, LettoPaziente, CodMedico,
FarmacoId,DataInizio, DataFine)
REPARTO(Codice, Nome, NumeroLetti)
Vincoli di integrita’:
CURA.{CodPaziente, LettoPaziente} PAZIENTE
CURA.{CodMedico} MEDICO
MEDICO.Reparto REPARTO
PAZIENTE.CodReparto REPARTO
Esercizio 9
Q.1 Che accade se rimuovo la frase seguente
dalla specifiche:
“Ogni medico puo’ somministrare al max 1 cura per lo
stesso paziente”
Q2 Estensione dello schema precedente: ogni
cura puo’ essere composta da un numero
arbitrario di farmaci. Di ogni farmaco si vogliono
rappresentare le seguenti informazioni: codice,
nome, casa farmaceutica.