Sei sulla pagina 1di 26

Università degli Studi di Palermo

Facoltà di Ingegneria

a
Corso di laurea in Ingegneria Informatica

eri
Basi di Dati 6 CFU – A.A. 2011-2012 Prof. Rosario Sorbello
Prova di Esame: 13 Febbraio 2012

PARTE 1 – PROGETTAZIONE ENTITA’ - RELAZIONE

gn
Si rediga il progetto Entità-Relazione, i dizionari e la traduzione del seguente progetto:

Il premio Strega è un prestigioso premio letterario che viene assegnato ogni anno a un libro di narrativa in prosa di
autore italiano, pubblicato tra il 1 maggio dell'anno precedente e il 30 aprile dell'anno in corso. Il premio viene assegnato
da un giuria di oltre 400 persone dette “Amici della Domenica”. Per ciascuna edizione si memorizzano l’anno (che la
e
identifica), l’eventuale premio in denaro previsto e il vincitore. Ogni anno partecipano alla gara diversi libri dei quali si
registrano il titolo, gli autori (con relativi dati anagrafici e una breve biografia), la data di pubblicazione, la casa editrice
ng
(ragioneSociale e sedeLegale) e il genere. Ogni libro, per poter partecipare alla gara, deve essere presentato da due
“Amici della Domenica”. Le presentazioni di libri, per le quali si memorizza anche un breve giudizio, devono pervenire
entro un termine fissato di anno in anno tra il 1 e il 15 di maggio. Per ogni edizione del premio bisognerà dunque
memorizzare anche tale termine. Ogni “amico” può presentare al massimo un libro per ogni edizione. A un’edizione non
possono partecipare più libri della stessa casa editrice. I libri presentati vengono poi sottoposti a una votazione e i 5 libri
eI

che ottengono il maggior numero di voti passano alla fase finale che consiste in una seconda votazione nella quale gli
“Amici” scelgono il vincitore tra i 5 libri finalisti. Le due votazioni si svolgono in date diverse e per ciascuna è necessario
registrare il luogo in cui si svolge (città e indirizzo), l’elenco di partecipanti e il numero totale di voti ottenuti da ciascun
libro. Nel caso che nella seconda votazione risulti una parità di voti per il 1° posto, il premio è assegnato ex aequo.
r

PARTE 2- 3 – INTERROGAZIONI IN SQL E ALGEBRA RELAZIONALE


ive

A) Data la seguente base di dati:

Dato il seguente schema relazionale:

ATTORE ( codAttore, cognome, nome, dataNascita)


SPETTACOLO ( codSpettacolo, nomeSpettacolo, descrizione, durata, genere, regista, anno )
V

PARTECIPAZIONE ( codAttore, codSpettacolo, ruolo )


RAPPRESENTAZIONE ( codSpettacolo, data, numeroSpettatori)

Con i seguenti vincoli di integrità referenziale:

codAttore di Partecipazione con codAttore di Attore


codSpettacolo di Partecipazione con codSpettacolo di Spettacolo
codSpettacolo di Rappresentazione con codSpettacolo di Spettacolo

1. Scrivere un’espressione di algebra relazionale che visualizzi i registi degli spettacoli di genere ‘Commedia’ del 2007.
Nel risultato non devono essere presenti valori duplicati.
2. Scrivere una query SQL che visualizzi l’attore che ha partecipato a meno spettacoli di tipo ‘Tragedia’ (codAttore,
cognome, nome, dataNascita).
3. Scrivere una query SQL che visualizzi per ciascuno spettacolo la data di rappresentazione che ha avuto il maggior
numero di spettatori (codSpettacolo, data, numeroSpettatori).
4. Selezionare gli attori (codAttore, cognome, nome, dataNascita) che non hanno partecipato a nessuno spettacolo del
2007.

Cognome: ____________________ Nome: ____________________ Matricola: _______________


B) Si consideri il seguente schema di base di dati:

Film(Titolo, Regista, Anno, Genere)


HaRecitatoIn(Attore,Film)

con i vincolo di integrità referenziale tra :


HaRecitatoIn(Film) e Film(Titolo)

Esprimere la seguente interrogazione in SQL: “Trovare gli attori che hanno recitato in tutti i film diretti da Woody
Allen”.

PARTE 4 – DOMANDE DI TEORIA

a
A) NEL MODELLO RELAZIONALE QUALE E’ LA DEFINIZIONE MATEMATICA DI “SCHEMA DI RELAZIONE”,

eri
“SCHEMA DI BASI DI DATI”, “ISTANZA DI BASE DI DATI” E “ISTANZA DI RELAZIONE”?

B) DEFINIRE IL SIGNIFICATO DI UNA GENERALIZZAZIONE PARZIALE E ESCLUSIVA E FARNE UN ESEMPIO ?

gn
C) QUANTE SONO LA CARDINALITA’ DELLE TUPLE DI UN JOIN nei vari casi possibili e perchè?

D) IL RISULTATO DI UNA PROIEZIONE IN ALGEBRA RELAZIONALE SU UNA RELAZIONE R CONTIENE LO


STESSO NUMERO DI TUPLE DI R SE ?
e
ng
E) Illustrare i vari casi nell’uso di count con *, con distinct e con ALL.
F) Fare un esempio di interrogazione nidificata con l’interrogazione più interna che richiama attributi di una relazione
presenta nell’interrogazione più esterna.
r eI
ive
V

Regolamento
1. Il presente foglio va completato con cognome, nome e numero di matricola e deve essere in ogni caso consegnato al docente (anche se ci si
ritira dalla prova). Non ci si può ritirare dopo un ora dall’inizio del compito.
2. La durata della prova è di 1:45 ore.
3. Durante la prova vanno osservate le seguenti norme, pena il ritiro del compito e l’annullamento della prova stessa:
a. non è assolutamente consentito collaborare;
b. non è consentito portare libri, appunti o altro materiale didattico
c. non è assolutamente consentito utilizzare il telefonino;

Cognome: ____________________ Nome: ____________________ Matricola: _______________


Università degli Studi di Palermo
Facoltà di Ingegneria
Corso di laurea in Ingegneria Informatica

a
Basi di Dati 6 CFU – A.A. 2010-2011 Prof. Rosario Sorbello

eri
Prova di Esame: Appello del 25 Novembre 2011 (Sede di Palermo)

PARTE 1 – PROGETTAZIONE ENTITA’ - RELAZIONE

Si rediga il progetto Entità-Relazione, e la traduzione nel Modello Relazionale del seguente progetto:

gn
Un negozio noleggia film in videocassette VHS. Il negozio dispone di un catalogo dei film, ove ciascun film è
identificato dal codice VHS; nel catalogo sono inoltre specificati il titolo del film, il regista, gli attori
principali, la loro nazionalità ed il personaggio interpretato nel film, l’anno di produzione; ciascun film è
indicizzato da un insieme di termini (una lista di parole che descrivono sinteticamente il contenuto del film).
e
I film possono essere anche in lingua originale (diversa dall’italiano); in tal caso nel catalogo è detto di che
ng
lingua si tratta, e se il film è sottotitolato. Di ogni film presente nel catalogo il negozio dispone di una o più
videocassette, ciascuna identificata dalla sua collocazione; se una cassetta è noleggiata, interessa sapere il
cliente che l’ha noleggiata e la data del noleggio. I clienti sono identificati da un codice; di essi interessa
inoltre cognome, nome, indirizzo, telefono.
eI

