← Back
ExamFirst midtermExam paper onlyItalian

26 11 15s

Study material for Basi di Dati, shared by the Studwiz community and reviewed by moderators.

Basi di DatiFirst midterm

Document information

What's included in this study material

Study material for Basi di Dati, shared by the Studwiz community and reviewed by moderators.

Import quality: text was extracted directly from the original document.

Extracted content from the document

Representative passages recognised in different parts of the material. The full extracted text remains available to search, while this compact preview makes the page easier to read.

Page 1

SOLUZIONE DELLA PROVA IN ITINERE DEL 26 NOVEMBRE 2015 Si consideri lo schema della base di dati relazionale di un’associazione di subacquea che vuole tenere traccia dei brevetti conseguiti e delle immersioni effettuate dai sub iscritti. SUB (CF, nome, cognome, città, telefono) BREVETTO (codice, nome, descrizione, profonditàMassima) CONSEGUIMENTO (sub, brevetto, dataConseguimento) IMMERSIONE (sub, numero, subCompagno, data, luogo, oraInizio, oraFine, pressioneInizio, pressioneFine, profMaxRaggiunta, temperatura, visibilità) Si noti che uno stesso sub può avere conseguito più brevetti. 1. Linguaggi Formali (6 punti) Esprimere in algebra relazionale (ottimizzata), calcolo relazionale e Datalog la seguente interrogazione: Sub che non hanno mai conseguito brevetti per profondità superiori a 30 metri e che hanno fatto almeno due immersioni con lo stesso compagno e un’immersione a Portoferraio con un compagno differente. Algebra relazionale Calcolo relazionale {t| ∃tI1∈IMMERSIONE, ∃tI2∈IMMERSIONE, ∃tI3∈IMMERSIONE ( t[CF]=tI1[sub]∧tI1[sub]=tI2[sub]∧tI2[sub]=tI3[sub]∧tI1[subCompagno]=tI2[subCompagno]∧ tI1[numero]<>tI2[numero] ∧tI3[luogo]=’Portoferraio’ ∧ tI3[subCompagno]<>tI1[subCompagno] ∧¬ ( ∃tB∈BREVETTO, ∃tC∈CONSEGUIMENTO ( tB[Codice]=tC[brevetto] ∧ tB[profonditàMassima]>30 ∧ tC[sub]=tI1[sub] ) ) ) } Datalog 30METRI (SUB) :- BREVETTO(C,_,_,P), CONSEGUIMENTO(SUB,C,_), P>30. RIS(CF) :- IMMERSIONE(CF,N1,SC1,_,_,_,_,_,_,_,_,_), IMMERSIONE(CF,N2,SC1,_,_,_,_,_,_,_,_,_), N1<>N2, IMMERSIONE(CF,_,SC2,_,’Portoferraio’,_,_,_,_,_,_,_), SC1<>SC2, ¬30METRI(CF). ?-RIS(x) 2. SQL (7 punti) a) Per ogni sub, il numero di immersioni che ha fatto nel 2014 con un compagno della sua stessa città (2 punti). SELECT S1.CF, COUNT(*) FROM Immersione I, Sub S1, Sub S2 WHERE S1.CF = I.sub AND S2.CF =…

Preview

First page of the document.

First page: 26 11 15s