NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative all amministrazione di un condominio: APPARTAMENTO(NumeroInterno, MetriQuadri, SpeseCondominio, CFProprietario) PROPRIETARIO(CodiceFiscale, Nome, Cognome, Email, AnnoNascita) Con vincoli di integrita referenziale: APPARTAMENTO.CFProprietario à PROPRIETARIO.CodiceFiscale Ogni appartamento del condominio ha un solo proprietario. Lo stesso proprietario può possedere più appartamenti. a) (3 pt) Scrivere in algebra relazionale la query che determina codice fiscale, nome e cognome dei proprietari nati nel 1970 che possiedono almeno 2 case. b) (3 pt) Scrivere in algebra relazionale la query che determina codice fiscale, nome e cognome dei proprietari che posseggono SOLO appartamenti di superficie inferiore ai 100mq. c) (3 pt) Scrivere in SQL la query che determina codice fiscale ed email dei proprietari che posseggono SOLO appartementi di superficie maggiore ai 100mq. [VINCOLO: Non è possibile utilizzare il join tra tabelle nella clausola FROM]. d) (3 pt) Scrivere in SQL la query che determina codice fiscale, nome e cognome dei proprietari nati dal 1960 in poi che pagano complessivamente più di 2000 euro di spese condominiali (considerando la somma di tutte le spese degli appartamenti in loro possesso) [VINCOLO: Non è possibile utilizzare la clausola HAVING].
ESERCIZIO 2 (12 punti) Si vuole progettare una base di dati per una società di amministratori di condominio. Per ogni amministratore della società, si vogliono memorizzare: codice (univoco), nome, cognome, recapito email e recapiti telefonici (potrebbero essere più di uno). Per ogni condominio gestito dalla società, si vuole tener traccia del nome (univoco), indirizzo (via/civico/città/cap), anno di fabbricazione e superficie complessiva. Ogni condominio è composto da appartamenti, ciascuno caratterizzato da un numero di interno, numero di scala, superficie e valore catastale. La coppia (numero interno- numero di scala) è univoca all interno di un condominio. Si vuole tenere traccia della lista dei pagamenti sostenuti da ogni appartamento. Un pagamento consiste in un importo ed in una data. Ogni appartamento appartiene ad un solo proprietario, di cui si vogliono memorizzare: codice fiscale, nome, cognome, data di nascita, email, recapito telefonico. Lo stesso proprietario può possedere più appartamenti. Gli appartamenti possono essere adibiti a tre possibili utilizzi: residenze, uffici o esercizi commerciali. Per uffici ed esercizi commerciali, si vuole tenere traccia dell orario di apertura e chiusura, e del numero di persone che vi lavorano. Solo per gli esercizi commerciali si vuole tenere traccia della PARTITA IVA. Inoltre, si vuole tenere traccia dei report di spesa annuali per la gestione di ogni condominio. Un report è associato all amministratore che l ha redatto e al condominio cui fa riferimento, ed include l anno, il saldo totale (detto saldo di spesa annuale ) e la lista delle spese effettuate. Di ogni spesa si vuole memorizzare il numero della fattura, l importo, la descrizione (stringa di testo), la categoria (stringa di testo) e la data. Il saldo totale annuale si ottiene dalla somma degli importi delle singole spese effettuate in quell anno. a) (6pt) Costruire il modello Entità- Relazione (E- R) della base di dati. b) (4pt) Tradurre il modello E- R nel modello logico relazionale. Indicare i vincoli di integrità referenziale tra gli attributi dello schema. c) (2pt) Determinare il costo della seguente operazione (interattiva, wi=1): Visualizzazione del saldo di spesa di tutti i condomini presenti nel DB, per l anno 2014, nel caso in cui l attributo saldo di spesa annuale sia presente o meno all interno dello schema E- R. Studiare separatamente i due casi. Tabella media dei volumi: 10 condomini, 5 spese per ogni report annuale, α (peso operazioni scrittura) =2, β (peso operazioni lettura) =1
ESERCIZIO 3 (4 punti) Dato il seguente schema: R(ABCDEF), con le seguenti dipendenze funzionali: ABà DE, Aà C, BCà F a) Indicare se ABC sia chiave o meno della relazione R. Giustificare la risposta. b) La relazione e in forma normale di Boyce e Codd (FNBC)? La relazione e in terza forma normale (3FN)? Giustificare le risposte.
ESERCIZIO 4 (2 punti) a) (1 pt) Dato un set di transazioni eseguite da un DBMS relazionale, spiegare (brevemente) la differenza tra schedule seriale e schedule serializzabile. b) (1 pt) Date le seguenti transazioni: T0=r0(x), w0(y), Commit (T0) T1=w1(x), w1(z), Commit(T1) eseguite in quest ordine dal lock manager del DBMS: w_lock1(x) w1(x) unlock1(x) r_lock0(x) r0(x) unlock0(x) w_lock0(y) w0(y) unlock0(y) Commit(T0) w_lock1(z) w1(z) unlock1(z) Commit(T1) Decidere se lo schedule rispetti o meno le regole del protocollo Strict Two Phase Lock (S2PL). Giustificare la risposta.