PARTE 2 – DOMANDE DI TEORIA

A) NEL MODELLO RELAZIONALE QUALE E’ LA DEFINIZIONE MATEMATICA DI:


1. SCHEMA DI RELAZIONE.
r

2. SCHEMA DI BASI DI DATI.


3. ISTANZA DI BASE DI DATI.
ive

4. ISTANZA DI RELAZIONE.

B) NELL’AMBITO DELLE INTERROGAZIONI NIDIFICATE COMPLESSE, PER QUANTO RIGUARDA LA


VISIBILITA’ DELLE VARIABILI SQL QUALI SONO LE RESTRIZIONI IN TERMINI DI USO ?.
V

C) NELL’AMBITO DELL’ANALISI DEGLI INDICI DI PRESTAZIONE DI UNO SCHEMA ENTITA’ –


RELAZIONE QUALI SONO I DUE PARAMETRI CHE REGOLANO LE PRESTAZIONI ? PER STUDIARE
QUESTI PARAMETRI QUALI SONO LE INFORMAZIONI MINIME , OLTRE ALLO SCHEMA, CHE
BISOGNA NECESSARIAMENTE CONOSCERE ?.

Cognome: ____________________ Nome: ____________________ Matricola: _______________


PARTE 3 – INTERROGAZIONI IN SQL

Dato il seguente database:

ATTORI (CodAttore, Nome, AnnoNascita, Nazionalità);


RECITA (CodAttore, CodFilm);
FILM (CodFilm, Titolo, AnnoProduzione, Nazionalità, Regista, Genere);
PROIEZIONI (CodProiezione, CodFilm, CodSala, Incasso, DataProiezione);
SALE (CodSala, Posti, Nome, Città).

CON VINCOLI DI INTEGRITA’ REFERENZIALE TRA:

a
• CodAttore di RECITA e CodAttore di ATTORI

eri
• CodFilm di RECITA e CodFilm di FILM
• CodFilm di PROIEZIONI e CodFilm di FILM
• CodSala di PROIEZIONI e CodSala di SALE

gn
Le Tabelle ATTORI, FILM E SALE sono MASTER.

Scrivere le seguenti interrogazioni in SQL che restituiscono le seguenti informazioni:

1. (FACILE) Il nome di tutte le sale di Pisa.


e
2. (FACILE) Il titolo dei film di F. Fellini prodotti dopo il 1960.
3. (FACILE) Il titolo e la durata dei film di fantascienza giapponesi o francesi prodotti dopo il 1990.
ng
4. (MEDIA) Per ogni film di S.Spielberg, il titolo del film, il numero totale di proiezioni a Pisa e
l’incasso
totale.
5. (MEDIA) Per ogni film prodotto dopo il 2000, il codice, il titolo e l’incasso totale di tutte le sue
eI

proiezioni.
6. (MEDIA) Per ogni film di fantascienza il titolo e l’incasso totale di tutte le sue proiezioni successive
al 1/1/01.
7. (DIFFICILE) Il numero di attori dei film in cui appaiono solo attori nati prima del 1970.
8. (DIFFICILE) Per ogni film di fantascienza che non è mai stato proiettato prima del 1/1/01 il titolo e
l’incasso totale di tutte le sue proiezioni.
r

9. (DIFFICILE) Per ogni sala di Pisa, che nel mese di gennaio 2005 ha incassato più di 20000 €, il nome
ive

della sala e l’incasso totale (sempre del mese di gennaio 2005).


10. (MOLTO DIFFICILE) I titoli dei film dei quali non vi è mai stata una proiezione con incasso
superiore a 500 €.
11. (MOLTO DIFFICILE) Il nome degli attori italiani che non hanno mai recitato in film di Fellini.
12. (MOLTO DIFFICILE) Gli attori che prima del 1960 hanno recitato solo nei film di Fellini.
V

ALGEBRA RELAZIONALE:
SI CONSIDERI IL SEGUENTE SCHEMA DI BASI DI DATI CHE RAPPRESENTA LE INFORMAZIONI PER LA
GESTIONE DI UNA SALA OPERATORIA:
• PAZIENTI (Codice, Nome, Cognome, Indirizzo)
• INTERVENTI (Codice, Paziente, Data)
• EQUIPE (Intervento, Medico, Ruolo)
• MEDICI (Codice, Nome)

CON VINCOLI DI INTEGRITA’ REFERENZIALE FRA:


• INTERVENTI.Paziente e PAZIENTI.Codice
• EQUIPE.Intervento e INTERVENTI.Codice
• EQUIPE.Medico e MEDICI.Codice

1) TROVARE NOME E COGNOME DEI PAZIENTI CHE HANNO SUBITO INTERVENTI IN CUI IL DOTT. KILDARE
ERA ANESTESISTA.

Cognome: ____________________ Nome: ____________________ Matricola: _______________


CREAZIONE DI VISTE IN SQL
Dato il seguente schema relazionale di basi di dati:
• DISCO (NroSerie, TitoloAlbum,Anno,Prezzo);
• CONTIENE (NroSerieDisco,CodiceReg,NroProg);
• ESECUZIONE (CodiceReg,TitoloCanz,Anno);
• AUTORE (Nome,TitoloCanzone);
• CANTANTE (NomeCantante,CodiceReg).

