Basi di Dati Esercitazione Modello Relazionale

Basi di Dati
Esercitazione Modello Relazionale
19 ottobre 2015
Luigi Bellomarini
[email protected]
Esercizio 1
Si supponga di voler rappresentare in una base di dati
relazionale le informazioni relative al calendario d’esami di
un dipartimento universitario, che vengono pubblicate con
avvisi con la seguente struttura:
Codice
1
Titolo
Fisica
Prof
Neri
2
Chimica
Rossi
3
Geometria
Bruni
Esercitazione Basi di Dati
Modello Relazionale
Appello
Data
1
01/06/2013
2
05/07/2013
3
04/09/2013
4
30/09/2013
1
06/06/2013
2
05/07/2013
da definire
2
Le relazioni
Si supponga di voler rappresentare in una base di dati
relazionale le informazioni relative al calendario d’esami di
un dipartimento universitario, che vengono pubblicate con
avvisi con la seguente struttura:
Codice
1
Titolo
Fisica
Prof
Neri
2
Chimica
Rossi
3
Geometria
Bruni
Esercitazione Basi di Dati
Modello Relazionale
Appello
Data
1
01/06/2013
2
05/07/2013
3
04/09/2013
4
30/09/2013
1
06/06/2013
2
05/07/2013
da definire
3
Le relazioni
Codice
Titolo
Prof
1
Fisica
Neri
2
Chimica
Rossi
3
Geometria
Bruni
CodiceCorso
Appello
Data
1
1
01/06/2013
1
2
05/07/2013
1
3
04/09/2013
1
4
30/09/2013
2
1
06/06/2013
2
2
05/07/2013
Corsi
Appelli
Vincolo di integrità referenziale tra CodiceCorso nella relazione
Appelli e la chiave della relazione Corsi.
Esercitazione Basi di Dati
Modello Relazionale
4
Esercizio 2
Considerare le relazioni R1(A,B,C), R2(D,E,F) e R3(G,H,L)
aventi rispettivamente cardinalità n1, n2 e n3. Assumere
che sia definito un vincolo di integrità referenziale tra
l’attributo C di R1 e la chiave D di R2.
Indicare la cardinalità di ciascuno dei seguenti join,
specificando l’intervallo nel quale essa può variare.
Esercitazione Basi di Dati
Modello Relazionale
5
Esercizio 2
R1(A, B, C*), R2(D*, E, F), R3(G, H, L)
|R1| = n1
|R2| = n2
|R3| = n3
esattamente n1
Esercitazione Basi di Dati
Modello Relazionale
6
Esercizio 2
R1(A, B, C*), R2(D*, E, F), R3(G, H, L)
|R1| = n1
|R2| = n2
|R3| = n3
compresa tra 0 e n1
Esercitazione Basi di Dati
Modello Relazionale
7
Esercizio 2
R1(A, B, C*), R2(D*, E, F), R3(G, H, L)
|R1| = n1
|R2| = n2
|R3| = n3
esattamente n1
Esercitazione Basi di Dati
Modello Relazionale
8
Esercizio 2
R1(A, B, C*), R2(D*, E, F), R3(G, H, L)
|R1| = n1
|R2| = n2
|R3| = n3
compresa tra 0 e n2
Esercitazione Basi di Dati
Modello Relazionale
9
Esercizio 2
R1(A, B, C*), R2(D*, E, F), R3(G, H, L)
|R1| = n1
|R2| = n2
|R3| = n3
compresa tra 0 e il minimo tra n1 e n2
Esercitazione Basi di Dati
Modello Relazionale
10
Esercizio 2
R1(A, B, C*), R2(D*, E, F), R3(G, H, L)
|R1| = n1
|R2| = n2
|R3| = n3
compresa tra 0 e n1 x n2
Esercitazione Basi di Dati
Modello Relazionale
11
Esercizio 2
R1(A, B, C*), R2(D*, E, F), R3(G, H, L)
|R1| = n1
|R2| = n2
|R3| = n3
compresa tra 0 e n1
Esercitazione Basi di Dati
Modello Relazionale
12
Esercizio 3
Considerare una base di dati relativa a studenti ed esami da
essi superati.
Studenti(Matricola, Cognome, Nome)
Esami(Studente, Materia, Voto, Data)
con vincolo di integrità referenziale tra l’attributo Studente di
Esami e la chiave della relazione Studenti.
Formulare in algebra relazionale le interrogazioni che
seguono.
Esercitazione Basi di Dati
Modello Relazionale
13
Esercizio 3
Studenti(Matricola*, Cognome, Nome)
Esami(Studente*, Materia, Voto, Data)
Trovare matricola, cognome e nome degli studenti che
hanno preso almeno un 30.
Matricola, Cognome, Nome
(Studenti ⋈Matricola=Studente Voto
Esercitazione Basi di Dati
Modello Relazionale
= 30(Esami))
14
Esercizio 3
Matricola, Cognome, Nome
(Studenti ⋈Matricola=Studente Voto
Matricola
Cognome
Nome
123123
Bruni
Enzo
123124
Bianchi
Mario
123125
Rossi
Giulio
= 30(Esami))
Studenti
Studente
Materia
Voto
Data
123123
Fisica
20
01/06/2009
123123
Chimica
30
05/07/2009
123123
Analisi
30
15/07/2009
123125
Geometria
25
04/09/2013
Esercitazione Basi di Dati
Modello Relazionale
Esami
15
Esercizio 3
Studenti(Matricola*, Cognome, Nome)
Esami(Studente*, Materia, Voto, Data)
Trovare matricola, cognome e nome degli studenti che
hanno superato almeno un esame dopo il 1/1/2010.
Matricola, Cognome, Nome
(Studenti ⋈Matricola=Studente Data
Esercitazione Basi di Dati
Modello Relazionale
> 1/1/2010(Esami))
16
Esercizio 3
Matricola, Cognome, Nome
(Studenti ⋈Matricola=Studente Data
Matricola
Cognome
Nome
123123
Bruni
Enzo
123124
Bianchi
Mario
123125
Rossi
Giulio
> 1/1/2010(Esami))
Studenti
Studente
Materia
Voto
Data
123123
Fisica
20
01/06/2009
123123
Chimica
30
05/07/2009
123123
Analisi
30
15/07/2009
123125
Geometria
25
04/09/2013
Esercitazione Basi di Dati
Modello Relazionale
Esami
17
Esercizio 3
Studenti(Matricola*, Cognome, Nome)
Esami(Studente*, Materia, Voto, Data)
Trovare gli studenti (mostrando il numero di matricola) che
hanno superato almeno due esami dopo il 1/1/2010.
Studente(Data>1/1/2010
and Data’>1/1/2010 and Materia<>Materia’(
Studente’,Materia’,Data’,
Voto’ ← Studente, Materia, Data, Voto
Esami ⋈Studente=Studente’ (
Esercitazione Basi di Dati
Modello Relazionale
(Esami))))
18
Esercizio 3
Studente
Materia
Voto
Data
123123
Fisica
20
01/06/2011
123125
Geometria
25
04/09/2013
123125
Algebra
26
05/09/2013
Esami
[…Esami…] ⋈Studente=Studente’[…Esami…]
Studente
Materia
Voto
Data
Studente’
Materia’
Voto’
Data’
123123
Fisica
20
01/06/2011
123123
Fisica
20
01/06/2011
123125
Geometria
25
04/09/2013
123125
Geometria
25
04/09/2013
123125
Algebra
26
05/09/2013
123125
Algebra
26
05/09/2013
123125
Geometria
25
04/09/2013
123125
Algebra
26
05/09/2013
123125
Algebra
26
05/09/2013
123125
Geometria
25
04/09/2013
Esercitazione Basi di Dati
Modello Relazionale
19
Esercizio 3
Studenti(Matricola*, Cognome, Nome)
Esami(Studente*, Materia, Voto, Data)
Trovare matricola, cognome e nome degli studenti che
hanno preso tutti 30.
Matricola,
Cognome, Nome
((Studente(Esami) - Studente (Voto<>30(Esami)))
⋈Studente=Matricola Studenti)
Esercitazione Basi di Dati
Modello Relazionale
20
Esercizio 3
Esami
Studente
Materia
Voto
Data
123123
Fisica
30
01/06/2009
123123
Chimica
30
05/07/2009
123123
Analisi
30
15/07/2009
123125
Geometria
25
04/09/2013
Studente
-
Studente
Materia
Voto
Data
123125
Geometria
25
04/09/2013
Studente
123123
Esercitazione Basi di Dati
⋈Studente=Matricola Studenti
Modello Relazionale
21