Basi di Dati Esercitazione Modello Relazionale 19 ottobre
Basi di Dati Esercitazione Modello Relazionale 19 ottobre 2015 Luigi Bellomarini luigi. bellomarini@uniroma 3. it
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 Codice. Corso 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 Codice. Corso nella relazione Appelli e la chiave della relazione Corsi. Esercitazione Basi di Dati Modello Relazionale 4
Esercizio 2 Considerare le relazioni R 1(A, B, C), R 2(D, E, F) e R 3(G, H, L) aventi rispettivamente cardinalità n 1, n 2 e n 3. Assumere che sia definito un vincolo di integrità referenziale tra l’attributo C di R 1 e la chiave D di R 2. 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 R 1(A, B, C*), R 2(D*, E, F), R 3(G, H, L) |R 1| = n 1 |R 2| = n 2 |R 3| = n 3 esattamente n 1 Esercitazione Basi di Dati Modello Relazionale 6
Esercizio 2 R 1(A, B, C*), R 2(D*, E, F), R 3(G, H, L) |R 1| = n 1 |R 2| = n 2 |R 3| = n 3 compresa tra 0 e n 1 Esercitazione Basi di Dati Modello Relazionale 7
Esercizio 2 R 1(A, B, C*), R 2(D*, E, F), R 3(G, H, L) |R 1| = n 1 |R 2| = n 2 |R 3| = n 3 esattamente n 1 Esercitazione Basi di Dati Modello Relazionale 8
Esercizio 2 R 1(A, B, C*), R 2(D*, E, F), R 3(G, H, L) |R 1| = n 1 |R 2| = n 2 |R 3| = n 3 compresa tra 0 e n 2 Esercitazione Basi di Dati Modello Relazionale 9
Esercizio 2 R 1(A, B, C*), R 2(D*, E, F), R 3(G, H, L) |R 1| = n 1 |R 2| = n 2 |R 3| = n 3 compresa tra 0 e il minimo tra n 1 e n 2 Esercitazione Basi di Dati Modello Relazionale 10
Esercizio 2 R 1(A, B, C*), R 2(D*, E, F), R 3(G, H, L) |R 1| = n 1 |R 2| = n 2 |R 3| = n 3 compresa tra 0 e n 1 x n 2 Esercitazione Basi di Dati Modello Relazionale 11
Esercizio 2 R 1(A, B, C*), R 2(D*, E, F), R 3(G, H, L) |R 1| = n 1 |R 2| = n 2 |R 3| = n 3 compresa tra 0 e n 1 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’( Esami ⋈Studente=Studente’ ( Studente’, Materia’, Data’, Esercitazione Basi di Dati Voto’ ← Studente, Materia, Data, Voto 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 123125 Geometria 25 04/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
- Slides: 21