SELEZIONARE I CANTANTI DEL DISCO CHE CONTIENE IL MAGGIOR NUMERO DI CANZONI (SI DEVE FARE
USO OBBLIGATORIAMENTE DI UNA VISTA CHE UNA VOLTA DEFINITA, DEVE POI ESSERE RICHIAMATA
COME TABELLA ALL’INTERNO DI UN'ALTRA QUERY).

a
eri
Regolamento

1. Il presente foglio va completato con cognome, nome e numero di matricola e deve essere in ogni caso consegnato al docente (anche se ci si

gn
ritira dalla prova). Non ci si può ritirare dopo un ora dall’inizio del compito.
2. La durata della prova è di 2 ore.
3. Durante la prova vanno osservate le seguenti norme, pena il ritiro del compito e l’annullamento della prova stessa:
a. non è assolutamente consentito collaborare;
b. non è consentito portare libri, appunti o altro materiale didattico
c. non è assolutamente consentito utilizzare il telefonino;
e
ng
r eI
ive
V

Cognome: ____________________ Nome: ____________________ Matricola: _______________


Corso di laurea in Ingegneria Informatica

Basi di Dati 6 CFU – A.A. 2008- 2009 Prof. Rosario Sorbello

Prova di Esame: Secondo Appello del 8 LUGLIO 2009 (1° Turno)

a
MODELLO ENTITA’ – RELAZIONE :

eri
FORNIRE SOLO LO SCHEMA ENTITA’ - RELAZIONE, LA RISTRUTTURAZIONE DELLO SCHEMA ENTITA’ -
RELAZIONE E LA TRADUZIONE NEL MODELLO RELAZIONALE CON I VINCOLI. LE SPECIFICHE SONO LE
SEGUENTI:

 Ogni condominio ha un nome che lo identifica e un indirizzo e comprende una più scale cui sono associati più

gn
appartamenti

 Ad ogni scala sono associati

 un codice che lo identifica insieme al nome del condominio


e
un valore, detto quota della scala, che rappresenta la frazione di spese del condominio (in millesimi)
ng
che competono agli appartamenti della scala

 Ogni appartamento è identificato, nel rispettivo condominio, dalla scala e da un numero (l’interno). Ad ogni
appartamento è associata una quota (in millesimi) che indica la frazione delle spese (della scala) che sono di
eI

competenza dell’appartamento

 Ogni appartamento ha un proprietario per il quale sono di interesse il cognome, il codice fiscale e l’indirizzo al
quale deve essere inviata la corrispondenza relativa all’appartamento.

Ogni persona ha un solo codice fiscale, ma potendo essere proprietario di più appartamenti potrebbe avere indirizzi
r

diversi per appartamenti diversi. Di solito, anche chi è proprietario di molti appartamenti ha comunque solo uno o pochi
indirizzi. In molti casi, l’indirizzo del proprietario coincide con quello del condominio.
ive

 Per la parte contabile, è necessario tenere traccia delle spese sostenute dal condominio e dei pagamenti
effettuati dai proprietari

 Ogni spesa è associata ad un intero condominio, oppure ad una scala o un singolo appartamento
V

 Ogni pagamento è relativo a uno e un solo appartamento

 Nella base di dati vengono mantenuti pagamenti e spese relative all’esercizio finanziario in corso (annuale)
mentre gli esercizi precedenti vengono sintetizzati attraverso il solo saldo precedente che per ciascun
appartamento indica il debito o il credito del proprietario. In ogni istante esiste un saldo corrente per ciascun
appartamento, definito come somma algebrica del saldo precedente e dei pagamenti (positivi) e delle spese
addebitate (negative).
ALGEBRA RELAZIONALE:

SI CONSIDERI IL SEGUENTE SCHEMA DI BASI DI DATI CHE RAPPRESENTA LE INFORMAZIONI PER LA


GESTIONE DI UN LABORATORIO DI ANALISI MEDICHE:

1. PAZIENTI(CODICE, NOME, COGNOME, INDIRIZZO)


2. ANALISI(CODICE, PAZIENTE, DATA)
3. ESAMI(ANALISI, TIPOESAME, VALORE)
4. TIPIESAMI(CODICE, NOME)

a
CON I SEGUENTI VINCOLI DI INTEGRITA’ REFERENZIALE FRA:

eri
• ANALISI.PAZIENTE E PAZIENTI.CODICE
• ESAMI.ANALISI E ANALISI.CODICE
• ESAMI.TIPOESAME E TIPIESAMI.CODICE

1) TROVARE IN ALGEBRA RELAZIONALE NOME E COGNOME DEI PAZIENTI NELLE CUI ANALISI IL VALORE

gn
DI GLICEMIA E’ RISULTATO SUPERIORE A 200.

SQL E ALGEBRA RELAZIONALE:


e
ng
DATO IL SEGUENTE SCHEMA DI BASI DI DATI

1. FORNITORE(CODF, NOMEFORNITORE, CITTA’)


2. PRODOTTO(CODP, DESCRIZIONE, PREZZO)
3. FORNISCE(ANNO, CODP, CODF, QUANTITA’)
eI

CON VINCOLI DI INTEGRITA’ REFERENZIALE TRA: CODP DI FORNISCE E CODP DI PRODOTTO E CODF DI
FORNISCE E CODF DI FORNITORE

SCRIVERE IN SQL TUTTE LE CINQUE SEGUENTI INTERROGAZIONI (E IN ALGEBRA RELAZIONALE LE


INTERROGAZIONI 1, 2 E 3):
r

1. SELEZIONARE I PRODOTTI CHE NELL’ANNO 1995 SONO STATI FORNITI DA ALMENO UN FORNITORE
ive

2. SELEZIONARE I PRODOTTI NON FORNITI DA NESSUN FORNITORE DI MODENA:


3. SELEZIONARE I PRODOTTI CHE NELL’ANNO 1994 SONO STATI FORNITI ESCLUSIVAMENTE DA
FORNITORI DI MODENA:
4. SELEZIONARE, PER OGNI ANNO, LA QUANTITA’ TOTALE DEI PRODOTTI FORNITI DAI FORNITORI DI
MODENA.
V

5. SELEZIONARE, PER OGNI ANNO, IL CODICE DEL FORNITORE CHE HA FORNITO IN TOTALE LA
MAGGIORE QUANTITA’ DI PRODOTTI.
CREAZIONE DI VISTE IN SQL

Dato il seguente schema relazionale:

• PROGETTI(id_p, nome, tipo, data_inizio, data_fine, id_responsabile);


• IMPIEGATI(id_i, nome, cognome, stipendio);
• ASSEGNATO(id_p, id_i);

a
• CONSEGNE(id_p, data_prevista, data_consegna);
• ORE(id_p, id_i, data, n_ore).

eri
SELEZIONARE (FACENDO USO OBBLIGATORIAMENTE DI UNA VISTA) , TRA TUTTI I DIPENDENTI NON
MANAGER E CHE NON LAVORANO A NESSUN PROGETTO, QUELLO CHE GUADAGNA DI PIU’.

TEORIA

gn
1. DATI GLI OPERATORI IN, NOT IN, =ANY, E <>ALL, SPIEGARE QUALI SONO TRA LORO EQUIVALENTI
E FARNE UN ESEMPIO PER CIASCUNA EQUIVALENZA.
2. DESCRIVERE LE FUNZIONALITA’ DEI 3 COSTRUTTI E DELLE 4 OPERAZIONI FORNITE DA SQL PER
OPERARE SUGLI INSIEMI.
3.
e
NELL’ALGEBRA RELAZIONALE COSA E’ E COSA RESTITUISCE L’OPERATORE “X”, QUANDO USATO
ng
PER ESEMPIO PER FARE R X S.
r eI
ive
V
Università Degli Studi di Palermo
Corso di Laurea in Ingegneria Informatica NO
Compito di Basi di Dati del 16 Settembre 2010

a
eri
ESERCIZIO 1: Progettazione e traduzione (max 10 punti)

Si deve progettare la base di dati del torneo sociale di doppio del circolo Gli amici del tennis.
Del torneo interessano i giocatori (con nome, cognome e numero di tessera del circolo), le coppie partecipanti, le

