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