Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

Documenti analoghi
Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

Basi di dati I Prova di autovalutazione 30 ottobre 2014

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Interrogazioni nidificate

Basi di dati: appello 14/07/06

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Esercizio 5.1. Soluzione:

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006

Interrogazioni nidificate

Basi di dati: appello 04/07/06

Basi di dati: appello 07/02/06

Basi di dati (nuovo ordinamento) 16 giugno 2008 Compito A

ed SQL 10 Novembre 2009

Basi di Dati Corso di Laura in Informatica Umanistica

Structured Query Language

Basi di dati 19 dicembre 2016 Prova parziale Compito A Tempo a disposizione: un ora e quindici minuti. Libri chiusi.

ESAME di INFORMATICA e ARCHIVIAZIONE

Basi di Dati. Esercitazione Algebra Relazionale. 16 maggio 2008

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

Basi di Dati. Esercitazione SQL. Paolo Papotti. 19 maggio 2005

B a s i d i D a t i ( M o d u l o T e o r i a ) P r o v a s c r i t t a

Basi di Dati: Elementi

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Basi di dati: appello 28/02/06

σ data 15/12/2013 data 20/12/2014

Fondamenti di Informatica 2 Simulazione d esame dell 11 Dicembre 2009

Basi di Dati. Esercitazione 1: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL

ESERCIZI SQL. Esercizio 1

Basi di dati: appello 08/03/06

formulare in SQL una interrogazione per ciascuno dei seguenti punti:

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

SQL Laboratorio di Basi di Dati a.a. 2002/2003

Fondamenti di Informatica 2

Gestione e Analisi dei Dati. Lezione 4 Relazioni multi tabella Relazioni uno-a-uno, uno-a-molti, molti-a-molti

Corso di Basi di Dati

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Verifica di Informatica. Cognome e Nome: Classe 5ª Ci, Data

Esame di Basi di Dati, SOLUZIONE APPELLO 09/06/2009

Manuale SQL. Manuale SQL - 1 -

Interrogazioni semplici

Basi di Dati: Corso di laboratorio

Basi di dati Appello del Soluzione del compito B

Persona(CodiceFiscale, Cognome, Nome, DataDiNascita, LuogoDiNascita, Indirizzo)

Concettuale. Giuseppe Amato

Business Intelligence

Basi di dati: appello 21/09/12

Basi di Dati: Corso di laboratorio

SQL - Structured Query Language

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

SQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate

Laboratorio di Basi di Dati Esercizio 8.4/9.1

Laboratorio di Basi di Dati

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

SQL: definizione schema

<Nome Tabella>.<attributo>

Esame di Basi di Dati

Esempio di database relazionale con l utilizzo del prodotto MySQL

SCHEMA ER. Tutti i dati del carrello acquisti sono memorizzati nel database e quindi può essere costruito con più query.

Interrogazioni in SQL

Caratteristiche dei linguaggi per Database

PROVA SCRITTA DI TECNOLOGIA DATABASE 02/12/2004 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad un negozio di libri online:

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m

Esercitazione 3 SQL 2

Basi di Dati Corso di Laura in Informatica Umanistica

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

