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 A)

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 ORCHESTRE SECONDO LE SEGUENTI SPECIFICHE:

• OGNI ORCHESTRA HA UN NOME, UNA SEDE (CITTÀ E NAZIONE, CIASCUNA CON CODICE E NOME) E UNA DATA DI FONDAZIONE.
• I COMPONENTI DELLE ORCHESTRE VARIANO DI ANNO IN ANNO ED È IMPORTANTE TENERE TRACCIA DELLA COMPOSIZIONE IN
CIASCUN ANNO (AD ESEMPIO, SAPERE CHE MARIO ROSSI PARTECIPA ALL’ORCHESTRA XY NEL 2015 E NEL 2017, MA NON NEL 2016).
UNA STESSA PERSONA PUÒ PARTECIPARE A PIÙ ORCHESTRE, ANCHE NELLO STESSO ANNO.
• OGNI MUSICISTA (COMPONENTE DI ORCHESTRA), HA UN CODICE_MUSICISTA, UN COGNOME, UN NOME E SI È DIPLOMATO PRESSO UN
CONSERVATORIO.
• OGNI CONSERVATORIO HA UN CODICE_CONSERVATORIO, UN NOME, UN INDIRIZZO E UNA CITTÀ.
OGNI MUSICISTA, IN OGNI ORCHESTRA CUI PARTECIPA (IN MODO ANCHE VARIABILE DA UN ANNO ALL’ALTRO), HA UNO O PIÙ RUOLI
(PIANISTA, PRIMO VIOLINO, DIRETTORE, ...).
• I RUOLI SONO “STANDARDIZZATI”, CIASCUNO CON NOME E CODICE_RUOLO (AD ESEMPIO IL CODICE D CORRISPONDE AL DIRETTORE, IL
CODICE V1 AL PRIMO VIOLINO, ETC.).

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


SPEDIZIONE (REF_PACCO, REF_MITTENTE, REF_DESTINATARIO, DATA_STIMATA, DATA_EFFETTIVA)
PACCO (COD_PACCO, REF_TIPO_MERC, GRADO_FRAGILITÀ, PESO)
TIPOMERCEOLOGICO (COD_TIPO, DESCRIZIONE, REF_ASSICURAZIONE)
ASSICURAZIONE (COD_ASSICURAZIONE, NOME_ASS, INDIRIZZO, COEFFICIENTE)
UTENTE (COD_UTENTE, NOME, COGNOME, INDIRIZZO, NAZIONALITÀ)
CON VINCOLO DI INTEGRITÀ REFERENZIALE TRA:
• REF_PACCO DI SPEDIZIONE E COD_PACCO DI PACCO
• REF_MITTENTE DI SPEDIZIONE E COD_UTENTE DI UTENTE
• REF_DESTINATARIO DI SPEDIZIONE E COD_UTENTE DI UTENTE
• REF_TIPO_MERC DI PACCO E COD_TIPO DI TIPOMERCEOLOGICO
• REF_ASSICURAZIONE DI TIPOMERCEOLOGICO E COD_ASSICURAZIONE DI ASSICURAZIONE
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 UTENTI CHE HANNO SPEDITO ALMENO 3 PACCHI CON L’ASSICURAZIONE
MAILSPEED.
• LE INFORMAZIONI DEL PACCO MENO FRAGILE SPEDITO DOPO IL 30/09/2017.
• GLI UTENTI ITALIANI CHE NON HANNO MAI SPEDITO UN PACCO CON LA STESSA ASSICURAZIONE CHE HA USATO UN
TEDESCO PER SPEDIRE UN PACCO.

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