gn
partite disputate e quelle in calendario. Di ciascuna partita disputata interessano le coppie che giocano, la coppia
vincitrice, il punteggio di ciascun set e l’arbitro (che `e un socio che non partecipa al torneo).
Nel caso la partita finisca per infortunio interessa sapere chi si `e infortunato e il tipo di infortunio.
Ciascun giocatore pu`o essere sostituito in al massimo una partita del torneo. In tal caso interessa sapere chi `e il
sostituto, che deve essere un socio che non gioca il torneo, e in quale partita ha giocato.
e
Effettuare la progettazione concettuale dell’applicazione, producendo il relativo schema Entit`a-Relazione.
ng
r eI
ive
V

Si formulino le seguenti interrogazioni sia in SQL che in algebra relazionale. (punti 6)

1) gli allenatori che hanno allenato il giocatore ‘Maradona’;


2) i giocatori che non sono mai stati allenati dall’allenatore "Nereo Rocco";
3) gli allenatori che hanno sempre allenato la ‘Fiorentina’
4) per ogni squadra e per ciascun anno, il numero di titolari (es.: la squadra Pinco nel
2001 ha avuto 23 titolari).
ESERCIZIO 3:

Si proceda alla creazione della basi dati dell’esercizio precedente in linguaggio SQL.
(punti 5)

ESERCIZIO 4:

Data la seguente basi di dati, si formulino le seguenti query in linguaggio SQL. (max

a
5 punti)

eri
e gn
ng
eI

1) Inserire le seguenti sedi utilizzando un’unica istruzione:(Palermo, via roma 40),


(Bari, via libertà 11), Genova( corso Vitt.Emanuele 14).
2) Cancellare tutte le sedi della città di Milano in cui lavorano meno di 10 dipendenti.
3) Aggiornare il “giorno-fine” a 31-12-2012 per tutti i dipendenti donna il cui “giorno-
r

inizio” è uguale a 1/1/2010.


4) Assegnare l’ufficio “ Pubbliche relazioni” a tutti i dipendenti di sesso femminile
ive

(supposto che nello schema di riferimento vi sia anche l’attributo sesso per l’entità
Dipendente) che sono entrati in servizio prima dell’anno 2009.
5) Eliminare tutti gli uffici cui afferiscono meno di 5 dipendenti.
V

Domande di teoria max (4 punti)


1) Definire chiaramente il significato della parola “Domain” in SQL e fornire un
esempio di creazione di un dominio.
2) Illustrare le differenze più rilevanti tra una base di dati relazionale ed una classica
non relazionale. Di quest’ultima fornire un esempio.
3) Definire chiaramente cosa si intende per decomposizione in forma normale di
Boyce e Codd.
4) Descrivere la differenza che intercorre tra SQL e Algebra relazionale per quanto
riguarda la gestione dei duplicati.

5) (DOMANDA OPZIONALE 2 punti)


Illustrare una differenza tra una base di dati SQL ed una XML, ed eventualmente di
quest’ultima fornire un esempio.
V
ive
reI
ng
e gn
eri
a
UNIVERSITÁ DEGLI STUDI DI PALERMO

CORSO DI LAUREA DI INGEGNERIA EDILE E INGEGNERIA EDILE-ARCHITETTURA

DIPARTIMENTO DICGIM

COMPITO DI LABORATORIO DI INFORMATICA PALERMO 13-01-2011

PROF. ROSARIO SORBELLO

a
Progettazione Entità-Relazione

Si vuole rappresentare una base dati per la gestione di un sistema di prenotazioni di esami medici all’interno di una Azienda Sanitaria

eri
Locale (ASL), tenendo conto delle seguenti informazioni:
• Ciascun paziente è identificato da un codice di tessera sanitaria ed è caratterizzato da un nome, un cognome, l’indirizzo, la
data ed il luogo di nascita.
• Gli esami medici che possono essere eseguiti sono identificati da un codice numerico e sono caratterizzati dalla descrizione di
esame medico (ad esempio Radiografia, ecc.).

gn
• Gli ospedali della ASL sono identificati da un codice numerico e sono caratterizzati da un nome e un indirizzo.
• I laboratori che eseguono gli esami sono identificati da un codice univoco all’interno di un ospedale della ASL e sono
caratterizzati dal nome del laboratorio, dal piano di ubicazione e dal numero di stanza.
• Per ogni prenotazione di un esame da parte di un paziente si vuole memorizzare la data e l’ora dell’esame, il laboratorio
presso cui è eseguito, il costo del ticket e se tale esame è prescritto con urgenza. Si tenga presente che ogni paziente può
effettuare più prenotazioni dello stesso esame in date diverse. Si noti inoltre che lo stesso esame non può essere ripetuto nello


e
stesso giorno dallo stesso paziente.
Ogni ospedale è suddiviso in reparti identificati da un codice numerico univoco all’interno dell’ospedale di appartenenza e
ng
caratterizzati dal nome del reparto e da un numero di telefono.
• Il personale del reparto è identificato attraverso il codice fiscale; sono noti inoltre il nome, il cognome e l’indirizzo di
domicilio. Tra il personale, nel caso dei medici primari del reparto è noto l’elenco delle specializzazioni, mentre per il
personale volontario è noto il nome dell’associazione di appartenenza, se disponibile.
eI

ESERCIZI DI ALGEBRA RELAZIONALE

(1) Si assuma il seguente schema di data base per la gestione di una biblioteca:
QUADRO(codice_quadro, autore, titolo, anno-produzione, tipologia)
CLIENTE(codice_lettore, nome, cognome,codice-fiscale, città_residenza)
COMPRATO(codice_cliente, codice_quadro, data_acquisto, prezzo)
Si esprima, nell’algebra relazionale, ciascuna delle seguenti affermazioni:
r

a) Titoli dei quadri comprati da Marco Rossi il giorno 12/5/99 con prezzo superiore a 100.000 euro;
b) Autori dei quadri comprati dai signori Paolo Rossi di Palermo con prezzo compreso tra 10.000 e 20.000 euro;
ive

c) Codici dei clienti che hanno comprato quadri dipinti da “Picasso” nel 1900 di tipo “natura morta”.

Domande di Teoria

1. Definire i concetti di “vincoli di tupla” e di “vincoli di integrità”.


2. Illustrare chiaramente i diversi tipi di Join conosciuti stabilendo la differenza tra join naturale, equi-
V

join e join full.

Traduzione Modello Entità-Relazione


COMPITO DI BASI DI DATI 2° APPELLO PROF. ROSARIO SORBELLO

Formulare le seguenti interrogazioni

ORCHESTRA(CodO, NomeO, NomrDirettore, numElementi)


CONCERTI(CodC, Data, CodO, CodS, PrezzoBiglietto)
SALE(CodS, NomeS, Città, Capienza)

SQL – Algebra: Trovare il codice e il nome delle orchestre con più di 30 elementi che hanno tenuto concerti sia a
Torino, sia a Milano e non hanno mai tenuto concerti a Bologna.

a
CLIENTE(Cod-Cli,nome)

eri
CONTO(Cod-Conto, saldo, agenzia, stato)
CONTO-CLIENTE(Cod-Conto, Cod-Cli)

SQL – Algebra: Trovare tutte le agenzie che hanno almeno un cliente titolare da solo (senza cointestatari) di un
unico conto corrente (cliente a cui non sia intestato nessun altro conto corrente).

gn
PERSONA(Nome, Sesso, Età)
GENITORE(Nome-Gen, Nome-Figlio)
e
SQL – Algebra: Trovare il nome di tutte le persone con età a inferiore a 10 anni che sono figli unici.
ng
Libri(Codice, Titolo, Genere, Autore) con vincolo di integrità referenziale fra Autore e la chiave della relazione Scrittori
Edizioni(Libro, Editore, Collana, Anno) con vincoli di integrità referenziale fra Libro e la chiave della relazione Libri e
fra Editore e la chiave della relazione Editori
Editori(Sigla, Nome, Citta)
Scrittori(Codice, Cognome, Nome)
eI

SQL – Algebra: Con riferimento allo schema precedente, formulare sia in algebra relazionale che in SQL la seguente
interrogazione: “Trovare i cognomi e i nomi degli autori di libri pubblicati da editori di Milano”.

ALLOGGIO (CodA, Indirizzo, Città, Superficie, CostoAffittoMensile)


r

CONTRATTO-AFFITTO (CodC, DataInizio, DataFine, NomePersona, CodA)


ive

N.B. Superficie espressa in metri quadri. Per i contratti in corso, DataFine é NULL.

Trovare, per le città in cui sono stati stipulati almeno 100 contratti, la città, il costo mensile
massimo degli affitti, il costo mensile medio degli affitti, la durata massima dei contratti, la durata
media dei contratti e il numero totale di contratti stipulati.
V

SQL: Trovare il nome delle persone che non hanno mai affittato alloggi con superficie superiore a 80
metri quadri.

Si consideri il seguente schema relazionale:

MUSEI (NomeM, Città)


ARTISTI (NomeA, Nazionalità)
OPERE (Codice, Titolo, NomeM*, NomeA*)
PERSONAGGI (Personaggio, Codice*)

Scrivere le interrogazioni SQL che restituiscono le seguenti informazioni:

1) Il codice ed il titolo delle opere di Caravaggio conservate al “National Gallery”.


2) Il codice ed il titolo delle opere di Tiziano conservate nei musei di Londra
3) Il codice ed il titolo delle opere conservate nei musei di Londra, in cui è rappresentata la Madonna
4) Il numero di opere di artisti italiani conservate in ciascun museo di Londra
5) Il nome dei musei di Parigi che non conservano opere di Picasso
Progettazione – Ristrutturazione - Traduzione

Si vuole rappresentare una base dati per la gestione delle partite di calcio svolte nell'ambito del
Campionato del Mondo edizione 2010, tenendo conto delle seguenti informazioni:

Le squadre che partecipano ai Mondiali sono identificate univocamente dal nome della nazione di appartenenza (ad

a
esempio Italia, Romania, Inghilterra, ecc.). Per ogni squadra è noto il nome dell'attuale allenatore e l'elenco delle
precedenti edizioni dei mondiali vinti dalla squadra stessa. Inoltre per ogni squadra è noto il nome di un fan club se

eri
disponibile. I Mondiali sono organizzati in turni di gioco. Ciascun turno è identificato univocamente dal nome del turno
stesso, (esempio: “qualificazione”, “quarti”, “semifinale” e “finale”). La base di dati contiene l'elenco delle squadre che
prendono parte a ciascun turno di gioco. Le partite di calcio sono identificate attraverso un numero d'ordine univoco
all'interno di ciascun turno di gioco. Per ogni partita sono noti i nomi delle due squadre coinvolte, la città dove si gioca
l'incontro ed a che ora. I giocatori sono identificati univocamente dal nome. Per ciascuno è inoltre nota la squadra in cui

gn
gioca nei Mondiali, e con quale numero di maglia. Per ogni giocatore è ancora noto un recapito. Per ciascuno dei
giocatori che ha segnato, si vuole memorizzare nella base di dati, per ogni partita giocata, il minuto di gioco in cui tale
giocatore ha segnato un goal, e se questo è avvenuto su rigore.
Infine la base di dati contiene l'informazione relativa a quale arbitro è stato assegnato a ciascuna partita. Per ogni arbitro
è noto il nome, che lo identifica univocamente, un recapito, ed il numero complessivo di presenze ai mondiali
.
e
ng
Domande di Teoria

1. Definire i concetti di “Viste materializzate” e “relazioni virtuali” e fornire un esempio di vista in linguaggio
SQL.
eI

2. Illustrare chiaramente i diversi tipi di Join conosciuti e fornire un esempio in cui può essere utile l’utilizzo del
“Self Join”.
3. Descrivere brevemente l’utilizzo della parola chiave “cascade” .
4. Illustrare l’utilizzo del costrutto sql “create domain” e fornire un esempio esplicativo.
r
ive
V
UNIVERSITÁ DEGLI STUDI DI PALERMO

DIPARTIMENTO DI INGEGNERIA INFORMATICA

COMPITO DI BASI DI DATI 3° APPELLO PROF. ROSARIO SORBELLO

Progettazione E-R e Traduzione nel Modello Relazionale

Si vuole rappresentare una base dati per la gestione di un sistema di prenotazioni di esami medici all’interno

a
di una Azienda Sanitaria Locale (ASL), tenendo conto delle seguenti informazioni:
• Ciascun paziente è identificato da un codice di tessera sanitaria ed è caratterizzato da un nome, un

eri
cognome, l’indirizzo, la data ed il luogo di nascita.
• Gli esami medici che possono essere eseguiti sono identificati da un codice numerico e sono
caratterizzati dalla descrizione di esame medico (ad esempio Radiografia, ecc.).
• Gli ospedali della ASL sono identificati da un codice numerico e sono caratterizzati da un nome e un
indirizzo.

gn
• I laboratori che eseguono gli esami sono identificati da un codice univoco all’interno di un ospedale
della ASL e sono caratterizzati dal nome del laboratorio, dal piano di ubicazione e dal numero di
stanza.
• Per ogni prenotazione di un esame da parte di un paziente si vuole memorizzare la data e l’ora
e
dell’esame, il laboratorio presso cui è eseguito, il costo del ticket e se tale esame è prescritto con
urgenza. Si tenga presente che ogni paziente può effettuare più prenotazioni dello stesso esame in
ng
date diverse. Si noti inoltre che lo stesso esame non può essere ripetuto nello stesso giorno dallo
stesso paziente.
• Ogni ospedale è suddiviso in reparti identificati da un codice numerico univoco all’interno
dell’ospedale di appartenenza e caratterizzati dal nome del reparto e da un numero di telefono.
• Il personale del reparto è identificato attraverso il codice fiscale; sono noti inoltre il nome, il
eI

cognome e l’indirizzo di domicilio. Tra il personale, nel caso dei medici primari del reparto è noto
l’elenco delle specializzazioni, mentre per il personale volontario è noto il nome dell’associazione di
appartenenza, se disponibile.

SQL – ALGEBRA RELAZIONALE


r

Dato il seguente schema relazionale, si proceda alla creazione della relativa base di dati in linguaggio SQL
ive

standard. Si consideri l’anno del Film compreso tra 1895 e il 2010, pertanto si dovrà creare un opportuno
“dominio” per questo attributo.

Film (CodF, Titolo, Regista, Anno, Nazionalità, Genere, Durata)


Sale (CodS, Nome,Città, N°posti)
V

Proiezioni (CodP, CodF* , CodS*, DataProiezione, Incasso)

Si rappresentino le seguenti interrogazioni in SQL ed in Algebra Relazionale

1. Il titolo e la durata dei film di animazione francesi o italiani prodotti dopo il 1990.
2. Il titolo ed il genere dei film proiettati in sale con più di 400 posti.
3. I titoli dei film le cui proiezioni non hanno mai avuto un incasso superiore a 500 €.
Dato il seguente schema relazionale:

1. PRODOTTO (COD_PROD, DESCRIZIONE)


2. SOCIO(COD_SOC, NOME, COGNOME)
3. OFFERTA(CO, VALIDITA’)
4. COMPRENDE(COD_OFF, COD_PROD, QUANTITA’)
5. RITIRA(COD_OFF, COD_SOC, DATA)
Dove DATA E’ IL GIORNO IN CUI IL SOCIO Cod_soc RITIRA L’OFFERTA Cod_off

Scrivere le seguenti interrogazioni in SQL:

a
1. Selezionare, per ogni socio, il numero delle offerte ritirate che comprendono un prodotto con
descrizione uguale a ‘UVA’.

eri
2. Selezionare, per ogni socio, il numero delle offerte ritirate che comprendono un prodotto con
descrizione uguale a ‘PASTA’.

Considerando il seguente schema relazionale si proceda alla realizzazione delle seguenti query di insert,
update e delete.

MUSEI (NomeM, Città)


OPERE (Codice, Titolo, NomeM*, NomeA*)
ARTISTI (NomeA, Nazionalità) e gn
1. Inserire nella tabella Opere le seguenti opere con un’unica istruzione:
ng
1234, “Monnalisa”, “Louvre”, “Leonardo da Vinci”
1235, “David”, “Uffizi”, “Michelangelo”
1236, “Maya Desnuda”, “Museo del Prado”, “Goya”
eI

2. Aggiornare il codice dell’opera “Guernica” avente codice “1278” con il nuovo codice “1267”.

3. Cancellare tutte le opere di Michelangelo dal museo degli uffizi.

4. Inserire nella tabella “Artisti” gli artisti: “Davide Frisoni”, “Tano Festa”, e “Mario Schifano” con un’unica
r

istruzione.
ive

Domande di Teoria

1. Definire i concetti di “vincoli di tupla” e di “vincoli di integrità”.


2. Illustrare chiaramente i diversi tipi di Join conosciuti e fornire un esempio in cui può essere utile
V

l’utilizzo del “Self Join”.


3. Illustrare le differenze più rilevanti tra una base di dati relazionale ed una classica non relazionale.
Di quest’ultima fornire un esempio.
4. Definire i concetti di “Viste materializzate” e “relazioni virtuali” e fornire un esempio di vista in
linguaggio SQL
5. Definire brevemente le differenze tra “tavola dei volumi” e “tavola delle operazioni”.

Tempo a disposizione h 2.30


Università Degli Studi di Palermo
Corso di Laurea in Ingegneria Informatica NO
Compito di Basi di Dati del 16 Settembre 2010

a
eri
ESERCIZIO 1: Progettazione e traduzione (max 10 punti)

Si progetti una base di dati relativa ad un’azienda commerciale con più Magazzini.
Per ogni magazzino si dovrà conoscere il nome, il responsabile, e l’indirizzo. Inoltre, esiste

gn
un catalogo degli articoli trattati, un elenco fornitori, ed un elenco prelevatori (persone
interne o esterne all’azienda, che possono rispettivamente fornire o prelevare merci);
• per ciascun articolo [codice-art, nome], occorre memorizzare il numero di unità giacenti
nel magazzino, numero di unità minime, numero di unità massime;
e
• per gli ARRIVI di merce: numero progressivo, data, fornitore, elenco degli articoli arrivati
ng
con relativi quantitativi unitari;
• per i PRELIEVI di merce: numero progressivo, data, prelevatore, elenco degli articoli
prelevati con relativi quantitativi unitari.
r eI
ive
V

Si formulino le seguenti interrogazioni sia in SQL che in algebra relazionale. (punti 6)

1. l’ufficio di afferenza del dipendente Bianchi il 31/12/2000


2. gli uffici senza alcun dipendente afferente
3. i dipendenti che non hanno mai cambiato ufficio di afferenza
4. per ciascuna sede, il numero complessivo di afferenze dei dipendenti presso uffici
della sede (ignorando il tempo)
ESERCIZIO 3:

Si proceda alla creazione della basi dati dell’esercizio precedente in linguaggio SQL.
(punti 5)

ESERCIZIO 4:

Data la base di dati dell’esercizio 2, si formulino le seguenti query in linguaggio

a
SQL. (max 5 punti)

eri
1) Inserire le seguenti sedi utilizzando un’unica istruzione:(Palermo, via roma 40),
(Bari, via libertà 11), Genova( corso Vitt.Emanuele 14).
2) Cancellare tutte le sedi della città di Milano.

gn
3) Aggiornare il “giorno-fine” a 31-12-2012 per tutti i dipendenti il cui “giorno-inizio” è
uguale a 1/1/2010.
4) Assegnare l’ufficio “ Pubbliche relazioni” a tutti i dipendenti di sesso femminile
e
(supposto che nello schema di riferimento vi sia anche l’attributo sesso per l’entità
Dipendente).
ng
5) Eliminare tutti gli uffici cui afferiscono meno di 10 dipendenti.

Domande di teoria max (4 punti)


eI

1) Definire chiaramente la differenza che esiste tra “vincolo d’integrità” e “vincolo di


tupla”.
2) Illustrare le differenze più rilevanti tra una base di dati relazionale ed una classica
non relazionale. Di quest’ultima fornire un esempio.
3) Definire chiaramente cosa si intende per decomposizione in forma normale di
r

Boyce e Codd.
ive

4) Descrivere la differenza che intercorre tra SQL e Algebra relazionale per quanto
riguarda la gestione dei duplicati.
V
Università Degli Studi di Palermo
Corso di Laurea in Ingegneria Informatica NO
Compito di Basi di Dati del 16 Settembre 2010

a
eri
ESERCIZIO 1: Progettazione e traduzione (max 10 punti)

Si deve progettare la base di dati del torneo sociale di doppio del circolo Gli amici del tennis.
Del torneo interessano i giocatori (con nome, cognome e numero di tessera del circolo), le coppie partecipanti, le

gn
partite disputate e quelle in calendario. Di ciascuna partita disputata interessano le coppie che giocano, la coppia
vincitrice, il punteggio di ciascun set e l’arbitro (che `e un socio che non partecipa al torneo).
Nel caso la partita finisca per infortunio interessa sapere chi si `e infortunato e il tipo di infortunio.
Ciascun giocatore pu`o essere sostituito in al massimo una partita del torneo. In tal caso interessa sapere chi `e il
sostituto, che deve essere un socio che non gioca il torneo, e in quale partita ha giocato.
e
Effettuare la progettazione concettuale dell’applicazione, producendo il relativo schema Entit`a-Relazione.
ng
r eI
ive
V

