Sei sulla pagina 1di 2

UNIVERSITÀ DEGLI STUDI DI PALERMO - CORSO DI LAUREA IN INGEGNERIA INFORMATICA E DELLE TELECOM.

BASI DI DATI 9 CFU – A.A. 2017- 2018 - PROF. ROSARIO SORBELLO - 2° APPELLO DEL 29 GIUGNO 2018 (COMPITO B)

PARTE 1 – PROGETTAZIONE ENTITA’ – RELAZIONE (MAX 6 PUNTI)


SI REDIGA LO SCHEMA ENTITÀ-RELAZIONE, LA SUA RISTRUTTURAZIONE E LA TRADUZIONE NEL MODELLO RELAZIONE DEL SEGUENTE
PROGETTO PER GESTIRE I DATI DI INTERESSE DI UN INSIEME DI CONVEGNI SECONDO LE SEGUENTI SPECIFICHE:

• OGNI CONVEGNO HA UN CODICE E UN TITOLO E SI TIENE UNA CITTÀ; OGNI CITTÀ HA UN NOME, SI TROVA IN UNA NAZIONE E HA UN CODICE CHE LA
IDENTIFICA NELL’AMBITO DELLA NAZIONE. OGNI NAZIONE HA UN CODICE E UN NOME. OGNI CONVEGNO È RELATIVO AD UNA MATERIA SPECIFICA (AD
ESEMPIO L’ORTOPEDIA) CHE A SUA VOLTA APPARTIENE AD UN’AREA SCIENTIFICA (AD ESEMPIO LA MEDICINA ); OGNI MATERIA HA UN NOME E UN CODICE
CHE LA IDENTIFICA UNIVOCAMENTE. OGNI AREA SCIENTIFICA HA UN CODICE E UN NOME. INTERESSANO CONVEGNI SVOLTI ANCHE IN ANNI DIVERSI.
• OGNI CONVEGNO APPARTIENE AD UNA SERIE, E PER OGNI SERIE (AD ESEMPIO, LA SERIE VLDB) ESISTE AL PIÙ UN CONVEGNO ALL’ANNO (QUINDI AD
ESEMPIO ESISTE IL VLDB 2017); OGNI SERIE HA UN CODICE E UN TITOLO ED È RELATIVA AD UNA MATERIA (CHE HA CODICE, NOME E AREA SCIENTIFICA CON
GLI STESSI DETTAGLI DELLA DOMANDA PRECEDENTE).
• OGNI CONVEGNO SI SVOLGE IN UNA CITTÀ (CHE HA CODICE, NOME E NAZIONE CON GLI STESSI DETTAGLI DELLA DOMANDA PRECEDENTE), IN UNA CERTA
DATA (PER SEMPLICITÀ UN SOLO GIORNO).
• OGNI CONVEGNO È COMPOSTO DI UNA SERIE DI SESSIONI, OGNUNA CON CODICE (UNIVOCO NELLA BASE DI DATI), ORARIO E UN INSIEME DI PARTECIPANTI,
OGNUNO DEI QUALI PRESENTA UNA RELAZIONE CON UN TITOLO (SEMPLICE STRINGA DI TESTO) E HA UNA AFFILIAZIONE (CIOÈ UNA ISTITUZIONE, AD ESEMPIO
UNA UNIVERSITÀ O UNA AZIENDA ); SI NOTI CHE L’AFFILIAZIONE DI UNA STESSA PERSONA PUÒ VARIARE DA UN CONVEGNO ALL’ALTRO
• OGNI ISTITUZIONE HA UN CODICE UN NOME E UNA CITTÀ IN CUI HA SEDE.

PARTE 2: INTERROGAZIONI IN SQL E IN ALGEBRA RELAZIONALE (MAX 10 PUNTI)