• SELEZIONARE CODICE, NOME E COGNOME DI TUTTE LE PERSONE SPAGNOLE CHE HANNO RICEVUTO TUTTI I PACCHI DA
PAOLINO PAPERINO TRA MARZO E APRILE 2015.

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):
UTENZA (PREFISSO_UT, NUMERO_UT, CATEGORIA)
DISTRETTO (PREFISSO_D, NOME, REF_PROVINCIA)
PROVINCIA (SIGLA, DENOMINAZIONE)
BOLLETTA (CODICE_BOLLETTA, REF_PREFISSO_UT, REF_NUMERO_UT, DATAEMISSIONE, IMPORTO)
PAGAMENTO (CODICEPAGAMENTO, REF_BOLLETTA)
con vincolo di integrità referenziale fra:
PREFISSO_UT DI UTENZA E PREFISSO_D DI DISTRETTO
REF_PROVINCIA DI DISTRETTO E SIGLA DI PROVINCIA
(REF_PREFISSO_UT, REF_NUMERO_UT) DI BOLLETTA E (PREFISSO_UT, NUMERO_UT) DI UTENZA
REF_BOLLETTA DI PAGAMENTO E CODICE_BOLLETTA DI BOLLETTA

Scrivere 2 viste: (MAX 2 PUNTI)


1. bollettepagate (prefisso_ut, numero_ut, totalepagamenti) trova, per ogni utenza, la somma degli importi
delle bollette pagate
2. bollettenonpagate (prefisso_ut, numero_ut, totalepagamenti) trova, per ogni utenza, la somma degli importi
delle bollette non pagate (bolletta è non pagata se non è presente il suo riferimento dentro relazione pagamento)
Scrivere un’interrogazione SQL che usando le due viste precedenti trova: (MAX 3 PUNTI)

• le utenze per le quali c’è almeno una bolletta non pagata, mostrando, per ciascuna di esse, oltre a prefisso e numero telefonico,
anche il totale complessivo degli importi delle bollette pagate e il totale di quelle non pagate.
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 AC (R1)
(R2 JOIN F=A R1)
((R2 JOIN (E=G AND F=H) R3) JOIN I=B R1)
(R2 JOIN E=G R3)
(R1 JOIN C=D R2)

PARTE 5: NORMALIZZAZIONE (MAX 3 PUNTI)


CONSIDERARE LA SEGUENTE RELAZIONE, CHE CONTIENE DATI RELATIVI AD UN INSIEME DI NEGOZI. LE ABBREVIAZIONI CN, CM E CC
INDICANO RISPETTIVAMENTE CODICENOME, CODICEMARCA E CODICECATEGORIA.

CN NOME INDIRIZZO PIANO CM MARCA CC CATEGORIA


342 MARIELLA VIA LARGA 32 TERRA 101 BEI VESTITI A ABBIGLIAMENTO
342 MARIELLA VIA LARGA 32 TERRA 102 BELLE SCARPE C CALZATURE
343 FRANCA VIC. CORTO 1 PRIMO 101 BEI VESTITI A ABBIGLIAMENTO
343 FRANCA VIC. CORTO 1 PRIMO 103 BEL CUOIO B BORSE
343 FRANCA VIC. CORTO 1 PRIMO 104 VESTITI BELLI A ABBIGLIAMENTO

DATA LE SEGUENTI DIPENDENZE FUNZIONALI:

1. CN → NOME, INDIRIZZO, PIANO


2. CM → MARCA, CC
3. CC → CATEGORIA
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 LO SCHEMA SINTATTICO DI DROP, RIPORTANDO TUTTI I SUOI ELEMENTI E SPIEGANDO PER
CIASCUNO DI ESSI IL SUO SIGNIFICATO. DEFINIRE LA DIFFERENZA NELL’USO DI RESTRICT E DI CASCADE.
B) SE IL COMANDO UPDATE NON PRESENTA UNA CLAUSOLA WHERE, IL VALORE NUOVO CHE SI VUOLE ATTRIBUIRE AD
UN ATTRIBUTO POTRA’ ESSERE PARI A QUALI CATEGORIE DI RISULTATI ?.
C) QUALI SONO LE TRASFORMAZIONI ALGEBRICHE BASATE SULL’INTERAZIONE FRA OPERATORI INSIEMISTICI E
SOLUZIONI COMPLESSE ?
D) DATO IL GENERICO MODELLO E-R RIPORTATO IN FIGURA, SE SI VUOLE RAPPRESENTARE UN ASSOCIAZIONE UNO A
UNO CON PARTECIPAZIONE NON OBBLIGATORIA PER ENTRAMBE LE ENTITA’, 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.