Si formulino le seguenti interrogazioni sia in SQL che in algebra relazionale. (punti 6)

1) gli allenatori che hanno allenato il giocatore ‘Maradona’;


2) i giocatori che non sono mai stati allenati dall’allenatore "Nereo Rocco";
3) gli allenatori che hanno sempre allenato la ‘Fiorentina’
4) per ogni squadra e per ciascun anno, il numero di titolari (es.: la squadra Pinco nel
2001 ha avuto 23 titolari).
ESERCIZIO 3:

Si proceda alla creazione della basi dati dell’esercizio precedente in linguaggio SQL.
(punti 5)

ESERCIZIO 4:

Data la seguente basi di dati, si formulino le seguenti query in linguaggio SQL. (max

a
5 punti)

eri
e gn
ng
eI

1) Inserire le seguenti sedi utilizzando un’unica istruzione:(Palermo, via roma 40),


(Bari, via libertà 11), Genova( corso Vitt.Emanuele 14).
2) Cancellare tutte le sedi della città di Milano in cui lavorano meno di 10 dipendenti.
3) Aggiornare il “giorno-fine” a 31-12-2012 per tutti i dipendenti donna il cui “giorno-
r

inizio” è uguale a 1/1/2010.


4) Assegnare l’ufficio “ Pubbliche relazioni” a tutti i dipendenti di sesso femminile
ive