ACQUISTO (REF_PRODOTTO, REF_VENDITORE, REF_ACQUIRENTE, DATA_ACQUISTO, DATA_RICEZIONE)
PRODOTTO (COD_PRODOTTO, REF_TIPO_PROD, LIVELLO_FRAGILITÀ, PESO)
TIPOPRODOTTO (COD_TIPO_P, DENOMINAZIONE, REF_ASSICURAZIONE)
CORRIERE (COD_CORRIERE, NOME_CORRIERE, INDIRIZZO, COEFFICIENTE_AFFIDABILITA’)
SOGGETTO (COD_SOGGETTO, NOME_S, COGNOME_S, INDIRIZZO, NAZIONALITÀ)
CON VINCOLO DI INTEGRITÀ REFERENZIALE TRA:
• REF_PACCO DI SPEDIZIONE E COD_PRODOTTO DI PRODOTTO
• REF_VENDITORE DI SPEDIZIONE E COD_SOGGETTO DI SOGGETTO
• REF_ACQUIRENTE DI SPEDIZIONE E COD_SOGGETTO DI SOGGETTO
• REF_TIPO_PROD DI PRODOTTO E COD_TIPO_P DI TIPOPRODOTTO
• REF_CORRIERE DI TIPOPRODOTTO E COD_CORRIERE DI CORRIERE
DISEGNARE LO SCHEMA MASTER-SLAVE DELLO SCHEMA DI BASI DI DATI CON LE CHIAVI

SCRIVERE IN SQL LE SEGUENTI INTERROGAZIONI: (MAX 6 PUNTI)


• SELEZIONARE CODICE, NOME E COGNOME DEGLI ACQUIRENTI CHE HANNO ACQUISTATO ALMENO 2 PRODOTTI CON LA
DITTA FURBETTI E RICEVUTO IL PRODOTTO CON IL CORRIERE VELOCETTI.
• LE INFORMAZIONI DEL PRODOTTO MENO FRAGILE ACQUISTATO NEL 2016.
• I SOGGETTI COREANI CHE NON HANNO MAI ACQUISTATO UN PACCO SPEDITO CON LO STESSO CORRIERE USATO DA UN
ITALIANO PER COMPRARE UN PRODOTTO.

SCRIVERE IN SQL E IN ALGEBRA RELAZIONALE LA SEGUENTE INTERROGAZIONE: (MAX 4 PUNTI)


• SELEZIONARE CODICE, NOME E COGNOME DI TUTTI I SOGGETTI AMERICANI CHE HANNO COMPRATO TUTTI I PRODOTTI
DAL VENDITORE TOPOLINO TRA GENNAIO E GIUGNO 2010.

PARTE 3: VISTE E INTERROGAZIONI SQL (MAX 5 PUNTI)


Dato il seguente schema di Basi di Dati che descrive un insieme di utenze telefoniche, con le bollette e i pagamenti
relativi ad esse (si noti che i pagamenti fanno riferimento alle bollette, e si tratta di pagamenti dell’intero importo):
LAUREA (COD_LAUREA, NOME_LAUREA, NUMERO_ANNI, TIPO_LAUREA)
CORSO (COD_CORSO, NOME_CORSO, CFU, REF_LAUREA)
ESAME (REF_CORSO, REF_STUDENTE, DATA, VOTO)
PIANOSTUDIO (ID_CORSO, ID_STUDENTE)
STUDENTE (COD_STUDENTE, NOME, COGNOME, DATA_NASCITA, INDIRIZZO)
con vincolo di integrità referenziale fra:
REF_LAUREA DI CORSO E COD_LAUREA DI LAUREA
REF_CORSO DI ESAME E COD_CORSO DI CORSO
ID_CORSO DI PIANOSTUDIO E COD_CORSO DI CORSO
ID_STUDENTE DI PIANOSTUDIO E COD_STUDENTE DI STUDENTE

Scrivere 2 viste: (MAX 2 PUNTI)


1. esamiprevisti (cod_corso, nome_corso, numero_studenti_previsti) trova, per ogni corso, il numero di
studenti previsti che faranno esami di quella materia (perché hanno materia nel piano di studio)
2. esamisuperati (cod_corso, nome_corso, numero_esami_superati) trova, per ogni corso, il numero di studenti che
hanno superato l’esame di quella materia (studente presente dentro esame per quel corso)
Scrivere un’interrogazione SQL che usando le due viste precedenti trova: (MAX 3 PUNTI)

per ciascun corso, il codice, il titolo, il numero di studenti che lo hanno in piano di studi e il numero di studenti che hanno superato
l’esame
PARTE 4: CARDINALITA’ (MAX 5 PUNTI)
CONSIDERARE LE SEGUENTI RELAZIONI (TUTTE SENZA VALORI NULLI )

• R1(A, B, C), CON VINCOLO DI INTEGRITÀ REFERENZIALE FRA C E LA CHIAVE D DI R2 E CON CARDINALITÀ N1 = 200
• R2(D, E, F), CON VINCOLO DI INTEGRITÀ REFERENZIALE FRA (E,F) E LA CHIAVE (G,H) DI R3 E CON CARDINALITÀ N2 = 400
• R3(G, H, I) E CON CARDINALITÀ N3 = 100

