Basi di Dati e Sistemi Informativi A.A. 2011/2012 – 15/02/12 -A COGNOME NOME MATRICOLA T AR A 1 Prof. Paolo Brunasti PC SQL-DML SQL-DDL DIAG ER Teoria (2 punti) Definire "trigger" e "stored procedure" Descrivere la proprietà dell'Isolamento delle transazioni Algebra relazionale (4 punti) Si assuma il seguente schema di base di dati : STUDENTE (Matricola, Nome, Cognome, CodiceLaurea, AnnoIscrizione, DataDiLaurea ) FACOLTA (Sigla, Nome) LAUREA (CodiceLaurea, Titolo, Facoltà) CORSO (Codice, Titolo, Crediti) ISCRIZIONE_CORSO ( CodiceCorso, Matricola, Anno) ESAME (CodiceCorso, Matricola, Data, Voto) (dove l'attributo”Facoltà” della relazione “LAUREA” è chiave esterna verso la relazione “FACOLTA” e gli attributi “CodiceCorso” delle relazioni “ISCRIZIONE_CORSO” ed “ESAME” sono chiavi esterne verso la relazione “CORSO”) Esprimere in algebra relazionale le seguenti query: 1.Elenco di tutti i corsi che non hanno studenti iscritti 2.Lista di tutti gli studenti che sono si iscritti più di 2 anni fa al corso di "Basi di Dati" e non hanno ancora superato l'esame Pagina 1 di 4 Basi di Dati e Sistemi Informativi A.A. 2011/2012 – 15/02/12 -A A 2 Prof. Paolo Brunasti SQL (10 punti) Con riferimento allo schema di basi dati precedente, si implementino in SQL le seguenti query: 1.Lista degli studenti che non hanno ancora sostenuto nessun esame (non importa se l'hanno passato ma solo che si sono almeno presentati) e che sono iscritti da più di sette anni 2.Lista di tutti gli studenti di Economia che sono inscritti a corsi dell'anno 2005 e non hanno ancora sostenuto l'esame di "Informatica Generale" 3.Calcolare la media delle medie degli studenti delle varie facoltà (valore medio della media personale dei singoli studenti aggregata per facoltà) 4.Aggiornare gli Esami del corso “BDSI” in modo che per gli studenti che sono già passati risulti un voto maggiore di 2 punti, mentre per quelli che non sono passati risulti per tutti 18 Utilizzando l’opportuna istruzione SQL, si creino le tabelle STUDENTE, FACOLTA e LAUREA dello schema di base di dati sopra riportato, inserendo vincoli necessari a soddisfare i vincoli di cui sotto e utilizzando opportuni domini per gli attributi presenti nelle relazioni Pagina 2 di 4 Basi di Dati e Sistemi Informativi A.A. 2011/2012 – 15/02/12 -A A 3 Prof. Paolo Brunasti Modello Entità-Relazioni Traduzione modello E-R in modello relazionale (4 punti) Tradurre il seguente modello Entità-Relazione nel modello relazionale, evidenziando chiavi primarie e specificando eventuali chiavi esterne. Pagina 3 di 4 Basi di Dati e Sistemi Informativi A.A. 2011/2012 – 15/02/12 -A A 4 Prof. Paolo Brunasti Progettazione schema Entità-Relazione (10 punti) Una società ha bisogno di gestire i propri progetti di sviluppo. I singoli progetti sono caratterizzati da una scomposizione gerarchica in task via via più di dettaglio, dove ogni task è caratterizzato da un codice univoco, un titolo ed una descrizione, una data d'inizio ed un effort previsto (quantità di lavoro necessario al completamento del task espresso in unità di tempo). Ogni task può quindi essere scomposto in una serie di sotto task, ed è associato ad una serie di risorse che dovranno essere impegnate per la realizzazione dello stesso. Le risorse possono essere persone o attrezzature fisiche, le prime caratterizzate ovviamente da un nome, un cognome, una data di nascita, un indirizzo di residenza ed una retribuzione oraria, mentre le seconde hanno una categoria tecnologica, una descrizione dell'oggetto ed un costo di nolo orario. Le persone che svolgono attività di progetto possono essere dipendenti della società oppure dei consulenti esterni. Per i dipendenti devono essere registrate anche le seguenti informazioni: responsabile gerarchico anzianità aziendale livello d'inquadramento skill personali (al fine di meglio poter allocare i dipendenti sui progetti in via di ideazione) Per i consulenti esterni si richiedono i seguenti dati: data di prima collaborazione forma di contratto in essere eventuale società a cui riferisce Infatti i consulenti esterni possono essere liberi professionisti o dipendenti di altre società che li forniscono in "body rental" o altra forma contrattuale. Per ogni progetto viene indicato un responsabile, una data di inizio, una data di presunta fine del progetto, una percentuale di completamento, un budget allocato per il progetto. Durante la vita di un progetto possono avvenire delle revisioni del progetto stesso che portano a modificare informazioni quali data di presunta dine e budget, ma queste modifiche devono essere memorizzate in modo da poter ricostruire successivamente la storia del progetto. Pagina 4 di 4