(supposto che nello schema di riferimento vi sia anche l’attributo sesso per l’entità
Dipendente) che sono entrati in servizio prima dell’anno 2009.
5) Eliminare tutti gli uffici cui afferiscono meno di 5 dipendenti.
V

Domande di teoria max (4 punti)


1) Definire chiaramente il significato della parola “Domain” in SQL e fornire un
esempio di creazione di un dominio.
2) Illustrare le differenze più rilevanti tra una base di dati relazionale ed una classica
non relazionale. Di quest’ultima fornire un esempio.
3) Definire chiaramente cosa si intende per decomposizione in forma normale di
Boyce e Codd.
4) Descrivere la differenza che intercorre tra SQL e Algebra relazionale per quanto
riguarda la gestione dei duplicati.

5) (DOMANDA OPZIONALE 2 punti)


Illustrare una differenza tra una base di dati SQL ed una XML, ed eventualmente di
quest’ultima fornire un esempio.
V
ive
reI
ng
e gn
eri
a
DIPARTIMENTO DI INGEGNERIA CHIMICA GESTIONALE INFORMATICA E MECCANICA
COMPITO DI BASI DI DATI 2° APPELLO 18 LUGLIO 2011 (SEDE DI PALERMO)

PROF. ROSARIO SORBELLO