Linguaggi Formali. Π nome (Π nome,c.f. (correttore c.f=c.f._correttore σ n_capitolo=5 bozza

Laboratorio di Basi di Dati

Esercitazione: Interrogazioni SQL

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una piattaforma di gestione di gare podistiche:

LA PROGETTAZIONE LOGICA

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive

Lezione 7 SQL (II) Basi di dati bis Docente Mauro Minenna Pag.1

BASE DI DATI. Esercitazione: Campionato italiano 2015/2016 Raggruppamenti Nidificazione. Informatica Umanistica Università di Pisa

Linguaggio SQL seconda parte

SELECT FROM ORDER BY SELECT FROM ORDER BY DESC DESC SELECT FROM ORDER BY DESC DESC SELECT FROM WHERE SELECT FROM WHERE AND SELECT FROM WHERE AND

ESERCITAZIONE 4 Giovedì 13 novembre 2014 (3 ore) SQL

Prova del 14/09/09. Considerare la seguente descrizione di un campeggio:

1. Schema concettuale della base di dati PROGETTO CONCETTUALE SCHEMA ER

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m

SQL QUERY: Le interrogazioni del database

SQL terza parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2010/11

Basi di Dati Corso di Laurea in Informatica Umanistica

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

Eprogram ITIS V anno Unità 4 - Il linguaggio SQL

Requisiti della base di dati. Schema concettuale

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

SQL (STRUCTURED QUERY LANGUAGE)

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

Elena Baralis 2007 Politecnico di Torino 1

Basi di Dati. S Q L Lezione 4

D B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione logica. Dati di ingresso e uscita

SCHEMA E/R DI UNA UNIVERSITA'

Esempi SQL con Access. Orazio Battaglia

Transcript:

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi. Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la base di dati relazionale contenente le seguenti relazioni: R 1 (A, B, C), con vincolo di integrità referenziale fra C e la chiave D di R 2 e con cardinalità N 1 = 200 R 2 (D, E, F ), con vincolo di integrità referenziale fra E, F e la chiave di R 3 e con cardinalità N 2 = 400 R 3 (G, H, I), con cardinalità N 3 = 100 Indicare le cardinalità minime e massime (in simboli e numeri) dei risultati delle seguenti interrogazioni: π BC (R 1 ) Min Max Min Max (simboli) (simboli) (valore) (valore) R 1 C=DR 2 R 3 I=AR 1 R 2 E=G F =HR 3 π AB (R 1 ) (R 1 C=DR 2 ) E=GR 3 (R 2 E=G F =HR 3 ) I=BR 1 Domanda 2 (10%) Definire (con una opportuna notazione) su una relazione Retribuzioni(Matricola,Lordo,Imposte,StipNetto,Verifica) un vincolo che imponga che, se il valore di Verifica è OK, allora StipNetto è uguale alla differenza fra Lordo e Imposte (si noti che non si vuole invece imporre nessuna condizione se il valore di Verifica è diverso da OK ).

Basi di dati I 8 settembre 2015 Compito A Domanda 3 (10%) Indicare (scrivendo V o F nelle caselle) quali delle seguenti affermazioni sono vere e quali false relativamente alle viste come definite in SQL con le istruzioni CREATE VIEW: ogni vista usata in una interrogazione viene calcolata completamente prima di eseguire l interrogazione le viste introducono ridondanze nei dati memorizzati le viste possono essere utili per semplificare la scrittura delle interrogazioni le viste possono essere utili per rendere più efficienti le interrogazioni Domanda 4 (10%) Considerare la base di dati relazionale definita per mezzo delle seguenti istruzioni: create table Citta ( ID numeric not null primary key, NomeCitta character(20) not null, Popolazione numeric create table Acquedotti ( Codice numeric not null primary key, NomeAcq character(20) not null create table Forniture ( Citta numeric not null references Citta(ID), Acquedotto numeric not null references Acquedotti(Codice), Portata integer check (Portata >= 0), primary key (Citta,Acquedotto) Formulare le seguenti interrogazioni in algebra relazionale: 1. trovare codici e nomi degli acquedotti che riforniscono la città di Roma 2. trovare ID delle città rifornite da almeno due acquedotti

Basi di dati I 8 settembre 2015 Compito A Domanda 5 (20%) Con riferimento alla base di dati usata nella domanda precedente formulare le seguenti interrogazioni in SQL: 1. trovare ID e nomi delle città rifornite dall acquedotto Felice 2. trovare i codici degli acquedotti che riforniscono almeno due città 3. per ogni acquedotto, trovare la portata totale (intesa come la somma delle portate delle forniture dell acquedotto) 4. mostrare codice e nome dell acquedotto con la portata totale massima

Basi di dati I 8 settembre 2015 Compito A Domanda 6 (20%) Mostrare lo schema concettuale di una base di dati per la gestione di articoli di una rivista scientifica, secondo le seguenti specifiche. Gli articoli hanno titolo, sottotitolo, uno o più autori e un sommario (una stringa molto grande, ma comunque gestibile come attributo semplice) Gli autori hanno nome, cognome, email e affiliazione (l istituzione per la quale lavorano) Per ogni istituzione (degli autori) sono di interesse il nome, l indirizzo, e la nazione La rivista viene pubblicata un certo numero di volte in un anno. Le pubblicazioni di un anno vengono raccolte in un volume (a cui viene dato un titolo complessivo). Ogni pubblicazione ha un numero, unico nel rispettivo volume, una data di pubblicazione e una serie di articoli, per ognuno dei quali viene registrata la pagina di inizio e quella di fine.

Basi di dati I 8 settembre 2015 Compito A Domanda 7 (15%) Estendere lo schema concettuale ottenuto in risposta alla domanda precedente, per rappresentare le seguenti specifiche; mostrare separatamente le due estensioni 1. si vogliono gestire più riviste, ognuna con un codice identificante, un nome e uno o più curatori, che possono essere anche autori di articoli (e per i quali interessano le stesse informazioni degli autori) 2. gli autori possono cambiare affiliazione e indirizzo di posta elettronica nel tempo e quindi possono avere affiliazione diversa e indirizzo diverso per articoli diversi;

Basi di dati 8 settembre 2015 Esame Compito B Tempo a disposizione: due ore. Libri chiusi. Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la base di dati relazionale contenente le seguenti relazioni: R 1 (A, B, C), con vincolo di integrità referenziale fra C e la chiave D di R 2 e con cardinalità N 1 = 200 R 2 (D, E, F ), con vincolo di integrità referenziale fra E, F e la chiave di R 3 e con cardinalità N 2 = 400 R 3 (G, H, I), con cardinalità N 3 = 100 Indicare le cardinalità minime e massime (in simboli e numeri) dei risultati delle seguenti interrogazioni: π AC (R 1 ) Min Max Min Max (simboli) (simboli) (valore) (valore) R 2 F =AR 1 (R 2 E=G F =HR 3 ) I=BR 1 R 1 C=DR 2 π BC (R 1 ) R 2 E=GR 3 (R 1 C=DR 2 ) E=G F =HR 3 Domanda 2 (10%) Definire (con una opportuna notazione) su una relazione Salari(Matricola,StipLordo,Trattenute,Netto,OK) un vincolo che imponga che, se il valore di OK è OK, allora Netto è uguale alla differenza fra StipLordo e Trattenute (si noti che non si vuole invece imporre nessuna condizione se il valore di OK è diverso da OK ).

Basi di dati I 8 settembre 2015 Compito B Domanda 3 (10%) Indicare (scrivendo V o F nelle caselle) quali delle seguenti affermazioni sono vere e quali false relativamente alle viste come definite in SQL con le istruzioni CREATE VIEW: le viste possono essere utili per semplificare la scrittura delle interrogazioni le viste introducono ridondanze nei dati memorizzati le viste possono essere utili per rendere più efficienti le interrogazioni ogni vista usata in una interrogazione viene calcolata completamente prima di eseguire l interrogazione Domanda 4 (10%) Considerare la base di dati relazionale definita per mezzo delle seguenti istruzioni: create table Citta ( ID numeric not null primary key, NomeCitta character(20) not null, Popolazione numeric create table Acquedotti ( Codice numeric not null primary key, NomeAcq character(20) not null create table Forniture ( Citta numeric not null references Citta(ID), Acquedotto numeric not null references Acquedotti(Codice), Portata integer check (Portata >= 0), primary key (Citta,Acquedotto) Formulare le seguenti interrogazioni in algebra relazionale: 1. trovare ID e nomi delle città rifornite dall acquedotto Felice 2. trovare i codici degli acquedotti che riforniscono almeno due città

Basi di dati I 8 settembre 2015 Compito B Domanda 5 (20%) Con riferimento alla base di dati usata nella domanda precedente formulare le seguenti interrogazioni in SQL: 1. trovare codici e nomi degli acquedotti che riforniscono la città di Roma 2. trovare ID delle città rifornite da almeno due acquedotti 3. per ogni città, trovare la disponibilià totale di acqua (intesa come la somma delle portate delle forniture della città) 4. mostrare ID e nome della città con la massima disponibilità totale di acqua

Basi di dati I 8 settembre 2015 Compito B Domanda 6 (20%) Mostrare lo schema concettuale di una base di dati per la gestione di articoli di una rivista scientifica, secondo le seguenti specifiche. Gli articoli hanno titolo, sottotitolo, uno o più autori e un sommario (una stringa molto grande, ma comunque gestibile come attributo semplice) Gli autori hanno nome, cognome, email e affiliazione (l istituzione per la quale lavorano) Per ogni istituzione (degli autori) sono di interesse il nome, l indirizzo, e la nazione La rivista viene pubblicata un certo numero di volte in un anno. Le pubblicazioni di un anno vengono raccolte in un volume (a cui viene dato un titolo complessivo). Ogni pubblicazione ha un numero, unico nel rispettivo volume, una data di pubblicazione e una serie di articoli, per ognuno dei quali viene registrata la pagina di inizio e quella di fine.

Basi di dati I 8 settembre 2015 Compito B Domanda 7 (15%) Estendere lo schema concettuale ottenuto in risposta alla domanda precedente, per rappresentare le seguenti specifiche; mostrare separatamente le due estensioni 1. si vogliono gestire più riviste, ognuna con un codice identificante, un nome e uno o più curatori, che possono essere anche autori di articoli (e per i quali interessano le stesse informazioni degli autori) 2. gli autori possono cambiare affiliazione e indirizzo di posta elettronica nel tempo e quindi possono avere affiliazione diversa e indirizzo diverso per articoli diversi;

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi. Possibili soluzioni Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la base di dati relazionale contenente le seguenti relazioni: R 1 (A, B, C), con vincolo di integrità referenziale fra C e la chiave D di R 2 e con cardinalità N 1 = 200 R 2 (D, E, F ), con vincolo di integrità referenziale fra E, F e la chiave di R 3 e con cardinalità N 2 = 400 R 3 (G, H, I), con cardinalità N 3 = 100 Indicare le cardinalità minime e massime (in simboli e numeri) dei risultati delle seguenti interrogazioni: Min Max Min Max (simboli) (simboli) (valore) (valore) π BC (R 1 ) 1 N 1 1 200 R 1 C=DR 2 N 1 N 1 200 200 R 3 I=AR 1 0 N 3 0 100 R 2 E=G F =HR 3 N 2 N 2 400 400 π AB (R 1 ) N 1 N 1 200 200 (R 1 C=DR 2 ) E=GR 3 N 1 N 1 N 3 200 20.000 (R 2 E=G F =HR 3 ) I=BR 1 0 N 2 N 1 0 80.000 Domanda 2 (10%) Definire (con una opportuna notazione) su una relazione Retribuzioni(Matricola,Lordo,Imposte,StipNetto,Verifica) un vincolo che imponga che, se il valore di Verifica è OK, allora StipNetto è uguale alla differenza fra Lordo e Imposte (si noti che non si vuole invece imporre nessuna condizione se il valore di Verifica è diverso da OK ). CHECK ( (NOT (Verifica = OK ) ) OR (StipNetto = Lordo - Imposte) )

Basi di dati I 8 settembre 2015 Compito A Domanda 3 (10%) Indicare (scrivendo V o F nelle caselle) quali delle seguenti affermazioni sono vere e quali false relativamente alle viste come definite in SQL con le istruzioni CREATE VIEW: F ogni vista usata in una interrogazione viene calcolata completamente prima di eseguire l interrogazione F le viste introducono ridondanze nei dati memorizzati V le viste possono essere utili per semplificare la scrittura delle interrogazioni F le viste possono essere utili per rendere più efficienti le interrogazioni Domanda 4 (10%) Considerare la base di dati relazionale definita per mezzo delle seguenti istruzioni: create table Citta ( ID numeric not null primary key, NomeCitta character(20) not null, Popolazione numeric create table Acquedotti ( Codice numeric not null primary key, NomeAcq character(20) not null create table Forniture ( Citta numeric not null references Citta(ID), Acquedotto numeric not null references Acquedotti(Codice), Portata integer check (Portata >= 0), primary key (Citta,Acquedotto) Formulare le seguenti interrogazioni in algebra relazionale: 1. trovare codici e nomi degli acquedotti che riforniscono la città di Roma π Codice,NomeAcq ((σ NomeCitta= Roma (Città) ID=CittaForniture) Acquedotto=CodiceAcquedotti) 2. trovare ID delle città rifornite da almeno due acquedotti π Citta (σ Acquedotto Acquedotto (Forniture Citta=Citta ρ X X (Forniture)))

Basi di dati I 8 settembre 2015 Compito A Domanda 5 (20%) Con riferimento alla base di dati usata nella domanda precedente formulare le seguenti interrogazioni in SQL: 1. trovare ID e nomi delle città rifornite dall acquedotto Felice select distinct ID, NomeCitta from Citta join Forniture on ID = Citta join Acquedotti on Acquedotto = Codice where NomeAcq = Claudio 2. trovare i codici degli acquedotti che riforniscono almeno due città select distinct F1.Acquedotto AS Codice from Forniture F1 join Forniture F2 on F1.Acquedotto = F2.Acquedotto where F1.Citta <> F2.Citta oppure select Acquedotto AS Codice from Forniture group by Acquedotto having count(*) >= 2 3. per ogni acquedotto, trovare la portata totale (intesa come la somma delle portate delle forniture dell acquedotto) select Acquedotto, sum (Portata) as PortataTotale from Forniture group by acquedotto 4. mostrare codice e nome dell acquedotto con la portata totale massima Definiamo una vista PortateTotali o DisponibilitaTotali (a seconda dei compiti) con la select della risposta precedente e poi select Codice, NomeAcq from Acquedotti join PortateTotali on Codice = Acquedotto where PortataTotale >= ALL (select PortataTotale from PortateTotali)

Basi di dati I 8 settembre 2015 Compito A Domanda 6 (20%) Mostrare lo schema concettuale di una base di dati per la gestione di articoli di una rivista scientifica, secondo le seguenti specifiche. Gli articoli hanno titolo, sottotitolo, uno o più autori e un sommario (una stringa molto grande, ma comunque gestibile come attributo semplice) Gli autori hanno nome, cognome, email e affiliazione (l istituzione per la quale lavorano) Per ogni istituzione (degli autori) sono di interesse il nome, l indirizzo, e la nazione La rivista viene pubblicata un certo numero di volte in un anno. Le pubblicazioni di un anno vengono raccolte in un volume (a cui viene dato un titolo complessivo). Ogni pubblicazione ha un numero, unico nel rispettivo volume, una data di pubblicazione e una serie di articoli, per ognuno dei quali viene registrata la pagina di inizio e quella di fine.

Basi di dati I 8 settembre 2015 Compito A Domanda 7 (15%) Estendere lo schema concettuale ottenuto in risposta alla domanda precedente, per rappresentare le seguenti specifiche; mostrare separatamente le due estensioni 1. si vogliono gestire più riviste, ognuna con un codice identificante, un nome e uno o più curatori, che possono essere anche autori di articoli (e per i quali interessano le stesse informazioni degli autori) 2. gli autori possono cambiare affiliazione e indirizzo di posta elettronica nel tempo e quindi possono avere affiliazione diversa e indirizzo diverso per articoli diversi;

Basi di dati 8 settembre 2015 Esame Compito B Tempo a disposizione: due ore. Libri chiusi. Possibili soluzioni Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la base di dati relazionale contenente le seguenti relazioni: R 1 (A, B, C), con vincolo di integrità referenziale fra C e la chiave D di R 2 e con cardinalità N 1 = 200 R 2 (D, E, F ), con vincolo di integrità referenziale fra E, F e la chiave di R 3 e con cardinalità N 2 = 400 R 3 (G, H, I), con cardinalità N 3 = 100 Indicare le cardinalità minime e massime (in simboli e numeri) dei risultati delle seguenti interrogazioni: Min Max Min Max (simboli) (simboli) (valore) (valore) π AC (R 1 ) N 1 N 1 200 200 R 2 F =AR 1 0 N 2 0 400 (R 2 E=G F =HR 3 ) I=BR 1 0 N 2 N 1 0 80.000 R 1 C=DR 2 N 1 N 1 200 200 π BC (R 1 ) 1 N 1 1 200 R 2 E=GR 3 N 2 N 2 N 3 400 40.000 (R 1 C=DR 2 ) E=G F =HR 3 N 1 N 1 200 200 Domanda 2 (10%) Definire (con una opportuna notazione) su una relazione Salari(Matricola,StipLordo,Trattenute,Netto,OK) un vincolo che imponga che, se il valore di OK è OK, allora Netto è uguale alla differenza fra StipLordo e Trattenute (si noti che non si vuole invece imporre nessuna condizione se il valore di OK è diverso da OK ). CHECK ( (NOT (OK = OK ) ) OR (Netto = StipLordo - Trattenute) )

Basi di dati I 8 settembre 2015 Compito B Domanda 3 (10%) Indicare (scrivendo V o F nelle caselle) quali delle seguenti affermazioni sono vere e quali false relativamente alle viste come definite in SQL con le istruzioni CREATE VIEW: V le viste possono essere utili per semplificare la scrittura delle interrogazioni F le viste introducono ridondanze nei dati memorizzati F le viste possono essere utili per rendere più efficienti le interrogazioni F ogni vista usata in una interrogazione viene calcolata completamente prima di eseguire l interrogazione Domanda 4 (10%) Considerare la base di dati relazionale definita per mezzo delle seguenti istruzioni: create table Citta ( ID numeric not null primary key, NomeCitta character(20) not null, Popolazione numeric create table Acquedotti ( Codice numeric not null primary key, NomeAcq character(20) not null create table Forniture ( Citta numeric not null references Citta(ID), Acquedotto numeric not null references Acquedotti(Codice), Portata integer check (Portata >= 0), primary key (Citta,Acquedotto) Formulare le seguenti interrogazioni in algebra relazionale: 1. trovare ID e nomi delle città rifornite dall acquedotto Felice π ID,NomeCitta ((Città ID=CittaForniture) Acquedotto=Codice(σ NomeAcq= Felice (Acquedotti))) 2. trovare i codici degli acquedotti che riforniscono almeno due città π Acquedotto (σ Citta Citta (Forniture Acquedotto=Acquedotto ρ X X (Forniture)))

Basi di dati I 8 settembre 2015 Compito B Domanda 5 (20%) Con riferimento alla base di dati usata nella domanda precedente formulare le seguenti interrogazioni in SQL: 1. trovare codici e nomi degli acquedotti che riforniscono la città di Roma select distinct Codice, NomeAcq from Citta join Forniture on ID = Citta join Acquedotti on Acquedotto = Codice where NomeCitta = Roma 2. trovare ID delle città rifornite da almeno due acquedotti select distinct F1.Citta AS ID from Forniture F1 join Forniture F2 on F1.Citta = F2.Citta where F1.Acquedotto <> F2.Acquedotto oppure select Citta AS ID from Forniture group by Citta having count(*) >= 2 3. per ogni città, trovare la disponibilià totale di acqua (intesa come la somma delle portate delle forniture della città) select Citta, sum (Portata) as DisponibilitaTotale from Forniture group by Citta 4. mostrare ID e nome della città con la massima disponibilità totale di acqua Definiamo una vista PortateTotali o DisponibilitaTotali (a seconda dei compiti) con la select della risposta precedente e poi select ID, NomeCitta from Citta join DisponibilitaTotali on ID = Citta where DisponibilitaTotale >= ALL (select DisponibilitaTotale from DisponibilitaTotali)

Basi di dati I 8 settembre 2015 Compito B Domanda 6 (20%) Mostrare lo schema concettuale di una base di dati per la gestione di articoli di una rivista scientifica, secondo le seguenti specifiche. Gli articoli hanno titolo, sottotitolo, uno o più autori e un sommario (una stringa molto grande, ma comunque gestibile come attributo semplice) Gli autori hanno nome, cognome, email e affiliazione (l istituzione per la quale lavorano) Per ogni istituzione (degli autori) sono di interesse il nome, l indirizzo, e la nazione La rivista viene pubblicata un certo numero di volte in un anno. Le pubblicazioni di un anno vengono raccolte in un volume (a cui viene dato un titolo complessivo). Ogni pubblicazione ha un numero, unico nel rispettivo volume, una data di pubblicazione e una serie di articoli, per ognuno dei quali viene registrata la pagina di inizio e quella di fine.

Basi di dati I 8 settembre 2015 Compito B Domanda 7 (15%) Estendere lo schema concettuale ottenuto in risposta alla domanda precedente, per rappresentare le seguenti specifiche; mostrare separatamente le due estensioni 1. si vogliono gestire più riviste, ognuna con un codice identificante, un nome e uno o più curatori, che possono essere anche autori di articoli (e per i quali interessano le stesse informazioni degli autori) 2. gli autori possono cambiare affiliazione e indirizzo di posta elettronica nel tempo e quindi possono avere affiliazione diversa e indirizzo diverso per articoli diversi;