INDICARE LA CARDINALITÀ IN SIMBOLI E VALORI (MOTIVANDOLA) DEL RISULTATO DI CIASCUNA DELLE SEGUENTI 5 INTERROGAZIONI IN ALGEBRA
RELAZIONALE, SPECIFICANDO L’ INTERVALLO NEL QUALE ESSA PUÒ VARIARE (OSSIA VALORE MINIMO E MASSIMO) O QUANDO È PREVISTO IL VALORE ESATTO
INSERIRE LO STESSO SIMBOLO E LO STESSO VALORE DENTRO LE RISPETTIVE CELLE MINIMO E MASSIMO;
SIMBOLI VALORI
MIN MAX MIN MAX
PROJ AB (R1)
(R1 JOIN C=D R2)
((R2 JOIN (E=G AND F=H) R3) JOIN I=B R1)
(R3 JOIN I=A R1)
((R1 JOIN C=D R2) JOIN (E=G AND F=H) R3)

PARTE 5: NORMALIZZAZIONE (MAX 3 PUNTI)


CONSIDERARE LA SEGUENTE RELAZIONE, CHE CONTIENE DATI RELATIVI A CONVEGNI. LE ABBREVIAZIONI CC, CS, CM E CA INDICANO
RISPETTIVAMENTE CODICECONVEGNO, CODICESEDE E CODICEARGOMENTOCONVEGNO, CODICEAREA.

CC TITOLO CS SEDE CM MATERIA CA AREA


1 ARTICOLAZONI C4 MILANO M1 ORTOPEDIA A1 MEDICINA
2 FRATTURE C5 ROMA M1 ORTOPEDIA A1 MEDICINA
3 CUORE C6 TORINO M2 CARDIOLOGIA A1 MEDICINA
4 RB2018 C2 OSAKA R1 ROBOTICA A2 INFORMATICA
5 DB2018 C1 MONACO M3 BASI DI DATI A2 INFORMATICA

DATA LE SEGUENTI DIPENDENZE FUNZIONALI:

1. CC → TITOLO
2. CS → SEDE
3. CM → MATERIA
4. CA → AREA
INDICARE LA CHIAVE E FRA LE DIPENDENZE FUNZIONALI SPECIFICARE QUALI SONO QUELLE CHE PROVOCANO VIOLAZIONI
(INDICARE MOTIVAZIONE) DELLA BCNF. MOSTRARE UNA DECOMPOSIZIONE IN FORMA NORMALE DI BOYCE E CODD INDICANDO
GLI SCHEMI DI RELAZIONI CON ATTRIBUTI E CHIAVI DELLE RELAZIONI OTTENUTE DALLA DECOMPOSIZIONE.
DARE UN NOME SIGNIFICATIVO ALLE RELAZIONI OTTENUTE DOPO LA DECOMPOSIZIONE (NON USARE R1, R2..).

PARTE 6: DOMANDE DI TEORIA (MAX 7 PUNTI)


A) DESCRIVERE IN DETTAGLIO COME SI GESTISCONO LE VIOLAZIONI DI VINCOLI DIFFERITI IN UN ASSERZIONE? CHE
PROBLEMA SI RISOLVE CON I VINCOLI DIFFERITI? .
B) DEFINIRE IN DETTAGLIO LE DIFFERENZE TRA UNA VISTA MATERIALIZZATA E UNA RELAZIONE VIRTUALE ?.
C) QUALI SONO LE REGOLE DI DISTRIBUITIVITA’ DELL’ALGEBRA RELAZIONALE? QUALE OPERAZIONE NON E’
DISTRIBUIBILE RISPETTO ALLA DIFFERENZA ? PERCHE’ ?
D) DATO IL GENERICO MODELLO E-R RIPORTATO IN FIGURA, SE SI VUOLE RAPPRESENTARE UN ASSOCIAZIONE UNO A
MOLTI CON PARTECIPAZIONE OPZIONALE, QUALI SONO LE CARDINALITA’ DI E1 E DI E2 RISPETTO A R DA METTERE AL
POSTO DEI (??) ?. QUALI SONO LE DUE POSSIBILI TRADUZIONI AMMESSE PER QUESTO MODELLO? RIPORTARE ENTRAMBI
GLI SCHEMI DI BASI DI DATI DELLE DUE TRADUZIONI POSSIBILI.