Progettazione E-R e Traduzione nel Modello Relazionale

a
Si vuole rappresentare la base di dati di per la gestione dell’attività di una organizzazione umanitaria, ovvero i progetti attivati nei
diversi Paesi e le adozioni a distanza.

eri
L’organizzazione opera in diverse aree del mondo (ad esempio Sud e Centro America), e ciascuna area include più Stati (ad esempio
Haiti, Guatemala, Brasile). In ciascuno Stato possono essere attivati dei progetti, per i quali si memorizzano un codice identificativo, un
nome, una descrizione. Lo stesso progetto può essere attivato in più Stati, per ciascuno dei quali dovrà essere registrato il nominativo
del responsabile locale, e la data di inizio e fine del progetto (che può cambiare per Stati diversi). I dati delle aree, degli Stati e dei
progetti devono essere memorizzati nel sistema.
Il sistema deve inoltre memorizzare i dati dei bambini di cui l’organizzazione si occupa: codice identificativo, nome, cognome, data di

gn
nascita, città e Stato di residenza.
I sostenitori dell’organizzazione possono contribuire sottoscrivendo un’adozione a distanza. I dati anagrafici di tutti i sostenitori
devono essere archiviati. Inoltre, per ciascuna adozione, si memorizzano un codice identificativo, la data di sottoscrizione, l’eventuale
data di chiusura, l’importo mensile versato e le eventuali coordinate bancarie (nel caso in cui il versamento avvenga tramite addebito in
conto corrente). In seguito alla sottoscrizione di una nuova adozione, il sistema deve ricercare un bambino che non sia stato ancora
assegnato e deve quindi abbinarlo all’adozione. L’abbinamento bambino-adozione può cambiare nel tempo, ma un bambino non può
essere associato contemporaneamente a più adozioni.
ge
Scrivere il modello E-R, operare la ristrutturazione del modello E-R e effettuare la traduzione nel modello relazionale.

Dato il seguente schema relazionale:


In
• AUTO (Targa, Marca, Cilindrata, Potenza, CodF, CodAss)
• PROPRIETARI (CodProprietario, Nome, Residenza)
• ASSICURAZIONI (CodAssicurazione, Nome, Sede)
• SINISTRO (CodSinistro, Località, Data)
• AUTOCOINVOLTE (CodSinistro, TargaAuto, ImportoDelDanno)

Scrivere le seguenti interrogazioni in SQL:


re

1. Per ciascuna auto coinvolta in più di un sinistro, la targa dell’auto, il nome dell’ Assicurazion ed il
totale dei danni riportati.
2. CodF e Nome di coloro che possiedono più di un’auto.
3. La targa delle auto che non sono state coinvolte in sinistri dopo il 20/01/01.
ive

4. Il codice dei sinistri in cui non sono state coinvolte auto con cilindrata inferiore a 2000 cc.

Dato il seguente schema relazionale:

• MUSEI (NomeMuseo, Città)


• ARTISTI (NomeArtista, Nazionalità)
V

• OPERE (CodiceOpera, Titolo, NomeM, NomeA)


• PERSONAGGI (Personaggio, Codice)

Scrivere le seguenti interrogazioni in SQL:

1. Il numero di opere di artisti italiani conservate in ciascun museo di Londra.


2. Il nome dei musei di Londra che conservano solo opere di Tiziano.
3. Per ciascun artista, il nome dell’artista ed il numero di sue opere conservate alla “Galleria degli Uffizi”.
4. Il nome dei musei di Londra che non conservano opere di artisti italiani, eccettuato Tiziano.
5. I musei che conservano almeno 20 opere di artisti italiani.
DIPARTIMENTO DI INGEGNERIA CHIMICA GESTIONALE INFORMATICA E MECCANICA
COMPITO DI BASI DI DATI 2° APPELLO 18 LUGLIO 2011 (SEDE DI PALERMO)

PROF. ROSARIO SORBELLO

Esercizio di Teoria

a
eri
gn
ge
In
Mostrare il risultato numerico di ciascuna delle due interrogazioni su ciascuna delle due istanze mostrando tutti i calcoli intermedi utili
per il raggiungimento del risultato:

• Interrogazione A su istanza 1
• Interrogazione A su istanza 2
re

• Interrogazione B su istanza 1
• Interrogazione B su istanza 2

Esercizio 2
ive
V

Domande di Teoria

1. Quali sono i due operatori usati in SQL per rappresentare il controllo di appartenenza e di esclusione rispetto ad un insieme ?
Questi due operatori sono identici ad altri due operatori, quali sono questi ?
L’operatore IN permette di esprimere condizioni di appartenenza ad un insieme di valori (=ANY)
L’operatore NOT IN permette di esprimere condizioni di NON appartenenza ad un insieme di
Valori. (<>ALL)

2. Quale restrizione subisce una variabile all’interno di una query nidificata in termini di “scope” ?
3. Cosa è “interval” e quale è la sua sintassi ? Quali sono le forme previste per gli istanti temporali in SQL ?
4. In algebra relazionale, il join naturale tra le relazioni r1(A,B,C) e r2(B,C,D), può essere espresso in maniera equivalente in tre
passi per mezzo di quali operatori ? Descrivere matematicamente i 3 passi.

Tempo a disposizione h 2.30


DIPARTIMENTO DI INGEGNERIA CHIMICA GESTIONALE INFORMATICA E MECCANICA
COMPITO DI BASI DI DATI 2° APPELLO 18 LUGLIO 2011 (SEDE DI PALERMO)

PROF. ROSARIO SORBELLO

a
eri
gn
ge
In
re
ive
V
DIPARTIMENTO DI INGEGNERIA CHIMICA GESTIONALE INFORMATICA MECCANICA
COMPITO DI BASI DI DATI 2° APPELLO 11 LUGLIO 2011 (SEDE DI AGRIGENTO)

PROF. ROSARIO SORBELLO

Progettazione E-R e Traduzione nel Modello Relazionale

a
Si vuole rappresentare la base di dati per la gestione delle gare di Coppa del Mondo di Sci secondo le seguenti specifiche:
Gli atleti sono individuati da un numero di tessera di FIS (Federazione Italiana Sci) e hanno come attributi principali:
cognome, nome, luogo e data di nascita, nazionalità e sesso. Le gare hanno un luogo, una data, un nome della pista, un

eri
tipo (SlalomFemminile, SlalomMaschile, GiganteFemminile,….LiberaMaschile). In una certa data, non si possono svolgere due
gare dello stesso tipo; in un certo luogo, non si possono svolgere due gare dello stesso tipo.
Gli atleti sono raggruppati in squadre nazionali, rispettivamente maschili e femminili, e ogni squadra ha un allenatore,
che è individuato con numero di tessera FIS e ha come attributi principali: cognome, nome, luogo e data di nascita e
nazionalità. Un allenatore allena un’unica squadra.

gn
Ogni gara ha un tracciatore, che è un allenatore; per le gare in due manche il tracciatore è diverso per ogni manche.
Per ogni partecipazione di un atleta ad una gara si registra la posizione di arrivo ed il tempo finale; per le gare in due
manche si registra anche il tempo di prima manche.
Si disegni il modello E-R con tutti i suoi attributi, le chiavi, e le cardinalità per ciascuna relazione introdotta. Del modello
E-R si attui la ristrutturazione giustificando le scelte applicate e per ultimo si traduca il modello ristrutturato in un
ge
modello relazione dove devono essere specificati i vincoli interrelazionali e intrarelazionali.

Dato il seguente schema relazionale:


In
ATTORE ( CodAttore, cognome, nome, dataNascita)
SPETTACOLO ( CodSpettacolo, nomeSpettacolo, descrizione, durata, genere, regista, anno )
PARTECIPAZIONE ( CAttore, CSpettacolo, ruolo )
RAPPRESENTAZIONE ( CDSpettacolo, dataRappresentazione, numeroSpettatori)

Con i seguenti vincoli di integrità referenziale:


re

• CAttore di PARTECIPAZIONE è legato a CodAttore di ATTORE


• CSpettacolo di PARTECIPAZIONE è legato a CodSpettacolo di SPETTACOLO
• CDSpettacolo di RAPPRESENTAZIONE è legato a CodSpettacolo di SPETTACOLO
ive

Scrivere le seguenti interrogazioni in SQL:

1. Scrivere un’espressione di algebra relazionale che visualizzi gli spettacoli (codSpettacolo, nomeSpettacolo,
descrizione) per i quali non sono state fatte rappresentazioni dopo il 30/06/2007.
2. Scrivere una query SQL che visualizzi il numero di attori (numeroAttori) che non ha partecipato a spettacoli di
genere ‘Commedia’.
V

3.Scrivere una query SQL che visualizzi, per ciascun genere, la durata media degli spettacoli (genere, durataMedia).
4. Scrivere una query SQL che visualizzi il numero di attori che hanno partecipato a più di 5 spettacoli (numAttori).
Scrivere un’espressione di algebra relazionale che visualizzi i registi degli spettacoli di genere ‘Commedia’ del 2007.
Nel risultato non devono essere presenti valori duplicati.
5. Scrivere una query SQL che visualizzi l’attore che ha partecipato a meno spettacoli di tipo ‘Tragedia’ (codAttore,
cognome, nome, dataNascita).
6. Scrivere una query SQL che visualizzi per ciascuno spettacolo la data di rappresentazione che ha avuto il maggior
numero di spettatori (codSpettacolo, data, numeroSpettatori).
7. Selezionare gli attori (codAttore, cognome, nome, dataNascita) che non hanno partecipato a nessuno spettacolo
del 2007.
8. Scrivere una query SQL equivalente alla seguente espressione di algebra relazionale:

ATTORE JOIN (PROJ CodAttore (ATTORE) – PROJ CodAttore ( SEL ruolo = ‘Avvocato’ (PARTECIPAZIONE)))
DIPARTIMENTO DI INGEGNERIA CHIMICA GESTIONALE INFORMATICA MECCANICA
COMPITO DI BASI DI DATI 2° APPELLO 11 LUGLIO 2011 (SEDE DI AGRIGENTO)

PROF. ROSARIO SORBELLO

Dato il seguente schema relazionale:

AUTO ( CodAUTO, Costruttore)

a
ACCESSORIO ( CodACCESSORIO, Descrizione )
INSTALLABILE ( CDAUTO, AnnoProduzione, CDACCESSORIO )

eri
Nota: Dentro la relazione Installabile, l’accessorio con codice CDACCESSORIO è installabile sull’automobile prodotta
nell’anno AnnoProduzione con codice CDAUTO.

Con i seguenti vincoli di integrità referenziale:

gn
• CDAUTO di INSTALLABILE è legato a CodAUTO di AUTO
• CDACCESSORIO di INSTALLABILE è legato a CodACCESSORIO di ACCESSORIO

Scrivere le seguenti interrogazioni in Algebra Relazionale:


ge
• Selezionare i dati relativi agli accessori installabili su almeno una automobile “FIAT”.
• Selezionare i dati relativi agli accessori che non sono installabili su nessuna auto “FIAT”.
• Selezionare i dati relativi agli accessori installabili su tutte le auto ”FIAT”.
In
Domande di Teoria

1. Scrivere la definizione formale e matematica del join naturale tra le relazioni r1(X1) e r2(X2). Quali sono le due
proprietà dell’operatore join naturale ? Spiegarle con le formule. Cosa succede dal punto di vista matematico se
nel fare il join naturale tra le relazioni r1(X1) e r2(X2) X1=X2 ? Spiegarlo matematicamente.
2. Quali sono le differenze tra viste materializzate e relazioni virtuali ?
3. Quali sono i tipi numerici esatti e i tipi numerici approssimati applicabili come domini elementari in SQL ?
re

Descrivere brevemente ciascun tipo.


4. Quali sono le differenze tra: Cascade, Set null, Set default e No action per le operazioni di modifica di uno schema
di relazione ? Come si comportano questi 4 parametri se usati per la cancellazione di un elemento della
relazione ?.
ive

Tempo a disposizione h 2.30


V